RIP multicast is receiving, but can't transmit
Hello! I'm setting up a test environment with Ubuntu 10.04 and BIRD 1.2.3 from the PPA. First step was to try and get a simple static route announced with RIP. This is the small test configuration I'm working with:
log stderr all; debug protocols all; router id 10.2.2.1;
protocol device { scan time 10; } protocol kernel { export all; import none; }
protocol static { route 10.5.5.0/24 via 10.2.2.2; }
protocol rip { interface "eth0" { mode multicast; }; export all; import all; }
With this set-up, the static route is imported, and exported to the kernel and RIP protocols as expected:
11-06-2010 13:18:19 <TRACE> kernel1 < added 10.5.5.0/24 via 10.2.2.2 on eth1 11-06-2010 13:18:19 <TRACE> rip1 < added 10.5.5.0/24 via 10.2.2.2 on eth1 11-06-2010 13:18:19 <TRACE> kernel1: 10.5.5.0/24: reinstalling
There's a Quagga ripd in the network announcing another route for a subnet that lives inside a VLAN. It's picked up by the RIP protocol:
11-06-2010 13:18:19 <TRACE> rip1: block: 192.168.123.6 tells me: 10.123.16.0/20 available, metric 1... 11-06-2010 13:18:19 <TRACE> rip1 > added [best] 10.123.16.0/20 via 192.168.123.6 on eth0 11-06-2010 13:18:19 <TRACE> kernel1 < added 10.123.16.0/20 via 192.168.123.6 on eth0 11-06-2010 13:18:19 <TRACE> rip1 < forced accept by protocol 10.123.16.0/20 via 192.168.123.6 on eth0 11-06-2010 13:18:19 <TRACE> rip1 < added 10.123.16.0/20 via 192.168.123.6 on eth0
But BIRD is unable to transmit the static route I created. The RIP protocol seems to know about the route, as indicated above, but when it tries to transmit, I get:
11-06-2010 13:18:29 <TRACE> rip1: Broadcasting routing table to eth0 11-06-2010 13:18:29 <ERR> rip1: Unexpected error at rip transmit: Invalid argument 11-06-2010 13:18:29 <ERR> rip1: Unexpected error at rip transmit: Unknown error 18446744073709551615
The code is littered with DBG statements that I cannot seem to enable in the output. I tried a manual build with --enable-debug, and I'm running bird in the foreground with -d, but I'm still not seeing them. What is the proper way to get to this information? And is there something simple I'm missing to get RIP to work? Thanks in advance, -- Stéphan Kochen
On Fri, Jun 11, 2010 at 01:28:55PM +0200, Stéphan Kochen wrote:
Hello!
I'm setting up a test environment with Ubuntu 10.04 and BIRD 1.2.3 from the PPA. First step was to try and get a simple static route announced with RIP. This is the small test configuration I'm working with:
...
11-06-2010 13:18:29 <TRACE> rip1: Broadcasting routing table to eth0 11-06-2010 13:18:29 <ERR> rip1: Unexpected error at rip transmit: Invalid argument 11-06-2010 13:18:29 <ERR> rip1: Unexpected error at rip transmit: Unknown error 18446744073709551615
And is there something simple I'm missing to get RIP to work?
In truth, RIP code in BIRD is mostly legacy and was not tested during recent development. It seems that some recent changes in multicasts broke RIP in multicast mode. RIP in broadcast mode seems to work (at least on Linux, not on BSD). You can switch RIP to use broadcasts or wait for a patch, i will fix this problem soon. As most of acute problems in BGP and OSPF are fixed now, i would start to test and fix bugs in RIP.
The code is littered with DBG statements that I cannot seem to enable in the output. I tried a manual build with --enable-debug, and I'm running bird in the foreground with -d, but I'm still not seeing them. What is the proper way to get to this information?
You have to change '#undef LOCAL_DEBUG' to '#define LOCAL_DEBUG' in rip.c to enable DBG statements. But the problem is probably in interaction of RIP code and generic platform code. -- 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."
Ondrej, Noticed I hadn't responded yet. On za, 2010-06-12 at 12:28 +0200, Ondrej Zajicek wrote:
In truth, RIP code in BIRD is mostly legacy and was not tested during recent development. It seems that some recent changes in multicasts broke RIP in multicast mode. RIP in broadcast mode seems to work (at least on Linux, not on BSD). You can switch RIP to use broadcasts or wait for a patch, i will fix this problem soon.
As most of acute problems in BGP and OSPF are fixed now, i would start to test and fix bugs in RIP.
That's good to know, though RIP was only a test for me. I'm planning to use it for BGP and OSPF. So don't feel pressed just because I asked. :) Last week, I took the leap of faith and installed BIRD on our new secondary border router. It's only learning from BGP sessions now, and not announcing yet, nor exporting to kernel. But it's importing quite a lot of routes just fine. Coming from a very basic Quagga install, the clear documentation and configuration language has given me confidence in BIRD. And I think I finally have a good picture of how BGP operates thanks to it as well.
You have to change '#undef LOCAL_DEBUG' to '#define LOCAL_DEBUG' in rip.c to enable DBG statements. But the problem is probably in interaction of RIP code and generic platform code.
Okay. Might still come in useful. Thanks for the quick response, and for a great routing daemon! -- Stéphan Kochen
participants (2)
-
Ondrej Zajicek -
Stéphan Kochen