net.php¶
Модуль управления сетевой инфраструктурой: добавление и удаление IP-адресов, блокировка трафика, управление состоянием сетевых портов, получение статистики и отображение графиков Cacti.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
add_ipv4 | добавление IPv4 адресов | Добавляет указанное количество IPv4 адресов к серверу на конкретный порт и VLAN. Поддерживает выбор конкретных адресов или автоматический подбор свободных. |
block_ip | блокировка IP-адреса | Блокирует указанный IP-адрес на сервере через BIRD или blackhole. Принимает причину блокировки и флаг blackhole. |
get_status | получение статуса сетевого интерфейса | Возвращает текущий статус сетевого интерфейса (порт) для указанного сервера. Автоматически определяет порт, если не указан явно. |
port_off | отключение сетевого порта | Отключает указанный сетевой порт сервера. Если передан параметр reason, добавляется тег блокировки с указанной причиной. |
port_on | включение сетевого порта | Включает указанный сетевой порт сервера, снимая блокировку (tag 'block'), если она была наложена пользователем. |
remove_ipv4 | удаление IPv4 адресов | Удаляет один или все IPv4 адреса с указанного сервера. Очищает PTR-записи в DNS. |
show_cacti | получение графиков Cacti | Возвращает данные графиков мониторинга Cacti для указанного сервера и порта. |
show_ipv4_free | получение списка свободных IPv4 адресов | Возвращает список доступных свободных IPv4 адресов для указанного сервера, порта и VLAN. Поддерживает фильтрацию по тегам и периоду свежести. |
unblock_ip | разблокировка IP-адреса | Разблокирует указанный IP-адрес на сервере, удаляя правила блокировки в BIRD и снимая теги блокировки. |
net/add_ipv4¶
Добавляет указанное количество IPv4 адресов к серверу на конкретный порт и VLAN. Поддерживает выбор конкретных адресов или автоматический подбор свободных.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: add_ipv4 |
| token | ✅ | string | Токен авторизации пользователя |
| id | ✅ | int | Идентификатор сервера, к которому добавляются адреса |
| amount | ✅ | int | Количество IP-адресов для добавления (если не указаны конкретные IPs) |
| port | ✅ | string | Название сетевого интерфейса (например, eth0, ipmi) |
| vlan | ❌ | int | ID VLAN для назначения адресов. Если не указан, используется VLAN интерфейса или определяется автоматически |
| ip | ❌ | string | Конкретный IP-адрес для добавления (если не используется автоматический подбор) |
| ips | ❌ | array<string> | Массив конкретных IP-адресов для добавления. Принимает несколько значений: ips[]=1.2.3.4&ips[]=1.2.3.5 |
| tag | ❌ | string | Тег для сети (например, ipmi, ovirt, bm). Используется для определения подсети при автоматическом подборе |
| allow_tech_networks | ❌ | int | Флаг разрешения добавления адресов из технических сетей (для администраторов) |
| fresh_period | ❌ | int | Период в днях для фильтрации 'свежих' IP-адресов |
Пример запроса
Пример успешного ответа
net/block_ip¶
Блокирует указанный IP-адрес на сервере через BIRD или blackhole. Принимает причину блокировки и флаг blackhole.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: block_ip |
| token | ✅ | string | Токен авторизации пользователя |
| id | ✅ | int | ID сервера, на котором находится IP |
| ip | ✅ | string | IP-адрес для блокировки |
| description | ❌ | string | Причина блокировки (будет добавлена к описанию) |
| four_hours | ❌ | int | Флаг временной блокировки (4 часа) |
Пример запроса
Пример успешного ответа
net/get_status¶
Возвращает текущий статус сетевого интерфейса (порт) для указанного сервера. Автоматически определяет порт, если не указан явно.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_status |
| token | ✅ | string | Токен авторизации пользователя |
| id | ✅ | int | Идентификатор сервера (server_id) |
| port | ❌ | string | Название порта (например, eth0, ipmi). Если не указан, выбирается основной интерфейс автоматически. |
| vlan | ❌ | string | Идентификатор VLAN |
| speed | ❌ | string | Скорость порта |
| port_security | ❌ | int | Настройки безопасности порта (лимит MAC) |
| trunc | ❌ | string | Параметр обрезки трафика |
| status | ❌ | int | Статус интерфейса |
| duplex | ❌ | string | Режим дуплекса |
| port_virt_node | ❌ | string | Идентификатор виртуального узла порта |
Пример запроса
Пример успешного ответа
Примеры ошибок
net/port_off¶
Отключает указанный сетевой порт сервера. Если передан параметр reason, добавляется тег блокировки с указанной причиной.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: port_off |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | ID сервера |
| port | ❌ | string | Название порта (например, eth0). Если не указан, используется основной интерфейс. |
| reason | ❌ | string | Причина блокировки. Если указана, добавляется тег 'block' с этой причиной. |
Пример запроса
Пример успешного ответа
Примеры ошибок
net/port_on¶
Включает указанный сетевой порт сервера, снимая блокировку (tag 'block'), если она была наложена пользователем.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: port_on |
| token | ✅ | string | Токен авторизации пользователя |
| id | ✅ | int | Идентификатор сервера |
| port | ❌ | string | Название порта (например, eth0, ipmi). Если не указан, выбирается основной порт автоматически |
Пример запроса
Пример успешного ответа
Примеры ошибок
net/remove_ipv4¶
Удаляет один или все IPv4 адреса с указанного сервера. Очищает PTR-записи в DNS.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: remove_ipv4 |
| token | ✅ | string | Токен авторизации для выполнения действия |
| id | ✅ | int | Идентификатор сервера, с которого удаляются IP |
| ip | ✅ | string | IPv4 адрес для удаления. Если не указан, действие не выполняется |
| remove_all | ❌ | int | Флаг для удаления всех IP адресов с сервера (1 - удалить все, 0 - только указанный) |
Пример запроса
Пример успешного ответа
net/show_cacti¶
Возвращает данные графиков мониторинга Cacti для указанного сервера и порта.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: show_cacti |
| token | ✅ | string | Токен авторизации пользователя |
| id | ✅ | int | Идентификатор сервера |
| port | ❌ | string | Название порта (например, eth0, ipmi) |
| graph | ❌ | string | Флаг отображения графика (по умолчанию 1) |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "show_cacti",
"data": {
"id": 12345,
"port": "eth0",
"graphs": [
{
"title": "Traffic In/Out",
"url": "https://cacti.example.com/graph.php?id=5678",
"image": "data:image/png;base64,iVBORw0KGgoAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
}
]
}
}
net/show_ipv4_free¶
Возвращает список доступных свободных IPv4 адресов для указанного сервера, порта и VLAN. Поддерживает фильтрацию по тегам и периоду свежести.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: show_ipv4_free |
| token | ✅ | string | Токен авторизации пользователя |
| id | ✅ | int | Идентификатор сервера |
| port | ✅ | string | Название сетевого интерфейса (например, eth0, ipmi) |
| vlan | ❌ | int | ID VLAN. Если не указан, определяется автоматически из интерфейса сервера |
| tag | ❌ | string | Тег для фильтрации подсети (например, bm, ipmi, ovirt) |
| ip | ❌ | string | Частичное совпадение IP для поиска (например, 192.168.1.) |
| fresh_period | ❌ | int | Период свежести IP в секундах (0 или -1 для отключения фильтра) |
| show_all | ❌ | int | Показывать все доступные IP (доступно только для администраторов) |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "show_ipv4_free",
"id": 12345,
"ips": [
{
"ip": "192.168.1.10",
"vlan": 100,
"subnet": "192.168.1.0/24",
"location": "AMS",
"status": "free"
},
{
"ip": "192.168.1.11",
"vlan": 100,
"subnet": "192.168.1.0/24",
"location": "AMS",
"status": "free"
}
],
"subnets": [
{
"network": "192.168.1.0",
"mask": 24,
"broadcast": "192.168.1.255",
"total": 254,
"free": 2
}
],
"res": {
"total_found": 2,
"filtered": 0
},
"total_ips": 2,
"fresh": -1
}
net/unblock_ip¶
Разблокирует указанный IP-адрес на сервере, удаляя правила блокировки в BIRD и снимая теги блокировки.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: unblock_ip |
| token | ✅ | string | Токен авторизации пользователя |
| id | ✅ | int | Идентификатор сервера, на котором находится IP |
| ip | ✅ | string | IP-адрес, который необходимо разблокировать |
Пример запроса