Управление сетевыми интерфейсами
Внешние и локальные интерфейсы
Получение списка всех внешних и локальных интерфейсов
GET /network/connections
Ответ на успешный запрос: объекты 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
- еслиtrue
, то интерфейс включен,false
- выключен;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
- еслиtrue
, то интерфейс включен,false
- выключен;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
- еслиtrue
, то интерфейс включен,false
- выключен;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
- еслиtrue
, то интерфейс включен,false
- выключен;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
- еслиtrue
, то интерфейс включен,false
- выключен;login
- логин на сервере PPPoE, не может быть пустым;password
- пароль на сервере PPPoE, не может быть пустым;service
- название сервиса, может быть пустым;concentrator
- название концентратора, может быть пустым;mac
- MAC-адрес сетевой карты или идентификатор агрегированного интерфейса. 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"
Ответ на успешный запрос:
{
"id": "number"
}
id
- идентификатор созданного интерфейса.
Редактирование внешнего или локального интерфейса
PATCH /network/connections/<id интерфейса>
Json-тело запроса: некоторые поля одного из объектов LAN | WAN | PPTP | L2TP | PPPoE, которые описаны в раскрывающемся блоке Получение списка всех внешних и локальных интерфейсов
Ответ на успешный запрос: 200 OK
Удаление внешнего или локального интерфейса
DELETE /network/connections/<id интерфейса>
Ответ на успешный запрос: 200 OK
Агрегированные интерфейсы
Получение списка агрегированных интерфейсов
GET /network/aggregated
Ответ на успешный запрос:
[
{
"id": "string",
"enabled": "boolean",
"title": "string",
"comment": "string",
"nics": [ "string" ]
},
...
]
id
- идентификатор агрегированного интерфейса;enabled
- еслиtrue
, то интерфейс включен,false
- выключен;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" ]
}
enabled
- еслиtrue
, то интерфейс включен,false
- выключен;title
- название, не может быть пустым;comment
- комментарий, может быть пустым;nics
- список MAC-адресов в формате11:22:33:44:55:66
, все буквы в нижнем регистре, может быть пустым.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор созданного агрегированного интерфейса.
Редактирование агрегированного интерфейса
PUT /network/aggregated/<id интерфейса>
Json-тело запроса:
{
"enabled": "boolean",
"title": "string",
"comment": "string",
"nics": [ "string" ]
}
enabled
- еслиtrue
, то интерфейс включен,false
- выключен;title
- название, не может быть пустым;comment
- комментарий, может быть пустым;nics
- список MAC-адресов в формате11:22:33:44:55:66
, все буквы в нижнем регистре, может быть пустым.
Ответ на успешный запрос: 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
- еслиtrue
, то интерфейс включен,false
- выключен;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"
}
title
- название интерфейса, не может быть пустым, максимальная длина - 42 символа;enabled
- еслиtrue
, то интерфейс включен,false
- выключен;comment
- комментарий, может быть пустым;addresses
- список адресов в форматеIP/prefix
;gateway
- IP-адрес шлюза, может быть равенnull
;parent_interface
- алиас родительского интерфейса, его IP-адрес будет источником туннеля;osdevname
- название существующего или планируемого сетевого интерфейса в ядре (например,Gre00000001
). Значение создается автоматически, является уникальным и доступно только для чтения;server
- IP-адрес или доменное имя устройства, к которому осуществляется подключение;zone
- алиас зоны. Может бытьnull
, если не назначен.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор созданного туннельного интерфейса.
Редактирование туннельного интерфейса
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"
}
title
- название интерфейса, не может быть пустым, максимальная длина - 42 символа;enabled
- еслиtrue
, то интерфейс включен,false
- выключен;comment
- комментарий, может быть пустым;addresses
- список адресов в форматеIP/prefix
;gateway
- IP-адрес шлюза, может быть равенnull
;parent_interface
- алиас родительского интерфейса, его IP-адрес будет источником туннеля;osdevname
- название существующего или планируемого сетевого интерфейса в ядре (например,Gre00000001
). Значение создается автоматически, является уникальным и доступно только для чтения;server
- IP-адрес или доменное имя устройства, к которому осуществляется подключение;zone
- алиас зоны. Может бытьnull
, если не назначен.
Ответ на успешный запрос: 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"
}
title
- название интерфейса, не может быть пустым;vce_id
- идентификатор VCE, для которого создан интерфейс;mac
- MAC-адрес сетевой карты в формате11:22:33:44:55:66
, все буквы в нижнем регистре;vlan_tag
- тэг VLAN, число от 1 до 4095 (включительно). Может бытьnull
, если пробрасывается сетевой интерфейс целиком;comment
- комментарий, может быть пустым.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор созданного интерфейса.
Редактирование пробрасываемого в VCE интерфейса
PATCH /network/vce_conns/<id интерфейса>
Json-тело запроса:
{
"title": "string",
"comment": "string"
}
title
- название интерфейса, не может быть пустым;comment
- комментарий, может быть пустым.
Поля опциональны, можно передавать любое из них отдельно или оба сразу.
Ответ на успешный запрос: 200 OK
Удаление пробрасываемого в VCE интерфейса
DELETE /network/vce_conns/<id интерфейса>
Ответ на успешный запрос: 200 ОК
SPAN-интерфейсы
Получение списка SPAN-интерфейсов
GET /network/span
Ответ на успешный запрос:
[
{
"id": "string",
"title": "string",
"comment": "string",
"enabled": "boolean",
"mac": "string",
"monitor_interfaces": [ "string" ],
"direction": "string",
"osdevindex": "integer"
},
...
]
id
- идентификатор интерфейса (строка в формате UUID);title
- название интерфейса, не может быть пустым;comment
- комментарий. Может быть пустым.enabled
- включен или выключен интерфейс;mac
- MAC-адрес сетевой карты;monitor_interfaces
- список идентификаторов алиасов интерфейсов, трафик с которых надо зеркалировать. Допустимые типы алиасов:isp
,lan
,interface.vpn_traffic
;direction
- тип трафика, который требуется дублировать на SPAN-интерфейс. Может принимать значенияrx
- входящий,tx
- исходящий иboth
- оба;osdevindex
- суффикс (числовой индекс) названия существующего или планируемого сетевого интерфейса в ядре (например, число 43818 соответствует интерфейсу с системным именемSpan43818
). Значение создается автоматически. Является уникальным и доступно только для чтения.
Создание нового SPAN-интерфейса
POST /network/span
Json-тело запроса:
{
"title": "string",
"comment": "string",
"enabled": "boolean",
"mac": "string",
"monitor_interfaces": [ "string" ],
"direction": "string"
}
title
- название интерфейса, не может быть пустым;comment
- комментарий. Может быть пустым.enabled
- включен или выключен интерфейс;mac
- MAC-адрес сетевой карты;monitor_interfaces
- список идентификаторов алиасов интерфейсов, трафик с которых надо зеркалировать. Допустимые типы алиасов:isp
,lan
,ipsec
,ipsec_gre
,tunnel
;direction
- тип трафика, который требуется дублировать на SPAN-интерфейс. Может принимать значенияrx
- входящий,tx
- исходящий иboth
- оба.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор созданного SPAN-интерфейса.
Редактирование SPAN-интерфейса
PATCH /network/span/<id SPAN-интерфейса>
Json-тело запроса (любые поля интерфейса, кроме id и osdevindex):
{
"title": "string",
"comment": "string",
"enabled": "boolean",
"mac": "string",
"monitor_interfaces": [ "string" ],
"direction": "string"
}
title
- название интерфейса, не может быть пустым;comment
- комментарий. Может быть пустым.enabled
- включен или выключен интерфейс;mac
- MAC-адрес сетевой карты;monitor_interfaces
- список идентификаторов алиасов интерфейсов, трафик с которых надо зеркалировать. Допустимые типы алиасов:isp
,lan
,ipsec
,ipsec_gre
,tunnel
;direction
- тип трафика, который требуется дублировать на SPAN-интерфейс. Может принимать значенияrx
- входящий,tx
- исходящий иboth
- оба.
Ответ на успешный запрос: 200 ОК
Last updated