Juju неверно конфигурирует нейтронную установку?! Не удается подключиться к экземплярам
Настройка выглядит следующим образом: рабочая станция <-> сервер Maas <-> 3 виртуальных машины - экземпляры
Сервер Maas и виртуальные машины развернуты в vSphere.
Сервер eth1 сервера Maas имеет 10.4.xx, который выступает в роли диспетчера DHCP для виртуальных машин. IP-адрес моей рабочей станции - 10.xxx, и я могу подключиться к серверу Maas и виртуальной машине через ssh. У меня есть один выделенный вычислительный узел, а сетевой узел имеет два интерфейса. eth0 (br0) имеет IP-адрес от maas-сервера, а eth1 (br-ex) получает общедоступный IP-адрес из диапазона 192.168.xx (внешняя сеть)
Проблема в том, что я не могу подключиться к экземплярам напрямую со своей рабочей станции или любого другого терминала в нашей сети. Я идентифицировал проблему, чтобы быть в пределах пространства имен маршрутизатора. Я не могу пропинговать 8.8.8.8 из пространства имен нейтронного маршрутизатора. Он может пропинговать br-ex, но показывает "пункт назначения недоступен", когда я пингую 192.168.x.1. Пожалуйста, посмотрите на вывод следующих команд:
ip netns
qrouter-1ff7cd3f-7d73-4c7a-a9aa-0f8efb14a718
ip netns exec qrouter-1ff7cd3f-7d73-4c7a-a9aa-0f8efb14a718 ifconfig
lo Link encap: Local Loopback
inet addr: 127.0.0.1 маска:255.0.0.0 inet6 addr:::1/128 сфера: хост UP LOOPBACK RUNNING MTU:65536 Метрика: 1 пакеты RX:16 ошибок: 0 отброшено: 0 переполнений: 0 кадр: 0 пакеты TX:16 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0 коллизий:0 txqueuelen:0 байтов RX:1776 (1,7 КБ) байтов TX:1776 (1,7 КБ)qg-80014d1d-df Канал связи: Ethernet HWaddr fa:16: 3e: b8: 62: 2e
inet addr: 192.168.xx Bcast:192.168.x.255 Маска:255.255.255.0 inet6 адрес: fe80::f816:3eff:feb8:622e/64 Область действия: соединить UP MRODCAST MULTICAST MTU:1500 Метрика: 1 пакеты RX:21036 ошибки: 0 отброшено: 0 переполнений: 0 кадр: 0 пакетов TX:3095 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0 коллизий:0 txqueuelen:1000 байтов RX:4857288 (4,8 МБ) байтов TX:1047570 (1,0 МБ)ip netns exec qrouter-1ff7cd3f-7d73-4c7a-a9aa-0f8efb14a718 ip route list
по умолчанию через 192.168.x.1 dev qg-80014d1d-df
192.168.x.0 / 24 dev qg-80014d1d-df ссылка на область действия ядра протока src 192.168.xx
Я видел нейтронные установки, где интерфейс маршрутизатора ( qg-80014d1d-df) включен в мост br-ex. Также диаграмма openstack.org для поиска неисправностей нейтронов показывает, что br-ex должен содержать интерфейс 'qg'.
Но в моем узле это показывает по-другому,
ovs-vsctl show
f50f0af5-a5ab-4ab8-935a-9eaf71b40eea
Мост бр-инт
fail_mode: secure
Port br-int
Interface br-int
type: internal
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Bridge br-ex
Port "tap80014d1d-df"
Interface "tap80014d1d-df"
Port br-ex
Interface br-ex
type: internal
Port "eth1"
Interface "eth1"
Bridge br-tun
Port br-tun
Interface br-tun
type: internal
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
Port "gre-0a04546a"
Interface "gre-0a04546a"
type: gre
options: {in_key=flow, local_ip="10.4.x.x", out_key=flow, remote_ip="10.4.x.x"}
ovs_version: "2.0.2"
Здесь br-ex получает дополнительный интерфейс, но это "тап". Числовые значения для этого интерфейса "tap" и "qg" одинаковы. Я проверил файлы журналов как на вычислительном узле, так и на контроллере, но не нашел ничего существенного. Я могу создавать экземпляры и назначать им плавающие IP. Я также могу пропинговать br-ex, но не интерфейс маршрутизатора в нем. Не уверен, что проблема вызвана интерфейсом "tap", но нет потока между пространством имен маршрутизатора и внешним миром. Еще одна мысль пришла мне в голову, если проблема вызвана VMware vSphere!!!
Следует упомянуть одну вещь, при публикации результатов есть только внешняя сеть и маршрутизатор для проверки подключения. Там нет ни экземпляров ни внутренней сети.
Я застрял на этой вещи, как навсегда. Любое предложение будет высоко оценено.
1 ответ
У меня очень похожая настройка, поэтому я покажу вам свою конфигурацию, возможно, это поможет вам.
Все узлы развернуты с помощью maas и juju, и каждый узел имеет два интерфейса:
- eth0 - пробуждение по локальной сети, загрузка по локальной сети, сеть maas - 10.5.0.0/16, gw 10.5.0.1
- eth1 - внешняя сеть компании - 172.16.62.0/24 ГВт 172.16.62.254
Я установил Openstack с помощью этого дерева руководств
http://linux.dell.com/files/whitepapers/Deploying_Workloads_With_Juju_And_MAAS-14.04LTS-Edition.pdf
h20564.www2.hp.com/hpsc/doc/public/display?docId=c04330703 (я не могу вставить его как ссылку из-за моей низкой репутации в Askubuntu)
Моя настройка сети на обычных узлах:
#/etc/network/interfaces
auto lo
auto eth0
iface eth0 inet manual
auto juju-br0
iface juju-br0 inet dhcp
bridge_ports eth0
auto eth1
iface eth1 inet static
address 172.16.62.10
netmask 255.255.255.0
#gateway commented
#gateway 172.16.62.254
$route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.5.0.1 0.0.0.0 UG 0 0 0 juju-br0
10.5.0.0 0.0.0.0 255.255.0.0 U 0 0 0 juju-br0
172.16.62.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
на сетевом нейтронном (квантовом) узле:
#/etc/network/interfaces
auto lo
auto eth0
iface eth0 inet manual
auto juju-br0
iface juju-br0 inet dhcp
bridge_ports eth0
auto eth1
iface eth1 inet manual
up ip link set dev $IFACE up
down ip link set dev $IFACE down
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.5.0.1 0.0.0.0 UG 0 0 0 juju-br0
10.5.0.0 0.0.0.0 255.255.0.0 U 0 0 0 juju-br0
в сети я также отредактировал /etc/sysctl.conf и раскомментировал эти строки
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
затем перемести изменения
# sysctl -p
После зачисления узлов в maas я начинаю использовать чары Juju Openstack.
Конфигурация открытого стека после установки через Horizon:
Как админ я сделал:
- загрузить изображение цирроса,
- создать нового арендатора и пользователя
- создать новую внешнюю сеть в диапазоне 172.16.62.192/26 моей компании, но таким образом, чтобы он не перекрывался с обычным извлечением адреса DHCP, который составляет 172.16.62.10 - 172.16.62.100
- создать роутер и установить шлюз во внешнюю сеть
Как пользователь я сделал:
- создать новую частную сеть 192.168.0.1
- добавить новый интерфейс к маршрутизатору (создан в предыдущих шагах)
- загрузить новый экземпляр
- изменить группу безопасности по умолчанию и разрешить соединения ICMP(ping) и ssh
Конфигурация сети после развертывания выглядит следующим образом:
#list of ovs ports
ubuntu@fair-stone:~$ sudo ovs-vsctl show
b4a92be0-56d3-4cd5-b113-9657c21daf8a
Bridge br-ex
Port br-ex
Interface br-ex
type: internal
Port "tapf199827f-4f" #interface appears after creation new
Interface "tapf199827f-4f"
Port "eth1"
Interface "eth1"
Bridge br-tun
Port br-tun
Interface br-tun
type: internal
Port "gre-0a050104"
Interface "gre-0a050104"
type: gre
options: {in_key=flow, local_ip="10.5.1.1", out_key=flow, remote_ip="10.5.1.4"}
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
Bridge br-int
fail_mode: secure
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Port "tap08438cff-fc"
tag: 1
Interface "tap08438cff-fc"
Port "tap592b1f29-da"
tag: 1
Interface "tap592b1f29-da"
Port br-int
Interface br-int
type: internal
ovs_version: "2.0.2"
Сетевые пространства имен
ubuntu@fair-stone:~$ ip netns list
qdhcp-9d699ab8-940b-478e-ac98-ba3fd38e5d9d
qrouter-a2e0f664-e969-4df1-a2df-16adfbe82cf3
Список интерфейсов в пространстве имен qrouter-xxx
ubuntu@fair-stone:~$ sudo ip netns exec qrouter-a2e0f664-e969-4df1-a2df-16adfbe82cf3 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: qr-08438cff-fc: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether fa:16:3e:61:dd:b7 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.1/24 brd 192.168.0.255 scope global qr-08438cff-fc
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe61:ddb7/64 scope link
valid_lft forever preferred_lft forever
3: qg-f199827f-4f: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether fa:16:3e:1b:c3:d7 brd ff:ff:ff:ff:ff:ff
inet 172.16.62.193/26 brd 172.16.62.255 scope global qg-f199827f-4f #router interface
valid_lft forever preferred_lft forever
inet 172.16.62.194/32 brd 172.16.62.194 scope global qg-f199827f-4f #instance floating ip addres
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe1b:c3d7/64 scope link
valid_lft forever preferred_lft forever
Таблица маршрутизации в пространстве имен qrouter-xxxx
ubuntu@fair-stone:~$ sudo ip netns exec qrouter-a2e0f664-e969-4df1-a2df-16adfbe82cf3 ip r
default via 172.16.62.254 dev qg-f199827f-4f
172.16.62.192/26 dev qg-f199827f-4f proto kernel scope link src 172.16.62.193
192.168.0.0/24 dev qr-08438cff-fc proto kernel scope link src 192.168.0.1
Iptables в пространстве имен qrouter-xxx
ubuntu@fair-stone:~$ sudo ip netns exec qrouter-a2e0f664-e969-4df1-a2df-16adfbe82cf3 iptables -t nat -L -nv
Chain PREROUTING (policy ACCEPT 1721 packets, 628K bytes)
pkts bytes target prot opt in out source destination
1848 635K neutron-vpn-agen-PREROUTING all -- * * 0.0.0.0/0 0.0.0.0/0
Chain INPUT (policy ACCEPT 908 packets, 372K bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 8 packets, 542 bytes)
pkts bytes target prot opt in out source destination
8 542 neutron-vpn-agen-OUTPUT all -- * * 0.0.0.0/0 0.0.0.0/0
Chain POSTROUTING (policy ACCEPT 98 packets, 6014 bytes)
pkts bytes target prot opt in out source destination
108 6773 neutron-vpn-agen-POSTROUTING all -- * * 0.0.0.0/0 0.0.0.0/0
104 6485 neutron-postrouting-bottom all -- * * 0.0.0.0/0 0.0.0.0/0
Chain neutron-postrouting-bottom (1 references)
pkts bytes target prot opt in out source destination
104 6485 neutron-vpn-agen-snat all -- * * 0.0.0.0/0 0.0.0.0/0
Chain neutron-vpn-agen-OUTPUT (1 references)
pkts bytes target prot opt in out source destination
0 0 DNAT all -- * * 0.0.0.0/0 172.16.62.194 to:192.168.0.3
Chain neutron-vpn-agen-POSTROUTING (1 references)
pkts bytes target prot opt in out source destination
4 288 ACCEPT all -- !qg-f199827f-4f !qg-f199827f-4f 0.0.0.0/0 0.0.0.0/0 ! ctstate DNAT
Chain neutron-vpn-agen-PREROUTING (1 references)
pkts bytes target prot opt in out source destination
15 900 REDIRECT tcp -- * * 0.0.0.0/0 169.254.169.254 tcp dpt:80 redir ports 9697
97 5940 DNAT all -- * * 0.0.0.0/0 172.16.62.194 to:192.168.0.3
Chain neutron-vpn-agen-float-snat (1 references)
pkts bytes target prot opt in out source destination
6 471 SNAT all -- * * 192.168.0.3 0.0.0.0/0 to:172.16.62.194
Chain neutron-vpn-agen-snat (1 references)
pkts bytes target prot opt in out source destination
104 6485 neutron-vpn-agen-float-snat all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 SNAT all -- * * 192.168.0.0/24 0.0.0.0/0 to:172.16.62.193
IP-таблицы нат правил в пространстве имен qrouter-xxx
ubuntu@fair-stone:~$ sudo ip netns exec qrouter-a2e0f664-e969-4df1-a2df-16adfbe82cf3 iptables -S -t nat
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-N neutron-postrouting-bottom
-N neutron-vpn-agen-OUTPUT
-N neutron-vpn-agen-POSTROUTING
-N neutron-vpn-agen-PREROUTING
-N neutron-vpn-agen-float-snat
-N neutron-vpn-agen-snat
-A PREROUTING -j neutron-vpn-agen-PREROUTING
-A OUTPUT -j neutron-vpn-agen-OUTPUT
-A POSTROUTING -j neutron-vpn-agen-POSTROUTING
-A POSTROUTING -j neutron-postrouting-bottom
-A neutron-postrouting-bottom -j neutron-vpn-agen-snat
-A neutron-vpn-agen-OUTPUT -d 172.16.62.194/32 -j DNAT --to-destination 192.168.0.3
-A neutron-vpn-agen-POSTROUTING ! -i qg-f199827f-4f ! -o qg-f199827f-4f -m conntrack ! --ctstate DNAT -j ACCEPT
-A neutron-vpn-agen-PREROUTING -d 169.254.169.254/32 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 9697
-A neutron-vpn-agen-PREROUTING -d 172.16.62.194/32 -j DNAT --to-destination 192.168.0.3
-A neutron-vpn-agen-float-snat -s 192.168.0.3/32 -j SNAT --to-source 172.16.62.194
-A neutron-vpn-agen-snat -j neutron-vpn-agen-float-snat
-A neutron-vpn-agen-snat -s 192.168.0.0/24 -j SNAT --to-source 172.16.62.193