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