Настройка сетей
Используйте заранее согласованную сетевую таблицу для настройки сетей облака.
Название сети |
Подсеть/Маска |
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.
Таким образом все сетевые настройки включают в себя несколько этапов:
Заведение информации о сетях в
dctui;Определение порядка интерфейсов для физических узлов:
+--------------------------------------------------------------------------------------------------------+ | соответствие логических интерфейсов реальным интерфейсам | | | | +-------------------+ +-------------------+ +-------------------+ | | | Логический NIC | | Узел A | | Узел B | | | |-------------------| |-------------------| |-------------------| | | | nic1 | -----> | ens1f0 | | eno1 | | | | nic2 | -----> | ens1f1 | | eno2 | | | | nic3 | -----> | ens2f0 | | ens3f0 | | | +-------------------+ +-------------------+ +-------------------+ | | | +--------------------------------------------------------------------------------------------------------+
Выбор/создание сетевых планов для ролей/узлов:
+--------------------------------------------------------------------------------------------------------+ | +--------------------------------------------+ | | | Сетевой план | | | |--------------------------------------------| | | | nic1 -> Ctlplane | | | | nic2 -> InternalApi VLAN 20 | | | | nic3 -> Storage VLAN 30 | | | | bond0 -> External | | | +--------------------------------------------+ | | | | сетевые планы используются ролями узлов | | | | +------------------+ +---------------------+ +------------------+ | | | Узел Управления | | Вычислительный узел | | Узел хранения | | | +------------------+ +---------------------+ +------------------+ | | | | | | | +------- использует -----+------ использует -----+ | | | +--------------------------------------------------------------------------------------------------------+
Применение сетевых настроек в разделе 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 из меню развёртывания.
Нажмите кнопку 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
Введите имя сетевого плана и нажмите 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
При создании нового сетевого плана список интерфейсов будет пустым. Нажмите кнопку 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
Заполните параметры интерфейса и нажмите 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
Донастройте сетевой план так, чтобы были использованы все необходимые интерфейсы и сети. Например:
+---------------------------------------- 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-соединения.