[Openstack] Quantum floating IP SNAT not working
Sylvain Bauza
sylvain.bauza at digimind.com
Tue Feb 19 20:25:47 UTC 2013
Damn. Found it.
I stupidly forgot to add manual route to 192.168.1.252 for qg (gateway)
network !
I had all the keys, I knew that for metadata traffic, you need external
mapping to router IP, I saw that iptables was saying 'outbound traffic
thru 192.168.10.1' (ie. qg - router), but I didn't noticed to add it.
Correct route is as follows :
sylvain at folsom02:~$ route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use
Iface
0.0.0.0 192.168.1.252 0.0.0.0 UG 0 0 0
qg-f2397006-20
0.0.0.0 192.168.1.252 0.0.0.0 UG 0 0 0 br-ex
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0
tap2ed3cd8a-03
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0
qr-f76e4668-fa
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
172.16.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
192.168.1.252 0.0.0.0 255.255.255.255 UH 0 0 0
qg-f2397006-20
192.168.1.252 0.0.0.0 255.255.255.255 UH 0 0 0 br-ex
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0
qg-f2397006-20
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 br-ex
(I also removed the default entry for eth0 (mngmt interface), as it was
nonsense).
-Sylvain
Le 19/02/2013 20:39, Sylvain Bauza a écrit :
> Hi,
>
> I have a classic "Provider Network, private networks" as follows :
> - internal network 10.0.0.0/24
> - external network 192.168.10.0/24 gw 192.168.1.252 (I know, I have
> to add a manual route on both gw and network node)
> - br-ex is having 192.168.10.254
>
> I have a floating IP 192.168.10.2 NAT'd to 10.0.0.4 and my external
> router IP address is 192.168.10.1
>
> For some reason, on br-ex, I see traffic from 10.0.0.4 to
> 192.168.1.154 (my own computer) with tcpdump :
> 19:55:58.938524 00:13:8f:51:96:9d > bc:ae:c5:d6:9d:60, ethertype IPv4
> (0x0800), length 98: 10.0.0.4 > 192.168.1.154: ICMP echo request, id
> 62465, seq 1189, length 64
>
> I should at least see a second ICMP request from 192.168.10.2 to
> 192.168.1.154 (with same seq. number) if L3 agent would work correctly.
> DNAT is working correctly : I can ping from 192.168.1.154 to
> 192.168.10.2.
> As a consequence, I can't access Internet from my VMs, but I can reach
> them thru SSH.
>
> Do you have any idea for the root cause ?
> As said, the problem is bounded to a SNAT issue with Quantum L3 agent,
> as DNAT is working perfectly.
>
> Please find below my iproute2 status, my route configuration, plus
> iptables -t nat.
> sylvain at folsom02:~$ route -n
> Table de routage IP du noyau
> Destination Passerelle Genmask Indic Metric Ref Use
> Iface
> 0.0.0.0 192.168.1.252 0.0.0.0 UG 0 0 0 br-ex
> 0.0.0.0 172.16.0.2 0.0.0.0 UG 0 0 0 eth0
> 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0
> tap2ed3cd8a-03
> 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0
> qr-f76e4668-fa
> 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0
> eth0
> 172.16.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
> 192.168.1.252 0.0.0.0 255.255.255.255 UH 0 0 0 br-ex
> 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0
> qg-f2397006-20
> 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 br-ex
>
> sylvain at folsom02:~$ ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
> inet 127.0.0.1/8 scope host lo
> inet6 ::1/128 scope host
> valid_lft forever preferred_lft forever
> 2: eth2: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc
> pfifo_fast state UP qlen 1000
> link/ether 00:13:8f:51:96:9d brd ff:ff:ff:ff:ff:ff
> 3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
> state UNKNOWN qlen 1000
> link/ether 00:e0:7d:b5:df:ae brd ff:ff:ff:ff:ff:ff
> inet 172.16.0.2/20 brd 172.16.15.255 scope global eth0
> inet6 fe80::2e0:7dff:feb5:dfae/64 scope link
> valid_lft forever preferred_lft forever
> 6: br-ex: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc
> noqueue state UNKNOWN
> link/ether 00:13:8f:51:96:9d brd ff:ff:ff:ff:ff:ff
> inet 192.168.10.254/24 scope global br-ex
> 11: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
> link/ether ca:0d:5d:80:15:49 brd ff:ff:ff:ff:ff:ff
> 12: qr-f76e4668-fa: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500
> qdisc noqueue state UNKNOWN
> link/ether fa:16:3e:4a:82:b6 brd ff:ff:ff:ff:ff:ff
> inet 10.0.0.1/24 brd 10.0.0.255 scope global qr-f76e4668-fa
> inet6 fe80::f816:3eff:fe4a:82b6/64 scope link
> valid_lft forever preferred_lft forever
> 13: qg-f2397006-20: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500
> qdisc noqueue state UNKNOWN
> link/ether fa:16:3e:e1:95:20 brd ff:ff:ff:ff:ff:ff
> inet 192.168.10.1/24 brd 192.168.10.255 scope global qg-f2397006-20
> inet 192.168.10.2/32 brd 192.168.10.2 scope global qg-f2397006-20
> inet6 fe80::f816:3eff:fee1:9520/64 scope link
> valid_lft forever preferred_lft forever
> 14: tap2ed3cd8a-03: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500
> qdisc noqueue state UNKNOWN
> link/ether fa:16:3e:8f:3c:92 brd ff:ff:ff:ff:ff:ff
> inet 10.0.0.2/24 brd 10.0.0.255 scope global tap2ed3cd8a-03
> inet6 fe80::f816:3eff:fe8f:3c92/64 scope link
> valid_lft forever preferred_lft forever
> 15: br-tun: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
> link/ether 4e:46:e7:ec:52:49 brd ff:ff:ff:ff:ff:ff
>
> sylvain at folsom02:~$ sudo iptables -t nat -L -n
> Chain PREROUTING (policy ACCEPT)
> target prot opt source destination
> quantum-l3-agent-PREROUTING all -- 0.0.0.0/0 0.0.0.0/0
>
> Chain INPUT (policy ACCEPT)
> target prot opt source destination
>
> Chain OUTPUT (policy ACCEPT)
> target prot opt source destination
> quantum-l3-agent-OUTPUT all -- 0.0.0.0/0 0.0.0.0/0
>
> Chain POSTROUTING (policy ACCEPT)
> target prot opt source destination
> quantum-l3-agent-POSTROUTING all -- 0.0.0.0/0 0.0.0.0/0
> quantum-postrouting-bottom all -- 0.0.0.0/0 0.0.0.0/0
>
> Chain quantum-l3-agent-OUTPUT (1 references)
> target prot opt source destination
> DNAT all -- 0.0.0.0/0 192.168.10.2 to:10.0.0.4
>
> Chain quantum-l3-agent-POSTROUTING (1 references)
> target prot opt source destination
> ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 !
> ctstate DNAT
> ACCEPT all -- 10.0.0.0/24 172.16.0.1
>
> Chain quantum-l3-agent-PREROUTING (1 references)
> target prot opt source destination
> DNAT tcp -- 0.0.0.0/0 169.254.169.254 tcp
> dpt:80 to:172.16.0.1:8775
> DNAT all -- 0.0.0.0/0 192.168.10.2 to:10.0.0.4
>
> Chain quantum-l3-agent-float-snat (1 references)
> target prot opt source destination
> SNAT all -- 10.0.0.4 0.0.0.0/0 to:192.168.10.2
>
> Chain quantum-l3-agent-snat (1 references)
> target prot opt source destination
> quantum-l3-agent-float-snat all -- 0.0.0.0/0 0.0.0.0/0
> SNAT all -- 10.0.0.0/24 0.0.0.0/0 to:192.168.10.1
>
> Chain quantum-postrouting-bottom (1 references)
> target prot opt source destination
> quantum-l3-agent-snat all -- 0.0.0.0/0 0.0.0.0/0
>
>
> Thanks for your help,
> -Sylvain
More information about the Openstack
mailing list