Следуя официальной документации, я пытаюсь развернуть Devstack
на Ubuntu 18.04 Server
ОС на виртуальном машина. Узел devstack имеет только одну сетевую карту (ens160), подключенную к сети со следующим CIDR 10.20.30.40/24
. Мне нужны мои экземпляры, доступные публично в этой сети (с 10.20.30.240 по 10.20.30.250). Итак, снова следующая официальная документация по плавающему IP Мне удалось сформировать этот local.conf
файл:
[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
PUBLIC_INTERFACE=ens160
HOST_IP=10.20.30.40
FLOATING_RANGE=10.20.30.40/24
PUBLIC_NETWORK_GATEWAY=10.20.30.1
Q_FLOATING_ALLOCATION_POOL=start=10.20.30.240,end=10.20.30.250
Это приведет к формированию br-ex
с глобальным IP-адресом 10.20.30.40
и вторичным IP-адресом 10.20.30.1
(шлюз уже существует в сети; не говорит ли параметр PUBLIC_NETWORK_GATEWAY
о реальном шлюзе в сети?)
Теперь, после успешного развертывания, отключение ufw
(согласно this), создав экземпляр cirros с соответствующей группой безопасности для ping и ssh и подключив плавающий IP-адрес, Я могу получить доступ только к своему экземпляру на моем узле devstack, а не во всей сети! Кроме того, из экземпляра cirros я не могу получить доступ к внешнему миру (хотя я могу получить доступ к внешнему миру из узла devstack)
Впоследствии, просмотрев это видео, я изменил файл local.conf
следующим образом:
[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
FLAT_INTERFACE=ens160
HOST_IP=10.20.30.40
FLOATING_RANGE=10.20.30.240/28
После успешного развертывания и настройки экземпляра я все еще могу получить доступ к своему экземпляру только на узле devstack, а не извне! Но хорошая новость в том, что я могу получить доступ к внешнему миру из экземпляра cirros.
Любая помощь будет оценена по достоинству!
Обновить
Во второй конфигурации, проверяя пакеты на tcpdump
при проверке связи экземпляра с плавающим IP-адресом, я заметил, что широковещательный пакет who-has
для плавающего IP-адреса экземпляра достигает узла стека разработки от сетевого маршрутизатора; однако ответ is-at
не генерируется, и поэтому пакеты ICMP не маршрутизируются на узел стека разработки и экземпляр.
Итак, с помощью некоторых уловок я создал ответ, и после этого все работает нормально; но, конечно, это не решение, и я полагаю, что стек разработчиков должен работать из коробки без каких-либо настроек, и, вероятно, это из-за неправильной конфигурации стека разработчиков.