Bug 1583011

Summary: [OVN]set load balancer on logical switch cause ipv6 unreachable
Product: Red Hat Enterprise Linux 7 Reporter: haidong li <haili>
Component: openvswitchAssignee: lorenzo bianconi <lorenzo.bianconi>
Status: CLOSED ERRATA QA Contact: haidong li <haili>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.5CC: atragler, kfida, pvauter, tredaelli
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: openvswitch-2.9.0-50.el7fdn Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-08-15 13:53:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description haidong li 2018-05-28 04:50:00 UTC
Description of problem:
set load balancer on logical switch cause ipv6 unreachable

Version-Release number of selected component (if applicable):
[root@dell-per730-19 ~]# rpm -qa | grep openvswitch
openvswitch-2.9.0-36.el7fdp.x86_64
openvswitch-selinux-extra-policy-1.0-3.el7fdp.noarch
openvswitch-ovn-common-2.9.0-36.el7fdp.x86_64
openvswitch-ovn-host-2.9.0-36.el7fdp.x86_64
openvswitch-ovn-central-2.9.0-36.el7fdp.x86_64

How reproducible:
sometimes

Steps to Reproduce:
1.create logical router r1 and two logical switch s2 and s3 connected to r1
2.create two guests on each chassis and connect to s2 on chassis hv1,connect to s3 on chassis hv0.
3.guests get ip by dhcp and ping success from hv1 vm00 to hv0 vm00 both ipv4 and ipv6
4.set ipv4 load balancer on s2,lb works well but can't ping from hv1_vm00 to hv0_vm00 after about 10 minites.

TOPO:every switch has two guests connected


 hv1_vm01----s2---------r1----------s3----hv0_vm01
             |                        |
             |                        |
          hv1_vm00                 hv0_vm00

[root@dell-per730-19 ~]# ovn-nbctl show
switch 184b6840-32ad-4a05-aedf-f6e2f25d7ff8 (s3)
    port s3_r1
        type: router
        addresses: ["00:de:ad:ff:01:03 172.16.103.1 2001:db8:103::1"]
        router-port: r1_s3
    port hv0_vm01_vnet1
        addresses: ["00:de:ad:00:01:01 172.16.103.12 2001:db8:103::12"]
    port hv0_vm00_vnet1
        addresses: ["00:de:ad:00:00:01 172.16.103.11 2001:db8:103::11"]
switch ea195969-cfc3-4d67-97ce-e4e853b5e3a4 (s2)
    port hv1_vm01_vnet1
        addresses: ["00:de:ad:01:01:01 172.16.102.12 2001:db8:102::12"]
    port hv1_vm00_vnet1
        addresses: ["00:de:ad:01:00:01 172.16.102.11 2001:db8:102::11"]
    port s2_r1
        type: router
        addresses: ["00:de:ad:ff:01:02 172.16.102.1 2001:db8:102::1"]
        router-port: r1_s2
router 51b6a0d4-8388-493a-9751-929179780b1b (r1)
    port r1_s3
        mac: "00:de:ad:ff:01:03"
        networks: ["172.16.103.1/24", "2001:db8:103::1/64"]
    port r1_s2
        mac: "00:de:ad:ff:01:02"
        networks: ["172.16.102.1/24", "2001:db8:102::1/64"]
[root@dell-per730-19 ~]# ovn-sbctl show
Chassis "hv0"
    hostname: "dell-per730-49.rhts.eng.pek2.redhat.com"
    Encap geneve
        ip: "20.0.0.26"
        options: {csum="true"}
    Port_Binding "hv0_vm00_vnet1"
    Port_Binding "hv0_vm01_vnet1"
Chassis "hv1"
    hostname: "dell-per730-19.rhts.eng.pek2.redhat.com"
    Encap geneve
        ip: "20.0.0.25"
        options: {csum="true"}
    Port_Binding "hv1_vm01_vnet1"
    Port_Binding "hv1_vm00_vnet1"
    Port_Binding "cr-r1_s2"

[root@localhost ~]# ip add show eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:de:ad:01:00:01 brd ff:ff:ff:ff:ff:ff
    inet 172.16.102.11/24 brd 172.16.102.255 scope global dynamic eth1
       valid_lft 2327sec preferred_lft 2327sec
    inet6 2001:db8:102::11/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::2de:adff:fe01:1/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost ~]# 
[root@localhost ~]# ping 172.16.103.11
PING 172.16.103.11 (172.16.103.11) 56(84) bytes of data.
64 bytes from 172.16.103.11: icmp_seq=1 ttl=63 time=1.75 ms

--- 172.16.103.11 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.751/1.751/1.751/0.000 ms

[root@dell-per730-19 ~]# virsh console hv1_vm00
Connected to domain hv1_vm00
Escape character is ^]

[root@localhost ~]# ping6 2001:db8:103::11
PING 2001:db8:103::11(2001:db8:103::11) 56 data bytes
64 bytes from 2001:db8:103::11: icmp_seq=1 ttl=63 time=1.14 ms
64 bytes from 2001:db8:103::11: icmp_seq=2 ttl=63 time=0.438 ms

--- 2001:db8:103::11 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.438/0.792/1.147/0.355 ms
[root@localhost ~]# ip n
172.16.102.12 dev eth1 lladdr 00:de:ad:01:01:01 STALE
172.16.102.1 dev eth1 lladdr 00:de:ad:ff:01:02 STALE
2001:db8:102::12 dev eth1 lladdr 00:de:ad:01:01:01 REACHABLE
2001:db8:102::1 dev eth1 lladdr 00:de:ad:ff:01:02 REACHABLE   <========the gateway is reachable
[root@localhost ~]# 

[root@dell-per730-19 ~]# ovn-nbctl lb-list
UUID                                    LB                  PROTO      VIP              IPs
a7b0f293-8897-43bd-ada5-61b67382ce45                        tcp/udp    300::1           2001:db8:103::11,2001:db8:103::12
                                                            (null)     [300::1]:8000    [2001:db8:103::11]:80,[2001:db8:103::12]:80
685ad133-ff9a-4f6a-a7e4-f63d7ad07792                        tcp/udp    30.0.0.2         172.16.103.11,172.16.103.12
                                                            (null)     30.0.0.2:8000    172.16.103.11:80,172.16.103.12:80
f0e8d873-50ca-4715-ac15-b0cf1eb2f9a1                        tcp/udp    30.0.0.1         172.16.103.11,172.16.103.12
                                                            (null)     30.0.0.1:8000    172.16.103.11:80,172.16.103.12:80
[root@dell-per730-19 ~]# ovn-nbctl ls-lb-add s2  f0e8d873-50ca-4715-ac15-b0cf1eb2f9a1
[root@dell-per730-19 ~]# ovn-nbctl ls-lb-list s2
UUID                                    LB                  PROTO      VIP              IPs
f0e8d873-50ca-4715-ac15-b0cf1eb2f9a1                        tcp/udp    30.0.0.1         172.16.103.11,172.16.103.12
                                                            (null)     30.0.0.1:8000    172.16.103.11:80,172.16.103.12:80
[root@dell-per730-19 ~]# ovn-nbctl ls-lb-list s3
[root@dell-per730-19 ~]# ovn-nbctl lr-lb-list r1
[root@dell-per730-19 ~]#
[root@dell-per730-19 ~]# virsh console hv1_vm00
Connected to domain hv1_vm00
Escape character is ^]

[root@localhost ~]# ping 30.0.0.1
PING 30.0.0.1 (30.0.0.1) 56(84) bytes of data.
64 bytes from 30.0.0.1: icmp_seq=1 ttl=63 time=2.35 ms

--- 30.0.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.352/2.352/2.352/0.000 ms
[root@localhost ~]# curl 30.0.0.1:8000
i am vm1
[root@localhost ~]# ping6 2001:db8:102::12
PING 2001:db8:102::12(2001:db8:102::12) 56 data bytes

--- 2001:db8:102::12 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms

[root@localhost ~]# ping6 2001:db8:103::11
PING 2001:db8:103::11(2001:db8:103::11) 56 data bytes
From 2001:db8:102::11 icmp_seq=1 Destination unreachable: Address unreachable
From 2001:db8:102::11 icmp_seq=2 Destination unreachable: Address unreachable

--- 2001:db8:103::11 ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 999ms

[root@localhost ~]# 
[root@localhost ~]# ip n
172.16.102.12 dev eth1 lladdr 00:de:ad:01:01:01 STALE
172.16.102.1 dev eth1 lladdr 00:de:ad:ff:01:02 STALE
2001:db8:102::12 dev eth1  FAILED
2001:db8:102::1 dev eth1  FAILED
[root@localhost ~]# 
-----------------------------------------------------------------------------
Then delete the configuration of load balancer, successfully ping6 to remote:

[root@dell-per730-19 ~]# ovn-nbctl ls-lb-del s2 
[root@dell-per730-19 ~]# ovn-nbctl ls-lb-list s2 
[root@dell-per730-19 ~]# virsh console hv1_vm00
Connected to domain hv1_vm00
Escape character is ^]

[root@localhost ~]# ping6 2001:db8:103::11
PING 2001:db8:103::11(2001:db8:103::11) 56 data bytes
64 bytes from 2001:db8:103::11: icmp_seq=1 ttl=63 time=2.54 ms
64 bytes from 2001:db8:103::11: icmp_seq=2 ttl=63 time=0.436 ms

--- 2001:db8:103::11 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.436/1.488/2.540/1.052 ms
[root@localhost ~]# ping6 2001:db8:102::12
PING 2001:db8:102::12(2001:db8:102::12) 56 data bytes
64 bytes from 2001:db8:102::12: icmp_seq=1 ttl=64 time=13.3 ms
64 bytes from 2001:db8:102::12: icmp_seq=2 ttl=64 time=0.283 ms

--- 2001:db8:102::12 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.283/6.816/13.349/6.533 ms
[root@localhost ~]# 

Additional info:

Comment 3 haidong li 2018-08-08 05:39:07 UTC
This bug is verified on the latest version:
[root@hp-dl388g8-19 ovn]# rpm -qa | grep openvswitch
openvswitch-ovn-host-2.9.0-55.el7fdp.x86_64
kernel-kernel-networking-openvswitch-ovn-1.0-100.noarch
openvswitch-2.9.0-55.el7fdp.x86_64
openvswitch-ovn-central-2.9.0-55.el7fdp.x86_64
openvswitch-selinux-extra-policy-1.0-3.el7fdp.noarch
openvswitch-ovn-common-2.9.0-55.el7fdp.x86_64
[root@hp-dl388g8-19 ovn]# uname -a
Linux hp-dl388g8-19.rhts.eng.pek2.redhat.com 3.10.0-931.el7.x86_64 #1 SMP Tue Jul 31 17:55:24 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@hp-dl388g8-19 ovn]# 
[root@hp-dl388g8-19 ovn]# ovn-nbctl ls-lb-add s2 053cf5b8-f328-443e-b87f-6f1a372b598f
[root@hp-dl388g8-19 ovn]# ovn-nbctl ls-lb-list s2
UUID                                    LB                  PROTO      VIP              IPs
053cf5b8-f328-443e-b87f-6f1a372b598f                        tcp/udp    30.0.0.1         172.16.103.11,172.16.103.12
                                                            (null)     30.0.0.1:8000    172.16.103.11:80,172.16.103.12:80
[root@hp-dl388g8-19 ovn]# virsh console hv1_vm00
Connected to domain hv1_vm00
Escape character is ^]

Red Hat Enterprise Linux Server 7.5 (Maipo)
Kernel 3.10.0-862.el7.x86_64 on an x86_64

localhost login: root
Password: 
Last login: Tue Aug  7 23:42:50 on ttyS0
[root@localhost ~]# ping 30.0.0.1
PING 30.0.0.1 (30.0.0.1) 56(84) bytes of data.
64 bytes from 30.0.0.1: icmp_seq=1 ttl=63 time=1.88 ms

--- 30.0.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.883/1.883/1.883/0.000 ms
[root@localhost ~]# curl -g 30.0.0.1:8000 
i am vm2
[root@localhost ~]# curl -g 30.0.0.1:8000 
i am vm1
[root@localhost ~]# curl -g 30.0.0.1:8000 
i am vm1
[root@localhost ~]# curl -g 30.0.0.1:8000 
i am vm2
[root@localhost ~]# curl -g 30.0.0.1:8000 
i am vm2
[root@localhost ~]# curl -g 30.0.0.1:8000 
i am vm2
[root@localhost ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:de:ad:01:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.110/24 brd 192.168.122.255 scope global noprefixroute dynamic eth0
       valid_lft 2571sec preferred_lft 2571sec
    inet6 fe80::2de:adff:fe01:0/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:de:ad:01:00:01 brd ff:ff:ff:ff:ff:ff
    inet 172.16.102.11/24 brd 172.16.102.255 scope global dynamic eth1
       valid_lft 2687sec preferred_lft 2687sec
    inet6 2001:db8:102::11/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::2de:adff:fe01:1/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost ~]# ping6  2001:db8:103::11
PING 2001:db8:103::11(2001:db8:103::11) 56 data bytes
64 bytes from 2001:db8:103::11: icmp_seq=1 ttl=63 time=1.66 ms
64 bytes from 2001:db8:103::11: icmp_seq=2 ttl=63 time=0.650 ms
64 bytes from 2001:db8:103::11: icmp_seq=3 ttl=63 time=0.765 ms
64 bytes from 2001:db8:103::11: icmp_seq=4 ttl=63 time=0.646 ms

--- 2001:db8:103::11 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.646/0.931/1.665/0.427 ms
[root@localhost ~]# ping6  2001:db8:103::12
PING 2001:db8:103::12(2001:db8:103::12) 56 data bytes
64 bytes from 2001:db8:103::12: icmp_seq=1 ttl=63 time=1.85 ms

--- 2001:db8:103::12 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.857/1.857/1.857/0.000 ms
[root@localhost ~]# ping6  2001:db8:102::12
PING 2001:db8:102::12(2001:db8:102::12) 56 data bytes
64 bytes from 2001:db8:102::12: icmp_seq=1 ttl=64 time=0.607 ms

--- 2001:db8:102::12 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.607/0.607/0.607/0.000 ms
[root@localhost ~]# ping6  2001:db8:103::12
PING 2001:db8:103::12(2001:db8:103::12) 56 data bytes
64 bytes from 2001:db8:103::12: icmp_seq=1 ttl=63 time=0.653 ms

--- 2001:db8:103::12 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.653/0.653/0.653/0.000 ms
[root@localhost ~]# ping6  2001:db8:103::11
PING 2001:db8:103::11(2001:db8:103::11) 56 data bytes
64 bytes from 2001:db8:103::11: icmp_seq=1 ttl=63 time=0.709 ms
64 bytes from 2001:db8:103::11: icmp_seq=2 ttl=63 time=0.689 ms

--- 2001:db8:103::11 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.689/0.699/0.709/0.010 ms


job link:
https://beaker.engineering.redhat.com/jobs/2608708

Comment 4 Timothy Redaelli 2018-08-10 13:45:33 UTC
The openvwitch component is delivered through the fast datapath channel, it is not documented in release notes.

Comment 6 errata-xmlrpc 2018-08-15 13:53:04 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:2432