<html><head></head><body><div dir="auto">Then i was totally wrong with that, sorry.<br><br>Now i checked once again the log, and there are actually two different neighbor addresses, one ending :fb71, another :d930. This may be some discrepancy in your ipv6 settings.<br><br>The error message actually means "you requested direct connection but i can't see the right interface to use because there is no interface with this range assigned".<br><br>Maria<br><br></div><br><br><div class="gmail_quote"><div dir="auto">On 4 May 2024 17:59:21 CEST, Vladimir Pouzanov <farcaller@gmail.com> wrote:</div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div dir="auto">I actually started with my /64 and then expanded to ::/0 to the same result.</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat 4 May 2024 at 16:54, Maria Matejka <<a href="mailto:maria.matejka@nic.cz">maria.matejka@nic.cz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div dir="auto">Not at my computer, just a wild guess – would you try please, instead of ::/0, narrowing the range, e.g. like 2000::/3? I haven't seen the code recently but this may help.<br><br>Maria</div></div><div><br><br><div class="gmail_quote"><div dir="auto">On 4 May 2024 17:16:21 CEST, Vladimir Pouzanov <<a href="mailto:farcaller@gmail.com" target="_blank">farcaller@gmail.com</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hi!<div><br></div><div>I'm running bird 2.15.1 and I'm trying to make it talk to cilium that uses gobgp under the hood. I can negotiate the session over ipv4 with no issues, but due to a bug in the cilium implementation, the ipv6 routes aren't advertised properly. The suggestion from cilium was to negotiate the session over ipv6, but this creates issues for bird.</div><div><br></div><div>I have a config that looks somewhat like this:</div><div><br></div><div>protocol bgp {<br>  local port 179 as 65100;<br>  neighbor range 0::/0 port 179 as 65100 internal;<br><br>  dynamic name "GW6_";<br>  direct;<br>  passive;<br><br>  ipv4 {<br>    import all;<br>  };<br><br>  ipv6 {<br>    import all;<br>  };<br>}<br><br>protocol bgp {<br>  local port 179 as 65100;<br>  neighbor range <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> port 179 as 65100 internal;<br><br>  dynamic name "GW4_";<br>  direct;<br>  passive;<br><br>  ipv4 {<br>    import all;<br>  };<br><br>  ipv6 {<br>    import all;<br>  };<br>}<br></div><div><br></div><div>When I connect to bird over ipv4, gobgp sends a packet like this:</div><div><br></div><div>Frame 4: 154 bytes on wire (1232 bits), 154 bytes captured (1232 bits) on interface vmbrdev, id 0<br>Ethernet II, Src: 22:fc:7f:47:6b:f4 (22:fc:7f:47:6b:f4), Dst: 6e:82:6c:1b:e9:95 (6e:82:6c:1b:e9:95)<br>Internet Protocol Version 4, Src: 10.224.129.15, Dst: 10.224.129.1<br>Transmission Control Protocol, Src Port: 39201, Dst Port: 179, Seq: 1, Ack: 1, Len: 88<br>Border Gateway Protocol - OPEN Message<br>    Marker: ffffffffffffffffffffffffffffffff<br>    Length: 88<br>    Type: OPEN Message (1)<br>    Version: 4<br>    My AS: 65100<br>    Hold Time: 90<br>    BGP Identifier: 10.224.129.15<br>    Optional Parameters Length: 59<br>    Optional Parameters<br>        Optional Parameter: Capability<br>            Parameter Type: Capability (2)<br>            Parameter Length: 57<br>            Capability: Route refresh capability<br>                Type: Route refresh capability (2)<br>                Length: 0<br>            Capability: FQDN Capability<br>                Type: FQDN Capability (73)<br>                Length: 12<br>                Hostname Length: 10<br>                Hostname: dev-master<br>                Domain Name Length: 0<br>                Domain Name:<br>            Capability: Unknown capability 75<br>                Type: Unknown (75)<br>                Length: 13<br>                Unknown: 0c476f4247502f332e32332e30<br>            Capability: Multiprotocol extensions capability<br>                Type: Multiprotocol extensions capability (1)<br>                Length: 4<br>                AFI: IPv4 (1)<br>                Reserved: 00<br>                SAFI: Unicast (1)<br>            Capability: Multiprotocol extensions capability<br>                Type: Multiprotocol extensions capability (1)<br>                Length: 4<br>                AFI: IPv6 (2)<br>                Reserved: 00<br>                SAFI: Unicast (1)<br>            Capability: Support for 4-octet AS number capability<br>                Type: Support for 4-octet AS number capability (65)<br>                Length: 4<br>                AS Number: 65100<br>            Capability: Extended Next Hop Encoding<br>                Type: Extended Next Hop Encoding (5)<br>                Length: 6<br>                AFI: IPv4 (1)<br>                SAFI: Unicast (1)<br>                Next hop AFI: IPv6 (2)<br></div><div><br></div><div>Which is followed up by OPEN from bird2 and they establish the session. The logs say:</div><div><br></div><div>May 04 14:47:02 ammy bird[7755]: bgp2: Incoming connection from 10.224.129.15 (port 39201) accepted<br>May 04 14:47:02 ammy bird[7755]: GW4_1: Initializing<br>May 04 14:47:02 ammy bird[7755]: GW4_1: Starting<br>May 04 14:47:02 ammy bird[7755]: GW4_1: State changed to start<br>May 04 14:47:02 ammy bird[7755]: GW4_1: Started<br>May 04 14:47:02 ammy bird[7755]: GW4_1: Got OPEN(as=65100,hold=90,id=10.224.129.15)<br>May 04 14:47:02 ammy bird[7755]: GW4_1: Sending OPEN(ver=4,as=65100,hold=240,id=0ae08101)<br>May 04 14:47:02 ammy bird[7755]: GW4_1: Sending KEEPALIVE<br>May 04 14:47:02 ammy bird[7755]: GW4_1: Got KEEPALIVE<br>May 04 14:47:02 ammy bird[7755]: GW4_1: BGP session established<br></div><div><br></div><div>When I try to establish the connection over ipv6, gobgp sends an OPEN that's exactly the same sans being transferred over ipv6:</div><div><br></div><div>Frame 15: 174 bytes on wire (1392 bits), 174 bytes captured (1392 bits) on interface vmbrdev, id 0<br>Ethernet II, Src: 22:fc:7f:47:6b:f4 (22:fc:7f:47:6b:f4), Dst: 6e:82:6c:1b:e9:95 (6e:82:6c:1b:e9:95)<br>Internet Protocol Version 6, Src: 2a01:xxx:xxx:xxx:xxx:xxx:xxx:d930, Dst: fd00::53<br>Transmission Control Protocol, Src Port: 58663, Dst Port: 179, Seq: 1, Ack: 1, Len: 88<br></div><div><br></div><div>and then bird just stalls the connection. The logs say:</div><div><br></div><div>May 04 14:49:17 ammy bird[7755]: bgp1: Incoming connection from 2a01:4f8:173:fe11:6f81:e7cd:2787:fb71 (port 35581) accepted<br>May 04 14:49:17 ammy bird[7755]: GW6_1: Initializing<br>May 04 14:49:17 ammy bird[7755]: GW6_1: Starting<br>May 04 14:49:17 ammy bird[7755]: GW6_1: State changed to start<br>May 04 14:49:17 ammy bird[7755]: GW6_1: Waiting for 2a01:xxx:xxx:xxx:xxx:xxx:xxx:d930 to become my neighbor<br></div><div><br></div><div>I suspect it's either a bug or a misconfiguration on the bird side, because gobgp behaves the same in both scenarios. How do I investigate/debug this further?</div></div>
</blockquote></div><div dir="auto"><div>-- <br>Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.</div></div></div></blockquote></div></div>
</blockquote></div><div dir="auto"><div class='k9mail-signature'>-- <br>Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.</div></div></body></html>