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

ovn-encap-ip not respected for geneve tunnels

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • None
    • ovn23.09, ovn24.03
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • Critical

      Due to suspected commit: https://github.com/ovn-org/ovn/commit/41eefcb2807de2584a6a8cd92a9ad3172e3aa498

       

      When configuring an extra IP on a node, packets are sent with the wrong tunnel IP as the source. For example, on my setup I have:

       

       

      external_ids        : {hostname=ovn-worker, ovn-bridge-mappings="physnet:breth0", ovn-enable-lflow-cache="true", ovn-encap-ip="fc00:f853:ccd:e793::4" 

       

       

      Traffic works fine, until an extra IP address (fc00:f853:ccd:e793:ffff::1) is added to my node's interface:

       

       

      [root@ovn-worker ~]# ip -6 addr show breth0
      5: breth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
          inet6 fc00:f853:ccd:e793:ffff::1/128 scope global 
             valid_lft forever preferred_lft forever
          inet6 fd69::2/125 scope global nodad deprecated 
             valid_lft forever preferred_lft 0sec
          inet6 fc00:f853:ccd:e793::4/64 scope global nodad 
             valid_lft forever preferred_lft forever
          inet6 fe80::42:acff:fe12:4/64 scope link proto kernel_ll 
             valid_lft forever preferred_lft forever
       

       

       

      At this point geneve traffic sent by this node is dropped on the other side:

       

      [root@ovn-control-plane openvswitch]# cat  ovs-vswitchd.log  | grep fc00:f853:ccd:e793::4
      2024-04-17T16:47:02.146Z|00012|tunnel(revalidator10)|WARN|receive tunnel port not found (tcp6,tun_id=0xff0003,tun_src=0.0.0.0,tun_dst=0.0.0.0,tun_ipv6_src=fc00:f853:ccd:e793:ffff::1,tun_ipv6_dst=fc00:f853:ccd:e793::3,tun_gbp_id=0,tun_gbp_flags=0,tun_tos=0,tun_ttl=64,tun_erspan_ver=0,gtpu_flags=0,gtpu_msgtype=0,tun_flags=csum|key,in_port=5,vlan_tci=0x0000,dl_src=0a:58:2b:22:eb:86,dl_dst=0a:58:92:3f:71:e5,ipv6_src=fc00:f853:ccd:e793::4,ipv6_dst=fd00:10:244:1::7,ipv6_label=0x630b1,nw_tos=0,nw_ecn=0,nw_ttl=63,nw_frag=no,tp_src=8080,tp_dst=59130,tcp_flags=syn|ack) 

       

       

       

      recirc_id(0),dp_hash(0),skb_priority(0),tunnel(tun_id=0xff0003,ipv6_src=fc00:f853:ccd:e793:ffff::1,ipv6_dst=fc00:f853:ccd:e793::3,ttl=64,tp_src=29352,tp_dst=6081,geneve({class=0x102,type=0x80,len=4,0x40003}),flags(+csum+key)),in_port(5),skb_mark(0),ct_state(-new-est-rel-rpl-inv-trk-snat-dnat),ct_zone(0),ct_mark(0),ct_label(0),eth(src=0a:58:2b:22:eb:86,dst=0a:58:92:3f:71:e5),eth_type(0x86dd),ipv6(src=fc00:f853:ccd:e793::4,dst=fd00:10:244:1::7,label=0x671e4,proto=6,tclass=0,hlimit=63,frag=no),key32(00 00/ff ff),tcp(src=8080,dst=37508),tcp_flags(syn|ack), packets:0, bytes:0, used:never, actions:drop 

       

       

      Removing fc00:f853:ccd:e793:ffff::1 from the interface or setting  

      ovs-vsctl set open . external_ids:ovn-set-local-ip="true" 

      fixes the problem and traffic starts working again.

            amusil@redhat.com Ales Musil
            trozet@redhat.com Tim Rozet
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: