RIPng
Pavel Machek
pavel at ucw.cz
Wed Apr 20 11:02:03 CEST 2005
Hi!
> I've been testing BIRD's RIPng and found a number of problems:
>
> Two of them are trivial: RIPng port is 521 and not 520, and the only
> version defined so far is 1. The patch below solves these two.
>
> Now the following two problems are more serious and affect also the IPv4
> RIP implementation:
>
> 1. RIP should automatically advertise all connected networks to its
> neighbours (modulo split horizon). BIRD's RIP advertises only the routes
> found in the main BIRD routing table - and the "connected" routes are
> not there even though the kernel protocol is configured to "import all".
>
> 2. The updates should be sent every 30 seconds, and indeed this is what
> seems to be set in rip.c. Without changing this default, I see the
> updates coming in irregular intervals around 50 seconds (see below).
Well, patch looks okay, but I guess that IPV6 support should only be
added when it (at least somehow) works...
Pavel
> No. Time Source Destination Protocol Info
> 1 0.000000 2001:718:1a02:7::1 ff02::9 RIPng version 1 Response
> 2 50.991634 2001:718:1a02:7::1 ff02::9 RIPng version 1 Response
> 3 101.983225 2001:718:1a02:7::1 ff02::9 RIPng version 1 Response
> 4 153.974728 2001:718:1a02:7::1 ff02::9 RIPng version 1 Response
> 5 198.967385 2001:718:1a02:7::1 ff02::9 RIPng version 1 Response
>
> Cheers, Lada
>
> ===============================PATCH====================================
> diff -uNr bird-1.0.11.orig/proto/rip/rip.c bird-1.0.11/proto/rip/rip.c
> --- bird-1.0.11.orig/proto/rip/rip.c 2004-07-15 19:28:13.000000000 +0200
> +++ bird-1.0.11/proto/rip/rip.c 2005-04-20 09:56:54.484233854 +0200
> @@ -146,7 +146,11 @@
> DBG( "Preparing packet to send: " );
>
> packet->heading.command = RIPCMD_RESPONSE;
> +#ifndef IPV6
> packet->heading.version = RIP_V2;
> +#else
> + packet->heading.version = RIP_V1;
> +#endif
> packet->heading.unused = 0;
>
> i = !!P_CF->authtype;
> @@ -963,7 +967,11 @@
> init_list(&c->iface_list);
> c->c.preference = DEF_PREF_RIP;
> c->infinity = 16;
> +#ifndef IPV6
> c->port = 520;
> +#else
> + c->port = 521;
> +#endif
> c->period = 30;
> c->garbage_time = 120+180;
> c->timeout_time = 120;
>
--
Boycott Kodak -- for their patent abuse against Java.
More information about the Bird-users
mailing list