Re: BIRD 2.0 on FreeBSD, multihop with multiple fibs
Hi, I've had my load of issues with bird 2 on FreeBSD. I used BSDRP like 3 years ago and after an update I started having big issues related to bird. I think BSDRP released version 1.98 with a fix for that.. don't know if it's ok in 1.99. https://sourceforge.net/projects/bsdrp/files/BSD_Router_Project/1.98/ "bird2: Fix multi-FIB usage by reverting bird commit 318acb0f6cb77a32aad5d7f79e06f3c5065ac702" Maybe it's not related but just in case... please tell me if it worked! In reponse to: Hi everyone, I hope this is not too specific... I'm running into a bit of a pickle here. This is FreeBSD 12.2 with multi-fib enabled; BIRD exporting all its received routes to fib 1, basic kernel routing in fib 0. (The service on the box is in fib 1, of course). I need to configure a multihop session where the BGP partner is not on the same interface as the box's default, but on a pni, which is behind a VLAN-tagged subinterface (i.e., bge0.300) down on a switch somewhere. Also, I can only BGP connect to the partner via the PNI. The interface has no fib tags, so it "exists" in both fibs. Let's say we are bge0.300 5.6.7.7. The other side of the PNI is at 5.6.7.8. Our BGP partner is at 1.2.3.4, reachable through 5.6.7.8. protocol static { ipv4; route 1.2.3.4/32 via 5.6.7.8; } Now, netstat tells me that 1.2.3.4/32 shows up in fib 1, but not in fib 0. BIRD only puts it in fib 1. In this setup, BIRD does not connect to 1.2.3.4 unless I manually add that host route to fib 0. Adding a % 'bge0.300' to the static route line doesn't change a thing, route still only appears in fib 1. Two questions: - why does BIRD put the route in fib 1 when no fib is specified, and the interface is not bound to a fib? - Is there a canonical way of solving this? I have the fib 0 static route configured in the system setup now, which makes it work. It would be nicer to have it thrown in there by BIRD, so the config is self-contained. Any guidance would be highly appreciated. Elmar.
On Fri, Dec 31, 2021 at 05:23:13PM +0000, Dominic Blais wrote:
Hi,
I've had my load of issues with bird 2 on FreeBSD. I used BSDRP like 3 years ago and after an update I started having big issues related to bird.
I think BSDRP released version 1.98 with a fix for that.. don't know if it's ok in 1.99.
https://sourceforge.net/projects/bsdrp/files/BSD_Router_Project/1.98/ "bird2: Fix multi-FIB usage by reverting bird commit 318acb0f6cb77a32aad5d7f79e06f3c5065ac702"
Hmm, not sure why they reverted this patch, that might break OSPF.
... In this setup, BIRD does not connect to 1.2.3.4 unless I manually add that host route to fib 0. Adding a % 'bge0.300' to the static route line doesn't change a thing, route still only appears in fib 1.
Two questions:
- why does BIRD put the route in fib 1 when no fib is specified, and the interface is not bound to a fib?
That is strange, BIRD should use 'table id' kernel protocol option to select fib, and default should be 0. If you explicitly configure it to some other value, say 2 or 3, are routes exported to fib 2 or 3? (looking at the code seems to me that when fib is 0 then it is not explicitly set for socket, so default would be used, and perhaps default fib is inherited from parent process to be 1? But then, why would BGP multihop resolve using fib 0 and not fib 1?) -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
participants (2)
-
Dominic Blais -
Ondrej Zajicek