Настройка сетей

Используйте заранее согласованную сетевую таблицу для настройки сетей облака.

Сетевая конфигурация

Название сети

Подсеть/Маска

VLAN

Шлюз

MTU

Назначение

Ctlplane

192.168.24.0/24

374 (untagged/access)

9000

Управление и PXE-загрузка. Эта сеть должна быть изолирована от внешнего мира и использована только на узлах облака и развёртывания.

External (Public API)

10.198.73.0/24

373

10.198.73.1

1500

Доступ пользователей OpenStack к API и веб-интерфейсу. Часто с интернетом.

InternalApi

10.198.72.0/24

372

9000

Внутреннее взаимодействие сервисов OpenStack. Заводится только на узлах облака.

Storage

10.198.71.0/24

371

9000

Трафик между вычислительными узлами облака и хранилищами (Ceph и другие).

IPMI (BMC)

10.99.4.0/24

2399

Учитывается, но не используется в облаке. Эта сеть должна быть доступна с узла развёртывания.

Tenant (опционально)

(Создается после развёртывания)

1500

Сети для виртуальных машин. Сетей этого типа может быть много, их VLAN’ы должны заводиться на коммутаторах. При деплое не используется.

Расположение сетей

Расположение сетей

В Moncloud используется принцип разделения сетей на роли. Набор заранее заданных сетей, который обязан присутствовать в системе:

  • Ctlplane - сеть администрирования физических узлов в развёртываемом облаке. Это единственная сеть, по которой разрешён SSH доступ к физическим узлам облака.

  • External - сеть для доступа к публичному API развёртываемого облака. Сеть должна быть доступна для всех пользователей облака.

  • InternalApi - сеть для доступа к приватному API развёртываемого облака. Используется сервисами облака для общения друг с другом. Не должна быть доступна даже с узла развёртывания.

  • Storage - сеть для доступа сервисов облака к используемым системам хранения.

                Пользователи
                     |
                     v
                 [External]
                     |
                     v
              +--------------+
              |  Controllers |
              +------+-------+
                     |
     +---------------+---------------+
     |               |               |
     v               v               v
[Ctlplane]      [InternalApi]     [Storage]
     |               |               |
     v               v               v
 Физические       Сервисы         Системы
    узлы            API           хранения

(SSH доступ)    (внутренний       (данные)
                  трафик)

Все сети и IP-адреса, назначаемые физическим узлам при развёртываниях, заводятся на узле развёртывания через Neutron.

Таким образом все сетевые настройки включают в себя несколько этапов:

  1. Заведение информации о сетях в dctui;

  2. Определение порядка интерфейсов для физических узлов:

    +--------------------------------------------------------------------------------------------------------+
    |  соответствие логических интерфейсов реальным интерфейсам                                              |
    |                                                                                                        |
    |       +-------------------+        +-------------------+        +-------------------+                  |
    |       | Логический NIC    |        | Узел A            |        | Узел B            |                  |
    |       |-------------------|        |-------------------|        |-------------------|                  |
    |       | nic1              | -----> | ens1f0            |        | eno1              |                  |
    |       | nic2              | -----> | ens1f1            |        | eno2              |                  |
    |       | nic3              | -----> | ens2f0            |        | ens3f0            |                  |
    |       +-------------------+        +-------------------+        +-------------------+                  |
    |                                                                                                        |
    +--------------------------------------------------------------------------------------------------------+
    
  3. Выбор/создание сетевых планов для ролей/узлов:

    +--------------------------------------------------------------------------------------------------------+
    |  +--------------------------------------------+                                                        |
    |  | Сетевой план                               |                                                        |
    |  |--------------------------------------------|                                                        |
    |  | nic1 -> Ctlplane                           |                                                        |
    |  | nic2 -> InternalApi VLAN 20                |                                                        |
    |  | nic3 -> Storage VLAN 30                    |                                                        |
    |  | bond0 -> External                          |                                                        |
    |  +--------------------------------------------+                                                        |
    |                                                                                                        |
    |  сетевые планы используются ролями узлов                                                               |
    |                                                                                                        |
    |      +------------------+   +---------------------+   +------------------+                             |
    |      | Узел Управления  |   | Вычислительный узел |   | Узел хранения    |                             |
    |      +------------------+   +---------------------+   +------------------+                             |
    |              |                        |                       |                                        |
    |              +------- использует -----+------ использует -----+                                        |
    |                                                                                                        |
    +--------------------------------------------------------------------------------------------------------+
    
  4. Применение сетевых настроек в разделе Deployment:

    +--------------------------------------------------------------------------------------------------------+
    |  соответствие логических интерфейсов реальным интерфейсам                                              |
    |                                                                                                        |
    |       +-------------------+        +-------------------+        +-------------------+                  |
    |       | Сеть              |        | Узел A            |        | Узел B            |                  |
    |       |-------------------|        |-------------------|        |-------------------|                  |
    |       | Ctlplane          | -----> | ens1f0            |        | eno1              |                  |
    |       | InternalApi       | -----> | ens1f1            |        | eno2              |                  |
    |       | Storage           | -----> | ens2f0            |        | ens3f0            |                  |
    |       | External          | -----> | bond0             |        | bond0             |                  |
    |       +-------------------+        +-------------------+        +-------------------+                  |
    |                                                                                                        |
    +--------------------------------------------------------------------------------------------------------+
    

Все эти пункты взаимосвязаны следующим образом:

  • Из настроенных сетей при помощи Neutron автоматически создаются порты для тех узлов, которые настроены на использование этой сети.

  • Сетевые планы используют созданные порты и настраивают интерфейсы на физических узлах с указанием IP-адреса созданного порта и других настроек сетей (VLAN, CIDR и прочее).

  • IP-адреса создаваемых портов можно указывать вручную при настройке ролей и узлов в поле Fixed IPs.

  • Сетевые планы написаны таким образом, что интерфейсы в них указаны по порядку как nic1, nic2. То есть если один сетевой план используется для двух разных узлов, где есть интерфейсы ens1f0,ens1f1 и eno1,eno2 - то при настройке сети будет выполнено соответствие nic1=ens1f0/eno1 и nic2=ens1f1/eno2.

  • Порядок интерфейсов можно менять через определение порядка интерфейсов.

Непосредственно применение всех настроек происходит при применении развёртывания.

  • Prepare Networks - создаются сети в Neutron на узле развёртывания.

  • Provision Nodes - выделяются порты в Neutron для узлов и на узлах применяется выбранный сетевой план.

Запустите DeckCrew TUI с узла развёртывания.

Сети

Шаг 1. Перейдите во вкладку Network settings:

+------------------------------------ Networks settings -------------------------------------+
| / [AOSBCP] DeckCrew / Networks settings                                                    |
|--------------------------------------------------------------------------------------------O
|Name                  VLAN  CIDR               Gateway           MTU   Routes               |
|External                 1  10.197.157.0/24    10.197.157.1      1500  []                   |
|InternalApi              2  172.17.155.0/24    172.17.155.1      9000  []                   |
|Storage                  3  172.17.156.0/24    172.17.156.1      9000  []                   |
|Tenant                   4  10.197.158.0/24    10.197.158.1      1500  []                   |
|Ctlplane                    10.197.156.0/24    10.197.156.1      1500  []                   |
|                                                                                            |
|                           < Add/Ctrl+A >        < Delete/Ctrl+D >      < Cancel/Ctrl+C >   |
+--------------------------------------------------------------------------------------------+
+------------------------------------ Сетевые настройки -------------------------------------+
| / [AOSBCP] DeckCrew / Сетевые настройки                                                    |
|--------------------------------------------------------------------------------------------O
|Имя                   VLAN  CIDR               Маршрутизатор     MTU   Маршрут              |
|External                 1  10.197.157.0/24    10.197.157.1      1500  []                   |
|InternalApi              2  172.17.155.0/24    172.17.155.1      9000  []                   |
|Storage                  3  172.17.156.0/24    172.17.156.1      9000  []                   |
|Tenant                   4  10.197.158.0/24    10.197.158.1      1500  []                   |
|Ctlplane                    10.197.156.0/24    10.197.156.1      1500  []                   |
|                                                                                            |
|                         < Добавить/Ctrl+A >    < Удалить/Ctrl+D >      < Отмена/Ctrl+C >   |
+--------------------------------------------------------------------------------------------+
dctl network list

Шаг 2. Нажмите на сеть в списке сетей двумя кликами мыши или выделите нужную сеть стрелками и нажмите кнопку Enter;

Шаг 3. Измените в соответствии с сетевой конфигурацией параметры сети:

+----------------------------------------- Details ------------------------------------------+
| / [AOSBCP] DeckCrew / Networks settings / Details                                          |
|--------------------------------------------------------------------------------------------O
|Name                   External                                                             |
|VLAN ID                1                                                                    |
|CIDR                   10.197.157.0/24                                                      |
|Allocation pools       [{"start": "10.197.157.130", "end": "10.197.157.140"}]               |
|Gateway IP             10.197.157.1                                                         |
|Routes                 []                                                                   |
|MTU                    1500                                                                 |
|ServiceNetworkReplaces                                                                      |
|--------------------------------------------------------------------------------------------|
|                                                                                            |
|    < Save/Ctrl+U >                                                     < Cancel/Ctrl+C >   |
+--------------------------------------------------------------------------------------------+
+------------------------------------------ Детали ------------------------------------------+
| / [AOSBCP] DeckCrew / Сетевые настройки / Детали                                           |
|--------------------------------------------------------------------------------------------O
|Имя                       External                                                          |
|VLAN ID                   1                                                                 |
|CIDR                      10.197.157.0/24                                                   |
|Пулы выделения IP-адресов [{"start": "10.197.157.130", "end": "10.197.157.140"}]            |
|IP маршрутизатора         10.197.157.1                                                      |
|Маршруты                  []                                                                |
|MTU                       1500                                                              |
|Замещает сервисную сеть                                                                     |
|--------------------------------------------------------------------------------------------|
|                                                                                            |
| < Сохранить/Ctrl+U >                                                   < Отмена/Ctrl+C >   |
+--------------------------------------------------------------------------------------------+
dctl network delete external
dctl network add --mtu 1500 --ip-subnet 10.197.157.0/24 --vlan 1 --gateway-ip 10.197.157.1 \
  --allocation-pools '[{"start": "10.197.157.130", "end": "10.197.157.140"}]' external

Шаг 4. Измените МТУ на 9000 при использовании jumbo фреймов;

Шаг 5. Нажмите Save;

Шаг 6. Повторите шаги 2-5 для каждой сети и настройте сети в соответствии с сетевой конфигурацией.

Если необходима дополнительная сеть, то можно добавить новую, нажав кнопку Add.

Сетевые планы

Сетевые планы фиксируют число используемых интерфейсов, настройки адресов или DHCP для каждого из интерфейсов, VLAN’ы и то, на каких интерфейсах они настраиваются. Необходимо предварительно определить схему настройки сети для всех узлов.

Примечание

Сетевые планы задаются в нотации OpenStack os-net-config и развёртываются на физических узлах при помощи этого инструмента.

Схема сети определяется через условные обозначения интерфейсов как nic1, nic2 и т.д. Здесь используется заданный ранее порядок интерфейсов.

Перейдите во вкладку Network plans. При первом открытии вкладки список будет пустым.

Примечание

Сетевые планы могут быть публичными или приватными для конкретного развёртывания. Из главного меню dctui можно управлять только публичными сетевыми планами. Для управления приватными сетевыми планами необходимо перейти в раздел Network plans из меню развёртывания.

  1. Нажмите кнопку Add, чтобы добавить новый сетевой план.

    +-------------------------------------- Network plans ---------------------------------------+
    | / [AOSBCP] DeckCrew / Network plans                                                        |
    |--------------------------------------------------------------------------------------------O
    |                                                                                            |
    |                           < Add/Ctrl+A >        < Delete/Ctrl+D >      < Cancel/Ctrl+C >   |
    +--------------------------------------------------------------------------------------------+
    
    +-------------------------------------- Сетевые планы ---------------------------------------+
    | / [AOSBCP] DeckCrew / Сетевые планы                                                        |
    |--------------------------------------------------------------------------------------------O
    |                                                                                            |
    |                         < Добавить/Ctrl+A >    < Удалить/Ctrl+D >      < Отмена/Ctrl+C >   |
    +--------------------------------------------------------------------------------------------+
    
    dctl netplan create [--instance INSTANCE] name
    
  2. Введите имя сетевого плана и нажмите OK.

    +-------------------------------------- Network plans ---------------------------------------+
    | / [AOSBCP] DeckCrew / Network plans                                                        |
    |--------------------------------------------------------------------------------------------O
    | my-first-plan                                                                              |
    |                                                                                            |
    |                           < Add/Ctrl+A >        < Delete/Ctrl+D >      < Cancel/Ctrl+C >   |
    +--------------------------------------------------------------------------------------------+
    
    +-------------------------------------- Сетевые планы ---------------------------------------+
    | / [AOSBCP] DeckCrew / Сетевые планы                                                        |
    |--------------------------------------------------------------------------------------------O
    | my-first-plan                                                                              |
    |                                                                                            |
    |                         < Добавить/Ctrl+A >    < Удалить/Ctrl+D >      < Отмена/Ctrl+C >   |
    +--------------------------------------------------------------------------------------------+
    
    dctl netplan create my-first-plan
    
  3. При создании нового сетевого плана список интерфейсов будет пустым. Нажмите кнопку Add, чтобы добавить новый интерфейс в сетевой план:

    +----------------------------------------- Details ------------------------------------------+
    | / [AOSBCP] DeckCrew / Network plans / Interfaces / Details                                 |
    |--------------------------------------------------------------------------------------------O
    |Type     [                                                                                 ]|
    |Name                                                                                        |
    |MemberOf [                                                                                 ]|
    |Network  [                                                                                 ]|
    |--------------------------------------------------------------------------------------------|
    |                                                                                            |
    |    < Save/Ctrl+U >                                                     < Cancel/Ctrl+C >   |
    +--------------------------------------------------------------------------------------------+
    
    +------------------------------------------ Детали ------------------------------------------+
    | / [AOSBCP] DeckCrew / Сетевые планы / Интерфейсы / Детали                                  |
    |--------------------------------------------------------------------------------------------O
    |Тип       [                                                                                ]|
    |Имя                                                                                         |
    |Состоит в [                                                                                ]|
    |Сеть      [                                                                                ]|
    |--------------------------------------------------------------------------------------------|
    |                                                                                            |
    | < Сохранить/Ctrl+U >                                                   < Отмена/Ctrl+C >   |
    +--------------------------------------------------------------------------------------------+
    
    dctl netplan vif add --type TYPE [--network NETWORK] [--with-routes] [--member-of MEMBER_OF] [--property PROPERTY] name vif_name
    
  4. Заполните параметры интерфейса и нажмите Save:

    • Name - имя интерфейса, например, nic1, eth0, br-ex;

    • Type - тип интерфейса, поддерживаемые типы можно посмотреть в документации по OpenStack os-net-config;

    • Member of - имя моста или бонда, к которому будет подключён интерфейс, например, br-ex, br-storage;

    • Network - имя сети, к которой будет подключён интерфейс, например, ctlplane, external, internal_api, storage.

    • Дополнительные параметры интерфейса зависят от его типа.

    Например, создайте OVS мост br-ex с интерфейсом nic1, который будет подключён к сети ctlplane.

    Внимание

    При выборе сети параметры Addresses, DnsServers, Domain, Mtu, Routes и VlanId будут заполнены автоматически. Заполнять их вручную не требуется, если только вы не хотите переопределить их значения.

    +----------------------------------------- Details ------------------------------------------+
    | / [AOSBCP] DeckCrew / Network plans / Interfaces / Details                                 |
    |--------------------------------------------------------------------------------------------O
    |Type     [ovs bridge                                                                       ]|
    |Name     br-ex                                                                              |
    |MemberOf [                                                                                 ]|
    |Network  [ctlplane                                                                         ]|
    |--------------------------------------------------------------------------------------------|
    |Addresses:    [{"ip_netmask": "{{ ctlplane_ip }}/{{ ctlplane_subnet_cidr }}"}]              |
    |Defroute:                                                                                   |
    |DhclientArgs:                                                                               |
    |DnsServers:   {{ ctlplane_dns_nameservers }}                                                |
    |Domain:       {{ dns_search_domains }}                                                      |
    |Mtu:          {{ ctlplane_mtu }}                                                            |
    |NmControlled:                                                                               |
    |Onboot:                                                                                     |
    |Primary:                                                                                    |
    |Routes:       {{ ctlplane_host_routes }}                                                    |
    |Rules:                                                                                      |
    |UseDhcp:      False                                                                         |
    |OvsOptions:                                                                                 |
    |OvsExtra:                                                                                   |
    |OvsFailMode:                                                                                |
    |                                                                                            |
    |    < Save/Ctrl+U >                                                     < Cancel/Ctrl+C >   |
    +--------------------------------------------------------------------------------------------+
    
    +------------------------------------------ Детали ------------------------------------------+
    | / [AOSBCP] DeckCrew / Сетевые планы / Интерфейсы / Детали                                  |
    |--------------------------------------------------------------------------------------------O
    |Тип       [ovs bridge                                                                      ]|
    |Имя       br-ex                                                                             |
    |Состоит в [                                                                                ]|
    |Сеть      [ctlplane                                                                        ]|
    |--------------------------------------------------------------------------------------------|
    |Addresses:    [{"ip_netmask": "{{ ctlplane_ip }}/{{ ctlplane_subnet_cidr }}"}]              |
    |Defroute:                                                                                   |
    |DhclientArgs:                                                                               |
    |DnsServers:   {{ ctlplane_dns_nameservers }}                                                |
    |Domain:       {{ dns_search_domains }}                                                      |
    |Mtu:          {{ ctlplane_mtu }}                                                            |
    |NmControlled:                                                                               |
    |Onboot:                                                                                     |
    |Primary:                                                                                    |
    |Routes:       {{ ctlplane_host_routes }}                                                    |
    |Rules:                                                                                      |
    |UseDhcp:      False                                                                         |
    |OvsOptions:                                                                                 |
    |OvsExtra:                                                                                   |
    |OvsFailMode:                                                                                |
    |                                                                                            |
    | < Сохранить/Ctrl+U >                                                   < Отмена/Ctrl+C >   |
    +--------------------------------------------------------------------------------------------+
    
    dctl netplan vif add --type ovs_bridge --network ctlplane --with-routes my-first-plan br-ex
    
    +----------------------------------------- Details ------------------------------------------+
    | / [AOSBCP] DeckCrew / Network plans / Interfaces / Details                                 |
    |--------------------------------------------------------------------------------------------O
    |Type     [interface                                                                        ]|
    |Name     nic1                                                                               |
    |MemberOf [br-ex                                                                            ]|
    |Network  [                                                                                 ]|
    |--------------------------------------------------------------------------------------------|
    |EthtoolOpts:                                                                                |
    |Hotplug:                                                                                    |
    |Linkdelay:                                                                                  |
    |Addresses:                                                                                  |
    |Defroute:                                                                                   |
    |DhclientArgs:                                                                               |
    |DnsServers:                                                                                 |
    |Domain:                                                                                     |
    |Mtu:                                                                                        |
    |NmControlled:                                                                               |
    |Onboot:                                                                                     |
    |Primary:      True                                                                          |
    |Routes:                                                                                     |
    |Rules:                                                                                      |
    |UseDhcp:                                                                                    |
    |OvsOptions:                                                                                 |
    |OvsExtra:                                                                                   |
    |OvsFailMode:                                                                                |
    |                                                                                            |
    |    < Save/Ctrl+U >                                                     < Cancel/Ctrl+C >   |
    +--------------------------------------------------------------------------------------------+
    
    +------------------------------------------ Детали ------------------------------------------+
    | / [AOSBCP] DeckCrew / Сетевые планы / Интерфейсы / Детали                                  |
    |--------------------------------------------------------------------------------------------O
    |Тип       [interface                                                                       ]|
    |Имя       nic1                                                                              |
    |Состоит в [br-ex                                                                           ]|
    |Сеть      [                                                                                ]|
    |--------------------------------------------------------------------------------------------|
    |EthtoolOpts:                                                                                |
    |Hotplug:                                                                                    |
    |Linkdelay:                                                                                  |
    |Addresses:                                                                                  |
    |Defroute:                                                                                   |
    |DhclientArgs:                                                                               |
    |DnsServers:                                                                                 |
    |Domain:                                                                                     |
    |Mtu:                                                                                        |
    |NmControlled:                                                                               |
    |Onboot:                                                                                     |
    |Primary:      True                                                                          |
    |Routes:                                                                                     |
    |Rules:                                                                                      |
    |UseDhcp:                                                                                    |
    |OvsOptions:                                                                                 |
    |OvsExtra:                                                                                   |
    |OvsFailMode:                                                                                |
    |                                                                                            |
    | < Сохранить/Ctrl+U >                                                   < Отмена/Ctrl+C >   |
    +--------------------------------------------------------------------------------------------+
    
    dctl netplan vif add --type interface --member-of br-ex --property primary=true my-first-plan nic1
    
  5. Донастройте сетевой план так, чтобы были использованы все необходимые интерфейсы и сети. Например:

    +---------------------------------------- Interfaces ----------------------------------------+
    | / [AOSBCP] DeckCrew / Network plans / Interfaces                                           |
    |--------------------------------------------------------------------------------------------O
    |Name                            Type            Network       MemberOf                      |
    |nic1                            interface                     br-ex                         |
    |br-ex                           ovs_bridge      ctlplane                                    |
    |nic2                            interface       external                                    |
    |nic3                            interface       internal_api                                |
    |nic4                            interface       storage                                     |
    |                                                                                            |
    |                           < Add/Ctrl+A >        < Delete/Ctrl+D >      < Cancel/Ctrl+C >   |
    +--------------------------------------------------------------------------------------------+
    
    +---------------------------------------- Интерфейсы ----------------------------------------+
    | / [AOSBCP] DeckCrew / Сетевые планы / Интерфейсы                                           |
    |--------------------------------------------------------------------------------------------O
    |Имя                             Тип             Сеть          Состоит в                     |
    |nic1                            interface                     br-ex                         |
    |br-ex                           ovs_bridge      ctlplane                                    |
    |nic2                            interface       external                                    |
    |nic3                            interface       internal_api                                |
    |nic4                            interface       storage                                     |
    |                                                                                            |
    |                         < Добавить/Ctrl+A >    < Удалить/Ctrl+D >      < Отмена/Ctrl+C >   |
    +--------------------------------------------------------------------------------------------+
    
    dctl netplan vif add --type interface --network external my-first-plan nic2
    dctl netplan vif add --type interface --network internal_api my-first-plan nic3
    dctl netplan vif add --type interface --network storage my-first-plan nic4
    

Примечание

Также в системе доступны заранее созданные сетевые планы, неотображаемые в списке пользовательских, но доступные для указания в настройке роли/узла. Полный список можно посмотреть через интерфейс командной строки:

dctl netplan list --default

Наиболее часто используемые:

  • single_nic_vlans/single_nic_vlans.j2 - используется один интерфейс внутри сетевого OpenVSwitch моста br-ex, к которому подключаются все сети как VLAN-соединения;

  • single_nic_linux_bridge_vlans/single_nic_linux_bridge_vlans.j2 - используется один интерфейс внутри сетевого Linux-моста br-ex, к которому подключаются все сети как VLAN-соединения.