Oleg
Serhii
Всем привет.
Столкнулся с проблемой в работе IPv6. Добавил сеть IPv6 в OpenStack, включил поддержку SLAAC с помощью стороннего маршрутизатора, настроил SLAAC на маршрутизаторе. Когда запускаю инстанс на основе образа CirrOS, всё работает хорошо и с двойным стеком, и с одиночным.
Однако, если запускаю инстанс на любом другом образе, работает только IPv4. При этом интерфейс получает только локальный адрес, то есть не из SLAAC. Судя по данным TCPdump, я получаю сообщение о маршрутизаторе (RA broadcast message).
Если проверить сетевые настройки ВМ, то видно, что интерфейс получил только шлюз и префикс, но сам адрес не был сгенерирован.
Возможно, кто-то сталкивался с подобной проблемой? Подскажите, куда копать. Уже неделю не могу понять, в чем проблема.
Nikolay
В метадате что?
Serhii
В метадате что?
если имеется виду что показывает в логах опенсвитч агент, то там видно что подключен ipv6 к интерфейсу
Nikolay
Конечно конфигурацию сети на ВМ делает cloud init
Nikolay
Cloud-init берет данныее либо из metadata agent 169.254.169.254
Nikolay
Либо из конфиграйва
Nikolay
Маршрут до метадаты получается из первичной конфигурации по dhpc первого сетевого интерфейса
Nikolay
Который в Клауд образах по дефолту в dhcp
Serhii
Тогда почему в cirros все работает)?
Serhii
Хотя там тоже туда обращается
Nikolay
А вот есть ли на нем по умолчанию v6 вопрос
Serhii
Cirros?
Nikolay
Перечитай
Nikolay
Ну и включён ли ipv6 в любом другом образе
Serhii
не подскажешь как можна в целом поиграться с cloud-init?
Nikolay
Оооо
Serhii
Просто никогда не влазил туда, просто подефолту юзал
J
В клауд ините выключена поддержка дуалстека, скорее всего
Serhii
Nikolay
1. Получается что сам ipv6 работает
Nikolay
2. Цирос как то получает нужные настройки сети чтобы v6 работал
Nikolay
Для начала нужно понять как он обретает это счастье
Nikolay
3. Понять почему это счастье не случается с другим образом
Nikolay
Можно конечно скинуть 12, и крутануть в metada что там вообще приезжает
Nikolay
Покурить /var/log/cloud-init.log
Serhii
да в cirros там все придельно просто в логах пишет что получил RA от такого то ип и настроил, ipv6
в Роки к примеру сам пакет RA приходит по бродкасту, а вот интрефейс його не конфигурит, и логах никаких действий нет
Это cloud-init работает насколько я понимаю только на первый сетап или бут
Nikolay
Я вышел из чата
Serhii
Понял пойду смотреть как работает цирос
J
Подскажите как проверить)?
А хз, предположил просто.
Щас поискал и не вижу в конфигах клауд инита ничо такого про ipv6 или двойной стек.
Serhii
ну что из 1382 админов никто ipv6 на опенстеке не настраивал))?
J
Serhii
J
Раз
https://github.com/canonical/cloud-init/issues/3682
Два
https://github.com/AlmaLinux/cloud-images/issues/20
Три
https://bugs.rockylinux.org/view.php?id=279&nbn=1
Serhii
остальные не покажу бо не развернул если нужно могу))))
Nikolay
Ну так система получается верно сконфигурирована?
Serhii
Serhii
но оно не работает
Nikolay
что значит не работает? не прилетают нужные пакеты?
Serhii
Serhii
00:00:00.000326 qvoea5290e7-e3 Out IP6 (hlim 255, next-header ICMPv6 (58) payload length: 64) fe80::2a99:3aff:fed7:7eba > fe80::f816:3eff:fe6c:f039: [icmp6 sum ok] ICMP6, router advertisement, length 64
hop limit 64, Flags [none], pref medium, router lifetime 1800s, reachable time 0ms, retrans timer 1000ms
source link-address option (1), length 8 (1): 28:99:3a:d7:7e:ba
0x0000: 2899 3ad7 7eba
mtu option (5), length 8 (1): 1500
0x0000: 0000 0000 05dc
prefix info option (3), length 32 (4): 2a::/46, Flags [onlink, auto], valid time 2592000s, pref. time 604800s
0x0000: 2ec0 0027 8d00 0009 3a80 0000 0000 2a13
0x0010: 4ac0 0000 0000 0000 0000 0000 0000
Serhii
вот сам RA пакет, он прилитает на вм, дальше вм получает только префикс и шлюз
Serhii
айпишник не генерируется и не ципляется на интрфейс, вот что не работает
J
Щас может сразу и увидем что там к чему.
Александр
всем привет. у кого есть возможность помочь разобраться с деплоем openvswitch?
Александр
kubectl -n openstack logs openvswitch-86dvh
Defaulted container "openvswitch-db" out of: openvswitch-db, openvswitch-vswitchd, init (init), openvswitch-db-perms (init), openvswitch-vswitchd-modules (init)
+ COMMAND=start
+ OVS_DB=/run/openvswitch/conf.db
+ OVS_SCHEMA=/usr/share/openvswitch/vswitch.ovsschema
+ OVS_PID=/run/openvswitch/ovsdb-server.pid
+ OVS_SOCKET=/run/openvswitch/db.sock
+ start
++ dirname /run/openvswitch/conf.db
+ mkdir -p /run/openvswitch
+ [[ ! -e /run/openvswitch/conf.db ]]
++ ovsdb-tool needs-conversion /run/openvswitch/conf.db /usr/share/openvswitch/vswitch.ovsschema
+ [[ no == \y\e\s ]]
+ umask 000
+ exec /usr/sbin/ovsdb-server /run/openvswitch/conf.db -vconsole:emer -vconsole:err -vconsole:info --pidfile=/run/openvswitch/ovsdb-server.pid --remote=punix:/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --remote=ptcp:6640 --private-key=db:Open_vSwitch,SSL,private_key --certificate=db:Open_vSwitch,SSL,certificate --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert
2023-08-11T08:08:51Z|00001|socket_util|ERR|6640:127.0.0.1: bind: Address already in use
2023-08-11T08:08:51Z|00002|ovsdb_jsonrpc_server|ERR|ptcp:6640:127.0.0.1: listen failed: Address already in use
2023-08-11T08:08:51Z|00003|ovsdb_server|INFO|ovsdb-server (Open vSwitch) 2.13.8
2023-08-11T08:08:51Z|00004|socket_util|ERR|6640:127.0.0.1: bind: Address already in use
2023-08-11T08:08:51Z|00005|ovsdb_jsonrpc_server|ERR|ptcp:6640:127.0.0.1: listen failed: Address already in use
2023-08-11T08:08:51Z|00006|socket_util|ERR|6640:127.0.0.1: bind: Address already in use
2023-08-11T08:08:51Z|00007|ovsdb_jsonrpc_server|ERR|ptcp:6640:127.0.0.1: listen failed: Address already in use
2023-08-11T08:08:51Z|00008|socket_util|ERR|6640:127.0.0.1: bind: Address already in use
2023-08-11T08:08:51Z|00009|ovsdb_jsonrpc_server|ERR|ptcp:6640:127.0.0.1: listen failed: Address already in use
Александр
не могу победить эту проблему
Serhii
kubectl -n openstack logs openvswitch-86dvh
Defaulted container "openvswitch-db" out of: openvswitch-db, openvswitch-vswitchd, init (init), openvswitch-db-perms (init), openvswitch-vswitchd-modules (init)
+ COMMAND=start
+ OVS_DB=/run/openvswitch/conf.db
+ OVS_SCHEMA=/usr/share/openvswitch/vswitch.ovsschema
+ OVS_PID=/run/openvswitch/ovsdb-server.pid
+ OVS_SOCKET=/run/openvswitch/db.sock
+ start
++ dirname /run/openvswitch/conf.db
+ mkdir -p /run/openvswitch
+ [[ ! -e /run/openvswitch/conf.db ]]
++ ovsdb-tool needs-conversion /run/openvswitch/conf.db /usr/share/openvswitch/vswitch.ovsschema
+ [[ no == \y\e\s ]]
+ umask 000
+ exec /usr/sbin/ovsdb-server /run/openvswitch/conf.db -vconsole:emer -vconsole:err -vconsole:info --pidfile=/run/openvswitch/ovsdb-server.pid --remote=punix:/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --remote=ptcp:6640 --private-key=db:Open_vSwitch,SSL,private_key --certificate=db:Open_vSwitch,SSL,certificate --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert
2023-08-11T08:08:51Z|00001|socket_util|ERR|6640:127.0.0.1: bind: Address already in use
2023-08-11T08:08:51Z|00002|ovsdb_jsonrpc_server|ERR|ptcp:6640:127.0.0.1: listen failed: Address already in use
2023-08-11T08:08:51Z|00003|ovsdb_server|INFO|ovsdb-server (Open vSwitch) 2.13.8
2023-08-11T08:08:51Z|00004|socket_util|ERR|6640:127.0.0.1: bind: Address already in use
2023-08-11T08:08:51Z|00005|ovsdb_jsonrpc_server|ERR|ptcp:6640:127.0.0.1: listen failed: Address already in use
2023-08-11T08:08:51Z|00006|socket_util|ERR|6640:127.0.0.1: bind: Address already in use
2023-08-11T08:08:51Z|00007|ovsdb_jsonrpc_server|ERR|ptcp:6640:127.0.0.1: listen failed: Address already in use
2023-08-11T08:08:51Z|00008|socket_util|ERR|6640:127.0.0.1: bind: Address already in use
2023-08-11T08:08:51Z|00009|ovsdb_jsonrpc_server|ERR|ptcp:6640:127.0.0.1: listen failed: Address already in use
Порт вроде занят, посмотри что у тебя весит на этом порту 6640
Александр
как раз этот процесс
Александр
ps aux | grep 6640
systemd+ 1753 0.0 0.0 6640 1992 ? S 09:54 0:03 nginx: worker process
42424 155824 0.1 0.0 9932 7300 ? Ss 11:08 0:11 /usr/sbin/ovsdb-server /run/openvswitch/conf.db -vconsole:emer -vconsole:err -vconsole:info --pidfile=/run/openvswitch/ovsdb-server.pid --remote=punix:/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --remote=ptcp:6640 --private-key=db:Open_vSwitch,SSL,private_key --certificate=db:Open_vSwitch,SSL,certificate --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert
42424 165222 0.0 0.0 9244 4244 ? S 11:14 0:00 ovsdb-client monitor tcp:127.0.0.1:6640 Interface name,ofport,external_ids --format=json
root 480732 0.0 0.0 8160 2472 pts/0 S+ 13:47 0:00 grep --color=auto 6640
Serhii
netstat -ntpl | grep 6640
Serhii
Александр
он скорее всего у других компонентах в конфигам может быть зашит, попробовать конечно можно
Serhii
а стоп, а реплик у тебя сколько?
Александр
3
Serhii
а подов на этом хосте где ошибка?
Serhii
может там два пода на один и той де узел залители
Александр
openvswitch-86dvh 2/2 Running 0 3h2m
openvswitch-tz6vr 2/2 Running 2 (141m ago) 144m
openvswitch-vr9bd 2/2 Running 0 3h2m
Александр
есть у кого нить возможность поделиться values.yaml для openvswitch на посмотреть, может где в конфигах накосячил.
Serhii
Serhii
это зачем такое?
Serhii
А не должно ли быть один свитч в 3 реплики?
Александр
вполне возможно, как раз разбираюсь, в манах ничего по этому поводу нет
Александр
может в этом то и косяк
Александр
я бы сказал что там в целом ничего нет.
Serhii
У тебя получаеться запускается один свитч делает скейл в 2 реплика должна улитеть в другую ноду,
а дальше ты опять запускаешь под который опять хочет занять порт 6640, а потом еще один под
Serhii
ну по логике это не верно получаеться и здесь косяк не опенсвитча, а твоего манифеста
Александр
как раз смотрю манифест
Александр
что то вообще не нахожу этих параметров в манифесте
Serhii