Сети узла развёртывания
Введите в консоли команду:
sudo ovs-vsctl show
Результат выполнения будет выглядеть следующим образом:
ffa5b021-35e9-4a7f-8e12-3db0c952f026
Manager "ptcp:6640:127.0.0.1"
is_connected: true
Bridge br-int
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
datapath_type: system
Port br-int
Interface br-int
type: internal
Port int-br-ctlplane
Interface int-br-ctlplane
type: patch
options: {peer=phy-br-ctlplane}
Port tape4e5b22a-3c
tag: 1
Interface tape4e5b22a-3c
type: internal
Bridge br-ctlplane
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
datapath_type: system
Port phy-br-ctlplane
Interface phy-br-ctlplane
type: patch
options: {peer=int-br-ctlplane}
Port br-ctlplane
Interface br-ctlplane
type: internal
Port ens4
Interface ens4
ovs_version: "3.4.1-13.10.2"
Вывод указывает, что существует два связанных между собой бриджа OVS:
br-ctlplane и br-int. Их также можно увидеть при выводе команды ip a.
Бридж br-int не имеет в своём основании никакого физического интерфейса,
зато имеет виртуальный интерфейс tape4e5b22a-3c. Расскажем о нём позднее.
Бридж br-ctlplane имеет физический интерфейс ens4 и связывает через него с внешней сетью бридж br-int.
При выводе ip a не указан никакой интерфейс tap. Попробуем выполнить следующее:
[stack@undercloud ~]$ sudo ip netns
qdhcp-5b839bb8-15be-48ca-b68f-bba1756cbe1b (id: 0)
Значит, что в системе существует выделенное сетевое пространство имён. Подробнее про них можно почитать здесь:
[stack@undercloud ~]$ sudo ip netns exec qdhcp-5b839bb8-15be-48ca-b68f-bba1756cbe1b ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
8: tape4e5b22a-3c: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether fa:16:3e:60:39:3f brd ff:ff:ff:ff:ff:ff
inet 192.168.24.36/24 brd 192.168.24.255 scope global tape4e5b22a-3c
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe60:393f/64 scope link
valid_lft forever preferred_lft forever
Мы видим знакомый нам tap интерфейс с адресом 192.168.24.36/24. Назначение этого адреса становится понятно, если поискать этот порт среди портов openstack:
(undercloud) [stack@undercloud ~]$ openstack port list | grep 192.168.24.36
| de8cbd01-25f3-4ebd-8965-74c98eca45bd | | fa:16:3e:1e:c1:8b | ip_address='192.168.24.36', subnet_id='ab41b2bc-f27c-43a6-977e-4bd93d0c1cc7' | ACTIVE |
(undercloud) [stack@undercloud ~]$ openstack port show de8cbd01-25f3-4ebd-8965-74c98eca45bd -c binding_vif_details -c binding_vif_type -c device_owner
+---------------------+-------------------------------------------------------------------------------------------------------------+
| Field | Value |
+---------------------+-------------------------------------------------------------------------------------------------------------+
| binding_vif_details | bridge_name='br-int', connectivity='l2', datapath_type='system', ovs_hybrid_plug='True', port_filter='True' |
| binding_vif_type | ovs |
| device_owner | network:dhcp |
+---------------------+-------------------------------------------------------------------------------------------------------------+
Мы видим, что этот порт является IP адресом DHCP сервера в сети ctlplane, поднятый на узле развёртывания в отдельном сетевом пространстве имён.
Если использовать имя сетевого пространства имён и выполнить:
[stack@undercloud ~]$ sudo podman ps | grep qdhcp-5b839bb8-15be-48ca-b68f-bba1756cbe1b
То вы увидите контейнер, который отвечает за DHCP сервис в сети Ctlplane.