IPv6 Neighbor Discovery e IOS-XR
Con questo primo articolo, vorrei aprire un filone relativo a due “hot topics” nel networking di oggi: IPv6 e IOS-XR.
Ovvero il protocollo che dovrà supportare l’internet del nuovo millennio, e il sistema operativo che Cisco ha ideato 10 anni fa e utilizzato dai maggiori ISP (ma che presto verrà impiegato anche in ambiente enterprise)
Nel mondo IPV4, il protocollo ARP permette di mappare un indirizzo layer 3 ad uno di layer 2.
IPv6 invece, per ottenere la medesima traduzione, utilizza Neighbor Discovery protocol, o più semplicemente ND.
ND è composto da un subset di messaggi realativi alla suite ICMPv6, che nel suo insieme replica le medesime funzionalità di control plane supportate da ICMP per IPv4.
Se un host IPV6 vuole conoscere l’indirizzo MAC address del proprio gateway , per esempio fc00::1, dovrà quindi inviare un messaggio ICMPv6 di Neighbor Solicitation, destinato all’indirizzo multicast Layer2 e Layer3 denominato “Solicited-node multicast address” (la natura di questo indirizzo sarà oggetto di un nuovo articolo.)
Quando il destinatario, nel nostro caso un router, riceverà il messaggio di NS, dovrà rispondere con un ICMPv6 Router Advertisement destinato all’indirizzo riservato mcast ff02:01 (all host).
All’interno del messaggio RA vengono forniti i parametri necessari per permettere ad un host di comunicare al di fuori del proprio dominio link-local:
- uno o più IPv6 onlink-prefix che un host può utilizzare per inviare e ricevere traffico
- il ‘lifetime’ di ciascun prefix
- se e per quanto tempo il gateway può essere utilizzato come default.
- un insieme di flag per identificare il tipo di autoconfigurazione (stateful o stateless)
- altre informazioni relative a MTU e massimo numero di hop.
Su IOS-XR il comando principale per verificare ND è:
Router#show ipv6 neighbors
IPv6 Address Age Link-layer Addr State Interface
2A01:798:0:30:20D:60FF:FEEB:2FFA 0 000d.60eb.2ffa REACH Vl2800
FE80::20D:60FF:FEEB:2FFA 0 000d.60eb.2ffa REACH Vl2800
Questo comando permette di visualizzare la neighbor cache e lo stato e l’indirizzo link-layer (mac address), sia per indirizzi link-local che global.
Lo stato di ogny entry nella neighbor cache può apparire come:
- REACH(reachable): è stata ricevuta una risposta all’interno del ReachableTime (default 30 secondi )
- INCMP (incomplete): nessun riscontro a seguito del messaggio di NS.
- STALE: il timer ReachableTime è scaduto a seguito di un riscontro positivo. In questo stato il traffico cessa di essere inoltrato.