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

lb hairpin can't work after destroy sb db

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Normal Normal
    • None
    • OVN FDP 24.C
    • ovn24.03
    • False
    • Hide

      None

      Show
      None
    • False
    • Hide

      Given that a system administrator has a running OVN setup with load balancer (lb) hairpin mode configured,

      When they destroy the SB database tables and performs a synchronization using the commands `ovn-sbctl --all destroy` and `ovn-nbctl --wait=hv sync`,

      Then, the load balancer hairpin mode should function correctly, allowing traffic to loop back to the originating virtual machine. 

      Show
      Given that a system administrator has a running OVN setup with load balancer (lb) hairpin mode configured, When they destroy the SB database tables and performs a synchronization using the commands `ovn-sbctl --all destroy` and `ovn-nbctl --wait=hv sync`, Then, the load balancer hairpin mode should function correctly, allowing traffic to loop back to the originating virtual machine. 
    • Moderate

      Description:

      lb hairpin can't work after destroy sb db

      version:

      [root@wsfd-advnetlab16 test]# rpm -qa | grep -E "openvswitch3.2|ovn24.03"
      openvswitch3.2-3.2.0-87.el9fdp.x86_64
      python3-openvswitch3.2-3.2.0-87.el9fdp.x86_64
      ovn24.03-24.03.2-19.el9fdp.x86_64
      ovn24.03-central-24.03.2-19.el9fdp.x86_64
      ovn24.03-host-24.03.2-19.el9fdp.x86_64

      steps:

      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:127.0.0.1:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=127.0.0.1
      systemctl restart ovn-controller
      
      
      ovn-nbctl lr-add lr1
      ovn-nbctl lrp-add lr1 lr1-ls1 00:00:01:ff:02:03 192.168.1.254/24
      
      
      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"
      
      
      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 pub
      ovn-nbctl lrp-add lr1 lr1-pub 00:00:01:ff:01:03 172.16.1.1/24
      
      
      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 lb-add lb_r1_tcp 172.16.1.1:50001 192.168.1.1:50001 tcp
      ovn-nbctl lr-lb-add lr1 lb_r1_tcp
      ovn-nbctl ls-lb-add ls1 lb_r1_tcp
      ovn-nbctl lrp-set-gateway-chassis lr1-pub hv1
      
      
      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 lo up
      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 ncat -k -l 50001 &
      
      
      ovn-nbctl --wait=hv sync
      ip netns exec ls1p1 ncat 172.16.1.1 50001 <<< h
      for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      do
      	ovn-sbctl --all destroy $sb_table
      done
      ovn-nbctl --wait=hv sync
      ip netns exec ls1p1 ncat 172.16.1.1 50001 <<< h
      systemctl restart ovn-controller
      ovn-nbctl --wait=hv sync
      ip netns exec ls1p1 ncat 172.16.1.1 50001 <<< h 

      expected result:

      lb hairpin can work after destroy sb db

      actual result:

      lb hairpin can't work after destroy sb db

      other info:

      + ip netns exec ls1p1 ncat 172.16.1.1 50001
      h
      + for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      + ovn-sbctl --all destroy chassis
      + for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      + ovn-sbctl --all destroy chassis_private
      + for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      + ovn-sbctl --all destroy encap
      + for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      + ovn-sbctl --all destroy address_set
      + for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      + ovn-sbctl --all destroy port_group
      + for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      + ovn-sbctl --all destroy logical_flow
      + for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      + ovn-sbctl --all destroy logical_dp_group
      + for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      + ovn-sbctl --all destroy multicast_group
      + for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      + ovn-sbctl --all destroy port_binding
      + for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      + ovn-sbctl --all destroy mac_binding
      + for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      + ovn-sbctl --all destroy dns
      + for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      + ovn-sbctl --all destroy gateway_chassis
      + for sb_table in chassis chassis_private encap address_set port_group logical_flow logical_dp_group multicast_group port_binding mac_binding dns gateway_chassis load_balancer
      + ovn-sbctl --all destroy load_balancer
      + ovn-nbctl --wait=hv sync
      + ip netns exec ls1p1 ncat 172.16.1.1 50001
      Ncat: TIMEOUT.
      + systemctl restart ovn-controller
      + ovn-nbctl --wait=hv sync
      + ip netns exec ls1p1 ncat 172.16.1.1 50001
      h

              amusil@redhat.com Ales Musil
              rhn-support-jishi Jianlin Shi
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: