openbgpds not talking each other since 8.2-STABLE upgrade

Nikolay Denev ndenev at gmail.com
Wed Jan 4 05:33:30 UTC 2012


On Jan 3, 2012, at 9:36 PM, sthaug at nethelp.no wrote:

>> Doug, does your kernel have TCP_SIGNATURE option?  The patch[*] for
>> net/openbgpd can be used as a workaround if it was due to TCP_MD5SIG
>> option on the listening sockets.
>> 
>> [*] http://people.allbsd.org/~hrs/FreeBSD/openbgpd.20120104-1.diff
>> 
>> While this is an ugly hack and I will investigate more reasonable
>> solution for that, I want to narrow down the cause first.  Can anyone
>> who are using a 8-STABLE kenrel with TCP_SIGNATURE let me know if
>> this works or not?
> 
> 8-STABLE on several servers, csup'ed only a couple of days ago, with 
> 
> options         TCP_SIGNATURE
> options         IPSEC
> device          crypto
> device          cryptodev
> 
> and Quagga bgpd talking to Juniper M/MX routers using MD5 key on the
> BGP sessions. No problems.
> 
> Steinar Haug, Nethelp consulting, sthaug at nethelp.no

This was always working for me. My problem was that I had two routers
having BGP sessions to an ISP with md5 and a session between themselves without md5.
After I upgraded to 8-STABLE some time ago, the md5 sessions still worked, but
the ones without did not. tcpdump showed packets with md5 digest fields all zeroes.
If one of the machines does not have md5 signature support it will probably work,
since when one of the routers tries to speak tcpmd5 even with incorrect digest field,
the other one tries to respond also with tcpmd5.

Also there are some things in the tcp(4) manual page that should be fixed to reflect
the new behaviour (the part mentioning that incoming digests are not verified):

     TCP_MD5SIG   This option enables the use of MD5 digests (also known as
                  TCP-MD5) on writes to the specified socket.  In the current
                  release, only outgoing traffic is digested; digests on
                  incoming traffic are not verified.  The current default
                  behavior for the system is to respond to a system advertis-
                  ing this option with TCP-MD5; this may change.

Also in the case of my failing BGP sessions I expected to see errors as per the man page :

                  If an SADB entry cannot be found for the destination, the
                  outgoing traffic will have an invalid digest option
                  prepended, and the following error message will be visible
                  on the system console: tcp_signature_compute: SADB lookup
                  failed for %d.%d.%d.%d.

But this was not happening.

Regards,
Nikolay




More information about the freebsd-net mailing list