Управление сетевыми интерфейсами

Внешние и локальные интерфейсы

Получение списка всех внешних и локальных интерфейсов
GET /network/connections

Ответ на успешный запрос:

Список объектов: LAN, WAN, PPTP, L2TP или PPPoE:

[
  "LAN|WAN|PPTP|L2TP|PPPoE"
]

Объект LAN (Локальный Ethernet-интерфейс):

{
    "id": "int",
    "type": "lan",
    "title": "string",
    "enabled": "boolean",
    "mac": "string",
    "enable_dhcp": "boolean",
    "addresses": ["string"],
    "gateway": "null|string",
    "dns": ["string"],
    "vlan_tag": "null|int",
    "zone": "null|string",
    "is_vce_vlan": "boolean"
}
  • id - уникальный идентификатор интерфейса;

  • title - название интерфейса, не может быть пустым;

  • enabled - включен или выключен данный интерфейс;

  • mac - MAC-адрес сетевой карты или id агрегированного интерфейса. 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": "int",
    "type": "wan",
    "title": "string",
    "enabled": "boolean",
    "mac": "string",
    "enable_dhcp": "boolean",
    "addresses": ["string"],
    "gateway": "null|string",
    "dns": ["string"],
    "vlan_tag": "null|int",
    "zone": "null|string",
    "is_vce_vlan": "boolean"
}
  • id - уникальный идентификатор интерфейса;

  • title - название интерфейса, не может быть пустым;

  • enabled - включен или выключен данный интерфейс;

  • mac - MAC-адрес сетевой карты или id агрегированного интерфейса. 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": "int",
    "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|int",
    "zone": "null|string",
    "is_vce_vlan": "boolean"
}
  • id - уникальный идентификатор интерфейса;

  • title - название интерфейса, не может быть пустым;

  • enabled - включен или выключен данный интерфейс;

  • server - IP-адрес или доменное имя PPTP-сервера, к которому осуществляется подключение;

  • login - логин на сервере PPTP, не может быть пустым;

  • password - пароль на сервере PPTP, не может быть пустым;

  • mac - MAC-адрес сетевой карты или id агрегированного интерфейса. 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": "int",
    "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|int",
    "zone": "null|string",
    "is_vce_vlan": "boolean"
}
  • id - уникальный идентификатор интерфейса;

  • title - название интерфейса, не может быть пустым;

  • enabled - включен или выключен данный интерфейс;

  • server - IP-адрес или доменное имя L2TP-сервера, к которому осуществляется подключение;

  • login - логин на сервере L2TP, не может быть пустым;

  • password - пароль на сервере L2TP, не может быть пустым;

  • mac - MAC-адрес сетевой карты или id агрегированного интерфейса. 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": "int",
    "type": "pppoe",
    "title": "string",
    "enabled": "boolean",
    "login": "string",
    "password": "string",
    "service": "string",
    "concentrator": "string",
    "mac": "string",
    "vlan_tag": "null|int",
    "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": "int",
    "type": "lan|wan|pptp|l2tp|pppoe",
    "ether": {
        "device": "null|string",
        "vlan_tag": "null|int",
        "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|int",
    "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|int",
    "zone": "null|string",
    "is_vce_vlan": "boolean"
}

Ответ: 200 ОК и пустое тело.

Удаление внешнего или локального интерфейса
DELETE /network/connections/<ID интерфейса>

Ответ: 200 ОК и пустое тело.

Агрегированные интерфейсы

Получение списка агрегированных интерфейсов
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 ОК и пустое тело.

Удаление агрегированного интерфейса
DELETE /network/aggregated/<id агрегированного интерфейса>

Ответ: 200 ОК и пустое тело.

Туннельные интерфейсы

Получение списка всех туннельных интерфейсов
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 ОК и пустое тело.

Удаление туннельного интерфейса
DELETE /network/tunnels/<id туннельного интерфейса>

Ответ: 200 ОК и пустое тело.

VCE-интерфейсы

Получение списка всех сетевых интерфейсов, пробрасываемых в VCE
GET /network/vce_conns

Ответ на успешный запрос:

[
  {
    "id": "string",
    "title": "string",
    "vce_id": "string",
    "mac": "string",
    "vlan_tag": "null|int",
    "comment": "string"
  },
  ...
]
  • id - уникальный идентификатор интерфейса;

  • title - название интерфейса, не может быть пустым;

  • vce_id - 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|int",
    "comment": "string"
}

Ответ на успешный запрос:

{
  "id": "string"  // уникальный идентификатор созданного интерфейса
}
Редактирование пробрасываемого в VCE интерфейса
PATCH /network/vce_conns/<id пробрасываемого интерфейса>

Json-тело запроса:

{
    "title": "string",
    "comment": "string"
}

Поля опциональны, можно передавать любое из них отдельно или оба сразу.

Ответ: 200 ОК и пустое тело.

Удаление пробрасываемого в VCE интерфейса
DELETE /network/vce_conns/<id пробрасываемого интерфейса>

Ответ: 200 ОК и пустое тело.

Last updated