Product SiteDocumentation Site

32.5.2. Примеры настройки Fabric

32.5.2.1. Настройка OpenFabric

Пример создания OpenFabric в веб-интерфейсе:
  1. Перейти в раздел Центр обработки данныхSDNФабрики, нажать кнопку Добавить фабрику и в выпадающем меню выбрать пункт OpenFabric:
    Создание фабрики
  2. Указать параметры фабрики:
    • Имя — имя фабрики (до 8 символов);
    • Префикс IPv4 (ip_prefix) — IPv4-сеть в формате CIDR (например, 192.0.2.0/24) для проверки корректности router-ID;
    • Префикс IPv6 (ip6_prefix) — IPv6-сеть в формате CIDR (например, 2001:db8::/64) для проверки router-ID;

      Примечание

      Для IPv6-фабрик необходимо включить глобальный IPv6 forwarding на всех узлах кластера.
    • Интервал hello-пакетов (hello_interval) — частота отправки hello-пакетов (в секундах). Низкие значения ускоряют обнаружение отказов, но увеличивают трафик. Параметр действует глобально на всю фабрику. По умолчанию: 3 сек;
    • Интервал CSNP (csnp_interval) — частота синхронизации базы маршрутов (в секундах). Параметр является глобальным для фабрики. По умолчанию: 10 сек;
    • Route Filter (route_filter) — ссылка на список префиксов. При наличии фильтра в ядро устанавливаются только маршруты, совпадающие с ним.
    Создание OpenFabric
  3. Добавить узлы в фабрику:
    • нажать кнопку + в строке фабрики или выбрать фабрику и нажать кнопку Добавить узел на верхней панели:
      Кнопка Добавить узел
    • в открывшемся окне выбрать узел, указать IP-адрес узла в поле IPv4, выбрать интерфейсы узла, которые должны входить в состав fabric-сети, и нажать кнопку Создать или Create another (если нужно настроить несколько узлов):
      Добавление узла в Fabric
      Параметры узла:
      • Узел — узел, который нужно добавить в фабрику (список включает только узлы кластера);
      • IPv4 (ip_prefix) — уникальный IPv4-адрес, используемый для генерации OpenFabric NET. Каждый узел в одной и той же fabric-сети должен иметь уникальный Router-ID, а один и тот же узел обязан использовать один и тот же NET-адрес во всех fabric-сетях (если это условие не выполнено, PVE автоматически выберет подходящий NET-адрес и обеспечит корректность конфигурации);
      • IPv6 (ip6_prefix) — уникальный IPv6-адрес для генерации NET. Если указаны оба адреса (IPv4 и IPv6), приоритет имеет IPv4;

        Примечание

        При использовании IPv6 последние 3 сегмента адреса используются для генерации NET. Следует убедиться, что они различаются между узлами.
      • Interfaces (interfaces) — физические интерфейсы, используемые для установления соединений с другими узлами OpenFabric. Рекомендуется использовать интерфейсы без назначенных IP-адресов. Dummy-интерфейс создаётся автоматически.

      Примечание

      Если для интерфейса не настроен IP-адрес, он будет работать в режиме без номера (интерфейс использует IP-адрес от узла). При желании можно определить выделенные IP-адреса для интерфейсов, которые будут использоваться вместо IP-адреса маршрутизатора для создания смежности между узлами.

      Примечание

      Необходимо повторить это для каждого узла, который должен быть частью сети.
      Узлы в Fabric
  4. Активировать конфигурацию. Для этого перейти в раздел Центр обработки данныхSDN и нажать кнопку Применить:
    Активировать конфигурацию OpenFabric
В результате на каждом узле создаётся dummy-интерфейс (например, dummy_of1) с адресом router-ID:
$ ip -br a
enp0s10          UP             fd47:d11e:43c1:0:a00:27ff:fe80:2977/64 fe80::a00:27ff:fe80:2977/64
dummy0           DOWN
dummy_of1        UNKNOWN        10.255.0.2/32 fe80::54b9:eeff:fe6b:b2b8/64
В файле /etc/network/interfaces.d/sdn появляются записи вида:
auto dummy_of1
iface dummy_of1 inet static
    address 10.255.0.3/32
    link-type dummy
    ip-forward 1

auto enp0s10
iface enp0s10
    ip-forward 1

Примечание

Чтобы проверить, сходится ли сеть OpenFabric, можно использовать оболочку vtysh. Соседей и маршруты OpenFabric можно увидеть с помощью следующих команд:
  • проверка соседей:
    # vtysh -c "show openfabric neighbor"
    
  • проверка маршрутов:
    # vtysh -c "show openfabric route"
    
Пример создания OpenFabric в консоли:
  1. Создание фабрики:
    # pvesh create /cluster/sdn/fabrics/fabric  \
      --id of2 --protocol openfabric --ip_prefix 10.250.0.0/24
    
    # pvesh get /cluster/sdn/fabrics/fabric/of2 --output-format yaml
    ---
    digest: 0d9872991acab57cf6afeca9dbf93d0a333fe2d2ef650b21aaedbd30d5b73ecd
    id: of2
    ip_prefix: 10.250.0.0/24
    protocol: openfabric
    
  2. Добавление узлов:
    # pvesh create /cluster/sdn/fabrics/node/of2  \
      --node_id pve01 --protocol openfabric --interfaces name=enp0s10 --ip 10.250.0.1
    # pvesh create /cluster/sdn/fabrics/node/of2  \
      --node_id pve02 --protocol openfabric --interfaces name=enp0s10 --ip 10.250.0.2
    # pvesh create /cluster/sdn/fabrics/node/of2  \
      --node_id pve03 --protocol openfabric --interfaces name=enp0s10 --ip 10.250.0.3
    
    # pvesh get /cluster/sdn/fabrics/node/of2 --output-format yaml
    ---
    - digest: a75048ab2d62fe6e7f3c0e2ff26c2b78565b827b87376e63130c5fe5ed4d7312
      fabric_id: of2
      interfaces:
      - name=enp0s10
      ip: 10.250.0.1
      node_id: pve01
      protocol: openfabric
    - digest: a75048ab2d62fe6e7f3c0e2ff26c2b78565b827b87376e63130c5fe5ed4d7312
      fabric_id: of2
      interfaces:
      - name=enp0s10
      ip: 10.250.0.2
      node_id: pve02
      protocol: openfabric
    ---
    - digest: ba89eae03508e4728939e243bcfdb4452515dfb39eda21692996efaf10b23e54
      fabric_id: of2
      interfaces:
      - name=enp0s10
      ip: 10.250.0.3
      node_id: pve03
      protocol: openfabric
    
  3. Применение конфигурации:
    # pvesh set /cluster/sdn
    

32.5.2.2. Настройка OSPF-фабрики

OSPF (Open Shortest Path First) — широко используемый протокол динамической маршрутизации, вычисляющий кратчайший путь на основе алгоритма Дейкстры.
Пример создания OSPF-фабрики в веб-интерфейсе:
  1. Перейти в раздел Центр обработки данныхSDNФабрики, нажать кнопку Добавить фабрику и в выпадающем меню выбрать пункт OSPF:
    Создание фабрики
  2. Указать параметры OSPF:
    • Имя — имя фабрики (до 8 символов);
    • Префикс IPv4 (ip_prefix) — IPv4-сеть в формате CIDR (например, 192.0.2.0/24) для проверки корректности router-ID;
    • Область (area) — идентификатор OSPF-области. Может быть 32-битным числом или IP-адресом. Область 0 (0.0.0.0) — магистральная область (backbone area);
    • Route Filter (route_filter) — ссылка на список префиксов. При наличии фильтра в ядро устанавливаются только маршруты, совпадающие с ним.
    Создание OSPF Fabric
  3. Добавить узлы в фабрику:
    • нажать кнопку + в строке фабрики или выбрать фабрику и нажать кнопку Добавить узел на верхней панели:
      Кнопка Добавить узел
    • в открывшемся окне выбрать узел, указать IP-адрес в поле IPv4, выбрать интерфейсы, которые должны входить в состав fabric-сети, и нажать кнопку Создать или Create another (если нужно настроить несколько узлов):
      Добавление узла в фабрику

      Примечание

      Необходимо добавить все узлы, которые должны обмениваться трафиком через эту фабрику.
      Узлы в Fabric
  4. Активировать конфигурацию. Для этого перейти в раздел Центр обработки данныхSDN и нажать кнопку Применить:
    Применить изменения
В результате на каждом узле создаётся dummy-интерфейс (например, dummy_ospf) с адресом router-ID:
$ ip -br a
enp0s9           UP             10.16.0.2/32 fe80::a00:27ff:fe9e:5ea4/64
dummy0           DOWN
dummy_ospf       UNKNOWN        10.16.0.2/32 fe80::cc9f:9bff:fe0c:16bd/64
В файле /etc/network/interfaces.d/sdn появляются записи вида:
auto dummy_ospf
iface dummy_ospf inet static
        address 10.16.0.2/32
        link-type dummy
        ip-forward 1

auto enp0s9
iface enp0s9 inet static
        address 10.16.0.2/32
        ip-forward 1

Примечание

Проверка работы OSPF Fabric:
  • проверка соседей:
    # vtysh -c "show ip ospf neighbor"
    
    Neighbor ID     Pri State           Up Time         Dead Time Address         Interface                        RXmtL RqstL DBsmL
    10.16.0.1         1 Loading/-       0.661s            31.334s 10.16.0.1       enp0s9:10.16.0.2                     0     1     0
    10.16.0.3         1 Exchange/-      0.663s            34.242s 10.16.0.3       enp0s9:10.16.0.2                     1     0     0
    
  • проверка маршрутов:
    # vtysh -c "show ip route ospf"
    
    O   10.16.0.2/32 [110/10] via 0.0.0.0, dummy_ospf onlink, rmapsrc 10.16.0.2, weight 1, 00:08:02
    
Пример создания OSPF-фабрики в консоли:
  1. Создание фабрики:
    # pvesh create /cluster/sdn/fabrics/fabric  \
      --id ospf --protocol ospf --ip_prefix 10.16.0.0/24 --area 0
    
    # pvesh get /cluster/sdn/fabrics/fabric/ospf --output-format yaml
    ---
    area: '0'
    digest: b42b0d474b59609522255008351b21dd2badf03e43f7289a80e2feba97815aa5
    id: ospf
    ip_prefix: 10.16.0.0/24
    protocol: ospf
    
  2. Добавление узлов:
    # pvesh create /cluster/sdn/fabrics/node/ospf  \
      --node_id pve01 --protocol ospf --interfaces name=enp0s9  --ip 10.16.0.1
    # pvesh create /cluster/sdn/fabrics/node/ospf  \
      --node_id pve02 --protocol ospf --interfaces name=enp0s9  --ip 10.16.0.2
    # pvesh create /cluster/sdn/fabrics/node/ospf  \
      --node_id pve03 --protocol ospf --interfaces name=enp0s9  --ip 10.16.0.3
    
    # pvesh get /cluster/sdn/fabrics/node/ospf --output-format yaml
    ---
    - digest: a75048ab2d62fe6e7f3c0e2ff26c2b78565b827b87376e63130c5fe5ed4d7312
      fabric_id: ospf
      interfaces:
      - name=enp0s9
      ip: 10.16.0.1
      node_id: pve01
      protocol: ospf
    - digest: a75048ab2d62fe6e7f3c0e2ff26c2b78565b827b87376e63130c5fe5ed4d7312
      fabric_id: ospf
      interfaces:
      - name=enp0s9
      ip: 10.16.0.2
      node_id: pve02
      protocol: ospf
    - digest: a75048ab2d62fe6e7f3c0e2ff26c2b78565b827b87376e63130c5fe5ed4d7312
      fabric_id: ospf
      interfaces:
      - name=enp0s9
      ip: 10.16.0.3
      node_id: pve03
      protocol: ospf
    
  3. Применение конфигурации:
    # pvesh set /cluster/sdn
    
Содержимое файла /etc/pve/sdn/fabrics.cfg:
ospf_fabric: ospf
        area 0
        ip_prefix 10.16.0.0/24

ospf_node: ospf_pve01
        interfaces name=enp0s9
        ip 10.16.0.1

ospf_node: ospf_pve02
        interfaces name=enp0s9
        ip 10.16.0.2

ospf_node: ospf_pve03
        interfaces name=enp0s9
        ip 10.16.0.3

32.5.2.3. Настройка фабрики WireGuard

WireGuard может использоваться для создания VPN-соединений между узлами PVE и/или внешними узлами. Сам по себе он не обеспечивает динамическую маршрутизацию, однако может применяться совместно с протоколами уровня 3 (например, OSPF или BGP) для построения зашифрованной транспортной сети.
Такая схема может использоваться, например, для передачи трафика EVPN или VXLAN поверх защищённого канала.

Примечание

Для использования WireGuard необходимо установить пакет wireguard-tools (из репозитория p11) на всех узлах:
# apt-get install wireguard-tools
В WireGuard-фабрике используются два типа узлов:
  • Internal (внутренние) — узлы PVE;
  • External (внешние) — сторонние системы или устройства.
Пример создания фабрики WireGuard в веб-интерфейсе:
  1. Перейти в раздел Центр обработки данныхSDNФабрики, нажать кнопку Добавить фабрику и в выпадающем меню выбрать пункт WireGuard:
    Создание фабрики
  2. Указать параметры фабрики:
    • Имя — имя фабрики (до 8 символов);
    • Persistent Keepalive (persistent_keepalive) — интервал отправки keepalive-пакетов (в секундах). Если параметр задан, WireGuard периодически отправляет пустые аутентифицированные пакеты каждому пиру. Это позволяет поддерживать соединения через NAT и stateful firewall.
    Создание WireGuard Fabric
  3. Добавить узлы в фабрику, нажав кнопку + в строке фабрики или выбрав фабрику и нажав кнопку Добавить узел на верхней панели.
  4. Указать параметры узла:
    • Роль (role) — выбрать значение Internal (cluster member);
    • Узел — имя узла PVE в кластере;
    • Адрес доступа (endpoint) — IP-адрес или имя хоста, по которому другие узлы будут подключаться к данному узлу (например, 192.168.0.186 или 2001:db8::1). Этот адрес используется вместе с портом прослушивания (Listen Port), настроенным в интерфейсе WireGuard, для формирования конечной точки подключения вида IP:PORT;
    • Разрешенные IP-адреса (allowed_ips) — список CIDR, определяющий маршрутизируемые сети через данный узел. Используется как AllowedIPs в конфигурации WireGuard и одновременно как фильтр и маршрут назначения;
    Добавление узла в фабрику WireGuard
  5. Нажать кнопку Создать или Create another.
  6. Добавить остальные узлы.

    Примечание

    Необходимо добавить все узлы, которые должны обмениваться трафиком через эту фабрику.
  7. Отредактировать узлы и указать список peers (пиров), которые будут использоваться для данного интерфейса. Пиры могут быть выбраны из всех узлов фабрики — они генерируются автоматически на основе конфигурации. При необходимости можно включить опцию Skip Route Generation, которая отключает автоматическое добавление маршрутов для AllowedIPs.
    Добавление пиров
  8. Активировать конфигурацию. Для этого перейти в раздел Центр обработки данныхSDN и нажать кнопку Применить:
    Применить изменения
В результате на каждом узле создаётся WireGuard-интерфейс (например, wg0) с назначенными IP-адресами туннеля:
$ ip -br a
enp0s9           UP             10.16.0.2/32 fe80::a00:27ff:fe9e:5ea4/64
wg0              UNKNOWN        198.51.100.1/24
В таблице маршрутизации появляются маршруты для удалённых пиров:
$ ip route
198.51.100.0/24 dev wg0 proto kernel scope link src 198.51.100.1
198.51.100.2 dev wg0 scope link
198.51.100.3 dev wg0 scope link
Конфигурация WireGuard-интерфейса доступна через wg show:
# wg show wg0
interface: wg0
  public key: 54GHc/L8zfRM0XJnR7syhVv1Abl4A4l3JoWa9joIlWM=
  private key: (hidden)
  listening port: 51820

peer: +Vv7sh/mBXcGIVj30P/09guL3G4Ky566AwywL0kXDzU=
  endpoint: 192.168.0.70:51820
  allowed ips: 198.51.100.3/32
  latest handshake: 16 seconds ago
  transfer: 180 B received, 420 B sent
  persistent keepalive: every 25 seconds

peer: VxcuW+7KMQN4knBfC8TA9fC3coPoUNvivU22Tk35bgo=
  endpoint: 192.168.0.90:51820
  allowed ips: 198.51.100.2/32
  latest handshake: 20 seconds ago
  transfer: 180 B received, 272 B sent
  persistent keepalive: every 25 seconds
При определении интерфейса PVE автоматически генерирует для него приватный ключ и сохраняет его в /etc/pve/priv/wg-keys.cfg при сохранении интерфейса. Соответствующий публичный ключ сохраняется вместе с конфигурацией интерфейса в фабрике WireGuard и используется для отображения в веб-интерфейс при редактировании узла. При удалении интерфейса соответствующий приватный ключ также удаляется из wg-keys.cfg в рамках того же API-вызова.
Фабрика автоматически формирует маршруты через интерфейс WireGuard на основе списка Allowed IPs каждого пира. Например, если интерфейс wg0 содержит два пира с разрешёнными сетями 198.51.100.0/24 и 203.0.113.0/24, в таблице маршрутизации создаются маршруты для обеих подсетей.
Если пир связан с интерфейсом узла PVE, IP-адрес этого интерфейса дополнительно добавляется как маршрут хоста в список разрешённых IP-адресов. Например, для узла с адресом 192.0.2.10/24 дополнительно создаётся маршрут 192.0.2.10/32.
Пример создания WireGuard-фабрики в консоли:
  1. Создание фабрики:
    # pvesh create /cluster/sdn/fabrics/fabric  \
      --id wg \
      --protocol wireguard \
      --persistent_keepalive 25
    
    # pvesh get /cluster/sdn/fabrics/fabric/wg --output-format yaml
    ---
    digest: 2c28ab53ac729ad29189e4f2a52a548d942e25415488ab4c30d1d676dc707005
    id: wg
    persistent_keepalive: 25
    protocol: wireguard
    id: wg
    
  2. Добавление узлов:
    # pvesh create /cluster/sdn/fabrics/node/wg  \
      --node_id pve01 --protocol wireguard --role internal \
      --interfaces name=wg2,ip=150.50.0.1/32,listen_port=51821 \
      --endpoint 192.168.0.186
    
    # pvesh create /cluster/sdn/fabrics/node/wg  \
      --node_id pve02 --protocol wireguard --role internal \
      --interfaces name=wg2,ip=150.50.0.2/32,listen_port=51821 \
      --endpoint 192.168.0.90
    
    # pvesh create /cluster/sdn/fabrics/node/wg  \
      --node_id pve03 --protocol wireguard --role internal \
      --interfaces name=wg2,ip=150.50.0.3/32,listen_port=51821 \
      --endpoint 192.168.0.70
    
  3. Настройка peers:
    # pvesh set /cluster/sdn/fabrics/node/wg/pve01 --protocol wireguard \
      --peers iface=wg2,node=pve02,type=internal,node_iface=wg2 \
      --peers iface=wg2,node=pve03,type=internal,node_iface=wg2 \
      --interfaces name=wg2,ip=150.50.0.1/32,listen_port=51821
    
    # pvesh set /cluster/sdn/fabrics/node/wg/pve02 --protocol wireguard \
      --peers iface=wg2,node=pve03,type=internal,node_iface=wg2 \
      --peers iface=wg2,node=pve01,type=internal,node_iface=wg2 \
      --interfaces name=wg2,ip=150.50.0.2/32,listen_port=51821
    
    # pvesh set /cluster/sdn/fabrics/node/wg/pve03 --protocol wireguard \
      --peers iface=wg2,node=pve01,type=internal,node_iface=wg2 \
      --peers iface=wg2,node=pve02,type=internal,node_iface=wg2 \
      --interfaces name=wg2,ip=150.50.0.3/32,listen_port=51821
    
  4. Проверка:
    # pvesh get /cluster/sdn/fabrics/node/wg --output-format yaml
    ---
    - digest: a38ab69cd7a07ed73f23a070b446eaa1dc663516734169280432234b5d212b6f
      endpoint: 192.168.0.186
      fabric_id: wg
      interfaces:
      - name=wg2,listen_port=51821,public_key=lz/I7U9p8//g+JH4jk5E2TQZO9lJfOUOX5MgMCGBaUc=,ip=150.50.0.1/32
      node_id: pve01
      peers:
      - type=internal,node=pve02,node_iface=wg2,iface=wg2
      - type=internal,node=pve03,node_iface=wg2,iface=wg2
      protocol: wireguard
      role: internal
    - digest: a38ab69cd7a07ed73f23a070b446eaa1dc663516734169280432234b5d212b6f
      endpoint: 192.168.0.90
      fabric_id: wg
      interfaces:
      - name=wg2,listen_port=51821,public_key=/kMeSUnr76FE+iPu39NMZcvYqMM8ovjClNJ+BJ76cRA=,ip=150.50.0.2/32
      node_id: pve02
      peers:
      - type=internal,node=pve03,node_iface=wg2,iface=wg2
      - type=internal,node=pve01,node_iface=wg2,iface=wg2
      protocol: wireguard
      role: internal
    - digest: a38ab69cd7a07ed73f23a070b446eaa1dc663516734169280432234b5d212b6f
      endpoint: 192.168.0.70
      fabric_id: wg
      interfaces:
      - name=wg2,listen_port=51821,public_key=zH6M9GsD1i41cjW7luP3z1i8dXl9L1q9pT4ZYpPQmCE=,ip=150.50.0.3/32
      node_id: pve03
      peers:
      - type=internal,node=pve01,node_iface=wg2,iface=wg2
      - type=internal,node=pve02,node_iface=wg2,iface=wg2
      protocol: wireguard
      role: internal
    
  5. Применение конфигурации:
    # pvesh set /cluster/sdn
    
Содержимое файла /etc/pve/sdn/fabrics.cfg:
wireguard_fabric: wg

wireguard_node: wg_pve01
	endpoint 192.168.0.186
	interfaces name=wg2,listen_port=51821,public_key=lz/I7U9p8//g+JH4jk5E2TQZO9lJfOUOX5MgMCGBaUc=,ip=150.50.0.1/32
	peers type=internal,node=pve02,node_iface=wg2,iface=wg2
	peers type=internal,node=pve03,node_iface=wg2,iface=wg2
	role internal

wireguard_node: wg_pve02
	endpoint 192.168.0.90
	interfaces name=wg2,listen_port=51821,public_key=/kMeSUnr76FE+iPu39NMZcvYqMM8ovjClNJ+BJ76cRA=,ip=150.50.0.2/32
	peers type=internal,node=pve03,node_iface=wg2,iface=wg2
	peers type=internal,node=pve01,node_iface=wg2,iface=wg2
	role internal

wireguard_node: wg_pve03
	endpoint 192.168.0.70
	interfaces name=wg2,listen_port=51821,public_key=zH6M9GsD1i41cjW7luP3z1i8dXl9L1q9pT4ZYpPQmCE=,ip=150.50.0.3/32
	peers type=internal,node=pve01,node_iface=wg2,iface=wg2
	peers type=internal,node=pve02,node_iface=wg2,iface=wg2
	role internal

32.5.2.4. Настройка BGP

BGP (Border Gateway Protocol) может использоваться в качестве неадресной (unnumbered) eBGP-фабрики. Каждый узел имеет собственный номер автономной системы (ASN) и устанавливает пиринговые отношения с соседями через физические интерфейсы без необходимости назначения IP-адресов на линках фабрики.
Пример создания BGP в веб-интерфейсе:
  1. Перейти в раздел Центр обработки данныхSDNФабрики, нажать кнопку Добавить фабрику и в выпадающем меню выбрать пункт BGP:
    Создание фабрики
  2. Указать параметры фабрики:
    • Имя — имя фабрики (до 8 символов);
    • Префикс IPv4 (ip_prefix) — IPv4-сеть в формате CIDR (например, 192.0.2.0/24), используемая для проверки того, что все IPv4-адреса узлов (BGP router-ID) находятся в пределах этого префикса;
    • Префикс IPv6 (ip6_prefix) — IPv6-сеть в формате CIDR (например, 2001:db8::/64), используемая для проверки того, что все IPv6-адреса узлов в фабрике находятся в пределах этого префикса;
    • BFD — включает Bidirectional Forwarding Detection (BFD) для всех пиринговых сессий в данной фабрике. BFD обеспечивает быстрое обнаружение сбоев на линках между узлами;
    • Route Filter (route_filter) — ссылка на список префиксов. Список префиксов, применяемый к входящему направлению (inbound) пир-группы фабрики. Если задан, этот список префиксов заменяет неявный фильтр «должен находиться в пределах префикса фабрики». Используется для расширения принимаемого диапазона (например, для приема дополнительных нефабричных префиксов, реэкспортируемых через фабрику), либо применения более сложных условий сопоставления;
    • Incoming Route Map (Входящая карта маршрутов) — карта маршрутов, вызываемая из неявного входящего фильтра пир-группы фабрики через действие call в FRR. Только префиксы, прошедшие проверку (или переопределённую проверку через Route Filter), попадают в эту карту. Используется для преобразования или дополнительного ограничения принимаемых маршрутов (например, установки community или local-preference), но не может расширять набор принимаемых маршрутов;
    • Outgoing Route Map (Исходящая карта маршрутов) — карта маршрутов, применяемая к исходящему направлению (outbound) пир-группы фабрики. Используется для фильтрации или преобразования анонсируемых маршрутов;
    • Route Redistribution (Реэкспорт маршрутов) — маршруты каких протоколов BGP-маршрутизатор на каждом узле должен реэкспортировать в фабрику. Поддерживаются источники: connected, kernel, static и ospf. Для каждого источника можно назначить карту маршрутов для управления экспортируемыми маршрутами.
    Создание BGP

    Примечание

    Должен быть настроен хотя бы один из префиксов: IPv4 или IPv6.
  3. Добавить узлы в фабрику:
    • нажать кнопку + в строке фабрики или выбрать фабрику и нажать кнопку Добавить узел на верхней панели;
    • в открывшемся окне выбрать узел, указать IP-адрес узла в поле IPv4, выбрать интерфейсы узла, которые должны входить в состав fabric-сети, и нажать кнопку Создать или Create another (если нужно настроить несколько узлов):
      Добавление узла в Fabric
      Параметры узла:
      • Узел — узел, который добавляется в фабрику (список включает только узлы кластера);
      • IPv4 (ip_prefix) — уникальный IPv4-адрес, используемый в качестве BGP router-id. Обязателен, если для фабрики настроен префикс IPv4-префикс; каждый узел в одной фабрике должен иметь уникальный адрес;
      • IPv6 (ip6_prefix) — уникальный IPv6-адрес для данного узла. Если используется только IPv6, BGP router-id может быть вычислен на его основе с помощью хеш-функции FNV-1a;
      • ASN — номер автономной системы BGP для данного узла. Рекомендуется использовать приватные диапазоны ASN: 64512–65534 (16-bit) и 4200000000–4294967294 (32-bit);
      • Interfaces (interfaces) — физические интерфейсы, используемые для установления пиринговых соединений с другими узлами BGP. Эти интерфейсы работают в режиме BGP unnumbered (IP-адреса не требуются). При настройке IPv4/IPv6 адреса узла автоматически создаётся loopback-интерфейс с этим адресом.

      Примечание

      В отличие от OSPF и OpenFabric, неадресным интерфейсам BGP не требуются IP-адреса. Пиринг устанавливается через IPv6 link-local адреса.

      Примечание

      В неадресной eBGP-фабрике непосредственно пирингующиеся узлы должны иметь разные ASN.
  4. Активировать конфигурацию. Для этого перейти в раздел Центр обработки данныхSDN и нажать кнопку Применить:
    Активировать конфигурацию BGP
В результате на каждом узле создаётся dummy-интерфейс с адресом router-ID:
$ ip -br a | grep dummy_
dummy_bgp-mesh   UNKNOWN        10.10.0.1/32 fe80::44cd:10ff:fe70:6081/64

Примечание

Чтобы проверить, сходится ли сеть BGP, можно использовать оболочку vtysh. Соседей и маршруты BGP можно увидеть с помощью следующих команд:
  • проверка соседей:
    # vtysh -c "show openfabric neighbor"
    
  • проверка маршрутов:
    # vtysh -c "show openfabric route"
    
32.5.2.4.1. Использование BGP-фабрик с EVPN
При настройке EVPN-контроллера в качестве транспортной сети (underlay) можно использовать BGP-фабрику вместо ручного указания адресов пиров. По умолчанию сессии EVPN (VTEP) запускаются в режиме iBGP с использованием ASN контроллера EVPN.
ASN фабрики для каждого узла автоматически применяется через механизм local-as в группе соседей транспортной сети.
Это означает, что ASN контроллера EVPN и ASN фабрики должны различаться. Например, если узлы используют ASN 65001, 65002 и 65003 для underlay-сети, контроллер EVPN может использовать ASN 65000 для overlay.
В альтернативной конфигурации при установке режима BGP «external» на контроллере EVPN VTEP-сессии работают в режиме eBGP. В этом случае ASN фабрики используется как локальный ASN для пир-группы VTEP, и узлы устанавливают пиринг друг с другом под разными ASN без необходимости отдельного ASN для overlay. ASN контроллера EVPN при этом используется для автоматического формирования route-target, обеспечивая их согласованность во всей фабрике.

Примечание

Использование BGP-фабрики для транспортной сети EVPN требует наличия IPv4-адреса на каждом узле, так как он используется как VTEP-адрес.