Apr 072013

An IPv6 router does not need a global IP address on its interface like an IPv4 router because it only uses the link local address (LLA) for the convergence of the routing domain. In IPv6 an interface always has a LLA as soon as the interface is enabled for IPv6. The LLA as the name states is not routed across the local link (Broadcast Domain). Routing protocols either of link state nature or distance vector nature exchange updates with their corresponding LLA as source.


The core routers R1 and R2 only have a single global address assigned so that they could be accessed from outside their broadcast domain. This loopback address must also be advertised into the IGP which in our case is OSPF. The global address is also needed on the core routes so that they could send ICMP control messages like packet too big, network unreachable, TTL exceeded etc. to the requester.

The non-core routers R4 and R3 do have also global address assigned from their respective broadcast domains to the appropriate interfaces, so that the prefix could be advertised via OSPF for the network reachability.

Let’s now check the importance for having a global address on the core routers. First with a traceroute from H1 to H4

H1#traceroute 2::22   
Type escape sequence to abort.
Tracing the route to 2::22
  1 1::4 20 msec 32 msec 40 msec
  2 2001::1 36 msec 44 msec 40 msec
  3 2001::2 68 msec 68 msec 52 msec
  4 2::3 84 msec 80 msec 68 msec
  5 2::22 96 msec 100 msec 96 msec

The trace route output shows the ip address configured on the loopback interfaces of the core routers. If the loopback is disabled the trace route will be broken because the router will then use the LLA to reply and it will not get out of the broadcast domain.

To simulate this we disable the loopback of R2 and then trace the route.

R2(config)#interface loopback 0
H1#traceroute 2::22
Type escape sequence to abort.
Tracing the route to 2::22
  1 1::4 40 msec 16 msec 12 msec
  2 2001::1 52 msec 32 msec 20 msec
  3  *  *  *
  4 2::3 76 msec 112 msec 60 msec
  5 2::22 108 msec 100 msec 104 msec
R2#sh ipv6 traffic | include hopcount
        0 hopcount expired, 0 reassembly timeout,0 too big
        2 hopcount expired, 0 reassembly timeout,0 too big

The 3rd hop which is R2 did answer the TTL exceeded message but it did not reach H1 as it is originated from LLA.

The same thing will happen with packets which want to transit and have a larger MTU. As in IPv6 router on the transit path does not fragment a packet, it will send a “Packet too big” message to the source. This will be also sent from the Global address.

Let’s now change the interface MTU to 1300 and send a ping from H1 to H4 with a larger packet size.

H1#ping 2::22 size 1500 repeat 1
 IPv6: SAS picked source FE80::CE02:BFF:FEF4:1 for 1::11
 ICMPv6: Sending ICMP too big to 1::11
 IPv6: nexthop FEAD::12:1,
 IPV6: source FE80::CE02:BFF:FEF4:1 (local)
       dest 1::11 (Ethernet0/0)
       traffic class 0, flow 0x0, len 1280+0, prot 58, hops 64, Invalid source address

Host H1 will never be able to transverse R2, if it sends packets larger than 1300 bytes.

An IPv6 router needs an address other than LLA; either global or unique local if it has to be administered outside the local broadcast domain.