Sunday 28 October 2012

ICMPv6-ND


ICMPv6-ND:

   ·         In IPv6, there is no ARP!

·         Then, how to route the packets in IPv6?

·         Then how address resolution happens in IPv6?

·         Answer is ICMPv6-ND

·         As soon as we enable IPv6 address under the interface, it automatically finds neighbors on the link and forms the neighbor relationship.

·         ICMPv6-ND uses 4 major messages to discover the neighbors.

1.  NS, Neighbor Solicitation

2.  NA, Neighbor Advertisement

3.  RS, Router Solicitation

4.  RA, Router Advertisement

 

·         Let me take 2 routers connected via Fa0/0 and configure IPv6 address and see the debug messages:

 

R1-----fa0/0---------fa0/0-----R2

 

R1(config)#ipv6 unicast-routing

R1(config)#int fa0/0

R1(config-if)#ipv6 address 2001:12::1/64

R1(config-if)#

R1(config-if)#do debug ipv6 packet

R1(config-if)#do debug ipv6 nd

*Mar  1 03:55:41.750: ICMPv6-ND: Received NA for 2001:12::1 on FastEthernet0/0 from 2001:12::1

*Mar  1 03:55:41.751: IPV6: source FE80::C000:1FFF:FEB4:0 (local)

*Mar  1 03:55:41.751:       dest FF02::16 (FastEthernet0/0)

*Mar  1 03:55:41.751:       traffic class 224, flow 0x0, len 76+0, prot 0, hops 1, originating

*Mar  1 03:55:41.751: IPv6: Sending on FastEthernet0/0

*Mar  1 03:55:41.755: ICMPv6-ND: Adding prefix 2001:12::1/64 to FastEthernet0/0

*Mar  1 03:55:41.755: ICMPv6-ND: Sending NS for 2001:12::1 on FastEthernet0/0

*Mar  1 03:55:41.755: IPV6: source :: (local)

*Mar  1 03:55:41.755:       dest FF02::1:FF00:1 (FastEthernet0/0)

R1(config-if)#

*Mar  1 03:55:41.759:       traffic class 224, flow 0x0, len 64+16, prot 58, hops 255, originating

*Mar  1 03:55:41.759: IPv6: Sending on FastEthernet0/0

*Mar  1 03:55:42.759: ICMPv6-ND: DAD: 2001:12::1 is unique.

*Mar  1 03:55:42.759: ICMPv6-ND: Sending NA for 2001:12::1 on FastEthernet0/0

*Mar  1 03:55:42.759: IPV6: source 2001:12::1 (local)

*Mar  1 03:55:42.759:       dest FF02::1 (FastEthernet0/0)

*Mar  1 03:55:42.763:       traffic class 224, flow 0x0, len 72+8, prot 58, hops 255, originating

*Mar  1 03:55:42.763: IPv6: Sending on FastEthernet0/0

*Mar  1 03:55:42.763: ICMPv6-ND: Address 2001:12::1/64 is up on FastEthernet0/0

R1(config-if)#

*Mar  1 03:55:42.935: IPV6: source FE80::C000:1FFF:FEB4:0 (local)

*Mar  1 03:55:42.935:       dest FF02::16 (FastEthernet0/0)

*Mar  1 03:55:42.935:       traffic class 224, flow 0x0, len 76+0, prot 0, hops 1, originating

*Mar  1 03:55:42.939: IPv6: Sending on FastEthernet0/0

R1(config-if)#

*Mar  1 03:56:08.299: ICMPv6-ND: Sending RA to FF02::1 on FastEthernet0/0

*Mar  1 03:56:08.299: ICMPv6-ND:     MTU = 1500

*Mar  1 03:56:08.299: ICMPv6-ND:     prefix = 2001:12::/64 onlink autoconfig

*Mar  1 03:56:08.299: ICMPv6-ND:             2592000/604800 (valid/preferred)

*Mar  1 03:56:08.299: IPV6: source FE80::C000:1FFF:FEB4:0 (local)

*Mar  1 03:56:08.303:       dest FF02::1 (FastEthernet0/0)

*Mar  1 03:56:08.303:       traffic class 224, flow 0x0, len 104+1396, prot 58, hops 255, originating

*Mar  1 03:56:08.303: IPv6: Sending on FastEthernet0/0

R1(config-if)#

*Mar  1 03:56:33.643: ICMPv6-ND: Received RA from FE80::C001:1FFF:FEB4:0 on FastEthernet0/0

R1(config-if)#do u all

All possible debugging has been turned off

R1(config-if)#

 

 

R2(config)#ipv6 unicast-routing

R2(config)#int fa0/0

R2(config-if)#ipv6 address 2001:12::2/64

R2(config-if)#

R2(config-if)#do debug ipv6 packet

R2(config-if)#do debug ipv6 nd

*Mar  1 03:55:40.391: IPV6: source FE80::C001:1FFF:FEB4:0 (local)

*Mar  1 03:55:40.395:       dest FF02::16 (FastEthernet0/0)

*Mar  1 03:55:40.395:       traffic class 224, flow 0x0, len 76+0, prot 0, hops 1, originating

*Mar  1 03:55:40.395: IPv6: Sending on FastEthernet0/0

*Mar  1 03:55:40.399: ICMPv6-ND: Adding prefix 2001:12::2/64 to FastEthernet0/0

*Mar  1 03:55:40.399: ICMPv6-ND: Sending NS for 2001:12::2 on FastEthernet0/0

*Mar  1 03:55:40.399: IPV6: source :: (local)

*Mar  1 03:55:40.399:       dest FF02::1:FF00:2 (FastEthernet0/0)

*Mar  1 03:55:40.399:       traffic class 224, flow 0x0, len 64+16, prot 58, hops 255, originating

R2(config-if)#

*Mar  1 03:55:40.403: IPv6: Sending on FastEthernet0/0

*Mar  1 03:55:41.371: IPV6: source FE80::C001:1FFF:FEB4:0 (local)

*Mar  1 03:55:41.371:       dest FF02::16 (FastEthernet0/0)

*Mar  1 03:55:41.371:       traffic class 224, flow 0x0, len 76+0, prot 0, hops 1, originating

*Mar  1 03:55:41.371: IPv6: Sending on FastEthernet0/0

*Mar  1 03:55:41.403: ICMPv6-ND: DAD: 2001:12::2 is unique.

*Mar  1 03:55:41.403: ICMPv6-ND: Sending NA for 2001:12::2 on FastEthernet0/0

*Mar  1 03:55:41.403: IPV6: source 2001:12::2 (local)

*Mar  1 03:55:41.403:       dest FF02::1 (FastEthernet0/0)

*Mar  1 03:55:41.407:       traffic class 224, flow 0x0, len 72+8, prot 58, hops 255, originating

*Mar  1 03:55:41.407: IPv6: Sending on FastEthernet0/0

*Mar  1 03:55:41.407: ICMPv6-ND: Address 2001:12::2/64 is up on FastEthernet0/0

R2(config-if)#

*Mar  1 03:55:42.811: ICMPv6-ND: Received NA for 2001:12::1 on FastEthernet0/0 from 2001:12::1

R2(config-if)#

*Mar  1 03:56:08.375: ICMPv6-ND: Received RA from FE80::C000:1FFF:FEB4:0 on FastEthernet0/0

R2(config-if)#

*Mar  1 03:56:33.627: ICMPv6-ND: Sending RA to FF02::1 on FastEthernet0/0

*Mar  1 03:56:33.627: ICMPv6-ND:     MTU = 1500

*Mar  1 03:56:33.627: ICMPv6-ND:     prefix = 2001:12::/64 onlink autoconfig

*Mar  1 03:56:33.627: ICMPv6-ND:             2592000/604800 (valid/preferred)

*Mar  1 03:56:33.627: IPV6: source FE80::C001:1FFF:FEB4:0 (local)

*Mar  1 03:56:33.631:       dest FF02::1 (FastEthernet0/0)

*Mar  1 03:56:33.631:       traffic class 224, flow 0x0, len 104+1396, prot 58, hops 255, originating

*Mar  1 03:56:33.631: IPv6: Sending on FastEthernet0/0

R2(config-if)#do u all

All possible debugging has been turned off

R2(config-if)#

 

R1#show ipv6 nei

IPv6 Address                              Age Link-layer Addr State Interface

2001:12::2                                  0 c201.2530.0000  REACH Fa0/0

FE80::C001:25FF:FE30:0                      0 c201.2530.0000  REACH Fa0/0

 

R1#

 

R2#show ipv6 nei

IPv6 Address                              Age Link-layer Addr State Interface

2001:12::1                                  0 c200.2530.0000  REACH Fa0/0

FE80::C000:25FF:FE30:0                      0 c200.2530.0000  STALE Fa0/0

 

R2#

 

Observation:

·         As soon as we configure ipv6 address, we see that router is first sending NS to check for Duplicate Address Detection.

·         NS message is originated by the originated interface and the destination is solicited-node multicast address

·         Once DAD is over, then it is sending NA to find the neighbors on the link

·         Since I have configured “ipv6 unicast-routing”, router is sending RA to find out the routing devices on the link.

·         R1 and R2 now formed the neighbor relationship, show ipv6 neighbors shows this.

·         This “show ipv6 neighbors” output is like arp table in IPv4.

No comments:

Post a Comment