Uploaded image for project: 'Fast Datapath Product'
  1. Fast Datapath Product
  2. FDP-985

mac for ipv6 FIP is the mac for router port rather than the mac for FIP

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • ovn24.09
    • False
    • Hide

      None

      Show
      None
    • False
    • Hide

      Given a network configured with OVN including IPv6 FIPs and router ports, 

      When IPv6 traffic is routed to a floating IP and the MAC address is queried via the neighbor table, 

      Then, the MAC address returned for the IPv6 FIP always matches the expected MAC address for the FIP and not the router port.

      Show
      Given a network configured with OVN including IPv6 FIPs and router ports,  When IPv6 traffic is routed to a floating IP and the MAC address is queried via the neighbor table,  Then, the MAC address returned for the IPv6 FIP always matches the expected MAC address for the FIP and not the router port.
    • rhel-sst-network-fastdatapath
    • ssg_networking
    • Moderate

      Description:

      the mac for ipv6 FIP should be the mac for FIP, but in the mac table it is the mac for router port

      Version:

      [root@wsfd-advnetlab18 ~]# rpm -qa | grep -E "openvswitch3.3|ovn24.09"
      openvswitch3.3-3.3.0-58.el9fdp.x86_64
      python3-openvswitch3.3-3.3.0-58.el9fdp.x86_64
      ovn24.09-24.09.1-10.el9fdp.x86_64
      ovn24.09-central-24.09.1-10.el9fdp.x86_64
      ovn24.09-host-24.09.1-10.el9fdp.x86_64

      Steps:

       

      1. server:
      systemctl start openvswitch                          
      systemctl start ovn-northd
      ovn-nbctl set-connection ptcp:6641
      ovn-sbctl set-connection ptcp:6642
      ovs-vsctl set open . external_ids:system-id=hv1 external_ids:ovn-remote=tcp:1.1.86.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=1.1.86.25
      systemctl restart ovn-controller
      ovs-vsctl add-br br-ext                                                          
      ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=phynet:br-ext      
      ovs-vsctl add-port br-ext ens1f1np1
      ip link set ens1f1np1  up
      ovn-nbctl lr-add lr1
      ovn-nbctl lrp-add lr1 lr1-ls1 00:00:01:ff:02:03 192.168.1.254/24 1111::a/64      
      ovn-nbctl ls-add ls1                                                             
      ovn-nbctl lsp-add ls1 ls1p1
      ovn-nbctl lsp-set-addresses ls1p1 "00:00:01:01:01:01 192.168.1.1 1111::1"
      ovn-nbctl lsp-add ls1 ls1p2
      ovn-nbctl lsp-set-addresses ls1p2 "00:00:01:01:01:02 192.168.1.12 1111::2"
      ovn-nbctl lsp-add ls1 ls1-lr1
      ovn-nbctl lsp-set-type ls1-lr1 router
      ovn-nbctl lsp-set-options ls1-lr1 router-port=lr1-ls1
      ovn-nbctl lsp-set-addresses ls1-lr1 router
      ovn-nbctl ls-add ls2
      ovn-nbctl lsp-add ls2 ls2p1
      ovn-nbctl lsp-set-addresses ls2p1 "00:00:01:01:02:01 192.168.2.1 1112::1"
      ovn-nbctl lsp-add ls2 ls2p2
      ovn-nbctl lsp-set-addresses ls2p2 "00:00:01:01:02:02 192.168.2.2 1112::2"
      ovn-nbctl lrp-add lr1 lr1-ls2 00:00:01:ff:22:03 192.168.2.254/24 1112::a/64
      ovn-nbctl lsp-add ls2 ls2-lr1
      ovn-nbctl lsp-set-type ls2-lr1 router
      ovn-nbctl lsp-set-options ls2-lr1 router-port=lr1-ls2
      ovn-nbctl lsp-set-addresses ls2-lr1 router
      ovn-nbctl ls-add pub                                                  
      ovn-nbctl lrp-add lr1 lr1-pub 00:00:01:ff:01:03 172.16.86.254/24 172:16:86::a/64
      ovn-nbctl lrp-set-gateway-chassis lr1-pub hv1
      ovn-nbctl lsp-add pub pub-lr1                                                    
      ovn-nbctl lsp-set-type pub-lr1 router                                            
      ovn-nbctl lsp-set-addresses pub-lr1 router                                       
      ovn-nbctl lsp-set-options pub-lr1 router-port=lr1-pub                            
      ovn-nbctl lsp-add pub pub-ln
      ovn-nbctl lsp-set-type pub-ln localnet                                           
      ovn-nbctl lsp-set-addresses pub-ln unknown                                       
      ovn-nbctl lsp-set-options pub-ln network_name=phynet                             
      ovn-nbctl lsp-add ls1 ls1-ln                                                     
      ovn-nbctl lsp-set-type ls1-ln localnet                                           
      ovn-nbctl lsp-set-addresses ls1-ln unknown
      ovn-nbctl lsp-set-options ls1-ln network_name=phynet                             
      ovn-nbctl lsp-add ls2 ls2-ln
      ovn-nbctl lsp-set-type ls2-ln localnet                                           
      ovn-nbctl lsp-set-addresses ls2-ln unknown
      ovn-nbctl lsp-set-options ls2-ln network_name=phynet
      ovn-nbctl set logical_switch_port ls2-ln tag_request=50
      #ovn-nbctl lr-nat-add lr1 dnat_and_snat 172.16.86.21 192.168.2.1 ls2p1 00:00:0f:01:02:01
      #ovn-nbctl lr-nat-add lr1 dnat_and_snat 172.16.86.22 192.168.2.2 ls2p2 00:00:0f:01:02:02                                                                                    
      ovn-nbctl lr-nat-add lr1 dnat_and_snat 172:16:86::21 1112::1 ls2p1 00:00:0f:01:02:01
      ovn-nbctl lr-nat-add lr1 dnat_and_snat 172:16:86::22 1112::2 ls2p2 00:00:0f:01:02:02
      ovs-vsctl add-port br-int ls1p1 -- set interface ls1p1 type=internal external_ids:iface-id=ls1p1
      ip netns add ls1p1
      ip link set ls1p1 netns ls1p1
      ip netns exec ls1p1 ip link set ls1p1 address 00:00:01:01:01:01
      ip netns exec ls1p1 ip link set ls1p1 up
      ip netns exec ls1p1 ip addr add 192.168.1.1/24 dev ls1p1
      ip netns exec ls1p1 ip route add default via 192.168.1.254
      ip netns exec ls1p1 ip addr add 1111::1/64 dev ls1p1
      ip netns exec ls1p1 ip -6 route add default via 1111::a
      ovs-vsctl add-port br-int ls2p1 -- set interface ls2p1 type=internal external_ids:iface-id=ls2p1
      ip netns add ls2p1
      ip link set ls2p1 netns ls2p1
      ip netns exec ls2p1 ip link set ls2p1 address 00:00:01:01:02:01
      ip netns exec ls2p1 ip link set ls2p1 up
      ip netns exec ls2p1 ip addr add 192.168.2.1/24 dev ls2p1
      ip netns exec ls2p1 ip route add default via 192.168.2.254
      ip netns exec ls2p1 ip addr add 1112::1/64 dev ls2p1
      ip netns exec ls2p1 ip -6 route add default via 1112::a
      ovs-vsctl add-port br-ext ext1 -- set interface ext1 type=internal
      ip netns add ext1
      ip link set ext1 netns ext1
      ip netns exec ext1 ip link set lo up
      ip netns exec ext1 ip link set ext1 up
      ip netns exec ext1 ip addr add 172.16.86.11/24 dev ext1
      ip netns exec ext1 ip addr add 172:16:86::11/64 dev ext1
      
      2 client:
      systemctl start openvswitch                          
      ovs-vsctl set open . external_ids:system-id=hv0 external_ids:ovn-remote=tcp:1.1.86.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=1.1.86.26
      systemctl restart ovn-controller
      ovs-vsctl add-br br-ext
      ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=phynet:br-ext
      ovs-vsctl add-port br-ext ens1f1np1
      ip link set ens1f1np1 up
      ip link set br-ext up
      ovs-vsctl add-port br-int ls2p2 -- set interface ls2p2 type=internal external_ids:iface-id=ls2p2
      ip netns add ls2p2
      ip link set ls2p2 netns ls2p2
      ip netns exec ls2p2 ip link set ls2p2 address 00:00:01:01:02:02
      ip netns exec ls2p2 ip link set ls2p2 up
      ip netns exec ls2p2 ip addr add 192.168.2.2/24 dev ls2p2
      ip netns exec ls2p2 ip route add default via 192.168.2.254
      ip netns exec ls2p2 ip addr add 1112::2/64 dev ls2p2
      ip netns exec ls2p2 ip -6 route add default via 1112::a
      ovs-vsctl add-port br-int ls1p2 -- set interface ls1p2 type=internal external_ids:iface-id=ls1p2
      ip netns add ls1p2
      ip link set ls1p2 netns ls1p2
      ip netns exec ls1p2 ip link set ls1p2 address 00:00:01:01:01:02
      ip netns exec ls1p2 ip link set ls1p2 up
      ip netns exec ls1p2 ip addr add 192.168.1.2/24 dev ls1p2
      ip netns exec ls1p2 ip route add default via 192.168.1.254
      ip netns exec ls1p2 ip addr add 1111::2/64 dev ls1p2
      ip netns exec ls1p2 ip -6 route add default via 1111::a
      ovs-vsctl add-port br-ext ext2 -- set interface ext2 type=internal
      ip netns add ext2
      ip link set ext2 netns ext2
      ip netns exec ext2 ip link set lo up
      ip netns exec ext2 ip link set ext2 up
      ip netns exec ext2 ip addr add 172.16.86.12/24 dev ext2
      ip netns exec ext2 ip addr add 172:16:86::12/64 dev ext2
      
      3. send ipv6 packet to ip6 FIP on ext1
      ip netns exec ext1 ping6 172:16:86::22 -c 1
      
      4. check the mac table on ext1
      ip netns exec ext1 ip -6 neigh 

      Actual result:

      [root@wsfd-advnetlab18 FDP-960]# ip netns exec ext1 ip -6 neigh                          
      fe80::200:fff:fe01:202 dev ext1 lladdr 00:00:0f:01:02:02 DELAY                           
      172:16:86::22 dev ext1 lladdr 00:00:01:ff:02:03 REACHABLE

      <==== the mac for ipv6 fip is the mac of router port lr1-ls1

       

      Expected result:

      the mac should be the mac for FIP 00:00:0f:01:02:02

       

              ovnteam@redhat.com OVN Team
              rhn-support-jishi Jianlin Shi
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: