Configuring and Verifying IPv6 Unicast Addresses
This section examines how to configure and verify IPv6 unicast addresses on interfaces. As illustrated in Figure 8-14, various options are available when configuring an IPv6 unicast address. Notice that both the link-local unicast address (starting with FE80) and the global aggregatable unicast addresses can be assigned statically or dynamically.
In the following section, the commands used to configure and verify IPv6 addresses are described. The sections after that discuss in detail the various options.
IPv6 Unicast Address Configuration and Verification Commands
This section introduces many of the commands used in the following sections.
Note | Many IPv6 commands are introduced in this chapter, and in many cases there are more parameters for the commands than are identified here. For detailed command syntax, see the Cisco IOS Command References. |
Use the ipv6 unicast-routing global configuration command to enable the forwarding of IPv6 unicast datagrams.
Note | We confirmed that the ipv6 unicast-routing command is only required on a router before configuring an IPv6 routing protocol. It is not needed before configuring IPv6 interface addresses. Therefore, the “IPv6 traffic forwarding” that this command enables is related to the ability of the interface to route IPv6 traffic, not to the ability of an interface to send IPv6 traffic. It is also required for the interface to provide stateless autoconfiguration. However, configuring no ipv6 unicast-routing turns off the IPv6 routing capabilities of the router; the router acts as an IPv6 end-station. |
Optionally use the ipv6 cef global configuration command to enable Cisco Express Forwarding (CEF) for IPv6 (CEFv6). CEFv6 is an advanced, Layer 3 IP switching technology for the forwarding of IPv6 packets (and is required to be enabled for some other IPv6 features to operate). When CEFv6 is enabled, network entries that are added, removed, or modified in the IPv6 Routing Information Base (RIB), as dictated by the routing protocol in use, are reflected in the Forwarding Information Bases (FIBs), and the IPv6 adjacency tables maintain Layer 2 next-hop addresses for all entries that are in each FIB.
Use the ipv6 address address/prefix-length [eui-64 | link-local] interface configuration command to configure an IPv6 address and prefix (specified in the address/prefix-length parameters) for an interface and enable IPv6 processing on the interface. The eui-64 parameter forces the router to complete the addresses’ low-order 64-bits using an EUI-64 format interface ID. The link-local parameter configures the address as the link-local address on the interface.
Use the ipv6 address autoconfig [default] interface configuration command to enable automatic configuration of IPv6 addresses using stateless autoconfiguration on an interface, and enable IPv6 processing on the interface. If a default router is selected on this interface, the optional default keyword causes a default route to be installed using that default router. The default keyword can be specified only on one interface.
Use the ipv6 unnumbered interface-type interface-number interface configuration command to enable IPv6 processing on an interface without assigning an explicit IPv6 address to the interface. The interface will use the IPv6 address of the interface specified by the interface-type interface-number parameters as the source address of traffic from the configured interface. The interface specified in the command must be in the “up” state.
Use the ipv6 nd reachable-time milliseconds interface configuration command to specify the number of milliseconds (from 0 to 3,600,000) that a remote IPv6 node is considered reachable after some reachability confirmation event has occurred, such as the neighbor discovery process. The default is 0 milliseconds (indicating an unspecified time) in router advertisements and 30,000 (30 seconds) for the neighbor discovery activity of the router itself. The configured time is used by the router to detect unavailable neighbors. Shorter configured times enable the router to detect unavailable neighbors more quickly; however, shorter times consume more IPv6 network bandwidth and processing resources in all IPv6 network devices. Very short configured times are not recommended in normal IPv6 operation.
Use the ipv6 neighbor ipv6-address interface-type interface-number hardware-address global configuration command to statically configure an entry in the IPv6 neighbor discovery cache, mapping the IPv6 address to the hardware address on an interface.
The show ipv6 interface [brief] [type number] [prefix] EXEC command displays the usability and status of interfaces configured for IPv6. The brief keyword displays a brief summary of the IPv6 status and configuration for each interface. The type number parameters indicate the type and number of the interface about which to display information. The prefix keyword displays the IPv6 neighbor discovery prefixes that are configured on a specified interface.
Use the show ipv6 routers [interface-type interface-number] [conflicts] EXEC command to display IPv6 router advertisement information received from onlink routers (those locally reachable on the link). The interface-type interface-number parameters indicate the type and number of the interface about which to display information. The conflicts keyword displays information about routers advertising parameters that differ from the advertisement parameters configured for the specified interface on which the advertisements are received.
The show ipv6 neighbors [interface-type interface-number | ipv6-address | ipv6-hostname | statistics] EXEC command display IPv6 neighbor discovery cache information for the specified neighbors. The optional statistics parameter displays neighbor discovery cache statistics.
The debug ipv6 nd EXEC command displays messages associated with ICMPv6 neighbor discovery. As described earlier in the “Solicited-Node Multicast Addresses” section, ICMPv6 neighbor discovery is the IPv6 replacement for the IPv4 ARP.
The debug ipv6 packet [access-list access-list-name] [detail] EXEC command displays information associated with IPv6 packet processing. When an IPv6 access list is specified by using the access-list-name parameter, only packets permitted by the access list are displayed. Detailed information is displayed when the detail keyword is specified.
Static IPv6 Address Assignment
Figure 8-15 illustrates a simple network with two routers. This network is used to illustrate the configuration of various IPv6 addressing features. First, static address assignment on Router R1 is explored.
Static Global Aggregatable Address Assignment
Initially, the no ipv6 unicast-routing command is used on R1 to disable the routing capabilities the router acts as an end station for IPv6. The debug ipv6 nd command is used to view IPv6 neighbor discovery events in real time, as shown at the top of Example 8-10.
R1#debug ipv6 nd
ICMP Neighbor Discovery events debugging in on
R1#
*Aug 13 08:11:00.309: ICMPv6-ND: Received RA from FE80::219:55FF:FEDF:AD22 on
FastEthernet0/0
R1#
R1(config)#interface fa0/0
R1(config-if)#ipv6 address 2001:1::1/64
R1(config-if)#
*Aug 13 08:12:19.541: ICMPv6-ND: Adding prefix 2001:1::1/64 to FastEthernet0/0
*Aug 13 08:12:19.541: ICMPv6-ND: Sending NS for 2001:1::1 on FastEthernet0/0
*Aug 13 08:12:20.541: ICMPv6-ND: DAD: 2001:1::1 is unique.
*Aug 13 08:12:20.541: ICMPv6-ND: Sending NA for 2001:1::1 on FastEthernet0/0
*Aug 13 08:12:20.541: ICMPv6-ND: Address 2001:1::1/64 is up on FastEthernet0/0
*Aug 13 08:13:37.941: ICMPv6-ND: Received RA from FE80::219:55FF:FEDF:AD22 on
FastEthernet0/0
As soon as the debugging is enabled, router advertisements (RAs) start coming from R2 on Fast Ethernet 0/0, using its link-local address. As shown next in Example 8-10, an IPv6 address, 2001:1::1/64, is configured on R1’s Fast Ethernet 0/0. In this example, the entire address is manually configured, so the EUI-64 format for the interface ID was not used. Immediately the debug output shows that the prefix 2001:1::1/64 is added to the interface, and R1 sends an NS for that address. The NS solicits the link to ensure that its address is unique. The duplicate address detection (DAD) message from R2 confirms that this address is unique on the link. R1 then sends a neighbor advertisement (NA), which includes its address; NAs are sent when there is an address change on an interface, including when an address is first assigned to an interface. The debug output confirms that the address is up on the interface. The last line of the debug output indicates that R1 received another RA from R2.
Note | RAs, NAs, and DADs are described further in the “Stateless Autoconfiguration of IPv6 Addresses” section, later in this chapter. |
It is important to note that the RAs are not routing updates (which are sent by routing protocols). Rather, RAs are sent by the ND process to advertise autoconfiguration parameters, including the IPv6 prefix on the link.
As shown next in Example 8-11, IPv6 routing is enabled on R1 and it sends RAs. The RAs include the MTU of the interface (1500 bytes), and the prefix configured on the interface (2001:1::/64). The lower part of this Example 8-11 illustrates output from the show ipv6 interface command, to verify the interface parameters. Interface Fast Ethernet 0/0 has a link-local address and a global unicast address; it has also joined several multicast groups, including FF02::1 (all hosts) and FF02::2 (all routers). The ND information, including how often RAs are sent and how long they live, is also included in the output of this show command.
R1(config)#ipv6 unicast-routing
R1(config)#
*Aug 13 08:25:51.093: ICMPv6-ND: Sending RA to FF02::1 on FastEthernet0/0
*Aug 13 08:25:51.093: ICMPv6-ND: MTU = 1500
*Aug 13 08:25:51.093: ICMPv6-ND: prefix = 2001:1::/64 onlink autoconfig
*Aug 13 08:25:51.093: ICMPv6-ND: 2592000/604800 (valid/preferred)
R1(config)#
R1#show ipv6 interface fa0/0
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::219:56FF:FE2C:9F60
Global unicast address(es):
2001:1::1, subnet is 2001:1::/64
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:1
FF02::1:FF2C:9F60
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
ND advertised reachable time is 0 milliseconds
ND advertised retransmit interval is 0 milliseconds
ND router advertisements are sent every 200 seconds
ND router advertisements live for 1800 seconds
Hosts use stateless autoconfig for addresses.
R1#
Assigning Multiple Global Aggregatable Addresses
As mentioned earlier, IPv6 interfaces can have multiple addresses of various types assigned to them. These addresses can be used simultaneously. There is no concept of secondary addresses, as is the case for IPv4.
To illustrate the difference between IPv4 and IPv6, the Fast Ethernet 0/0 interface on R1 in Figure 8-15 is examined the output is shown at the top of Example 8-12.
R1#show run interface fa0/0
Building configuration...
Current configuration : 135 bytes
!
interface FastEthernet0/0
ip address 10.10.10.1 255.255.255.0
duplex auto
speed auto
ipv6 address 2001:1::1/64
ipv6 enable
end
R1#
R1(config)#interface fa0/0
R1(config-if)#ip address 10.20.20.1 255.255.255.0
R1(config-if)#do show run interface fa0/0
Building configuration...
Current configuration : 135 bytes
!
interface FastEthernet0/0
ip address 10.20.20.1 255.255.255.0
duplex auto
speed auto
ipv6 address 2001:1::1/64
ipv6 enable
end
R1(config-if)#ip address 10.10.10.1 255.255.255.0
R1(config-if)#ipv6 address 2002:1::1/64
R1(config-if)#do show run interface fa0/0
Building configuration...
Current configuration : 162 bytes
!
interface FastEthernet0/0
ip address 10.10.10.1 255.255.255.0
duplex auto
speed auto
ipv6 address 2001:1::1/64
ipv6 address 2002:1::1/64
ipv6 enable
end
R1(config-if)#
Notice that the interface has an IPv4 and an IPv6 address. The middle of Example 8-12 illustrates what happens when another IPv4 IP address is assigned and the configuration is viewed again. Notice that the interface has only one IPv4 address, 10.20.20.1; the original address is gone. Next, the original IPv4 address is restored, and then another IPv6 global aggregatable unicast address is configured. Notice at the end of Example 8-12, the new IPv6 address is added to the interface and did not overwrite the original IPv6 address. IPv6 does not have the concept of secondary addresses; in IPv6 an interface can have multiple addresses.
Note | RFC 3484, Default Address Selection for Internet Protocol version 6 (IPv6), explains how the source address of IPv6 traffic coming from an interface with multiple addresses is determined. |
IPv6 Unnumbered Interfaces
IPv6 supports unnumbered interfaces, similar to the IPv4 unnumbered interface feature, to enable IPv6 processing on an interface without assigning an explicit IPv6 address to the interface, In Example 8-13, a loopback interface is created and configured with an IPv6 address. The Serial 0/0/0 interface is then configured to use the IPv6 address of the loopback interface, with the ipv6 unnumbered loopback 10 command. The output of the show ipv6 interface s0/0/0 command illustrates that the Serial 0/0/0 interface uses the IPv6 address from interface loopback 10.
R1(config-if)#exit
R1(config)#interface loopback 10
R1(config-if)#ipv6 address 2003:1::10/64
R1(config-if)#interface s0/0/0
R1(config-if)#ipv6 unnumbered loopback 10
R1(config-if)#
R1(config-if)#do show ipv6 interface s0/0/0
Serial0/0/0 is administratively down, line protocol is down
IPv6 is enabled, link-local address is FE80::219:56FF:FE2C:9F60 [TEN]
Interface is unnumbered, using address of Loopback10
No global unicast address is configured
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF2C:9F60
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ND DAD is not supported
ND reachable time is 30000 milliseconds
Hosts use stateless autoconfig for addresses.
R1(config-if)#
Static Link-Local Address Assignment
Recall that a device’s link-local address is assigned dynamically by default, using a prefix FE80::/10 and the EUI-64 format interface ID. The show command output in Example 8-13 illustrates the dynamically assigned link-local address on the R1 router. Such link-local addresses are easy to configure, because you do not have to do anything, but they are difficult to work with, because you need to know the data link layer address of the interface to determine where it belongs.
Link-local addresses can also be statically assigned, using either the EUI-64 format or a manually configured interface ID. Using a manually configured interface ID makes it much easier to remember, and therefore use, the link-local address. Example 8-14 illustrates the configuration of the link-local address on an interface, using the ipv6 address FE80::1 link-local command. The interface ID is set to 1. The lower part of Example 8-14 illustrates the output of the show ipv6 interface fa0/0 command. The link-local address has been overwritten; unlike the global unicast address, an interface can only have one link-local address.
R1(config-if)#interface fa0/0
R1(config-if)#ipv6 address FE80::1 ?
link-local use link-local address
R1(config-if)#ipv6 address FE80::1 link-local
R1(config-if)#do show ipv6 interface fa0/0
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::1
Global unicast address(es):
2001:1::1, subnet is 2001:1::/64
2002:1::1, subnet is 2002:1::/64
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:1
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
ND advertised reachable time is 0 milliseconds
ND advertised retransmit interval is 0 milliseconds
Stateless Autoconfiguration of IPv6 Addresses
This section details the various phases of stateless autoconfiguration.
An IPv6 router on a local link can send (either periodically or upon a host’s request) network information, such as the 64-bit prefix of the local link network and the default route, to all the nodes on the local link. Hosts can autoconfigure themselves by appending their IPv6 interface identifier (in EUI-64 format) to the local link 64-bit prefix.
As described earlier in the “Solicited-Node Multicast Addresses” section, the neighbor discovery or solicitation phase is similar to IPv4’s ARP. It allows an IPv6 router to determine the link-layer address of neighbors on the same link, to find neighbor routers, and to keep track of those neighbors for stateless autoconfiguration.
In the earlier “Static IPv6 Address Assignment” section, we saw debug output from the neighbor discovery (or solicitation) process, which works on any IPv6 device, including hosts and routers. Figure 8-16 illustrates how this process works. An ICMPv6 message type 135, NS, is sent on the link. The source address is the IPv6 address of the source node. The destination address is the solicited-node multicast address corresponding to the IPv6 address of the destination node. The message also includes the link-layer address of the source node, so the destination node will be able to use this address immediately. Each destination node that receives the NS responds with an ICMPv6 message type 136, NA. The source address of this message is the IPv6 address of the responding node, and the destination address is the IPv6 address of the original source node (which sent the NS). The data portion includes the link-layer address of the destination node (even though the link-layer address is of course also included in the frame). The two devices can now communicate on the link because they know each other’s link-layer addresses.
After the devices are communicating, a host may look for autoconfiguration information. Figure 8-17 illustrates how this process works. Stateless autoconfiguration uses the information in RA messages to configure hosts automatically and without human intervention. RAs are sent periodically, but a node can send out RS messages when it boots so that it doesn’t have to wait for the next RA. All routers on the network reply to the RS immediately, with an RA sent to the all-nodes multicast address. The prefix included in the RA is used as the /64 prefix for the host address. The interface ID used is the EUI-64 format interface ID.
After obtaining an address, the DAD phase occurs, in which the node verifies that its new IPv6 address is unique on that link. Again, we saw debug output from this earlier. Figure 8-18 illustrates how this process works. DAD uses an NS to query if another node on the link has the same IPv6 address. It sends an NS packet to the solicited-node multicast address of its own IPv6 address. The source address of this packet is the unspecified address ::. If a node responds to the request, it means that the IPv6 address is already in use, and the requesting node should not use that address. DAD is used during the autoconfiguration process to ensure that no other device is using the autoconfiguration address.
Stateless autoconfiguration can also be used for renumbering devices easily; to renumber an entire site you only need renumber the routers. In this case, as shown in Figure 8-19, RA messages contain both the old and the new prefix. The lifetime of the old prefix is decreased, to indicate that the hosts should use the new prefix, but still keep their current connections open with the old prefix. During the overlap time, nodes have two unicast addresses. When the old prefix’s lifetime expires, the RAs include only the new prefix.
Figure 8-20 illustrates a simple network used to illustrate the stateless autoconfiguration process. Initially, the R2 router has the no ipv6 unicast-routing command configured. R1 will be configured as a stateless autoconfiguration client.
Example 8-15 shows that IPv6 ICMPv6 ND debugging is enabled on R1 with the debug ipv6 nd command, and then its interface Fast Ethernet0/0 is configured with the ipv6 address autoconfig command. The interface creates a link-local address and verifies it with the DAD process. R1 then starts to send out RS messages, looking for autoconfiguration information. R2 is not yet configured, so the RS messages are not answered. The output of the show ipv6 interface command confirms that R1 has a link-local address, but not a global unicast address. The blank output of the show ipv6 routers command confirms that there are no routers available to provide R1 with stateless autoconfiguration.
R1#debug ipv6 nd
ICMP Neighbor Discovery events debugging is on
R1#config t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#interface fa0/0
R1(config-if)#ipv6 address autoconfig
R1(config-if)#
*Aug 13 14:02:02.172: ICMPv6-ND: Sending NS for FE80::219:56FF:FE2C:9F60 on
FastEthernet0/0
*Aug 13 14:02:03.172: ICMPv6-ND: DAD: FE80::219:56FF:FE2C:9F60 is unique.
*Aug 13 14:02:03.172: ICMPv6-ND: Sending NA for FE80::219:56FF:FE2C:9F60 on
FastEthernet0/0
*Aug 13 14:02:03.172: ICMPv6-ND: Address FE80::219:56FF:FE2C:9F60/10 is up on
FastEthernet0/0
*Aug 13 14:02:05.172: ICMPv6-ND: Sending RS on FastEthernet0/0
*Aug 13 14:02:09.172: ICMPv6-ND: Sending RS on FastEthernet0/0
R1(config-if)#do show ipv6 interface fa0/0
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::219:56FF:FE2C:9F60
No global unicast address is configured
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF2C:9F60
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
R1(config-if)#do show ipv6 routers
R1(config-if)#
As shown in Example 8-16, on R2, IPv6 ICMPv6 ND debugging is enabled and then its Fast Ethernet 0/0 interface is configured with a global unicast address. In the debug output, notice that R2 adds the prefix and sends NS, DAD, and NA messages. However, it does not do any stateless autoconfiguration for R1. In the lower part of Example 8-16, the ipv6 unicast-routing command is configured on R2; this command is required for R2 to provide stateless autoconfiguration to R1. Immediately, R2 begins to send updates to the all-nodes multicast address FF02::1 on the Fast Ethernet 0/0 interface. This message includes the network prefix (2001:1:1001::/64) to be used by nodes to automatically configure themselves (as indicated by the “onlink autoconfig” notation).
R2#debug ipv6 nd
ICMP Neighbor Discovery events debugging is on
R2#config t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#interface fa0/0
R2(config-if)#ipv6 address 2001:1:1001::1/64
R2(config-if)#
*Aug 13 13:58:29.400: ICMPv6-ND: Adding prefix 2001:1:1001::1/64 to
FastEthernet0/0
*Aug 13 13:58:29.400: ICMPv6-ND: Sending NS for 2001:1:1001::1 on
FastEthernet0/0
*Aug 13 13:58:30.400: ICMPv6-ND: DAD: 2001:1:1001::1 is unique.
*Aug 13 13:58:30.400: ICMPv6-ND: Sending NA for 2001:1:1001::1 on
FastEthernet0/0
*Aug 13 13:58:30.400: ICMPv6-ND: Address 2001:1:1001::1/64 is up on
FastEthernet0/0
R2(config-if)#exit
R2(config)#ipv6 unicast-routing
R2(config)#
*Aug 13 14:00:07.428: ICMPv6-ND: Sending RA to FF02::1 on FastEthernet0/0
*Aug 13 14:00:07.428: ICMPv6-ND: MTU = 1500
*Aug 13 14:00:07.428: ICMPv6-ND: prefix = 2001:1::/64 onlink autoconfig
*Aug 13 14:00:07.428: ICMPv6-ND: 2592000/604800 (valid/preferred)
*Aug 13 14:00:08.428: ICMPv6-ND: Received NA for
2001:1:1001:0:219:56FF:FE2C:9F60 on FastEthernet0/0 from
2001:1:1001:0:219:56FF:FE2C:9F60
The top of Example 8-17 illustrates the debug output on R1. R1 receives an RA, deletes some stale information, autoconfigures the address, and then does DAD for this address. The output of the show ipv6 interface command confirms that the interface has a global unicast address, and the prefix is the same as R2 advertised. The last line of this show command output lists the default router as R2.
R1(config-if)#
*Aug 13 14:13:41.612: ICMPv6-ND: Received NA for 2001:1:1001::1 on FastEthernet0/0
from 2001:1:1001::1
*Aug 13 14:15:18.640: ICMPv6-ND: Received RA from FE80::219:55FF:FEDF:AD22 on
FastEthernet0/0
*Aug 13 14:15:18.640: ICMPv6-ND: DELETE -> INCMP: FE80::219:55FF:FEDF:AD22
*Aug 13 14:15:18.640: ICMPv6-ND: INCMP -> STALE: FE80::219:55FF:FEDF:AD22
*Aug 13 14:15:18.640: ICMPv6-ND: Sending NS for 2001:1:1001:0:219:56FF:FE2C:9F60 on
FastEthernet0/0
*Aug 13 14:15:18.640: ICMPv6-ND: Autoconfiguring 2001:1:1001:0:219:56FF:FE2C:9F60 on
FastEthernet0/0
*Aug 13 14:15:19.640: ICMPv6-ND: DAD: 2001:1:1001::0:219:56FF:FE2C:9F60 is unique.
*Aug 13 14:15:19.640: ICMPv6-ND: Sending NA for 2001:1:1001:0:219:56FF:FE2C:9F60 on
FastEthernet0/0
*Aug 13 14:15:19.640: ICMPv6-ND: Address 2001:1:1001:0:219:56FF:FE2C:9F60/64 is up on
FastEthernet0/0
R1(config-if)#do show ipv6 interface fa0/0
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::219:56FF:FE2C:9F60
Global unicast address(es):
2001:1:1001:0:219:56FF:FE2C:9F60, subnet is 2001:1:1001::/64 [PRE]
valid lifetime 2591862 preferred lifetime 604662
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF2C:9F60
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
Default router is FE80::219:55FF:FEDF:AD22 on FastEthernet0/0
R1(config-if)#
R1(config-if)#do show ipv6 routers
Router FE80::219:55FF:FEDF:AD22 on FastEthernet0/0, last update 0 min
Hops 64, Lifetime 1800 sec, AddrFlag=0, OtherFlag=0, MTU=1500
HomeAgentFlag=0, Preference=Medium
Reachable time 0 msec, Retransmit time 0 msec
Prefix 2001:1:1001::/64 onlink autoconfig
valid lifetime 2592000, preferred lifetime 604800
R1(config-if)#
The show ipv6 routers command output also shown in Example 8-17 illustrates that the default Router R2 is providing R1 with information is on R1’s Fast Ethernet 0/0 interface, when the last update was, the prefix, and the valid lifetime and the preferred lifetime values.
Now that it is working, we can further understand the stateless autoconfiguration process by unraveling it to see what happens. First, the ipv6 unicast-routing is disabled on R2. The debug messages on both routers are shown in Example 8-18.
R2(config)#no ipv6 unicast-routing
R2(config)#
*Aug 13 14:04:39.024: ICMPv6-ND: Sending Final RA on FastEthernet0/0
R1(config-if)#
*Aug 13 14:19:50.236: ICMPv6-ND: Received RA from FE80::219:55FF:FEDF:AD22 on
FastEthernet0/0
*Aug 13 14:19:50.236: ICMPv6-ND: zero lifetime, deleting
*Aug 13 14:19:50.236: ICMPv6-ND: STALE -> DELETE: FE80::219:55FF:FEDF:AD22
R1(config-if)#do show ipv6 routers
R1(config-if)#
R1(config-if)#do show ipv6 interface fa0/0
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::219:56FF:FE2C:9F60
Global unicast address(es):
2001:1:1001:0:219:56FF:FE2C:9F60, subnet is 2001:1:1001::/64 [PRE]
valid lifetime 2591817 preferred lifetime 604617
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF2C:9F60
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
R1(config-if)#
R2 sends a final update as soon as the no ipv6 unicast-routing command is configured. R1 receives the update, which included a zero lifetime. R1 deletes the link-local address of R2.
The blank output of the show ipv6 routers command on R1 confirms the deletion. In the show ipv6 interface command output, notice that the default router configuration is not listed anymore. However, the host still has its global unicast address using the network prefix that was assigned by stateless autoconfiguration. When the address was assigned, the valid lifetime was 30 days (2,592,000 seconds) and the preferred time was 7 days (604,800 seconds). Therefore, the host retains its global address for 30 days, so long as the interface does not go down. If it does go down, the prefix assignment would be lost.
In Example 8-19, R1’s Fast Ethernet 0/0 interface is shut down, and then enabled (with the no shutdown command). The results indicate that when the interface restarts, the NS, DAD, and NA messages are sent, for the link-link local address. R1 then starts to send RS messages, but they are not answered (because R2 is no longer configured to send RAs). The show ipv6 interface command confirms that the interface has a link-local address, but does not have a global unicast address.
R1(config-if)#shutdown
R1(config-if)#
*Aug 13 14:28:06.068: ICMPv6-ND: Address 2001:1:1001:0:219:56FF:FE2C:9F60/64 is down
on FastEthernet0/0
*Aug 13 14:28:06.068: ICMPv6-ND: Address FE80::219:56FF:FE2C:9F60/10 is down on
FastEthernet0/0
*Aug 13 14:28:08.068: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to
administratively down
*Aug 13 14:28:09.068: %LINEPROTO-5-UPDOWN: Line protocol on Interface
FastEthernet0/0, changed state to down
R1(config-if)#no shutdown
*Aug 13 14:28:11.636: ICMPv6-ND: Sending NS for FE80::219:56FF:FE2C:9F60 on
FastEthernet0/0
*Aug 13 14:28:12.636: ICMPv6-ND: DAD: FE80::219:56FF:FE2C:9F60 is unique.
*Aug 13 14:28:12.636: ICMPv6-ND: Sending NA for FE80::219:56FF:FE2C:9F60 on
FastEthernet0/0
*Aug 13 14:28:12.636: ICMPv6-ND: Address FE80::219:56FF:FE2C:9F60/10 is up on
FastEthernet0/0
*Aug 13 14:28:13.624: %LINEPROTO-5-UPDOWN: Line protocol on Interface
FastEthernet0/0, changed stat
*Aug 13 14:28:14.636: ICMPv6-ND: Sending RS on FastEthernet0/0
R1(config-if)#do show ipv6 interface fa0/0
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::219:56FF:FE2C:9F60
No global unicast address is configured
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF2C:9F60
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
R1(config-if)#
Notice the difference between when routers generate RS and RA messages:
-
Routers configured with the ipv6 unicast-routing command generate ICMPv6 RA messages. They do not generate RS messages.
-
Routers configured with the ipv6 address auto-config command, and not configured with the ipv6 unicast-routing command, generate RS messages only. They do not generate RA messages.
Note | Stateless autoconfiguration allows devices to “plug and play,” to connect themselves to the network without any configuration and without any servers (such as DHCP servers). DHCP Version 6 (DHCPv6), an updated version of DHCP for IPv4, can also be used to provide IPv6 addresses to devices. Another option is stateless DHCPv6, which strikes a middle ground between stateless autoconfiguration and the thick-client approach of the stateful DHCPv6. Stateless DHCPv6 is also called DHCP-lite. For more details of stateless DHCPv6, see RFC 3736, Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6. |
Unicast Connectivity on Different Connection Types
This section examines in detail the processes used to connect IPv6 devices on broadcast multiaccess connections (for which Ethernet is used as an example), point-to-point connections, and point-to-multipoint connections (for which a Frame Relay NBMA network is used as an example).
Unicast Connectivity on Broadcast Multiaccess Links
As described earlier, the IPv4 ARP process to determine the MAC address-to-IPv4 address mapping has been replaced with the ICMPv6 neighbor discovery process for IPv6. For comparison, the results of the two processes are displayed in Example 8-20, using the show ipv6 neighbors command for IPv6 and the show arp command for IPv4.
R1#show ipv6 neighbors
IPv6 Address Age Link-layer Addr State Interface
2001:1::2 4 0019.55df.ad22 STALE Fa0/0
FE80::219:55FF:FEDF:AD22 4 0019.55df.ad22 STALE Fa0/0
R1#show arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 172.16.100.1 - 0019.562c.9f60 ARPA FastEthernet0/0
Internet 172.16.100.2 4 0019.55df.ad22 ARPA FastEthernet0/0
R1#
The difference between these two processes is that the ARP protocol is separate from the IP protocol in IPv4. ARP uses a broadcast link-layer destination address; the ARP messages are not sent in IP packets. In contrast, the ICMPv6 messages are not separate from the protocol; they are sent in IPv6 packets. Recall that the NS message is ICMPv6 type 135 and the NA message is ICMPv6 type 136. The NS messages use the solicited-node multicast address as the destination address; this address is displayed as part of the show ipv6 interface command output, as illustrated in Example 8-21. In the first command output, there are two solicited-node multicast addresses. The second one begins with FF02 and has the last six digits (2C:9F60) that match the last six digits of the link-local address. This is the solicited-node multicast address associated with the link-local address. Changing the link-local address results in changing this solicited node multicast address, as shown in the second output after the link-local address is changed. The solicited-node multicast address begins with FF02 and the last six digits (0B:000C, shortened to 0B:C) match the last six digits of the new link-local address. (Notice that the other solicited-node multicast address is associated with the global unicast address.)
R1#show ipv6 interface fa0/0
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::219:56FF:FE2C:9F60
Global unicast address(es):
2001:1::1, subnet is 2001:1::/64
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:1
FF02::1:FF2C:9F60
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
R1#config t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#interface fa0/0
R1(config-if)#ipv6 address FE80::A:B:C link-local
R1(config-if)#do show ipv6 interface fa0/0
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::A:B:C
Global unicast address(es):
2001:1::1, subnet is 2001:1::/64
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:1
FF02::1:FF0B:C
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
R1(config-if)#
Figure 8-21 illustrates a simple topology used to further examine the neighbor discovery process on a multiaccess network.
Example 8-22 illustrates that first a ping is sent from R1 to R2, and then the neighbor discovery information is displayed, showing both the global unicast address and the link-local address. By repeating the show ipv6 neighbors command, we observe that the global unicast address goes to a STALE state. The neighbor table on R2 indicates that both addresses are in a STALE state. The STALE state occurs when the specified address that was formerly in the REACH state has not been heard from within the time specified in the ipv6 nd reachable-time milliseconds command. The STALE state means that entry has not been used within in the reachable time. The REACH state means that the entry has been used in the reachable time.
R1#ping 2001:1::2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:1::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/4 ms
R1#
R1#show ipv6 neighbors
IPv6 Address Age Link-layer Addr State Interface
2001:1::2 0 0019.55df.ad22 REACH Fa0/0
FE80::219:55FF:FEDF:AD22 0 0019.55df.ad22 REACH Fa0/0
R1#
R1#show ipv6 neighbors
IPv6 Address Age Link-layer Addr State Interface
2001:1::2 0 0019.55df.ad22 REACH Fa0/0
FE80::219:55FF:FEDF:AD22 0 0019.55df.ad22 REACH Fa0/0
R1#show ipv6 neighbors
IPv6 Address Age Link-layer Addr State Interface
2001:1::2 0 0019.55df.ad22 REACH Fa0/0
FE80::219:55FF:FEDF:AD22 0 0019.55df.ad22 REACH Fa0/0
R1#show ipv6 neighbors
IPv6 Address Age Link-layer Addr State Interface
2001:1::2 0 0019.55df.ad22 STALE Fa0/0
FE80::219:55FF:FEDF:AD22 0 0019.55df.ad22 REACH Fa0/0
R1#
R2#show ipv6 neighbors
IPv6 Address Age Link-layer Addr State Interface
2001:1::1 0 0019.562c.9f60 STALE Fa0/0
FE80::A:B:C 0 0019.562c.9f60 STALE Fa0/0
R2#
Pinging a nonexistent address helps to illustrate the process used. In Example 8-23, the debug ipv6 nd command is entered and one ping is sent to a nonexistent IPv6 address 2001:1:10. Of course, the ping is unsuccessful. The state changes from DELETE to INCMP (incomplete). Three NS messages are sent, and then the state changes from INCMP to DELETE. The Layer 3 to Layer 2 address resolution was unsuccessful, resulting in the DELETE state. Example 8-23 also shows the ping again using the debug ipv6 packet detail command. This time an NS packet is observed, going to the solicited-node multicast address (FF02::1:FF00:10).
R2#debug ipv6 nd
R2#ping 2001:1::10 repeat 1
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 2001:1::10, timeout is 2 seconds:
*Aug 13 23:42:43.237: ICMPv6-ND: DELETE -> INCMP: 2001:1::10
*Aug 13 23:42:43.237: ICMPv6-ND: Sending NS for 2001:1::10 on FastEthernet0/0
*Aug 13 23:42:44.237: ICMPv6-ND: Sending NS for 2001:1::10 on FastEthernet0/0
Success rate is 0 percent (0/1)
R2#
*Aug 13 23:42:45.237: ICMPv6-ND: Sending NS for 2001:1::10 on FastEthernet0/0
*Aug 13 23:42:46.237: ICMPv6-ND: INCMP deleted: 2001:1::10
*Aug 13 23:42:46.237: ICMPv6-ND: INCMP -> DELETE: 2001:1::10
R2#undebug all
R2#debug ipv6 packet detail
IPv6 unicast packet debugging is on (detailed)
R2#ping 2001:1::10 repeat 1
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 2001:1::10, timeout is 2 seconds:
*Aug 13 23:44:08.721: IPv6: SAS picked source 2001:1::2 for 2001:1::10
(FastEthernet0/0)
*Aug 13 23:44:08.721: IPv6: source 2001:1::2 (local)
*Aug 13 23:44:08.721: dest 2001:1::10 (FastEthernet0/0)
*Aug 13 23:44:08.721: traffic class 0, flow 0x0, len 100+0, prot 58, hops
64, originating
*Aug 13 23:44:08.721: IPv6: source 2001:1::2 (local)
*Aug 13 23:44:08.721: dest FF02::1:FF00:10 (FastEthernet0/0)
*Aug 13 23:44:08.721: traffic class 224, flow 0x0, len 72+8, prot 58, hops
255, originating
*Aug 13 23:44:08.721: IPv6: Sending on FastEthernet0/0
*Aug 13 23:44:08.725: IPv6: Encapsulation failed
*Aug 13 23:44:08.725: IPv6: Resolving next hop 2001:1::10 on interface
FastEthernet0/0
*Aug 13 23:44:08.725: IPv6: Resolving next hop 2001:1::10 on interface
FastEthernet0/0
Instead of relying on dynamic neighbor discovery, a static mapping between an IPv6 unicast address and a MAC address can be configured using the ipv6 neighbor command. Example 8-24 demonstrates the use of this command and the show ipv6 neighbor command to verify the configuration. The static entry does not have an age value and will be in a REACH state permanently.
R2(config)#ipv6 neighbor 2001:1::10 fastEthernet 0/0 c000.0000.0000
*Aug 13 23:55:30.385: IPv6: source FE80::219:55FF:FEDF:AD22 (local)
*Aug 13 23:55:30.385: dest FF02::1 (FastEthernet0/0)
*Aug 13 23:55:30.385: traffic class 224, flow 0x0, len 104+1396, prot 58,
hops 255, originating
*Aug 13 23:55:30.385: IPv6: Sending on FastEthernet0/0)
R2(config)#do show ipv6 neighbor
IPv6 Address Age Link-layer Addr State Interface
2001:1::1 25 0019.562c.9f60 STALE Fa0/0
2001:1::10 - c000.0000.0000 REACH Fa0/0
FE80::A:B:C 24 0019.562c.9f60 STALE Fa0/0
R2(config)#
Unicast Connectivity on Point-to-Point Links
This section examines IPv6 addresses on a point-to-point link. Figure 8-22 illustrates the topology used in this example. There is a point-to-point link between the routers.
By default, the Serial 0/1/0 interfaces use the Cisco HDLC encapsulation. Of course, serial interfaces do not have MAC addresses. As described earlier, MAC addresses are used in IPv6 dynamically created addresses. For serial interfaces, the router must therefore use a LAN MAC address. Example 8-25 illustrates debug output when an IPv6 address is configured on R2’s interface. The router adds the prefix, and does NS and DAD for its link-local address. DAD confirms that the link-local address is unique. The same process confirms that the global unicast address is also unique. The output of the show ipv6 interface command confirms that the interface has a link-local and a global unicast address.
R2#debug ipv6 nd
ICMP Neighbor Discovery events debugging is on
R2#config t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#interface s0/1/0
R2(config-if)#ipv6 address 2001:1001::2/64
R2(config-if)#
*Aug 13 16:21:40.299: ICMPv6-ND: Adding prefix 2001:1001::2/64 to Serial0/1/0
*Aug 13 16:21:41.299: ICMPv6-ND: Sending NS for FE80::219:55FF:FE92:B212 on
Serial0/1/0
*Aug 13 16:21:42.299: ICMPv6-ND: DAD: FE80::219:55FF:FE92:B212 is unique.
*Aug 13 16:21:42.299: ICMPv6-ND: Sending NA for FE80::219:55FF:FE92:B212 on
Serial0/1/0
*Aug 13 16:21:42.299: ICMPv6-ND: Address FE80::219:55FF:FE92:B212/10 is up on
Serial0/1/0
*Aug 13 16:21:42.299: ICMPv6-ND: Sending NS for 2001:1001::2 on Serial0/1/0
*Aug 13 16:21:43.299: ICMPv6-ND: DAD: 2001:1001::2 is unique.
*Aug 13 16:21:43.299: ICMPv6-ND: Sending NA for 2001:1001::2 on Serial0/1/0
*Aug 13 16:21:43.299: ICMPv6-ND: Address 2001:1001::2/64 is up on Serial0/1/0
R2(config-if)#do show ipv6 interface s0/1/0
Serial0/1/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::219:55FF:FE92:B212
Global unicast address(es):
2001:1001::2, subnet is 2001:1001::/64
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:1
FF02::1:FF92:B212
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
Hosts use stateless autoconfig for addresses.
R2(config-if)#
Example 8-26 displays the output from the show interface command for the Fast Ethernet 0/0 interface, the only active LAN interface on this router. The MAC address of interface Fa0/0 is 0019.5592.B212. Notice that this MAC address was used to create the EUI-64 format interface ID for the Serial 0/1/0 link-local address FE80::219:55FF:FE92:B212. Recall that to transform the MAC address to the interface ID using EUI-64 format, FFFE is inserted into the middle of the MAC address, and the 7th bit of the first octet of the 64-bit interface ID is set to 1.
R2(config-if)#do show interface fa0/0 | include addr
Hardware is Gt96k FE, address is 0019.5592.b212 (bia 0019.5592.b212)
R2(config-if)#do show ipv6 interface s0/1/0 | include link-local
IPv6 is enabled, link-local address is FE80::219:55FF:FE92:B212
R2(config-if)#
Note | The include keyword causes only those lines that start with the following text to be displayed in the command output. The text is case sensitive. |
Although the link-local address is automatically assigned to serial interfaces, as we saw for LAN interfaces, best practice is to manually assign the address using the ipv6 address link-local command, to avoid confusion and to make troubleshooting easier. Example 8-27 illustrates doing this on Serial 0/1/0. The debug output shows that the old address goes down and the interface goes through the process to guarantee that the new address is unique on the link.
R2(config-if)#ipv6 address FE80::2 link-local
R2(config-if)#
*Aug 13 16:33:41.411: ICMPv6-ND: Address FE80::219:55FF:FE92:B212/10 is down on
Serial0/1/0
*Aug 13 16:33:41.411: ICMPv6-ND: Sending NS for FE80::2 on Serial0/1/0
*Aug 13 16:33:42.411: ICMPv6-ND: DAD: FE80::2 is unique.
*Aug 13 16:33:42.411: ICMPv6-ND: Sending NA for FE80::2 on Serial0/1/0
*Aug 13 16:33:42.411: ICMPv6-ND: Address FE80::2/10 is up on Serial0/1/0
R2(config-if)#do show ipv6 interface s0/1/0 | include link-local
IPv6 is enabled, link-local address is FE80::2
R2(config-if)#
Similarly, IPv6 addressing on a link with PPP encapsulation is explored. As shown in Example 8-28, when the encapsulation is changed on the R2 interface, the address and interface go down, because the corresponding R1 interface is still using HDLC encapsulation. When the R1 encapsulation is also changed (as shown in the middle of Example 8-28), the R2 interface comes up, deletes the old link-local address, and performs the usual process to ensure that the address is unique on the link. Finally, the serial interface comes back up.
R2(config-if)#encapsulation ppp
R2(config-if)#
*Aug 13 16:50:57.459: ICMPv6-ND: Address 2001:1001::2/10 is down on Serial0/1/0
*Aug 13 16:50:57.459: ICMPv6-ND: Address FE80::2 /10 is down on Serial0/1/0
*Aug 13 16:51:00.455: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1/0,
changed state to down
R1(config-if)#encapsulation ppp
R2(config-if)#
*Aug 13 16:51:19.627: ICMPv6-ND: DELETE -> INCMP: FE80::219:56FF:FE2C:9F60
*Aug 13 16:51:19.627: ICMPv6-ND: INCMP -> REACH: FE80::219:56FF:FE2C:9F60
*Aug 13 16:51:19.627: ICMPv6-ND: Sending NA for FE80::2 on Serial0/1/0
*Aug 13 16:51:19.627: ICMPv6-ND: Address FE80::2/10 is up on Serial0/1/0
*Aug 13 16:51:19.627: ICMPv6-ND: Sending NS for 2001:1001::2 on Serial0/1/0
*Aug 13 16:51:19.631: ICMPv6-ND: Received NA for FE80::219:56FF:FE2C:9F60 on
Serial0/1/0 from FE80::219:56FF:FE2C:9F60
*Aug 13 16:51:20.603: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1/0,
changed state to up
*Aug 13 16:51:20.627: ICMPv6-ND: DAD: 2001:1001::2 is unique.
*Aug 13 16:51:20.627: ICMPv6-ND: Sending NA for 2001:1001::2 on Serial0/1/0
*Aug 13 16:51:20.627: ICMPv6-ND: Address 2001:1001::2/64 is up on Serial0/1/0
Notice in Example 8-29 that the encapsulation is now PPP and that the PPP network control protocol (NCP) for IPv6, IPv6CP, is open. The example also illustrates the successful ping from R1 to R2’s the link-local address. Notice that to ping the link-local address, the specific interface over which you want to ping must be entered, because the router cannot distinguish the interface by only knowing the address.
Note | A rather strange quirk of the ping command is that you must enter the full interface name (for example Serial 0/1/0), and not a shortcut (for example, s0/1/0). |
R2(config-if)#do show interface s0/1/0
Serial0/1/0 is up, line protocol is up
Hardware is GT96K Serial
Internet address is 10.10.10.2/24
MTU 1500 bytes, BW 1544 Kbit/sec, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation PPP, LCP Open
Open: IPCP, CDPCP, IPV6CP, loopback not set
Keepalive set (1 sec)
Last input 00:00:26, output 00:00:00, output hang never
Last clearing of "show interface" counters 00:01:51
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: weighted fair
Output queue: 0/1000/64/0 (size/max total/threshold/drops)
Conversations 0/3/256 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated)
R1#ping FE80::2
Output Interface: serial0/1/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::2, timeout is 2 seconds:
Packet sent with a source address of FE80::219:56FF:FE2C:9F60
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/15/16 ms
R1#
Point-to-point interfaces, with any encapsulation, can communicate in IPv6 by only using their link-local addresses. Therefore, these interfaces do not require a global unicast address to communicate. However, these interfaces would not be globally reachable; in other words, they would not be reachable from other parts of the network (because the link-local address is truly local in scope).
Unicast Connectivity on Point-to-Multipoint Links
Recall from Chapter 2, “Configuring the Enhanced Interior Gateway Routing Protocol,” that Frame Relay is a switched WAN technology where virtual circuits (VCs) are created by a service provider (SP) through the network. Frame Relay allows multiple logical VCs to be multiplexed over a single physical interface. The VCs are typically PVCs that are identified by a data-link connection identifier (DLCI). Just as for IPv4, IPv6 addresses must be mapped to DLCIs. This mapping can be dynamic using IPv6 inverse ARP, or static using a frame-relay map interface configuration command. In this section, a point-to-multipoint Frame Relay connection is used to illustrate how an IPv6 address can be assigned on such a link and how the static Frame Relay mapping works.
Figure 8-23 provides an example topology in which R1 connects to R2 and R3 over a multipoint Frame Relay connection.
As shown in Example 8-30, the debug ipv6 packet and debug frame-relay packet commands are enabled on R1 and connectivity to R2’s IPv6 address is tested with the ping command. The first four lines of debug output confirm that IPv6 routing is enabled. However, the next line states that there is an error related to encapsulation and that there is no map entry for that destination router. The blank output of the show frame-relay map command verifies the lack of map.
R1#debug ipv6 packet
IPv6 unicast packet debugging is on
R1#debug frame-relay packet
Frame Relay packet debugging is on
R1#
R1#ping 2001:12::2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:12::2, timeout is 2 seconds:
*Aug 13 20:45:54.726: IPv6: SAS picked source 2001:12::1 for 2001:12::2 (Se-
rial0/0/0)
*Aug 13 20:45:54.726: IPv6: source 2001:12::1 (local)
*Aug 13 20:45:54.726: dest 2001:12::2 (Serial0/0/0)
*Aug 13 20:45:54.726: traffic class 0, flow 0x0, len 100+0, prot 58, hops
64, originating
*Aug 13 20:45:54.726: Serial0/0/0:Encaps failed—-no map entry link 79(IPV6)
*Aug 13 20:45:54.726: IPv6: Encapsulation failed
*Aug 13 20:45:54.726: IPv6: Resolving next hop 2001:12::2 on interface Se-
rial0/0/0.
*Aug 13 20:45:56.726: IPv6: SAS picked source 2001:12::1 for 2001:12::2 (Se-
rial0/0/0)
*Aug 13 20:45:56.726: IPv6: source 2001:12::1 (local)
*Aug 13 20:45:56.726: dest 2001:12::2 (Serial0/0/0)
*Aug 13 20:45:56.726: traffic class 0, flow 0x0, len 100+0, prot 58, hops
64, originating
*Aug 13 20:45:56.726: Serial0/0/0:Encaps failed-—no map entry link 79(IPV6)
R1#show frame-relay map
R1#
Example 8-31 shows the configuration of the Frame Relay map on R1. After verifying the map entry exists, the ping is tried again. This time there is no encapsulation failure, but the ping still fails. Of course, this is because R2 needs a map back to R1; this configuration is also shown in the example. After both maps are configured and verified, debugging is disabled on R1, and the ping is tried again. This time the ping works.
R1(config)#interface s0/0/0
R1(config-if)#frame-relay map ipv6 2001:12::2 102
R1(config-if)#do show frame-relay map
Serial0/0/0 (up): ipv6 2001:12::2 dlci 102(0x66,0x1860), static,
IETF, status defined, active
There are two main differences between IPv4 and IPv6 Frame Relay configuration:
-
In IPv6, a map is usually needed for link-local addresses and global unicast addresses. Although we didn’t need link-local addresses yet in this example network, they are used by control-plane operations such as routing protocols, and as the next-hop address for routes installed in the routing table by an interior gateway protocol. If the next-hop link-local address is not reachable, remote networks will not be reachable.
-
In IPv6, the ipv6 unicast-routing command must be configured when a routing protocol is used across the Frame Relay network for the routers to exchange updates.
The example is continued to examine these two differences. Example 8-32 illustrates the configuration used for R1 and R2, including manual IPv6 link-local addresses, and OSPFv3 commands. The “OSPFv3” section, later in this chapter, discusses OSPFv3 and its configuration in detail. For this example, the protocol is configured only to see the resulting addressing over the Frame Relay network.
R1(config)#interface s0/0/0
R1(config-if)#ipv6 address FE80::1 link-local
R1(config-if)#exit
R1(config)#ipv6 unicast-routing
R1(config)#ipv6 router ospf 1
R1(config-rtr)#router-id 1.1.1.1
R1(config-rtr)#exit
R1(config)#interface s0/0/0
R1(config-if)#ipv6 ospf neighbor FE80::2
R1(config-if)#ipv6 ospf 1 area 0
R1(config-if)#
R2(config)#interface s0/0/0
R2(config-if)#ipv6 address FE80::2 link-local
R2(config-if)#exit
R2(config)#ipv6 unicast-routing
R2(config)#ipv6 router ospf 1
R2(config-rtr)#router-id 2.2.2.2
R2(config-rtr)#exit
R2(config)#interface s0/0/0
R2(config-if)#ipv6 ospf neighbor FE80::1
R2(config-if)#ipv6 ospf 1 area 0
R2(config-if)#
The OSPF adjacency between the routers will not be established until their link-local addresses are mapped to the appropriate DLCIs, as is done in Example 8-33, because routing protocols exchange hello and routing updates using these addresses. The broadcast keyword allows broadcasts and multicasts over the VC, thus permitting the use of dynamic routing protocols such as OSPFv3 over the VC. Notice that the OSPF adjacency is formed once both sides are configured with the appropriate link-layer address mapping. The configuration of the Serial 0/0/0 interface is also shown in this output.
R2(config-if)#frame-relay map ipv6 FE80::1 201 broadcast
R2(config-if)#do show run interface s0/0/0
Building configuration...
Current configuration : 294 bytes
!
interface Serial0/0/0
no ip address
encapsulation frame-relay IETF
ipv6 address 2001:12::2/64
ipv6 address FE80::2 link-local
ipv6 ospf neighbor FE80::1
ipv6 ospf 1 area 0
frame-relay map ipv6 2001:12::1 201
frame-relay map ipv6 FE80::1 201 broadcast
frame-relay lmi-type cisco
end
R2(config-if)#
R1(config-if)#frame-relay map ipv6 FE80::2 102 broadcast
R1(config-if)#
*Aug 13 22:03:41.922: %OSPFv3-5-ADJCHG: Process 1, Nbr 2.2.2.2 on Serial0/0/0
from LOADING to FULL, Loading Done
R1(config-if)#
0 comments
Post a Comment