Управление сетевыми интерфейсами
Внешние и локальные интерфейсы
Получение списка всех внешних и локальных интерфейсов
GET /network/connections
Ответ на успешный запрос:
Список объектов: LAN, WAN, PPTP, L2TP или PPPoE:
[
"LAN" | "WAN" | "PPTP" | "L2TP" | "PPPoE"
]
Объект LAN (Локальный Ethernet-интерфейс):
{
"id": "integer",
"type": "lan",
"title": "string",
"enabled": "boolean",
"mac": "string",
"enable_dhcp": "boolean",
"addresses": ["string"],
"gateway": "null" | "string",
"dns": ["string"],
"vlan_tag": "null" | "integer",
"zone": "null" | "string",
"is_vce_vlan": "boolean"
}
id
- идентификатор интерфейса;title
- название интерфейса, не может быть пустым;enabled
- включен или выключен интерфейс;mac
- MAC-адрес сетевой карты или идентификатор агрегированного интерфейса. MAC-адрес в формате "11:22:33:44:55:66", все буквы в нижнем регистре;addresses
- список адресов в формате "IP/prefix". Может быть пустым, если включено получение адресов по DHCP;gateway
- IP-адрес шлюза. Может быть равенnull
, если включено получение адресов по DHCP;dns
- список IP-адресов DNS, может быть пустым независимо от флага включения DHCP;vlan_tag
- тэг VLAN, число от 1 до 4095 (включительно). Может быть равенnull
, если не назначен;zone
- алиас зоны. Может быть равенnull
, если не назначен;is_vce_vlan
-true
, если подключение создано на основе проброшенного в VCE VLAN-а.
Объект WAN (Подключение к провайдеру по Ethernet):
{
"id": "integer",
"type": "wan",
"title": "string",
"enabled": "boolean",
"mac": "string",
"enable_dhcp": "boolean",
"addresses": ["string"],
"gateway": "null" | "string",
"dns": ["string"],
"vlan_tag": "null" | "integer",
"zone": "null" | "string",
"is_vce_vlan": "boolean"
}
id
- идентификатор интерфейса;title
- название интерфейса, не может быть пустым;enabled
- включен или выключен данный интерфейс;mac
- MAC-адрес сетевой карты или идентификатор агрегированного интерфейса. MAC-адрес в формате "11:22:33:44:55:66", все буквы в нижнем регистре;enable_dhcp
- получать ли адрес интерфейса и адрес шлюза от провайдера по DHCP;addresses
- список адресов. Адреса в формате "IP/prefix". Может быть пустым, если включено получение адресов по DHCP;gateway
- IP-адрес шлюза. Может быть равенnull
, если включено получение адресов по DHCP;dns
- список IP-адресов DNS, может быть пустым независимо от флага включения DHCP;vlan_tag
- тэг VLAN, число от 1 до 4095 (включительно),null
, если не назначен;zone
- алиас зоны. Может быть равенnull
, если не назначен;is_vce_vlan
-true
, если подключение создано на основе проброшенного в VCE VLAN-а.
Объект PPTP (Подключение к провайдеру по PPTP):
{
"id": "integer",
"type": "pptp",
"title": "string",
"enabled": "boolean",
"server": "string",
"login": "string",
"password": "string",
"mac": "string",
"enable_dhcp": "boolean",
"addresses": ["string"],
"gateway": "null" | "string",
"dns": ["string"],
"vlan_tag": "null" | "integer",
"zone": "null" | "string",
"is_vce_vlan": "boolean"
}
id
- идентификатор интерфейса;title
- название интерфейса, не может быть пустым;enabled
- включен или выключен интерфейс;server
- IP-адрес или доменное имя PPTP-сервера, к которому осуществляется подключение;login
- логин на сервере PPTP, не может быть пустым;password
- пароль на сервере PPTP, не может быть пустым;mac
- MAC-адрес сетевой карты или идентификатор агрегированного интерфейса. MAC-адрес в формате "11:22:33:44:55:66", все буквы в нижнем регистре;enable_dhcp
- получать ли адрес интерфейса и адрес шлюза от провайдера по DHCP;addresses
- список адресов в формате "IP/prefix". Может быть пустым, если включено получение адресов по DHCP;gateway
- IP-адрес шлюза. Может быть равенnull
, если включено получение адресов по DHCP или PPTP-сервер находится в той же подсети, что назначена на интерфейс;dns
- список IP-адресов DNS, может быть пустым независимо от флага включения DHCP;vlan_tag
- тэг VLAN, число от 1 до 4095 (включительно). Может быть равенnull
если не назначен;zone
- алиас зоны. Может быть равенnull
, если не назначен;is_vce_vlan
-true
, если подключение создано на основе проброшенного в VCE VLAN-а.
Объект L2TP (Подключение к провайдеру по L2TP):
{
"id": "integer",
"type": "l2tp",
"title": "string",
"enabled": "boolean",
"server": "string",
"login": "string",
"password": "string",
"mac": "string",
"enable_dhcp": "boolean",
"addresses": ["string"],
"gateway": "null" | "string",
"dns": ["string"],
"vlan_tag": "null" | "integer",
"zone": "null" | "string",
"is_vce_vlan": "boolean"
}
id
- идентификатор интерфейса;title
- название интерфейса, не может быть пустым;enabled
- включен или выключен данный интерфейс;server
- IP-адрес или доменное имя L2TP-сервера, к которому осуществляется подключение;login
- логин на сервере L2TP, не может быть пустым;password
- пароль на сервере L2TP, не может быть пустым;mac
- MAC-адрес сетевой карты или идентификатор агрегированного интерфейса. MAC-адрес в формате "11:22:33:44:55:66", все буквы в нижнем регистре;enable_dhcp
- получать ли адрес интерфейса и адрес шлюза от провайдера по DHCP;addresses
- список адресов в формате "IP/prefix". Может быть пустым, если включено получение адресов по DHCP;gateway
- IP-адрес шлюза. Может быть равенnull
, если включено получение адресов по DHCP или L2TP-сервер находится в той же подсети, что назначена на интерфейс;dns
- список IP-адресов DNS, может быть пустым независимо от флага включения DHCP;vlan_tag
- тэг VLAN, число от 1 до 4095 (включительно),null
, если не назначен;zone
- алиас зоны. Может быть равенnull
, если не назначен;is_vce_vlan
-true
, если подключение создано на основе проброшенного в VCE VLAN-а.
Объект PPPoE (Подключение к провайдеру по PPPoE):
{
"id": "integer",
"type": "pppoe",
"title": "string",
"enabled": "boolean",
"login": "string",
"password": "string",
"service": "string",
"concentrator": "string",
"mac": "string",
"vlan_tag": "null" | "integer",
"zone": "null" | "string",
"is_vce_vlan": "boolean"
}
id
- идентификатор интерфейса;title
- название интерфейса, не может быть пустым;enabled
- включен или выключен данный интерфейс;login
- логин на сервере PPPoE, не может быть пустым;password
- пароль на сервере PPPoE, не может быть пустым;service
- название сервиса, может быть пустым;concentrator
- название концентратора, может быть пустым;mac
- MAC-адрес сетевой карты или id агрегированного интерфейса. MAC-адрес в формате "11:22:33:44:55:66", все буквы в нижнем регистре;vlan_tag
- тэг VLAN, число от 1 до 4095 (включительно),null
, если не назначен;zone
- алиас зоны. Может быть равенnull
, если не назначен;is_vce_vlan
-true
, если подключение создано на основе проброшенного в VCE VLAN-а.
Получение состояния локальных интерфейсов и подключений
GET /network/states
Ответ на успешный запрос:
[
{
"id": "integer",
"type": "lan" | "wan" | "pptp" | "l2tp" | "pppoe",
"ether": {
"device": "null" | "string",
"vlan_tag": "null" | "integer",
"addresses": ["string"],
"gateway": "null" | "string",
"dns": ["string"],
"status": "down" | "going-up" | "up",
"errors": ["string"]
},
"ppp": {
"device": "null" | "string",
"remote_address": "null" | "string",
"local_address": "null" | "string",
"dns": ["string"],
"status": "down" | "going-up" | "up",
"errors": ["string"]
},
"summary": {
"device": "null" | "string",
"addresses": ["string"],
"dns": ["string"],
"gateway": "null" | "string",
"zone": "null" | "string",
"ifindex": "null" | "integer",
"scope": "kernel" | "vpp"
}
},
...
]
id
- идентификатор интерфейса;type
- тип подключения;ether
- состояние Ethernet или VLAN:device
- название устройства в системе, например,Leth1
;vlan_tag
- тэг VLAN, число от 1 до 4095 (включительно) илиnull
, если не назначен;addresses
- список адресов, может быть пустым. Адреса в формате "IP/prefix";gateway
- IP-адрес шлюза, может быть равенnull
, если шлюза нет;dns
- адреса DNS, выданные по DHCP или назначенные пользователем;status
- текущее состояние интерфейса;errors
- список ошибок;
ppp
- состояние РРР-подключения. Поле определено только для интерфейсов с полемtype
равнымpptp | l2tp | pppoe
, для всех остальных типовlan | wan
равноnull
:device
- название устройства в системе, напримерEppp4
;remote_address
- туннельный IP-адрес сервера;local_address
- туннельный IP-адрес клиента (IP-адрес NGFW);dns
- адреса DNS, выданные из PPP;status
- текущее состояние интерфейса;errors
- список ошибок;
summary
- общее состояние подключение:device
- итоговое активное устройство, например,Eppp4
илиEeth3
;addresses
- список адресов интерфейса или подключения к провайдеру;dns
- адреса DNS, пригодные к использованию для сервера DNS и других целей;gateway
- IP-адрес шлюза, может быть равенnull
, если шлюза нет;zone
- алиас зоны. Может быть равенnull
, если не назначен;ifindex
- числовой индентификатор интерфейса;scope
- принадлежность интерфейса сетевому стеку: kernel - ядро.
Создание внешнего или локального интерфейса
POST /network/connections
Json-тело запроса:
Объект LAN | WAN | PPTP | L2TP | PPPoE без поля id, например:
{
"type": "wan",
"title": "string",
"enabled": "boolean",
"mac": "string",
"enable_dhcp": "boolean",
"addresses": ["string"],
"gateway": "null" | "string",
"dns": ["string"],
"vlan_tag": "null" | "integer",
"zone": "null" | "string",
"is_vce_vlan": "boolean"
}
Ответ на успешный запрос:
{
"id": "number" // идентификатор созданного интерфейса LAN
}
Редактирование внешнего или локального интерфейса
PATCH /network/connections/<id интерфейса>
Json-тело запроса:
Поля из объекта LAN | WAN | PPTP | L2TP | PPPoE, например:
{
"enabled": "boolean",
"addresses": ["string"],
"gateway": "null" | "string",
"dns": ["string"],
"vlan_tag": "null" | "integer",
"zone": "null" | "string",
"is_vce_vlan": "boolean"
}
Ответ на успешный запрос: 200 OK
Удаление внешнего или локального интерфейса
DELETE /network/connections/<id интерфейса>
Ответ на успешный запрос: 200 OK
Агрегированные интерфейсы
Получение списка агрегированных интерфейсов
GET /network/aggregated
Ответ на успешный запрос:
[
{
"id": "string",
"enabled": "boolean",
"title": "string",
"comment": "string",
"nics": ["string"]
},
...
]
id
- идентификатор агрегированного интерфейса;enabled
- включен или выключен интерфейс;title
- название, не может быть пустым;comment
- комментарий, может быть пустым;nics
- список MAC-адресов в формате "11:22:33:44:55:66", все буквы в нижнем регистре, может быть пустым.
Получение состояния агрегированных интерфейсов
GET /network/aggregated_states
Ответ на успешный запрос:
[
{
"id": "string",
"link": "up" | "down"
},
...
]
id
- идентификатор агрегированного интерфейса;link
- состояние соединения на агрегированном интерфейсе.
Создание нового агрегированного интерфейса
POST /network/aggregated
Json-тело запроса:
{
"enabled": "boolean",
"title": "string",
"comment": "string",
"nics": ["string"]
}
Ответ на успешный запрос:
{
"id": "string" // идентификатор созданного агрегированного интерфейса
}
Редактирование агрегированного интерфейса
PUT /network/aggregated/<id агрегированного интерфейса>
Json-тело запроса:
{
"enabled": "boolean",
"title": "string",
"comment": "string",
"nics": ["string"]
}
Ответ на успешный запрос: 200 OK
Удаление агрегированного интерфейса
DELETE /network/aggregated/<id агрегированного интерфейса>
Ответ на успешный запрос: 200 OK
Туннельные интерфейсы
Получение списка всех туннельных интерфейсов
GET /network/tunnels
Ответ на успешный запрос:
[
{
"id": "string",
"title": "string",
"enabled": "boolean",
"comment": "string",
"addresses": ["string"],
"gateway": "null" | "string",
"parent_interface": "string",
"osdevname": "string",
"server": "string",
"zone": "null" | "string"
},
...
]
id
- идентификатор интерфейса (строка в формате UUID);title
- название интерфейса, не может быть пустым, максимальная длина - 42 символа;enabled
- включен или выключен интерфейс;comment
- комментарий, может быть пустым;addresses
- список адресов в формате "IP/prefix";gateway
- IP-адрес шлюза, может быть равенnull
;parent_interface
- алиас родительского интерфейса, его IP-адрес будет источником туннеля;osdevname
- название существующего или планируемого сетевого интерфейса в ядре (например,Gre00000001
). Значение создается автоматически, является уникальным и доступно только для чтения;server
- IP-адрес или доменное имя устройства, к которому осуществляется подключение;zone
- алиас зоны. Может быть равенnull
, если не назначен.
Важно: Для каждого родительского интерфейса все настроенные туннели должны иметь уникальные значения в поле server
. Не допускается создание туннельных интерфейсов с повторяющимися значениями в полях parent_interface
и server
!
Получение состояния туннельных интерфейсов
GET /network/tunnel_states
Ответ на успешный запрос:
{
"id": "string",
"link": "up" | "down" | "inactive",
"local_ip": "string"
}
id
- идентификатор интерфейса;link
- состояние туннельного интерфейса,inactive
при недоступности родительского интерфейса;local_ip
- IP-адрес родительского интерфейса запущенного туннеля.
Создание нового туннельного интерфейса
POST /network/tunnels
Json-тело запроса:
{
"title": "string",
"enabled": "boolean",
"comment": "string",
"addresses": ["string"],
"gateway": "null" | "string",
"parent_interface": "string",
"osdevname": "string",
"server": "string",
"zone": "null" | "string"
}
Ответ на успешный запрос:
{
"id": "string" // идентификатор созданного туннельного интерфейса
}
Редактирование туннельного интерфейса
PUT /network/tunnels/<id туннельного интерфейса>
Json-тело запроса:
{
"title": "string",
"enabled": "boolean",
"comment": "string",
"addresses": ["string"],
"gateway": "null" | "string",
"parent_interface": "string",
"osdevname": "string",
"server": "string",
"zone": "null" | "string"
}
Ответ на успешный запрос: 200 OK
Удаление туннельного интерфейса
DELETE /network/tunnels/<id туннельного интерфейса>
Ответ на успешный запрос: 200 OK
VCE-интерфейсы
Получение списка всех сетевых интерфейсов, пробрасываемых в VCE
GET /network/vce_conns
Ответ на успешный запрос:
[
{
"id": "string",
"title": "string",
"vce_id": "string",
"mac": "string",
"vlan_tag": "null" | "integer",
"comment": "string"
},
...
]
id
- идентификатор интерфейса;title
- название интерфейса, не может быть пустым;vce_id
- идентификатор VCE, для которого создан интерфейс;mac
- MAC-адрес сетевой карты в формате "11:22:33:44:55:66", все буквы в нижнем регистре;vlan_tag
- тэг VLAN, число от 1 до 4095 (включительно). Может бытьnull
, если пробрасывается сетевой интерфейс целиком;comment
- комментарий, может быть пустым.
Важно: Изменяемыми являются только поля title
и comment
.
Создание пробрасываемого в VCE интерфейса
POST /network/vce_conns
Json-тело запроса:
{
"title": "string",
"vce_id": "string",
"mac": "string",
"vlan_tag": "null" | "integer",
"comment": "string"
}
Ответ на успешный запрос:
{
"id": "string" // идентификатор созданного интерфейса
}
Last updated