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