Возникли проблемы с установкой devstack stable/xena на чистый облачный образ ubuntu20.04 (экземпляр виртуальной машины с помощью virt-install с 2 интерфейсами: ens3 (192.168.122.36 на HostPC virbr0) для общедоступного интерфейса и ens4 (192.168.100.100 host virbr1) для управления)
Установка devstack продолжается почти до конца, но завершается при проверке arping на br-ex:
хвост stack.sh.log:
2022-02-02 21:52:21.085 | +lib/neutron-legacy:_move_neutron_addresses_route:671 IP_BRD='192.168.122.36/24 brd 192.168.122.255'
2022-02-02 21:52:21.093 | +lib/neutron-legacy:_move_neutron_addresses_route:673 '[' 192.168.122.1 '!=' '' ']'
2022-02-02 21:52:21.101 | +lib/neutron-legacy:_move_neutron_addresses_route:674 ADD_DEFAULT_ROUTE='sudo ip -finet r заменить по умолчанию через 192.168.122.1 dev br-ex'
2022-02-02 21:52:21.109 | +lib/neutron-legacy:_move_neutron_addresses_route:677 [[ True == \T\r\u\e ]]
2022-02-02 21:52:21.118 | +lib/neutron-legacy:_move_neutron_addresses_route:678 ADD_OVS_PORT='sudo ovs-vsctl --may-exist add-port br-ex ens3'
2022-02-02 21:52:21.127 | +lib/neutron-legacy:_move_neutron_addresses_route:681 [[ False == \T\r\u\e ]]
2022-02-02 21:52:21.135 | +lib/neutron-legacy:_move_neutron_addresses_route:685 [[ 192.168.122.36/24 brd 192.168.122.255 != '' ]]
2022-02-02 21:52:21.143 | +lib/neutron-legacy:_move_neutron_addresses_route:686 IP_DEL='sudo ip addr del 192.168.122.36/24 brd 192.168.122.255 dev ens3'
2022-02-02 21:52:21.153 | +lib/neutron-legacy:_move_neutron_addresses_route:687 IP_REPLACE='sudo ip addr replace 192.168.122.36/24 brd 192.168.122.255 dev br-ex'
2022-02-02 21:52:21.164 | +lib/neutron-legacy:_move_neutron_addresses_route:688 IP_UP='sudo ip link set br-ex up'
2022-02-02 21:52:21.172 | +lib/neutron-legacy:_move_neutron_addresses_route:689 [[ inet == \i\n\e\t ]]
2022-02-02 21:52:21.183 | ++lib/neutron-legacy:_move_neutron_addresses_route:690 awk '{ print $1; выход }'
2022-02-02 21:52:21.183 | ++lib/neutron-legacy:_move_neutron_addresses_route:690 echo 192.168.122.36/24 brd 192.168.122.255
2022-02-02 21:52:21.185 | ++lib/neutron-legacy:_move_neutron_addresses_route:690 grep -o -E '(.*)/'
2022-02-02 21:52:21.192 | ++lib/neutron-legacy:_move_neutron_addresses_route:690 вырезать -d / -f1
2022-02-02 21:52:21.202 | +lib/neutron-legacy:_move_neutron_addresses_route:690 IP=192.168.122.36
2022-02-02 21:52:21.210 | +lib/neutron-legacy:_move_neutron_addresses_route:691 ARP_CMD='sudo arping -A -c 3 -w 5 -I br-ex 192.168.122.36 '
2022-02-02 21:52:21.217 | +lib/neutron-legacy:_move_neutron_addresses_route:697 sudo ip addr del 192.168.122.36/24 brd 192.168.122.255 dev ens3
2022-02-02 21:52:21.236 | +lib/neutron-legacy:_move_neutron_addresses_route:697 sudo ip addr заменить 192.168.122.36/24 brd 192.168.122.255 dev br-ex
2022-02-02 21:52:21.252 | +lib/neutron-legacy:_move_neutron_addresses_route:697 sudo ip link set br-ex up
2022-02-02 21:52:21.272 | +lib/neutron-legacy:_move_neutron_addresses_route:697 sudo ovs-vsctl --may-exist add-port br-ex ens3
2022-02-02 21:52:21.293 | +lib/neutron-legacy:_move_neutron_addresses_route:697 sudo ip -finet r заменить по умолчанию через 192.168.122.1 dev br-ex
2022-02-02 21:52:21.309 | +lib/neutron-legacy:_move_neutron_addresses_route:697 sudo arping -A -c 3 -w 5 -I br-ex 192.168.122.36
2022-02-02 21:52:24.316 | ARPING 192.168.122.36 с 192.168.122.36 br-ex
2022-02-02 21:52:24.316 | Отправлено 3 зонда (3 рассылки))
2022-02-02 21:52:24.316 | Получено 0 ответов
2022-02-02 21:52:24.341 | +lib/neutron-legacy:_move_neutron_addresses_route:1 exit_trap
2022-02-02 21:52:24.349 | +./stack.sh:exit_trap:521 локальный r=1
2022-02-02 21:52:24.359 | ++./stack.sh:exit_trap:522 задания -p
2022-02-02 21:52:24.367 | +./stack.sh:exit_trap:522 задания=
2022-02-02 21:52:24.376 | +./stack.sh:exit_trap:525 [[ -n '' ]]
2022-02-02 21:52:24.384 | +./stack.sh:exit_trap:531 '[' -f /tmp/tmp.WDapXUJF5c ']'
2022-02-02 21:52:24.394 | +./stack.sh:exit_trap:532 rm /tmp/tmp.WDapXUJF5c
2022-02-02 21:52:24.407 | +./stack.sh:exit_trap:536 kill_spinner
2022-02-02 21:52:24.422 | +./stack.sh:kill_spinner:431 '[' '!' -з '' ']'
2022-02-02 21:52:24.430 | +./stack.sh:exit_trap:538 [[ 1 -ne 0 ]]
2022-02-02 21:52:24.441 | +./stack.sh:exit_trap:539 echo 'Ошибка при выходе'
2022-02-02 21:52:24.441 | Ошибка на выходе
2022-02-02 21:52:24.447 | +./stack.sh:exit_trap:541 type -p generate-subunit
2022-02-02 21:52:24.455 | +./stack.sh:exit_trap:542 generate-subunit 1643837814 930 сбой
2022-02-02 21:52:24.807 | +./stack.sh:exit_trap:544 [[ -z /opt/stack/logs ]]
2022-02-02 21:52:24.814 | +./stack.sh:exit_trap:547 /usr/bin/python3.8 /home/stack/devstack/tools/worlddump.py -d /opt/stack/logs
2022-02-02 21:52:25.437 | +./stack.sh:exit_trap:556 выход 1
сетевые части local.conf:
HOST_IP=192.168.122.36
СЕРВИС_ХОСТ = 192.168.122.36
#HOST_IPV6=2001:db8::7
## Варианты нейтронов
Q_USE_SECGROUP=Истина
#FLOATING_RANGE="192.168.122.0/24"
#Q_FLOATING_ALLOCATION_POOL=начало=192.168.122.240,конец=192.168.122.254
FLOATING_RANGE=192.168.122.224/27
IPV4_ADDRS_SAFE_TO_USE="10.0.0.0/22"
PUBLIC_NETWORK_GATEWAY="192.168.122.1"
PUBLIC_INTERFACE=ens3
# попробуйте LinuxBridge, так как ovs выдает ошибку arping для br-ex на $HOST_IP
#Q_USE_PROVIDERNET_FOR_PUBLIC=Истина
#Q_AGENT=linuxмост
#LB_PHYSICAL_INTERFACE=ens3
#PUBLIC_PHYSICAL_NETWORK=по умолчанию
#LB_INTERFACE_MAPPINGS=по умолчанию:ens3
# Открыть сетевую конфигурацию провайдера vSwitch
Q_USE_PROVIDERNET_FOR_PUBLIC=Истина
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS = общедоступный: br-ex
(пробовал linuxbridge как обходной путь к OVS, но все еще хочет определить br-ex и получить более серьезные ошибки (нейтрон не запускается)
моя сетевая конфигурация в конце выглядит нормально
стек@devstackxena:~/девстек$ ip-ссылка
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master ovs-system state Режим UP DEFAULT group default qlen 1000
ссылка/эфир 52:54:00:ed:c1:f2 brd ff:ff:ff:ff:ff:ff
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP режим DEFAULT группа по умолчанию qlen 1000
ссылка/эфир 52:54:00:28:b9:e7 brd ff:ff:ff:ff:ff:ff
27: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
ссылка/эфир 4a:4d:4c:08:59:d1 brd ff:ff:ff:ff:ff:ff
28: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
ссылка/эфир 7a:0c:6d:1c:17:49 brd ff:ff:ff:ff:ff:ff
29: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
ссылка/эфир c6:1e:0f:72:91:4c brd ff:ff:ff:ff:ff:ff
стек@devstackxena:~/девстек$ ip а
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00
инет 127.0.0.1/8 область хоста lo
valid_lft навсегда
inet6 :: 1/128 узел области видимости
valid_lft навсегда
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master ovs-system state UP group default qlen 1000
ссылка/эфир 52:54:00:ed:c1:f2 brd ff:ff:ff:ff:ff:ff
inet6 fe80::5054:ff:feed:c1f2/64 ссылка на область действия
valid_lft навсегда
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
ссылка/эфир 52:54:00:28:b9:e7 brd ff:ff:ff:ff:ff:ff
инет 192.168.100.100/24 область глобальная ens4
valid_lft навсегда
inet6 2001:db8:ca2:3:5054:ff:fe28:b9e7/64 глобальная динамическая область mngtmpaddr
valid_lft 3269 сек. selected_lft 3 269 сек.
inet6 fe80::5054:ff:fe28:b9e7/64 ссылка на область действия
valid_lft навсегда
27: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
ссылка/эфир 4a:4d:4c:08:59:d1 brd ff:ff:ff:ff:ff:ff
28: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop состояние DOWN группа по умолчанию qlen 1000
ссылка/эфир 7a:0c:6d:1c:17:49 brd ff:ff:ff:ff:ff:ff
29: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
ссылка/эфир c6:1e:0f:72:91:4c brd ff:ff:ff:ff:ff:ff
inet 192.168.122.36/24 brd 192.168.122.255 глобальная область действия br-ex
valid_lft навсегда
ссылка на область inet6 fe80::c41e:fff:fe72:914c/64
valid_lft навсегда
конфиг овс:
стек@devstackxena:~/девстек$ sudo ovs-vsctl показать
2448b59c-19b3-4043-ab1f-c3bbc0e66102
Диспетчер "ptcp:6640:127.0.0.1"
is_connected: правда
Мост бр-инт
fail_mode: безопасный
Порт бр-инт
Интерфейс br-int
тип: внутренний
Мост бр-экс
Порт ens3
Интерфейс ens3
Порт бр-экс
Интерфейс br-ex
тип: внутренний
ovs_версия: "2.13.3"
стек@devstackxena:~/девстек$ IP-маршрут
по умолчанию через 192.168.122.1 dev br-ex
192.168.100.0/24 dev ens4 ссылка на область ядра proto src 192.168.100.100
192.168.122.0/24 dev br-ex ссылка на область ядра прото src 192.168.122.36
tcpdump arp на br-ex:
стек@devstackxena:~$ sudo tcpdump -i br-ex -n icmp или arp
tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола
прослушивание по br-ex, тип канала EN10MB (Ethernet), размер захвата 262144 байт
12:09:52.568287 ARP, Запросите, у кого есть 192.168.122.37, сообщите 192.168.122.1, длина 28
12:09:53.592292 ARP, Запросите, у кого есть 192.168.122.37, сообщите 192.168.122.1, длина 28
12:10:18.892563 ARP, Запросить у кого есть 192.168.122.36 (ff:ff:ff:ff:ff:ff) сообщить 192.168.122.36, длина 28
12:10:19.892728 ARP, запросить у кого есть 192.168.122.36 (ff:ff:ff:ff:ff:ff) сообщить 192.168.122.36, длина 28
12:10:20.892764 ARP, запросить у кого есть 192.168.122.36 (ff:ff:ff:ff:ff:ff) сообщить 192.168.122.36, длина 28
12:10:48.145743 IP 192.168.122.1 > 192.168.122.36: эхо-запрос ICMP, идентификатор 33715, последовательность 0, длина 28
12:10:48.145850 IP 192.168.122.36 > 192.168.122.1: эхо-ответ ICMP, идентификатор 33715, последовательность 0, длина 28
arping получил 192.168.122.36, но ответа не получил (это моя интерпретация выхода из devstack).
не уверен, откуда берется дополнительный 192.168.122.37, этот IP-адрес не существует в виртуальной машине (нет других виртуальных машин на хосте)
Я предполагаю, что можно арпинговать собственный IP? (это то, что пытается сделать скрипт devstack)
спасибо за любые указатели, идеи