Monday, January 8, 2018
IPv6 Primer
IPv6 Primer
Some notes as Im gathering the info while testing using Dynamips/Dynagen. There is lots of information on the net on how to use dynamips so Im not going to repeat it here. Alternative you can use IOU which Ive documented here.
Ciscos 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
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
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 packets 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 cant wait till Ciscos 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?