Friday, 24 February 2012

IPv6 Primer

Some notes as I'm gathering the info while testing using Dynamips/Dynagen. There is lots of information on the net on how to use dynamips so I'm not going to repeat it here. Alternative you can use IOU which I've documented here.

Cisco's IPV6 configuration guide can be found here.

Enable IPv6

Enable IPv6  - ipv6 unicast-routing
Enable IPv6 CEF (does not turn on automatically!) - ipv6 cef

Now if you run the command show ipv6 interface (which is the same as ipv4 command show ip interface) it shows no output which indicates no ipv6 interface are enabled. In contrast show ip interface lists everything.

IPv6 Address Summary
Lets pick and interface and give it an ip address. There is a plethora of IPv6 addresses but here is a quick summary.

IPv6 Address Range Use
0100::/8 IETF Reserved
0200::/7 IETF Reserved
0400::/6 IETF Reserved
0800::/5 IETF Reserved
1000::/4 IETF Reserved
2000::/3 Global Unique
      2001::/32 Teredo
      2002::/16 6to4 tunnels
4000::/3 IETF Reserved
6000::/3 IETF Reserved
8000::/3 IETF Reserved
A000::/3 IETF Reserved
C000::/3 IETF Reserved
E000::/4 IETF Reserved
F000::/5 IETF Reserved
F800::/6 IETF Reserved
FC00::/7 Local unicast address (ie RFC1918 equivalent?)
FE00::/9 IETF Reserved
FE80::/10 Link local unicast address
FEC0::/10 IETF Reserved
FF00::/8 Multicast
        FF01:: Node Local Multicast
        FF02:: Link Local Multicast
        FF05:: Site Local Multicast
        FF0X:: Variable scope multicast ????
        FF3x::/32 Source Specific Multicast (SSM)
        FF70::/12 Embedded RP

 Source: here, here and others

Lets give the interface a link local address:

int fa0/0
ipv6 address autoconfig

When you look at the interface again its now got an ip address:

show ipv6 interface b
Load for five secs: 3%/99%; one minute: 4%; five minutes: 2%
No time source, *02:03:28.487 UTC Fri Mar 1 2002

FastEthernet0/0            [up/up]
    FE80::C000:BFF:FEEC:0
FastEthernet0/1            [administratively down/down]


The link local address is calculated using the EUI-64 method described here. Alternative we can give it an ip address using

 ipv6 address 4010::1/64


Neighbor Discovery (ND) (aka ARP for IPv6)

Lets see what the neighbor table looks like:

R1#show ipv6 neighbors
Load for five secs: 3%/0%; one minute: 2%; five minutes: 1%
No time source, *03:02:23.467 UTC Fri Mar 1 2002

When you try to ping something the ND protocol send a Neighbor Solicitation message:

Output from - debug ipv6 neighbor
ICMPv6-ND: DELETE -> INCMP: 4010::2
ICMPv6-ND: Sending NS for 4010::2 on FastEthernet0/0
ICMPv6-ND: Received NA for 4010::2 on FastEthernet0/0 from 4010::2
ICMPv6-ND: Neighbour 4010::2 on FastEthernet0/0 : LLA c201.0bec.0000
ICMPv6-ND: INCMP -> REACH: 4010::2


Output from - debug ipv6 packet detail
IPV6: source 4010::1 (FastEthernet0/0)
      dest FF02::1:FF00:2
      traffic class 224, flow 0x0, len 72+14, prot 58, hops 255, forward to ulp
IPV6: source 4010::2 (local)
      dest 4010::1 (FastEthernet0/0)
      traffic class 224, flow 0x0, len 72+8, prot 58, hops 255, originating

As you can see the request packet's source is the ipv6 unicast address and destination is a multicast address (FF02::1:FF00:2). The reply is unicast back to the originator.

Neighbor Discovery defines five different ICMP packet types:
  • a pair of Router Solicitation and Router Advertisement messages
  • a pair of Neighbor Solicitation and Neighbor Advertisements messages
  • a Redirect message

The messages serve the following purpose:

     Router Solicitation: When an interface becomes enabled, hosts may
                send out Router Solicitations that request routers to
                generate Router Advertisements immediately rather than
                at their next scheduled time.

     Router Advertisement: Routers advertise their presence together
                with various link and Internet parameters either
                periodically, or in response to a Router Solicitation
                message.  Router Advertisements contain prefixes that
                are used for on-link determination and/or address
                configuration, a suggested hop limit value, etc.

     Neighbor Solicitation: Sent by a node to determine the link-layer
                address of a neighbor, or to verify that a neighbor is
                still reachable via a cached link-layer address.
                Neighbor Solicitations are also used for Duplicate
                Address Detection.

     Neighbor Advertisement: A response to a Neighbor Solicitation
                message.  A node may also send unsolicited Neighbor
                Advertisements to announce a link-layer address change.

     Redirect:  Used by routers to inform hosts of a better first hop
                for a destination.





I can't wait till Cisco's IPv6 command set is shortened to ip6 or i6 or maybe even "ip" and and you have to add ipv4 to use any of the existing command set. My biggest bug bear is that "sh ip ro" is "sh ipv6 ro".

Could a Cisco Command Shell script be written which expands any occurrence of i6 to ipv6?



No comments:

Post a Comment