Product SiteDocumentation Site

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

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

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

      Примечание

      Для IPv6-fabric необходимо включить глобальный IPv6 forwarding на всех узлах кластера.
    • Hello Interval (hello_interval) — частота отправки hello-пакетов (в секундах). Низкие значения ускоряют обнаружение отказов, но увеличивают трафик. Параметр действует глобально на весь fabric. По умолчанию: 3 сек;
    • CSNP Interval (csnp_interval) — частота синхронизации базы маршрутов (в секундах). Параметр параметр является глобальным для fabric. По умолчанию: 10 сек.
    Создание OpenFabric
  3. Добавить узлы (Nodes) в Fabric:
    • нажать кнопку + в строке сети или выбрать сеть и нажать кнопку Add Node на верхней панели:
      Кнопка Add Node
    • в открывшемся окне выбрать узел, указать IP-адрес узла в поле IPv4, выбрать интерфейсы узла, которые должны входить в состав fabric-сети, и нажать кнопку Создать или Create another (если нужно настроить несколько узлов):
      Добавление узла в Fabric
      Параметры узла:
      • Узел — узел, который нужно добавить в 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. Создание fabric:
    # 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 Fabric

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

      Примечание

      Необходимо добавить все узлы, которые должны обмениваться трафиком через эту fabric.
      Узлы в 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 Fabric в консоли:
  1. Создание fabric:
    # 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