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

CLONE - IPv6 Router Advertisement `::` (undefined address) as destination when Router Solicit has SrcAddr: `::`

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • ovn23.03
    • False
    • Hide

      None

      Show
      None
    • False
    • Important

      When a client send a Router Solicit message on an interface without an IP address - it should use the `::` (undefined address) as SourceAddr. (See:  https://www.rfc-editor.org/rfc/rfc4861#page-18)

      4.1.  Router Solicitation Message Format
      
      < .. snip .. >
      
         IP Fields:      Source Address
                           An IP address assigned to the sending interface, or
                           the unspecified address if no address is assigned
                           to the sending interface.

      When OVN respond to this Router Solicit it uses the `::` (undefined address) as the DestinationAddr. When comparint to radvd behaviour it will instead use the ff02::1 (All nodes on-link multicast addresses afict from rfc4291).

      It looks like OVN is always sending the response to the source address of RA Solicit, I belive there should be a condition to check that the RA Solicit used `::` because interface does not have an address, and in that case the RA Advertise should instead have destination ff02::1.

      Example from PCAP when OVN is doing RAs:

      Frame 1: 62 bytes on wire (496 bits), 62 bytes captured (496 bits)
      Ethernet II, Src: RealtekU_31:83:6c (52:54:00:31:83:6c), Dst: IPv6mcast_02 (33:33:00:00:00:02)
      Internet Protocol Version 6, Src: ::, Dst: ff02::2
          0110 .... = Version: 6
          .... 0000 0000 .... .... .... .... .... = Traffic Class: 0x00 (DSCP: CS0, ECN: Not-ECT)
              .... 0000 00.. .... .... .... .... .... = Differentiated Services Codepoint: Default (0)
              .... .... ..00 .... .... .... .... .... = Explicit Congestion Notification: Not ECN-Capable Transport (0)
          .... 0000 0000 0000 0000 0000 = Flow Label: 0x00000
          Payload Length: 8
          Next Header: ICMPv6 (58)
          Hop Limit: 255
          Source Address: ::
          Destination Address: ff02::2
      Internet Control Message Protocol v6
          Type: Router Solicitation (133)
          Code: 0
          Checksum: 0x7bb8 [correct]
          [Checksum Status: Good]
          Reserved: 00000000
      
      Frame 2: 118 bytes on wire (944 bits), 118 bytes captured (944 bits)
      Ethernet II, Src: fa:16:3e:fe:76:da (fa:16:3e:fe:76:da), Dst: RealtekU_31:83:6c (52:54:00:31:83:6c)
      Internet Protocol Version 6, Src: fe80::f816:3eff:fefe:76da, Dst: ::
          0110 .... = Version: 6
          .... 0000 0000 .... .... .... .... .... = Traffic Class: 0x00 (DSCP: CS0, ECN: Not-ECT)
              .... 0000 00.. .... .... .... .... .... = Differentiated Services Codepoint: Default (0)
              .... .... ..00 .... .... .... .... .... = Explicit Congestion Notification: Not ECN-Capable Transport (0)
          .... 0000 0000 0000 0000 0000 = Flow Label: 0x00000
          Payload Length: 64
          Next Header: ICMPv6 (58)
          Hop Limit: 255
          Source Address: fe80::f816:3eff:fefe:76da
          Destination Address: ::
      Internet Control Message Protocol v6
          Type: Router Advertisement (134)
          Code: 0
          Checksum: 0xd3a3 [correct]
          [Checksum Status: Good]
          Cur hop limit: 255
          Flags: 0x80, Managed address configuration, Prf (Default Router Preference): Medium
              1... .... = Managed address configuration: Set
              .0.. .... = Other configuration: Not set
              ..0. .... = Home Agent: Not set
              ...0 0... = Prf (Default Router Preference): Medium (0)
              .... .0.. = Proxy: Not set
              .... ..0. = Reserved: 0
          Router lifetime (s): 65535
          Reachable time (ms): 0
          Retrans timer (ms): 0
          ICMPv6 Option (Source link-layer address : fa:16:3e:fe:76:da)
              Type: Source link-layer address (1)
              Length: 1 (8 bytes)
              Link-layer address: fa:16:3e:fe:76:da (fa:16:3e:fe:76:da)
          ICMPv6 Option (MTU : 1400)
              Type: MTU (5)
              Length: 1 (8 bytes)
              Reserved
              MTU: 1400
          ICMPv6 Option (Prefix information : fc01::/64)
              Type: Prefix information (3)
              Length: 4 (32 bytes)
              Prefix Length: 64
              Flag: 0x80, On-link flag(L)
                  1... .... = On-link flag(L): Set
                  .0.. .... = Autonomous address-configuration flag(A): Not set
                  ..0. .... = Router address flag(R): Not set
                  ...0 0000 = Reserved: 0
              Valid Lifetime: Infinity (4294967295)
              Preferred Lifetime: Infinity (4294967295)
              Reserved
              Prefix: fc01::
      

       
      Example from PCAP when RADVD is doing RAs:

      Frame 9: 62 bytes on wire (496 bits), 62 bytes captured (496 bits)
      Ethernet II, Src: RealtekU_d9:3d:5c (52:54:00:d9:3d:5c), Dst: IPv6mcast_02 (33:33:00:00:00:02)
      Internet Protocol Version 6, Src: ::, Dst: ff02::2
          0110 .... = Version: 6
          .... 0000 0000 .... .... .... .... .... = Traffic Class: 0x00 (DSCP: CS0, ECN: Not-ECT)
              .... 0000 00.. .... .... .... .... .... = Differentiated Services Codepoint: Default (0)
              .... .... ..00 .... .... .... .... .... = Explicit Congestion Notification: Not ECN-Capable Transport (0)
          .... 0000 0000 0000 0000 0000 = Flow Label: 0x00000
          Payload Length: 8
          Next Header: ICMPv6 (58)
          Hop Limit: 255
          Source Address: ::
          Destination Address: ff02::2
      Internet Control Message Protocol v6
          Type: Router Solicitation (133)
          Code: 0
          Checksum: 0x7bb8 [correct]
          [Checksum Status: Good]
          Reserved: 00000000
      
      Frame 10: 142 bytes on wire (1136 bits), 142 bytes captured (1136 bits)
      Ethernet II, Src: fa:16:3e:38:ee:f0 (fa:16:3e:38:ee:f0), Dst: IPv6mcast_01 (33:33:00:00:00:01)
      Internet Protocol Version 6, Src: fe80::f816:3eff:fe38:eef0, Dst: ff02::1
          0110 .... = Version: 6
          .... 0000 0000 .... .... .... .... .... = Traffic Class: 0x00 (DSCP: CS0, ECN: Not-ECT)
              .... 0000 00.. .... .... .... .... .... = Differentiated Services Codepoint: Default (0)
              .... .... ..00 .... .... .... .... .... = Explicit Congestion Notification: Not ECN-Capable Transport (0)
          .... 1101 1001 0101 1110 0111 = Flow Label: 0xd95e7
          Payload Length: 88
          Next Header: ICMPv6 (58)
          Hop Limit: 255
          Source Address: fe80::f816:3eff:fe38:eef0
          Destination Address: ff02::1
      Internet Control Message Protocol v6
          Type: Router Advertisement (134)
          Code: 0
          Checksum: 0x2de8 [correct]
          [Checksum Status: Good]
          Cur hop limit: 64
          Flags: 0x80, Managed address configuration, Prf (Default Router Preference): Medium
              1... .... = Managed address configuration: Set
              .0.. .... = Other configuration: Not set
              ..0. .... = Home Agent: Not set
              ...0 0... = Prf (Default Router Preference): Medium (0)
              .... .0.. = Proxy: Not set
              .... ..0. = Reserved: 0
          Router lifetime (s): 300
          Reachable time (ms): 0
          Retrans timer (ms): 0
          ICMPv6 Option (Prefix information : fc01::/64)
              Type: Prefix information (3)
              Length: 4 (32 bytes)
              Prefix Length: 64
              Flag: 0x80, On-link flag(L)
                  1... .... = On-link flag(L): Set
                  .0.. .... = Autonomous address-configuration flag(A): Not set
                  ..0. .... = Router address flag(R): Not set
                  ...0 0000 = Reserved: 0
              Valid Lifetime: 86400
              Preferred Lifetime: 14400
              Reserved
              Prefix: fc01::
          ICMPv6 Option (Route Information : Medium fe80::a9fe:a9fe/128)
              Type: Route Information (24)
              Length: 3 (24 bytes)
              Prefix Length: 128
              Flag: 0x00, Route Preference: Medium
              Route Lifetime: 300
              Prefix: fe80::a9fe:a9fe
          ICMPv6 Option (MTU : 1500)
              Type: MTU (5)
              Length: 1 (8 bytes)
              Reserved
              MTU: 1500
          ICMPv6 Option (Source link-layer address : fa:16:3e:38:ee:f0)
              Type: Source link-layer address (1)
              Length: 1 (8 bytes)
              Link-layer address: fa:16:3e:38:ee:f0 (fa:16:3e:38:ee:f0)
      

       

            amusil@redhat.com Ales Musil
            rhn-gps-hjensas Harald Jensas
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: