6. Сетевые интерфейсы¶
В ПАК “Фортикс” поддерживаются следующие типы сетевых интерфейсов:
ether– интерфейс Ethernet;bond– интерфейс, объединяющий интерфейсы в один логический;bridge– интерфейс-сетевой мост;dummy– интерфейс-“заглушка”;fortun– туннельный криптографический интерфейс fortun;gre– туннельный интерфейс gre;ifb– интерфейс для выполнения QoS;loopback– интерфейс “петля”;vlan– интерфейс 802.1Q;vxlan– туннельный интерфейс VxLAN;wg– туннельный интерфейс WireGuard.
6.1. Общая настройка¶
Для определения интерфейса в конфигурации необходимо указать его уникальное имя (строка длиной от 1 до 15 символов), которое выбирается произвольно (исключение: интерфейсы типа ether, loopback), и тип. Для интерфейсов типа ether предусмотрено автоматическое присвоение имени в формате en<n>, где <n> – число, соответствующее номеру порта маршрутизатора ПАК “Фортикс”.
В заводской конфигурации ПАК “Фортикс” настроен один интерфейс en0 типа ether и один интерфейс типа loopback:
interface {
ether en0 {
enable
ipv4 address 192.168.0.1/24
}
loopback lo enable
}
Для изменения IP-адреса интерфейса применяются следующие команды:
# del interface <interface-type> <interface-name> ipv4|ipv6 address
# set interface <interface-type> <interface-name> ipv4|ipv6 address <address>
# commit
где
<interface-type>– тип интерфейса;<interface-name>– имя интерфейса;ipv4|ipv6– уровень конфигурации IPv4/IPv6;<address>– IPv4-адрес в форматеA.B.C.D/maskили IPv6-адрес в форматеA:B:...:H/maskв зависимости от уровня конфигурации.
Пример применения команд для изменения IP-адреса интерфейса en0 типа ether с 192.168.0.1/24 на 192.168.122.184/24:
> configure
# del interface ether en0 ipv4 address
# set interface ether en0 ipv4 address 192.168.122.184/24
# commit
Для настройки получения IP-адреса по протоколу DHCP применяются команды:
# del interface <interface-type> <interface-name> ipv4|ipv6
# set interface <interface-type> <interface-name> ipv4|ipv6 dhcp
# commit
где
<interface-type>– тип интерфейса;<interface-name>– имя интерфейса;ipv4|ipv6– уровень конфигурации IPv4/IPv6.
Пример применения команд для настройки получения IP-адреса интерфейса en0 типа ether по протоколу DHCP:
# del interface ether en0 ipv4
# set interface ether en0 ipv4 dhcp
# commit
Настройка интерфейсов осуществляется на следующем уровне конфигурации:
[edit interface <interface-type> <interface-name>]
где
<interface-type>– тип интерфейса;<interface-name>– имя интерфейса.
На данном уровне конфигурации доступны следующие основные настройки интерфейсов (общие для всех типов):
description <description>– задать текстовое описание интерфейса, где<description>– строка;enable– перевести интерфейс в состояние UP (сделать доступным);egress– перейти на уровень конфигурации выходной дисциплины;ingress– перейти на уровень конфигурации входной дисциплины;ipv4– перейти на уровень конфигурации IPv4;ipv6– перейти на уровень конфигурации IPv6;mac-addr <mac-address>– задать MAC-адрес, где<mac-address>– MAC-адрес в форматеxx:xx:xx:xx:xx:xx;mtu <mtu-value>– задать размер MTU, где<mtu-value>– число от 1 до 65535;no-arp– отключить ARP;no-link-detect– отключить детектирование несущей для управления маршрутами;no-multicast– отключить мультикаст;promisc– использовать режим promisc;rps– использовать принудительное распределение по ядрам процессора на приёме.
6.2. Просмотр состояния интерфейсов¶
Для просмотра текущего состояния интерфейса и его статистики применяется команда:
> show interface <interface-type> <interface-name>
где
<interface-type>– тип интерфейса;<interface-name>– имя интерфейса.
В качестве типа и имени возможно использование символа *, при указании которого подразумеваются все типы или все имена соответственно, например:
show interface(show interface * *) – вывести информацию о всех интерфейсах;show interface * en0– вывести информацию об интерфейсе с именемen0;show interface ether *– вывести информацию о всех интерфейсах типаether;show interface ether en0– вывести информацию об интерфейсеen0типаether.
Для изменения формата вывода или детализации в команде show указываются следующие уточняющие параметры:
brief– параметр, при указании которого информация представляется в краткой табличной форме;detail– параметр, при указании которого информация представляется детализированно;long– параметр, при указании которого информация представляется в развернутом виде;device– параметр, при указании которого представляется информация об устройстве;link– параметр, при указании которого представляется информация о подключении (carrier);qdisc– параметр, при указании которого представляется информация о дисциплинах обслуживания трафика;stat– параметр, при указании которого представляется информация о статистике;stat reset– параметр, при указании которого информация о статистике сбрасывается.
Пример применения команды для просмотра информации о всех интерфейсах в краткой табличной форме:
> show interface * * brief
Interface Status VRF Addresses
---------- ------ --- ---------
en0: up default 192.168.122.184/24
lo: up default
tun0: up default 10.0.0.2/24
6.3. Конфигурирование интерфейсов¶
При выполнении команды commit (применении конфигурации-копии candidate как текущей конфигурации running) осуществляется проверка консистентности конфигурации. В случае проблем консистентности команда commit не выполняется и на экран выводится диагностическое сообщение.
Примечание
Конфигурирование интерфейсов, в общем случае, осуществляется не в момент выполнения команды commit, а в фоновом режиме. Например, при настройке интерфейса bond указываются подчинённые интерфейсы, которые на момент выполнения команды commit могут быть не полностью настроены. В этом случае модуль конфигурации ожидает выполнения всех необходимых условий для применения желаемой конфигурации и только после этого выполняет настройку интерфейса bond.
Для просмотра журнала модуля конфигурации применяется команда:
> show journal service config
Для просмотра ошибок модуля конфигурации применяется команда:
> show journal service config priority err
6.4. Интерфейс default¶
В схеме конфигурирования ПАК “Фортикс” определён специальный безымянный интерфейс default, который не соответствует никакому реальному или виртуальному интерфейсу. Данный интерфейс предназначен для определения настроек по умолчанию для всех интерфейсов: если какие-либо настройки некоторого интерфейса не заданы явно, используются настройки интерфейса default.
Настройка интерфейса default осуществляется на следующем уровне конфигурации:
[edit interface default]
На данном уровне конфигурации доступны следующие настройки:
ipv4 accept-local on|off– разрешить/запретить приём пакетов с адресом отправителя текущей системы;ipv4 accept-redirects on|off– разрешить/запретить приём (обработку) ICMP-redirect сообщений;ipv4 arp-filter on|off– разрешить/запретить ответ на ARP-запросы от других интерфейсов;ipv4 proxy-arp on|off– включить/выключить механизм проксирования ARP-запросов;ipv4 rp-filter loose|none|strict– использовать механизм проверки адреса источника, гдеloose– параметр, при указании которого адрес источника каждого входящего пакета проверяется на соответствие FIB, и, если адрес источника недоступен через какой-либо интерфейс, пакет отбрасывается,none– параметр, при указании которого проверка адреса источника не осуществляется,strict– параметр, при указании которого адрес источника каждого входящего пакета проверяется на соответствие FIB, и, если интерфейс не является наилучшим обратным путём, пакет отбрасывается (см. RFC 3704);ipv4 send-redirects on|off– разрешить/запретить отправку ICMP-redirect сообщений IPv4;ipv6 accept-redirects on|off– разрешить/запретить приём (обработку) redirect сообщений IPv6 ;ipv6 hop-limit <hop-limit-value>– задать hop-limit для IPv6, где<hop-limit-value>– число от 0 до 255, по умолчанию – 64;ipv6 ra– перейти на уровень конфигурации IPv6 RA (объявления маршрутизатора) клиента;ipv6 mtu <mtu-value>– задать MTU для IPv6, где<mtu-value>– число от 0 до 65535, по умолчанию – 1280.
Все вышеуказанные настройки могут быть переопределены на каждом интерфейсе и/или заданы на интерфейсе default. При этом больший приоритет имеют явно заданные в конфигурации настройки интерфейса относительно настроек интерфейса default.
Пример применения команды для настройки интерфейса default:
# set interface default ipv4 rp-filter none
6.5. Интерфейсы типа bond¶
Настройка интерфейсов типа bond осуществляется на следующем уровне конфигурации:
[edit interface bond <bond-name>]
где <bond-name> – строка длиной от 1 до 15 символов.
На данном уровне конфигурации доступны следующие обязательные настройки:
slave <interface-name>– задать подчинённый интерфейс, где<interface-name>– имя существующего интерфейса, возможно определение нескольких настроек данного уровня конфигурации;mode <mode-name>– задать режим работы, где<mode-name>принимает одно из значенийactive-backup,balance-alb,balance-rr,balance-tlb,balance-xor,broadcast,ieee-802.3ad.
На данном уровне конфигурации доступны следующие необязательные настройки:
monitor <monitor-name>– задать режим мониторинга состояния подчинённых интерфейсов, где<monitor-name>принимает одно из значенийarp,mii;primary <interface-name>– задать основной подчинённый интерфейс, где<interface-name>– имя существующего интерфейса;primary-reselect <primary-reselect-name>– задать режим выбора основного подчинённого интерфейса, где<primary-reselect-name>принимает одно из значенийalways,better,failure;xmit-hash-policy <xmit-hash-policy-name>– задать функцию распределения на подчинённые интерфейсы, где<xmit-hash-policy-name>принимает одно из значенийencap2+3,encap3+4,layer2,layer2+3,layer3+4,vlan+srcmac;all-slaves-active– использовать режим приёма с неактивных портов.
Пример применения команд для настройки интерфейса типа bond:
# edit interface bond bond0
[edit interface bond bond0]
# set slave en0
# set slave en1
# set mode balance-rr
# set enable
# commit
# top
6.6. Интерфейсы типа bridge¶
Настройка интерфейсов типа bridge осуществляется на следующем уровне конфигурации:
[edit interface bridge <bridge-name>]
где <bridge-name> – строка длиной от 1 до 15 символов.
На данном уровне конфигурации доступны следующие обязательные настройки:
port <interface-name>– задать порт интерфейса, объединяемого в мост, где<interface-name>– имя существующего интерфейса, возможно определение нескольких настроек данного уровня конфигурации, для каждой из которых указывается:cost <cost-value>– “стоимость” порта, где<cost-value>– число от 1 до 65535;prio <priority-value>– приоритет порта, где<priority-value>– число от 0 до 63.
На данном уровне конфигурации доступны следующие необязательные настройки:
stp– использовать STP;ageing-time <ageing-time-value>– задать время жизни MAC-адресов в таблицах, где<ageing-time-value>– число секунд от 0.00 до 600.00, по умолчанию – 300;forward-delay <forward-delay-value>– задать задержку перед переходом в новое состояние после изменения сетевой топологии, где<forward-delay-value>– число секунд от 0.00 до 60.00, по умолчанию – 15;group-fwd lldp|lacp|stp– использовать пересылку LLDP/LACP/STP-кадров;hello-time <hello-time-value>– задать интервал между рассылками сообщений Hello протокола STP, где<hello-time-value>– число секунд от 0.00 до 60.00, по умолчанию – 2;max-age <max-age-value>– задать максимальное время жизни сообщений протокола STP, где<max-age-value>– число секунд от 0.00 до 120.00, по умолчанию – 20;no-conntrack– отключить отслеживание соединений TCP/IP.
Пример применения команд для настройки интерфейса типа bridge:
# edit interface bridge br0
[edit interface bridge br0]
# set port en0
# set port en1
# set enable
# commit
# top
6.7. Интерфейсы типа dummy¶
Настройка интерфейсов типа dummy осуществляется на следующем уровне конфигурации:
[edit interface dummy <dummy-name>]
где <dummy-name> – строка длиной от 1 до 15 символов.
Интерфейсы типа dummy (интерфейсы-заглушки) не имеют специфичных обязательных настроек. В ПАК “Фортикс” возможно создание нескольких интерфейсов данного типа.
6.8. Интерфейсы типа fortun¶
Использование интерфейсов типа fortun (туннелей) в режиме шифрования описано в разделе 31 Средства криптографической защиты информации (СКЗИ). В настоящем подразделе описаны настройки для использования интерфейса данного типа без криптографической защиты.
Настройка интерфейсов типа fortun осуществляется на следующем уровне конфигурации:
[edit interface fortun <fortun-name>]
где <fortun-name> – строка длиной от 1 до 15 символов.
На данном уровне конфигурации доступны следующие обязательные настройки:
ipv4|ipv6 local <address>– задать локальный IP-адрес туннеля, гдеipv4|ipv6– уровень конфигурации IPv4/IPv6,<address>– IPv4-адрес в форматеA.B.C.Dили IPv6-адрес в форматеA:B:...:Hв зависимости от уровня конфигурации;ipv4|ipv6 remote <address>– задать удалённый IP-адрес туннеля, гдеipv4|ipv6– уровень конфигурации IPv4/IPv6,<address>– IPv4-адрес в форматеA.B.C.Dили IPv6-адрес в форматеA:B:...:Hв зависимости от уровня конфигурации;mode tun|tap– задать режим работы;id <id-value>– задать идентификатор туннеля, где<id-value>– число от 0 до 65535.
На данном уровне конфигурации доступны следующие необязательные настройки:
ttl <ttl-value>– задать TTL, где<ttl-value>– число от 0 до 255;tos <hex-value>– задать TOS, где<hex-value>– тип TOS;keepalive– перейти на уровень конфигурации режима пинг-проб.
Пример применения команд для настройки интерфейса типа fortun для использования без криптографической защиты:
# edit interface fortun ft0
[edit interface fortun ft0]
# set mode tun
# set id 1
# set ipv4 local 192.168.0.1
# set ipv4 remote 192.168.0.2
# set ipv4 address 10.0.0.1/24
# set enable
# commit
# top
6.9. Интерфейсы типа gre¶
Настройка интерфейсов типа gre осуществляется на следующем уровне конфигурации:
[edit interface gre <gre-name>]
где <gre-name> – строка длиной от 1 до 15 символов.
Примечание
Имя интерфейса gre0 зарезервировано системой и не может быть использовано.
На данном уровне конфигурации доступны следующие обязательные настройки:
ipv4|ipv6 local <address>– задать локальный IP-адрес туннеля, гдеipv4|ipv6– уровень конфигурации IPv4/IPv6,<address>– IPv4-адрес в форматеA.B.C.Dили IPv6-адрес в форматеA:B:...:Hв зависимости от уровня конфигурации;ipv4|ipv6 remote <address>– задать удалённый IP-адрес туннеля, гдеipv4|ipv6– уровень конфигурации IPv4/IPv6,<address>– IPv4-адрес в форматеA.B.C.Dили IPv6-адрес в форматеA:B:...:Hв зависимости от уровня конфигурации;mode tun|tap– задать режим работы.
На данном уровне конфигурации доступны следующие необязательные настройки:
key <key-value>– задать ключ, где<key-value>– число от 0 до 4294967295;seq– использовать номера пакетов;csum– использовать контрольные суммы;ttl <ttl-value>– задать TTL, где<ttl-value>– число от 0 до 255;tos <hex-value>– задать TOS, где<hex-value>– тип TOS;keepalive– использовать режим пинг-проб.
Пример применения команд для настройки интерфейса типа gre:
# edit interface gre gre1
[edit interface gre gre1]
# set mode tun
# set ipv4 local 192.168.0.1
# set ipv4 remote 192.168.0.2
# set ipv4 address 10.0.0.1/24
# set enable
# commit
# top
6.10. Интерфейсы типа ifb¶
Настройка интерфейсов типа ifb осуществляется на следующем уровне конфигурации:
[edit interface ifb <ifb-name>]
где <ifb-name> – строка длиной от 1 до 15 символов.
Интерфейсы типа ifb используются для применения дисциплин QoS (качества обслуживания) на входе. Интерфейсы данного типа не имеют специфичных обязательных настроек. Использование интерфейсов типа ifb подробно описано в разделе 8 Качество обслуживания (QoS).
6.11. Интерфейс типа loopback¶
Настройка интерфейсов типа loopback осуществляется на следующем уровне конфигурации:
[edit interface loopback lo]
В ПАК “Фортикс” допустимо создание только одного интерфейса типа loopback (с именем lo). Интерфейс данного типа имеет предустановленный адрес, даже если он не задан в конфигурации устройства, при этом возможно добавление других адресов.
При назначении интерфейсу данного типа IP-адреса с маской, отличной от /32, интерфейс будет отвечать на все адреса из указанной подсети. Например, если для интерфейса типа loopback задать IP-адрес 10.0.0.1/24, он будет отвечать на команду ping со всех адресов из диапазона с 10.0.0.1 по 10.0.0.254.
Примечание
Рекомендуется использовать интерфейс типа dummy вместо интерфейса типа loopback.
6.12. Интерфейсы типа vlan¶
Настройка интерфейсов типа vlan осуществляется на следующем уровне конфигурации:
[edit interface vlan <vlan-name>]
где <vlan-name> – строка длиной от 1 до 15 символов.
На данном уровне конфигурации доступны следующие обязательные настройки:
vlan-id <vlan-id-value>– задать идентификатор VLAN, где<vlan-id-value>– число от 1 до 4096;master <master-name>– задать родительский интерфейс, на основе которого создаётся VLAN, где<master-name>– имя существующего интерфейса;proto 802.1Q|802.1ad– задать протокол поддержки VLAN.
Пример применения команд для настройки интерфейса типа vlan:
# edit interface vlan vlan0
[edit interface vlan vlan0]
# set vlan-id 1
# set master en0
# set proto 802.1Q
# set enable
# commit
# top
6.13. Интерфейсы типа vxlan¶
Настройка интерфейсов типа vxlan осуществляется на следующем уровне конфигурации:
[edit interface vxlan <vxlan-name>]
где <vxlan-name> – строка длиной от 1 до 15 символов.
На данном уровне конфигурации доступны следующие обязательные настройки:
vxlan-id <vxlan-id-value>– задать идентификатор VxLAN, где<vxlan-id-value>– число от 0 до 16777215;interface <interface-name>– задать связанный интерфейс, где<interface-name>– имя существующего интерфейса;ipv4|ipv6 remote <address>– задать удалённый адрес туннеля или мультикаст-группу, гдеipv4|ipv6– уровень конфигурации IPv4/IPv6,<address>– IPv4-адрес в форматеA.B.C.Dили IPv6-адрес в форматеA:B:...:Hв зависимости от уровня конфигурации;encap– перейти на уровень конфигурации параметров инкапсуляции;ipv4|ipv6 local <address>– задать локальный адрес туннеля, гдеipv4|ipv6– уровень конфигурации IPv4/IPv6,<address>– IPv4-адрес в форматеA.B.C.Dили IPv6-адрес в форматеA:B:...:Hв зависимости от уровня конфигурации.
На данном уровне конфигурации доступны следующие необязательные настройки:
dont-fragment– использовать DF-бит;ageing-time <ageing-time-value>– задать время жизни записей FDB, где<ageing-time-value>– число секунд от 0 до 600;no-learning– не добавлять в FDB неизвестные адреса;max-address <max-address-number>– задать максимальное число FDB, где<max-address-number>– число от 0 до 4294967295;ttl <ttl-value>– задать TTL, где<ttl-value>– число от 0 до 255;tos <hex-value>– задать TOS, где<hex-value>– тип TOS.
Пример применения команд для настройки интерфейса типа vxlan:
# edit interface vxlan vx1000
[edit interface vxlan vx1000]
# set ipv4 remote 225.0.0.1
# set interface en0
# set vxlan-id 1000
# set encap dport 4789
# set ipv4 local 192.168.1.1
# set enable
# commit
# top
6.14. Интерфейсы типа wg¶
Интерфейсы типа wg реализуют технологию WireGuard для создания зашифрованных каналов связи. При определении интерфейса данного типа включается настройка локального конца туннеля и одного или более удалённых (peers).
Настройка интерфейсов типа wg осуществляется на следующем уровне конфигурации:
[edit interface wg <wg-name>]
где <wg-name> – строка длиной от 1 до 15 символов.
На данном уровне конфигурации доступны следующие обязательные настройки:
key <private-key>– задать закрытый ключ соединения, где<private-key>– значение закрытого ключа/полное имя файла с закрытым ключом или имя файла относительно домашней директории пользователя;port <port-number>– задать порт соединения, где<port-number>– число от 1 до 65535.
Настройка удалённого конца туннеля осуществляется на следующем уровне конфигурации:
[edit interface wg <wg-name> peer <peer-name>]
где
<wg-name>– строка длиной от 1 до 15 символов;<peer-name>– имя удалённого конца туннеля.
На данном уровне конфигурации доступны следующие настройки:
pubkey <public-key>– задать открытый ключ соединения, где<public-key>– значение открытого ключа/полное имя файла с открытым ключом удалённого конца туннеля или имя файла относительно домашней директории пользователя;allowed-ip <network>– задать подсеть, которой предназначается трафик, где<network>– IPv4-адрес в форматеA.B.C.D[/mask]или IPv6-адрес в форматеA:B:...:H[/mask];endpoint addr <address>– задать IP-адрес, с которого ожидается подключение, где<address>– IPv4-адрес в форматеA.B.C.D[/mask]или IPv6-адрес в форматеA:B:...:H[/mask];endpoint port <port-number>– задать порт, с которого ожидается подключение, где<port-number>– число от 1 до 65535;psk <public-key>– задать дополнительный ключ шифрования для усиления защиты соединения, где<public-key>– значение ключа/полное имя файла с ключом или имя файла относительно домашней директории пользователя;keepalive interval <interval-value>– задать интервал отправки пакетов для проверки активности канала, где<interval-value>– число секунд от 0 до 65535.
Пример конфигурации интерфейса типа wg:
wg wg1 {
enable
ipv4 addr 192.168.0.1/24
peer user {
allowed-ip 192.168.0.100
pubkey de1/bde5Yrfv1rtQ3z5QjbaKqetcT+qa5VU+1zLs2qr=
}
key ../priv.key
port 33225
}