Social Icons

Sunday, May 11, 2014

CCNP ROUTE: 2. The IPv6 Neighbor Table

IPv6 does not implement the ARP that is used in IPv4. Instead, IPv6 implements the Neighbor Discovery (ND) protocol.

The IPv6 ND protocol performs the following functions:

- Stateless address autoconfiguration: The host can determine its full IPv6 address without the use of DHCP.
- Duplicate address detection (DAD): The host can determine whether the address it will use is already in use on the network.
- Prefix discovery: The host finds out the link’s IPv6 prefix.
- Parameter discovery: The host finds out the link’s MTU and hop count.
- Address resolution: The host can determine the MAC address of other nodes without the use of ARP.
- Router discovery: The host finds local routers without the use of DHCP.
- Next-hop determination: The host can determine a destination’s next hop.
- Neighbor unreachability detection: The host can determine whether a neighbor is no longer reachable.
- Redirect: The host can tell another host if a preferred next hop exists to reach a particular destination.

IPv6 ND uses ICMPv6 to implement some of its functions. These ICMPv6 messages are:
- Router Advertisement (RA): Sent by routers to advertise their presence and link-specific parameters
- Router Solicitation (RS): Sent by hosts to request RA from local routers
- Neighbor Solicitation (NS): Sent by hosts to request link layer addresses of other hosts (also used for duplicate address detection)
- Neighbor Advertisement (NA): Sent by hosts in response to an NS
- Redirect: Sent to a host to notify it of a better next hop to a destination

Let's consider routers R5 and R2 and see the messages exchanged by the two routers when pinging:

R5#debug ipv6 nd 
ICMP Neighbor Discovery events debugging is on

R5#ping 2001:0:0:0::1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/16/44 ms
R5#
*Mar  1 00:15:55.971: ICMPv6-ND: DELETE -> INCMP: 2001::1
*Mar  1 00:15:55.971: ICMPv6-ND: Sending NS for 2001::1 on FastEthernet0/0
*Mar  1 00:15:55.991: ICMPv6-ND: Received NA for 2001::1 on FastEthernet0/0 from 2001::1
*Mar  1 00:15:55.995: ICMPv6-ND: INCMP -> REACH: 2001::1
R5#
*Mar  1 00:16:05.999: ICMPv6-ND: DELAY -> PROBE: FE80::C202:2EFF:FEF4:0
*Mar  1 00:16:05.999: ICMPv6-ND: Sending NS for FE80::C202:2EFF:FEF4:0 on FastEthernet0/0
*Mar  1 00:16:06.035: ICMPv6-ND: Received NA for FE80::C202:2EFF:FEF4:0 on FastEthernet0/0 from FE80::C202:2EFF:FEF4:0
*Mar  1 00:16:06.039: ICMPv6-ND: PROBE -> REACH: FE80::C202:2EFF:FEF4:0
R5#
*Mar  1 00:16:11.027: ICMPv6-ND: Received NS for FE80::C204:20FF:FED4:0 on FastEthernet0/0 from FE80::C202:2EFF:FEF4:0
*Mar  1 00:16:11.031: ICMPv6-ND: Sending NA for FE80::C204:20FF:FED4:0 on FastEthernet0/0

Also, let's see the ND messages when bringing up the Fa0/0 interface on R5:

R5(config)#int fa 0/0
R5(config-if)#shut
R5#debug ipv6 nd
R5(config)#int fa 0/0
R5(config-if)#no shut

*Mar  1 00:19:09.643: ICMPv6-ND: Sending NS for FE80::C204:20FF:FED4:0 on FastEthernet0/0
R5(config-if)#
*Mar  1 00:19:10.647: ICMPv6-ND: DAD: FE80::C204:20FF:FED4:0 is unique.
*Mar  1 00:19:10.647: ICMPv6-ND: Sending NA for FE80::C204:20FF:FED4:0 on FastEthernet0/0
*Mar  1 00:19:10.651: ICMPv6-ND: Address FE80::C204:20FF:FED4:0/10 is up on FastEthernet0/0
*Mar  1 00:19:10.659: ICMPv6-ND: Sending NS for 2001::C204:20FF:FED4:0 on FastEthernet0/0
R5(config-if)#
*Mar  1 00:19:11.659: ICMPv6-ND: DAD: 2001::C204:20FF:FED4:0 is unique.
*Mar  1 00:19:11.659: ICMPv6-ND: Sending NA for 2001::C204:20FF:FED4:0 on FastEthernet0/0
*Mar  1 00:19:11.663: ICMPv6-ND: Address 2001::C204:20FF:FED4:0/64 is up on FastEthernet0/0

Router R5 also sends RA messages to advertise its presence and link-specific values. On the other end of the link, R2 does the same.

R5#
*Mar  1 00:30:31.063: ICMPv6-ND: Sending RA to FF02::1 on FastEthernet0/0
*Mar  1 00:30:31.063: ICMPv6-ND:     MTU = 1500
*Mar  1 00:30:31.067: ICMPv6-ND:     prefix = 2001::/64 onlink autoconfig
*Mar  1 00:30:31.067: ICMPv6-ND:             2592000/604800 (valid/preferred)
R5#
*Mar  1 00:31:03.527: ICMPv6-ND: Received RA from FE80::C202:2EFF:FEF4:0 on FastEthernet0/0

The above address (FE80::C202:2EFF:FEF4:0) is R2:
R2#show ipv6 int fa0/0
FastEthernet0/0 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::C202:2EFF:FEF4:0

R5#show ipv6 neighbors 
IPv6 Address                              Age Link-layer Addr State Interface
2001::1                                     3 c002.2ef4.0000  STALE Fa0/0
FE80::C202:2EFF:FEF4:0                      3 c002.2ef4.0000  STALE Fa0/0

Other useful troubleshooting and debugging commands:

R5#debug ipv6 icmp
ICMP packet debugging is on
R5#debug ipv6 interface 
IPv6 interface events debugging is on
R5#debug ipv6 packet 
IPv6 unicast packet debugging is on


No comments:

Post a Comment