Hello,

 

I'm using OpenStack icehouse and OpenvSwitch 2.1.3

The problem is that packets from VM's can go out, but never return to VM's.

 

#

# Cluster setup is as follows:

#

Compute node 2: 

    Vxlan: 192.168.100.2

Compute node 4: 

    Vxlan: 192.168.100.4

Network node:

    Vxlan: 192.168.100.1

   External IP: 10.61.4.194

    Gateway IP (physical router): 10.61.4.193

 

#

# Compute node 2:

#

VM IP: 192.168.102.18/24

FloatingIP : 10.61.4.195

 

 

All data below is collected while running "ping 8.8.8.8" from VM
(192.168.102.18).

As you can see icmp packet is successfully sent to 8.8.8.8 (192.168.102.18
-> 10.61.4.195 -> 8.8.8.8)

But the packet is only returning to external IP and never pass that point
(8.8.8.8 -> 10.61.4.195)

 

I'm either missing something really stupid or there is a defect somewhere.

 

BR-INT and BR-EX bridges are connected by int-br-ex and phy-br-ex ports
(patch):

BR-INT <-> int-br-ex <-> int-br-phy <-> BR-EX

 

Both ends (VM and external) are on  the same (qrouter) namespace, but
different bridges.

Because from the qrouter namespace I can reach both ends (VM and external) I
think problem is somewhere in transferring packet from phy-br-ex (br-ex) to
int-br-ex (br-int).

 

Can anyone take a look? It's driving me crazy as I can't find whats wrong
for a long. Any help on tracing the root cause would be highly appreciated.

 

 

 

#

# Network node

# Namespace: qrouter-5078354f-0214-455d-bb4d-282b6d98fb86

# QR- is on br-int tag:1, QG- is on br-ex no tag

#

400: qr-aa72cd87-16: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
noqueue state UNKNOWN

    link/ether fa:16:3e:29:a5:54 brd ff:ff:ff:ff:ff:ff

    inet 192.168.102.1/24 brd 192.168.102.255 scope global qr-aa72cd87-16

401: qg-d6beba08-56: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
noqueue state UNKNOWN

    link/ether fa:16:3e:26:a7:52 brd ff:ff:ff:ff:ff:ff

    inet 10.61.4.194/26 brd 10.61.4.255 scope global qg-d6beba08-56

    inet 10.61.4.195/32 brd 10.61.4.195 scope global qg-d6beba08-56

 

 

#

# Routing table (NETWORK NODE)

#

# ip netns exec qrouter-5078354f-0214-455d-bb4d-282b6d98fb86 ip r

default via 10.61.4.193 dev qg-d6beba08-56

10.61.4.192/26 dev qg-d6beba08-56  proto kernel  scope link  src 10.61.4.194

192.168.102.0/24 dev qr-aa72cd87-16  proto kernel  scope link  src
192.168.102.1

 

#

# Routing is working

#

# ip netns exec qrouter-5078354f-0214-455d-bb4d-282b6d98fb86 ip route get to
192.168.102.18

192.168.102.18 dev qr-aa72cd87-16  src 192.168.102.1

    cache

 

# ip netns exec qrouter-5078354f-0214-455d-bb4d-282b6d98fb86 ip route get to
8.8.8.8

8.8.8.8 via 10.61.4.193 dev qg-d6beba08-56  src 10.61.4.194

    cache

 

 

#

# Ping from qrouter namespace work both ways

#

 

# Goes through br-int -> br-tun -> . -> Compute-node -> VM

# ip netns exec qrouter-5078354f-0214-455d-bb4d-282b6d98fb86 ping
192.168.102.18

PING 192.168.102.18 (192.168.102.18) 56(84) bytes of data.

64 bytes from 192.168.102.18: icmp_seq=1 ttl=64 time=1.33 ms

 

# Goes through br-ex -> . -> 8.8.8.8

# ip netns exec qrouter-5078354f-0214-455d-bb4d-282b6d98fb86 ping 8.8.8.8

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

64 bytes from 8.8.8.8: icmp_seq=1 ttl=40 time=9.34 ms

 

 

#

# TCPDUMP (NETWORK NODE)

#

# ip netns exec qrouter-5078354f-0214-455d-bb4d-282b6d98fb86 tcpdump -eni
any icmp

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535
bytes

10:22:25.605747  In fa:16:3e:58:82:0c ethertype IPv4 (0x0800), length 100:
192.168.102.18 > 8.8.8.8: ICMP echo request, id 6972, seq 1548, length 64

10:22:25.605816 Out fa:16:3e:26:a7:52 ethertype IPv4 (0x0800), length 100:
10.61.4.195 > 8.8.8.8: ICMP echo request, id 6972, seq 1548, length 64

10:22:25.615094   M a7:00:81:00:10:2b ethertype IPv4 (0x0800), length 100:
8.8.8.8 > 10.61.4.195: ICMP echo reply, id 6972, seq 1548, length 64

 

 

 

 

 

#

# Bridges on network node

#

# !!!! enp21s0f0.43 is eth interface with configured vlan 43

#

ed943e95-fe6a-4760-8053-f178a9628087

    Bridge br-int

        fail_mode: secure

        Port patch-tun

            Interface patch-tun

                type: patch

                options: {peer=patch-int}

        Port "tapd89063af-88"

            tag: 1

            Interface "tapd89063af-88"

                type: internal

        Port br-int

            Interface br-int

                type: internal

        Port "qr-aa72cd87-16"

            tag: 1

            Interface "qr-aa72cd87-16"

                type: internal

        Port int-br-ex

            Interface int-br-ex

    Bridge br-ex

        Port phy-br-ex

            Interface phy-br-ex

        Port "enp21s0f0.43"

            Interface "enp21s0f0.43"

        Port "qg-d6beba08-56"

            Interface "qg-d6beba08-56"

                type: internal

        Port br-ex

            Interface br-ex

                type: internal

    Bridge br-tun

        Port "vxlan-c0a86402"

            Interface "vxlan-c0a86402"

                type: vxlan

                options: {in_key=flow, local_ip="192.168.100.1",
out_key=flow, remote_ip="192.168.100.2"}

        Port br-tun

            Interface br-tun

                type: internal

        Port "vxlan-c0a86404"

            Interface "vxlan-c0a86404"

               type: vxlan

                options: {in_key=flow, local_ip="192.168.100.1",
out_key=flow, remote_ip="192.168.100.4"}

        Port patch-int

            Interface patch-int

                type: patch

                options: {peer=patch-tun}

    ovs_version: "2.1.3"

 

 

 

#

# BR-EX FLOWS (NETWORK NODE)

#

1(enp21s0f0.43): addr:00:10:18:9a:9d:94

3(qg-d6beba08-56): addr:00:10:18:9a:9d:94

6(phy-br-ex): addr:b6:1a:01:a3:3d:d4

LOCAL(br-ex): addr:00:10:18:9a:9d:94

 

NXST_FLOW reply (xid=0x4):

cookie=0x0, duration=6857.462s, table=0, n_packets=3141, n_bytes=285916,
idle_age=0, priority=1 actions=NORMAL

cookie=0x0, duration=6856.934s, table=0, n_packets=17, n_bytes=1330,
idle_age=1321, priority=2,in_port=6 actions=drop

 

 

 

#

# BR-INT FLOWS (NETWORK NODE)

#

3(tapd89063af-88): addr:0e:4e:e0:21:de:d9

4(qr-aa72cd87-16): addr:0e:4e:e0:21:de:d9

9(int-br-ex): addr:66:81:b9:c0:81:c0

10(patch-tun): addr:0e:4e:e0:21:de:d9

LOCAL(br-int): addr:3a:24:64:75:f6:40

 

NXST_FLOW reply (xid=0x4):

cookie=0x0, duration=6881.558s, table=0, n_packets=1459, n_bytes=138446,
idle_age=0, priority=1 actions=NORMAL

cookie=0x0, duration=6880.812s, table=0, n_packets=3197, n_bytes=291028,
idle_age=0, priority=2,in_port=9 actions=drop

cookie=0x0, duration=6881.511s, table=22, n_packets=0, n_bytes=0,
idle_age=6881, priority=0 actions=drop

 

 

 

#

# BR-TUN FLOWS (NETWORK NODE)

#

1(patch-int): addr:f2:b8:62:8a:cc:5f

2(vxlan-c0a86402): addr:5e:c6:a6:61:8b:67

3(vxlan-c0a86404): addr:5a:d8:91:57:f7:6c

LOCAL(br-tun): addr:da:a7:dc:d9:1c:41

 

NXST_FLOW reply (xid=0x4):

cookie=0x0, duration=7021.019s, table=0, n_packets=0, n_bytes=0,
idle_age=7021, priority=0 actions=drop

cookie=0x0, duration=7020.215s, table=0, n_packets=0, n_bytes=0,
idle_age=7020, priority=1,in_port=3 actions=resubmit(,3)

cookie=0x0, duration=7021.067s, table=0, n_packets=54, n_bytes=2716,
idle_age=1, priority=1,in_port=1 actions=resubmit(,1)

cookie=0x0, duration=7020.360s, table=0, n_packets=1554, n_bytes=149884,
idle_age=0, priority=1,in_port=2 actions=resubmit(,3)

cookie=0x0, duration=7020.918s, table=1, n_packets=3, n_bytes=126,
idle_age=3693, priority=1,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=resubmit(,21)

cookie=0x0, duration=7020.968s, table=1, n_packets=51, n_bytes=2590,
idle_age=1, priority=1,dl_dst=00:00:00:00:00:00/01:00:00:00:00:00
actions=resubmit(,20)

cookie=0x0, duration=7020.868s, table=2, n_packets=0, n_bytes=0,
idle_age=7020, priority=0 actions=drop

cookie=0x0, duration=7020.819s, table=3, n_packets=0, n_bytes=0,
idle_age=7020, priority=0 actions=drop

cookie=0x0, duration=7019.502s, table=3, n_packets=1554, n_bytes=149884,
idle_age=0, priority=1,tun_id=0x10001 actions=mod_vlan_vid:1,resubmit(,10)

cookie=0x0, duration=7020.769s, table=10, n_packets=1554, n_bytes=149884,
idle_age=0, priority=1
actions=learn(table=20,hard_timeout=300,priority=1,NXM_OF_VLAN_TCI[0..11],NX
M_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:0->NXM_OF_VLAN_TCI[],load:NXM_NX_TUN_ID
[]->NXM_NX_TUN_ID[],output:NXM_OF_IN_PORT[]),output:1

cookie=0x0, duration=7020.720s, table=20, n_packets=0, n_bytes=0,
idle_age=7020, priority=0 actions=resubmit(,21)

cookie=0x0, duration=1491.217s, table=20, n_packets=0, n_bytes=0,
hard_timeout=300, idle_age=1491, hard_age=0,
priority=1,vlan_tci=0x0001/0x0fff,dl_dst=fa:16:3e:58:82:0c
actions=load:0->NXM_OF_VLAN_TCI[],load:0x10001->NXM_NX_TUN_ID[],output:2

cookie=0x0, duration=4926.186s, table=20, n_packets=45, n_bytes=2338,
idle_age=1, priority=2,dl_dst=fa:16:3e:58:82:0c
actions=load:0->NXM_OF_VLAN_TCI[],load:0x10001->NXM_NX_TUN_ID[],output:2

cookie=0x0, duration=7020.671s, table=21, n_packets=0, n_bytes=0,
idle_age=7020, priority=0 actions=drop

cookie=0x0, duration=7019.552s, table=21, n_packets=3, n_bytes=126,
idle_age=3693, dl_vlan=1
actions=strip_vlan,set_tunnel:0x10001,output:2,output:3

 

 

 

 

#

# Conntrack table

#

]# ip netns exec qrouter-5078354f-0214-455d-bb4d-282b6d98fb86 cat
/proc/net/nf_conntrack | grep 192.168.102.18

ipv4     2 icmp     1 29 src=192.168.102.18 dst=8.8.8.8 type=8 code=0
id=6972 src=8.8.8.8 dst=10.61.4.195 type=0 code=0 id=6972 mark=0 zone=0
use=2

 

#

# Kernel configuration

#

# FORWARDING

# sysctl -a | grep -E "ipv4.*forward"  | grep -v "mc_"

net.ipv4.conf.all.forwarding = 1

net.ipv4.ip_forward = 1

net.ipv4.conf.default.forwarding = 1

net.ipv4.conf.br-ex.forwarding = 1

net.ipv4.conf.br-int.forwarding = 1

net.ipv4.conf.br-tun.forwarding = 1

net.ipv4.conf.enp21s0f0.forwarding = 1

net.ipv4.conf.enp21s0f0/40.forwarding = 1

net.ipv4.conf.enp21s0f0/41.forwarding = 1

net.ipv4.conf.enp21s0f0/42.forwarding = 1

net.ipv4.conf.enp21s0f0/43.forwarding = 1

net.ipv4.conf.enp21s0f1.forwarding = 1

net.ipv4.conf.int-br-enp21/43.forwarding = 1

net.ipv4.conf.int-br-ex.forwarding = 1

net.ipv4.conf.lo.forwarding = 1

net.ipv4.conf.ovs-system.forwarding = 1

net.ipv4.conf.phy-br-enp21/43.forwarding = 1

net.ipv4.conf.phy-br-ex.forwarding = 1

net.ipv4.conf.snooper0.forwarding = 1

net.ipv4.conf.snooper1.forwarding = 1

net.ipv4.conf.tapb4556004-a5.forwarding = 1

net.ipv4.conf.tapb4b327bf-e7.forwarding = 1

 

 

_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to