Открытый стек с плавающим ip недоступен
описание
После включения dvr две виртуальные машины vip настраиваются с помощью keealived. Когда VIP частной сети дрейфует, открытый плавающий ip не может быть доступен.
более подробно следующим образом:
Два узла, конфигурация частной сети keepalived Host1 192.168.1.2 Host2 192.168.1.3 vip192.168.1.4 Дрейф vip в частной сети не проблема, vip-доступ в частной сети не является проблемой Проблема заключается в том, что после дрейфа vip внутренней сети внешний Плавающий ip, соответствующий этому vip, недоступен, и может быть доступен до дрейфа. Феномен: Обновите порт частной сети, к которой перемещается vip. Плавающая сеть может быть использована. Что вызывает эту проблему?
Ссылка на конфигурацию
https://hk.saowen.com/a/4d7a3dcd044eb53ae0fc81e4d1445ba76bbb02423ff6c7b4a53a8ad59945883d
Процесс настройки
предпосылка: предположим, что уже есть две виртуальные машины 10.10.10.6, 10.10.10.7, настроенные с помощью keepalived, vip - 10.10.10.201. Сконфигурируйте шаги для поддержки VIP и плавающего IP-доступа в OpenStack:
Группа безопасности плюс протокол vrrp 112
нейтронная группа безопасности-правило-создать -протокол 112 по умолчанию
Создать VIP
нейтронный порт-create --fixed_ip ip_address=10.10.10.201 --security группы по умолчанию vrrp_net
Привязать vip к плавающему ip
нейтронное плавание ip-create --port-id=3d7e70e9-cfcb-4aa9-95cc-60b5b6b67ec3 admin_floating_net
Добавьте allow_address_pairs к порту виртуальной машины для поддержки нескольких сетевых карт для нескольких сетевых карт.
Запросить порт виртуальной машины 1
нейтронный порт-лист | grep 10.10.10.6
Обновление порта виртуальной машины 1
обновление нейтронного порта df22ba59-9c58-41a5-9fa3-98b09e644fe5 - список разрешенных_адресных_пар =true тип =dict ip_address=10.10.10.201
Запросить порт виртуальной машины 2
нейтронный порт-лист | grep 10.10.10.7
Обновите порт виртуальной машины 2
обновление нейтронного порта 4c93d5b7-f26f-4136-a785-4db1479dbd81 -> список разрешенных_адресных_пар =true type=dict ip_address=10.10.10.201
1 ответ
У нас была такая же проблема в OpenStack Pike. Для нас это кажется исчезнувшим после обновления до Квинса. Какую версию вы используете?
В нашем случае правила iptables для snat / dnat в пространстве имен snat на узлах сети не были обновлены после отработки отказа.
Вы можете проверить это в вашей установке, позвонив:
ip netns exec snat-<uuid of your router> iptables -t nat -L
Вы должны увидеть одно правило snat и одно правило dnat для вашего плавающего IP.
Еще несколько ошибок Launchpad и PR для дальнейшего использования: