Экземпляры DevStack недоступны за пределами узла devstack
Следуя официальной документации, я пытаюсь развернутьDevstack
на Ubuntu 18.04 Server
ОС на виртуальной машине. Узел devstack имеет только одну сетевую карту (ens160), подключенную к сети со следующим CIDR10.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
(в соответствии с этим), создав экземпляр 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-адреса экземпляра достигает узла devstack от сетевого маршрутизатора; однако нетis-at
генерируется ответ, и поэтому пакеты ICMP не маршрутизируются на узел devstack и экземпляр.
Итак, с помощью некоторых уловок я создал ответ, и после этого все работает нормально; но, конечно, это не решение, и я полагаю, что стек разработчиков должен работать из коробки без каких-либо настроек, и, вероятно, это из-за неправильной конфигурации стека разработчиков.
1 ответ
После 5 дней тестов, исследований и лекций я обнаружил следующее: виртуальная машина Openstack недоступна в локальной сети.
Введите следующие команды на devstack
узел:
echo 1 > /proc/sys/net/ipv4/conf/ens160/proxy_arp
iptables -t nat -A POSTROUTING -o ens160 -j MASQUERADE
Это поможет!
Ура!