Il router advertisement daemon è molto utile in una LAN, se i client devono essere configurati automaticamente. Il demone stesso dovrebbe girare sul gateway di default IPv6 (non è obbligatorio che questo sia anche il gateway di default IPv4, perciò si faccia attenzione a chi invia, sulla propria LAN, gli avvisi di instradamento).
Si possono specificare alcune informazioni e flag che devono essere contenute negli avvisi. Le più comunemente usate sono
Prefisso (necessario)
Tempo di vita del prefisso
Frequenza dell'invio degli avvisi (opzionale)
Dopo un'appropriata configurazione, il demone invia gli avvisi attraverso le interfacce specificate, i client - si spera - le ricevono e configurano automaticamente gli indirizzi con i prefissi e l'instradamento di default ricevuti.
Di solito, il file di configurazione di radvd è /etc/radvd.conf. Un semplice esempio è riportato di seguito:
interface eth0 { AdvSendAdvert on; MinRtrAdvInterval 3; MaxRtrAdvInterval 10; prefix 3ffe:ffff:0100:f101::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; }; |
Dal lato client ciò risulta come
# ip -6 addr show eth0 3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100 inet6 3ffe:ffff:100:f101:2e0:12ff:fe34:1234/64 scope global dynamic valid_lft 2591992sec preferred_lft 604792sec inet6 fe80::2e0:12ff:fe34:1234/10 scope link |
Poiché il tempo di vita non è stato definito, viene indicato un valore molto elevato.
Dalla versione 0.6.2pl3 è supportata la (ri)-generazione automatica del prefisso dipendentemente dall'indirizzo IPv4 dell'interfaccia specificata. Questo meccanismo può essere utilizzato per distribuire avvisi in una LAN dopo che il tunneling 6to4 subisce variazioni. Il più delle volte viene utilizzato dietro ad un router Linux dial-on-demand dinamico. Poiché il tempo di vita di questo prefisso è sicuramente molto breve (dopo ogni dial-up c'è un diverso prefisso valido), esso viene configurato al valore minimo:
interface eth0 { AdvSendAdvert on; MinRtrAdvInterval 3; MaxRtrAdvInterval 10; prefix 0:0:0:f101::/64 { AdvOnLink off; AdvAutonomous on; AdvRouterAddr on; Base6to4Interface ppp0; AdvPreferredLifetime 20; AdvValidLifetime 30; }; }; |
Lato client questo si traduce in (assumendo che ppp0 abbia attualmente l'indirizzo locale IPv4 1.2.3.4):
# /sbin/ip -6 addr show eth0 3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100 inet6 2002:0102:0304:f101:2e0:12ff:fe34:1234/64 scope global dynamic valid_lft 22sec preferred_lft 12sec inet6 fe80::2e0:12ff:fe34:1234/10 scope link |
Poiché è stato definito un tempo di vita molto piccolo, tale prefisso verrà velocemente scartato se non saranno ricevuti avvisi relativi ad esso.
Nota aggiuntiva: se non si è usato lo speciale supporto 6to4 negli initscript, è necessario creare un instradamento speciale sull'interfaccia interna del router, altrimenti si avranno alcuni problemi di instradamento di ritorno. Per l'esempio mostrato qui:
# /sbin/ip -6 route add 2002:0102:0304:f101::/64 dev eth0 metric 1 |
questo instradamento deve essere rimpiazzato ogni volta che il prefisso cambia, come nel caso in cui all'interfaccia dial-up viene assegnato un nuovo indirizzo IPv4.
Un programma chiamato "radvdump" può essere d'aiuto per guardare negli avvisi ricevuti e inviati. Semplice da usare:
# radvdump Router advertisement from fe80::280:c8ff:feb9:cef9 (hoplimit 255) AdvCurHopLimit: 64 AdvManagedFlag: off AdvOtherConfigFlag: off AdvHomeAgentFlag: off AdvReachableTime: 0 AdvRetransTimer: 0 Prefix 2002:0102:0304:f101::/64 AdvValidLifetime: 30 AdvPreferredLifetime: 20 AdvOnLink: off AdvAutonomous: on AdvRouterAddr: on Prefix 3ffe:ffff:100:f101::/64 AdvValidLifetime: 2592000 AdvPreferredLifetime: 604800 AdvOnLink: on AdvAutonomous: on AdvRouterAddr: on AdvSourceLLAddress: 00 80 12 34 56 78 |
L'output mostra ogni pacchetto di avviso ricevuto in formato leggibile. Si dovrebbero vedere i propri valori configurati, altrimenti forse non è il proprio radvd che invia gli avvisi... si cerchi un altro router sul link (e si consideri per il tracciamento il valore LLAddress che corrisponde all'indirizzo MAC).