[Openstack] [neutron] Openstack in openstack the dummy way = troubles (inception teaches)
Antonio Messina
antonio.s.messina at gmail.com
Sat May 2 22:01:55 UTC 2015
Hi all,
Next week I'm doing an internal OpenStack training for my collegues,
and since we have an OpenStack installation already up&running, I
thought it would be easier to have them setup an openstack cloud
*inside* our openstack testbed. However, I'm testing my guide[1] and I'm
having troubles...
For the sake of clarity, let's call "host-OO" the production
OpenStack, and "guest-OO" the openstack created using VMs in the
"host-OO". Similarly, we call "guest-compute" the compute node of the
guest-OO, (which is a VM in host-OO), and guest-VM a VM of the
guest-OO, so a VM running on guest-compute. If you get lost, pull out
your totem[2] :)
VMs in the host-OO have two interfaces: one in an external network,
accessible from our laptopts, and the other is an OpenStack internal
network (vxlan).
Guest-OO instead uses gre for tenant networks.
The Guest-OO cloud is configured, everything seems correctly
configured, but I have no connectivity between the guest-VM and the
guest-neutron node (VM of host-OO running neutron for guest-OO).
The guest-VM doesn't get an IP via dhcp, and when I configure it
manually and try to ping the ip address of the dhcp interface in
guest-neutron, I see the gre tunnel in the guest-compute but nothing
on the guest-neutron. Here is a tcpdump from the guest-compute:
root at compute-1:~# tcpdump -i any -n -v host 10.0.0.29 and ! tcp port 9696
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked),
capture size 65535 bytes
23:41:38.397703 IP (tos 0x0, ttl 64, id 482, offset 0, flags [DF],
proto GRE (47), length 70)
10.0.0.30 > 10.0.0.29: GREv0, Flags [key present], key=0x1, length 50
ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.99.0.3
tell 10.99.0.4, length 28
23:41:39.397619 IP (tos 0x0, ttl 64, id 483, offset 0, flags [DF],
proto GRE (47), length 70)
10.0.0.30 > 10.0.0.29: GREv0, Flags [key present], key=0x1, length 50
ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.99.0.3
tell 10.99.0.4, length 28
where 10.0.0.29 is the guest-neutron internal IP, 10.0.0.30 is the
guest-compute internal IP, 10.99.0.3 is the IP of the guest-VM and
10.99.0.4 the IP of the dhcp server on guest-neutron.
On the neutron node, however, tcpdump doesn't show these packets.
ovs-vsctl show on the guest-compute node seems fine:
cf38508b-cbdb-4961-b42e-f58e713c27cf
Bridge br-int
fail_mode: secure
Port "qvo7ae53e8e-f9"
tag: 2
Interface "qvo7ae53e8e-f9"
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Port br-int
Interface br-int
type: internal
Bridge br-tun
Port "gre-0a00001d"
Interface "gre-0a00001d"
type: gre
options: {df_default="true", in_key=flow,
local_ip="10.0.0.30", out_key=flow, remote_ip="10.0.0.29"}
Port br-tun
Interface br-tun
type: internal
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
ovs_version: "2.0.2"
and on the guest-neutron
cc51b98d-4dfc-4ce1-811f-f20de9e376f6
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-0a00001e"
Interface "gre-0a00001e"
type: gre
options: {df_default="true", in_key=flow,
local_ip="10.0.0.29", out_key=flow, remote_ip="10.0.0.30"}
Bridge br-int
fail_mode: secure
Port br-int
Interface br-int
type: internal
Port "tapcdd5b8ec-ad"
tag: 1
Interface "tapcdd5b8ec-ad"
type: internal
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
ovs_version: "2.0.2"
guest-compute and guest-neutron can of course ping each other.
I suspected an MTU issue, but mtu on the internal interface of
guest-compute and guest-neutron is already 1450, and I've tried
setting the mtu of the guest-VM to 1400, without success.
On the host-compute where guest-compute is running I can see the
packets when the guest-compute is pinging the guest-neutron:
23:45:30.421830 IP (tos 0x0, ttl 64, id 12813, offset 0, flags
[DF], proto UDP (17), length 134)
192.168.161.193.53785 > 192.168.161.194.4789: VXLAN, flags [I]
(0x08), vni 65537
IP (tos 0x0, ttl 64, id 15138, offset 0, flags [none], proto ICMP
(1), length 84)
10.0.0.29 > 10.0.0.30: ICMP echo reply, id 6979, seq 5, length 64
but when the guest-VM is pinging the guest-neutron I can't see any
packet coming.
I wonder if there is any known issue in encapsulating gre tunnels over
vxlan tunnels, or if I did something wrong with my installation (guest
or host...)
Thank you in advance, and sorry for the inception-like question :)
.a.
[1]: https://github.com/uzh/openstack-tutorial/tree/uzh-2015-may
[2]: http://inception.wikia.com/wiki/Totem
"Dreams feel real while we're in them. It's only when we wake up that
we realize something was actually strange. "
--
antonio.s.messina at gmail.com
antonio.messina at uzh.ch +41 (0)44 635 42 22
S3IT: Service and Support for Science IT http://www.s3it.uzh.ch/
University of Zurich
Winterthurerstrasse 190
CH-8057 Zurich Switzerland
More information about the Openstack
mailing list