La configuration est la suivante, poste de travail <-> serveur Maas <-> 3 VM - Instances
Maas Server et les VM sont déployés dans vSphere.
Eth1 du serveur Maas a 10.4.x.x qui agit en tant que gestionnaire DHCP pour les machines virtuelles. L'IP de mon poste de travail est 10.x.x.x et je peux me connecter au serveur Maas et aux VM via ssh. J'ai un nœud de calcul dédié et le nœud de réseau a deux interfaces. eth0 (br0) possède une adresse IP du serveur maas et eth1 (br-ex) obtient une adresse IP accessible au public de la plage 192.168.x.x (réseau externe)
Le problème est que je ne peux pas me connecter aux instances directement depuis mon poste de travail ou tout autre terminal de notre réseau. J'ai identifié le problème dans l'espace de noms du routeur. Je ne peux pas envoyer de ping à 8.8.8.8 depuis l'espace de noms du routeur à neutrons. Il est capable d'envoyer une requête ping à br-ex, mais affiche "destination inaccessible" lorsque j'exécute une commande ping sur 192.168.x.1. Veuillez regarder la sortie des commandes suivantes,
ip netns
qrouter-1ff7cd3f-7d73-4c7a-a9aa-0f8efb14a718
ip netns exec qrouter-1ff7cd3f-7d73-4c7a-a9aa-0f8efb14a718 ifconfig
lo Link encap: boucle locale
inet addr: 127.0.0.1 Masque: 255.0.0.0 inet6 addr: :: 1/128 Portée: Host UP LOOPBACK RUNNING MTU: 65536 Métrique: 1 paquets RX: 16 erreurs: 0 abandonné: 0 dépassements: 0 frame : 0 paquets TX: 16 erreurs: 0 abandonnés: 0 dépassements: 0 porteuse: 0 collisions: 0 txqueuelen: 0 octets RX: 1776 (1,7 Ko) octets TX: 1776 (1,7 Ko)qg-80014d1d-df Encap Link: Ethernet HWaddr fa: 16: 3e: b8: 62: 2e
inet addr: 192.168.xx Bcast: 192.168.x.255 Mask: 255.255.255.0 inet6 addr: fe80 :: f816: 3eff: feb8: 622e/64 Champ d'application: Link UP BROADCAST RUNNING MULTICAST MTU: 1500 Metric: 1 paquets RX: 21036 erreurs: 0 abandonné: 0 dépassements: 0 trame: 0 paquets TX: 3095 erreurs: 0 abandonné: 0 dépassements: 0 opérateur: 0 collisions: 0 txqueuelen: 1000 octets RX: 4857288 (4,8 Mo) octets TX: 1047570 (1,0 Mo)ip netns exec qrouter-1ff7cd3f-7d73-4c7a-a9aa-0f8efb14a718 Liste de routes ip
par défaut via 192.168.x.1 dev qg-80014d1d-df
192.168.x.0/24 dev qg-80014d1d-df proto kernel scope link src 192.168.x.x
J'ai vu des configurations de neutrons où l'interface du routeur (qg-80014d1d-df) est incluse dans le pont br-ex. Le diagramme à openstack.org pour le dépannage des neutrons montre également que br-ex devrait contenir une interface 'qg'.
Mais dans mon nœud, cela montre différent,
show ovs-vsctl
f50f0af5-a5ab-4ab8-935a-9eaf71b40eea
Pont br-int
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"
Ici, br-ex obtient une interface supplémentaire, mais c'est "tap". La valeur numérique pour cette interface 'tap' et 'qg' est cependant la même. J'ai vérifié les fichiers journaux sur le nœud de calcul et le contrôleur, mais je n'ai rien trouvé d'important. Je peux générer des instances et leur attribuer des IP flottantes. Je peux également envoyer une requête ping à br-ex, mais pas à l'interface du routeur. Je ne sais pas si le problème est causé par l'interface "tap" mais il n'y a pas de flux entre l'espace de noms du routeur et le monde extérieur. Une autre pensée m'est venue à l'esprit si le problème était causé par VMware vSphere !!!
Une chose doit être mentionnée, lors de la publication des sorties, il n'y a qu'un réseau externe et un routeur pour vérifier la connectivité. Il n'y a aucune instance ou réseau interne.
Je suis coincé sur cette chose comme pour toujours. Toute suggestion serait très appréciée.
J'ai une configuration très similaire, donc je vais vous montrer ma configuration, peut-être que cela vous aidera.
Tous les nœuds sont déployés avec maas et juju et chaque nœud possède deux interfaces:
J'ai installé Openstack à l'aide de ces guides d'arborescence
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 (je ne peux pas le coller en tant que lien, en raison de ma faible réputation askubuntu)
Ma configuration réseau sur des nœuds normaux:
#/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
sur le nœud du réseau de neutrons (quantique):
#/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
sur le réseau, j'ai également édité /etc/sysctl.conf et décommenté ces lignes
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
puis relodez les changements
# sysctl -p
Après avoir enrôlé les nœuds dans maas, je commence à déployer les charmes juju Openstack.
Configuration de la pile ouverte après l'installation via Horizon:
En tant qu'administrateur, j'ai fait:
En tant qu'utilisateur, je l'ai fait:
La configuration réseau après le déploiement ressemble à ceci:
#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"
Espaces de noms de mise en réseau
ubuntu@fair-stone:~$ ip netns list
qdhcp-9d699ab8-940b-478e-ac98-ba3fd38e5d9d
qrouter-a2e0f664-e969-4df1-a2df-16adfbe82cf3
Liste des interfaces dans l'espace de noms 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
Table de routage dans l'espace de noms 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 dans l'espace de noms 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
Règles nat IPtables dans l'espace de noms 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