net.php¶
Модуль управления сетевой инфраструктурой: добавление и удаление IP-адресов, блокировка трафика, управление состоянием сетевых портов, получение статистики и отображение графиков Cacti.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
add_ipv4 | добавление IPv4 адреса | Добавляет указанное количество IPv4 адресов на сервер в выбранном порту и VLAN. Если IP не указан, система подбирает свободные адреса из доступных в данной локации. |
block_ip | блокировка IP-адреса | Блокирует указанный IP-адрес для сервера через BIRD или blackhole. Если параметр description не передан, используется системный префикс владельца. |
get_status | получение статуса порта | Возвращает текущее состояние и параметры сетевого интерфейса сервера (скорость, VLAN, статус, настройки безопасности) |
port_off | отключение порта | Отключает сетевой порт сервера, добавляя административную блокировку с указанием причины в теги интерфейса. |
port_on | включение порта | Включает сетевой порт сервера, удаляя связанные с ним блокирующие теги (например, 'block'). Если на порту установлен административный бан, действие будет отклонено. |
remove_ipv4 | удаление IPv4 адреса | Удаляет один или несколько IPv4 адресов с сервера. Если указан параметр remove_all, удаляются все IP-адреса (в зависимости от логики реализации backend). При успешном выполнении очищается PTR-запись в DNS. |
show_cacti | получение графика cacti | Возвращает данные для отображения графиков Cacti по конкретному порту и ID графа |
show_ipv4_free | получение свободных IPv4 адресов | Возвращает список доступных для назначения IPv4 адресов для конкретного сервера, порта и VLAN с учетом локации и тегов. |
unblock_ip | разблокировка IP | Снимает блокировку с указанного IP-адреса через BIRD. Если действие выполняется клиентом, проверяется наличие соответствующей записи в описании интерфейса. |
net/add_ipv4¶
Добавляет указанное количество IPv4 адресов на сервер в выбранном порту и VLAN. Если IP не указан, система подбирает свободные адреса из доступных в данной локации.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: add_ipv4 |
| token | ✅ | string | Токен авторизации |
| id | ✅ | integer | ID сервера |
| port | ❌ | string | Название сетевого интерфейса (например, eth0, ipmi) |
| ips[] | ❌ | array | Список IP адресов для добавления. Если пусто, выполняется подбор. |
| amount | ❌ | integer | Количество IP адресов для подбора (если ips не указан) |
| allow_tech_networks | ❌ | integer | Разрешить использование технических сетей (для администраторов) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "failed to add IPv4: error message from service" }
```
net/block_ip¶
Блокирует указанный IP-адрес для сервера через BIRD или blackhole. Если параметр description не передан, используется системный префикс владельца.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Действие (block_ip или blackhole_ip) |
| token | ❌ | string | Токен авторизации |
| id | ❌ | integer | ID сервера |
| ip | ✅ | string | IP-адрес для блокировки |
| description | ❌ | string | Причина блокировки (добавляется к префиксу) |
| four_hours | ❌ | integer | Установка временного ограничения (4 часа) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "failed to send BIRD management command" }
```
net/get_status¶
Возвращает текущее состояние и параметры сетевого интерфейса сервера (скорость, VLAN, статус, настройки безопасности)
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_status |
| token | ✅ | string | Токен авторизации |
| id | ✅ | integer | ID сервера |
| port | ❌ | string | Название порта (например, eth0) |
| vlan | ❌ | string | VLAN ID |
| speed | ❌ | string | Скорость порта |
| port_security | ❌ | string | Настройки безопасности порта |
| trunc | ❌ | string | Параметры трафика (truncation) |
| status | ❌ | string | Статус порта |
| duplex | ❌ | string | Режим дуплекса |
| port_virt_node | ❌ | mixed | Виртуальный узел порта |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "invalid request for server id 0 with port eth0" }
```
net/port_off¶
Отключает сетевой порт сервера, добавляя административную блокировку с указанием причины в теги интерфейса.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: port_off |
| token | ❌ | string | Токен авторизации |
| id | ✅ | integer | ID сервера |
| port | ❌ | string | Название порта (например, eth0) |
| reason | ❌ | string | Причина блокировки порта |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "net: action required" }
```
net/port_on¶
Включает сетевой порт сервера, удаляя связанные с ним блокирующие теги (например, 'block'). Если на порту установлен административный бан, действие будет отклонено.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: port_on |
| id | ✅ | integer | ID сервера |
| port | ❌ | string | Название порта (например, eth0) |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "admin ban could not be lifted this way, please contact support or abuse team." }
```
net/remove_ipv4¶
Удаляет один или несколько IPv4 адресов с сервера. Если указан параметр remove_all, удаляются все IP-адреса (в зависимости от логики реализации backend). При успешном выполнении очищается PTR-запись в DNS.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: remove_ipv4 |
| token | ✅ | string | Токен авторизации |
| id | ✅ | integer | ID сервера |
| ip | ✅ | string | IP-адрес для удаления (в формате IPv4) |
| remove_all | ❌ | integer | Флаг полного удаления всех IP (0 или 1) |
Пример запроса
Пример успешного ответа
Примеры ошибок
net/show_cacti¶
Возвращает данные для отображения графиков Cacti по конкретному порту и ID графа
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: show_cacti |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | ID сервера/устройства |
| port | ❌ | string | Название порта (например, eth0) |
| graph | ❌ | int | ID графа Cacti |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "invalid request" }
```
net/show_ipv4_free¶
Возвращает список доступных для назначения IPv4 адресов для конкретного сервера, порта и VLAN с учетом локации и тегов.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: show_ipv4_free |
| token | ✅ | string | Токен авторизации |
| id | ✅ | integer | ID сервера |
| port | ❌ | string | Название интерфейса (например, eth0, ipmi) |
| ip | ❌ | string | Базовый IP для поиска |
| tag | ❌ | string | Тег (может быть массивом или строкой) |
| show_all | ❌ | integer | Показывать все доступные адреса (0 или 1) |
| fresh_period | ❌ | integer | Период свежести данных |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "can't find approppriate free IP (vlan: 100 tag: bm amount: -1 at US)" }
```
net/unblock_ip¶
Снимает блокировку с указанного IP-адреса через BIRD. Если действие выполняется клиентом, проверяется наличие соответствующей записи в описании интерфейса.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: unblock_ip |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID сервера (если известен) |
| ip | ✅ | string | IP-адрес для разблокировки |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "failed to send BIRD management command", "context": { "id": 123, "ip": "1.2.3.4" } }
```