Strange peer connection/TCP listen behaviour

Rhosyn cwningen at blackavar.org.uk
Tue Aug 22 13:20:30 CEST 2017


Hi all,

I have three nodes that mesh with each other internally and also peer
externally to transits, I’m seeing weird behaviour on two nodes. All
nodes are running FreeBSD 11.1, with bird6 1.6.3.

Node A happily connects to B and C without issue, likewise B and C can
initiate and peer with A in kind without issue.

However B and C refuse to connect and continually send SYN packets to
each other. The packets are arriving over IPIP/gif tunnels on top of
IPSec transport mode; running netcat to listen on 179 works also works.

Both B and C only connect whenever the transit peer they are connected
to, is disabled/restarted. At this point bird on B and C see the SYN
packets, and connect as expected. It does not matter which node I drop
transit from, providing it happens to be B or C.

I thought this might be routing issues but all three nodes have static
routes and I also filtered all incoming routes from transit just in case
but no joy.

Below is a copy of the debug from bird, at the moment I disable transit
(the output is from C and the same/similar output is seen on B);

2017-08-21 22:39:08 <TRACE> coes: Connecting to fd93:2559:f2ef::9 from local address fd93:2559:f2ef::a
2017-08-21 22:39:08 <TRACE> coes: Connecting to fd93:2559:f2ef::9 from local address fd93:2559:f2ef::a
2017-08-21 22:39:10 <TRACE> coes: Connecting to fd93:2559:f2ef::9 from local address fd93:2559:f2ef::a
2017-08-21 22:39:10 <TRACE> coes: Connecting to fd93:2559:f2ef::9 from local address fd93:2559:f2ef::a
2017-08-21 22:39:10 <TRACE> CLI: disable transit_ams_1
2017-08-21 22:39:10 <INFO> Disabling protocol transit_ams_1
2017-08-21 22:39:10 <TRACE> transit_ams_1: Shutting down
2017-08-21 22:39:10 <TRACE> transit_ams_1: State changed to stop
2017-08-21 22:39:10 <TRACE> transit_ams_1: State changed to flush
2017-08-21 22:39:11 <TRACE> coes: Connecting to fd93:2559:f2ef::9 from local address fd93:2559:f2ef::a
2017-08-21 22:39:11 <TRACE> coes: Incoming connection from fd93:2559:f2ef::9 (port 31242) accepted
2017-08-21 22:39:11 <TRACE> coes: Sending OPEN(ver=4,as=204125,hold=10,id=b974ec5c)
2017-08-21 22:39:11 <TRACE> coes: Got OPEN(as=23456,hold=10,id=b97daa22)
2017-08-21 22:39:11 <TRACE> coes: Sending KEEPALIVE
2017-08-21 22:39:11 <TRACE> coes: Got KEEPALIVE
2017-08-21 22:39:11 <TRACE> coes: BGP session established

All the configuration is generated from template and works on all three
nodes; I’m not sure why bird seems to be ignoring SYN until the transit
is dropped on either B or C.

If B and C are already connected, they continue/stay connected when the
transit peer is reconnected; if I then tell bird to drop peering with 
either B/C from B/C, it will revert to endlessly sending SYN packets.

Interestingly both B and C will reconnect to A irrespective, with no 
issues or problems, irrespective of any transit or connections between
B and C.

Any ideas? Happy to provide extra details.

Diolch,
Rhosyn


More information about the Bird-users mailing list