Implementing Mobile IPv6

Last Updated: April 27, 2012

Mobile IP is part of both IPv4 and IPv6 standards. Mobile IP allows a host device to be identified by a single IP address even though the device may move its physical point of attachment from one network to another. Regardless of movement between different networks, connectivity at the different points is achieved seamlessly without user intervention. Roaming from a wired network to a wireless or wide-area network is also done with ease. Mobile IP provides ubiquitous connectivity for users, whether they are within their enterprise networks or away from home.

Finding Feature Information

Your software release may not support all the features documented in this module. For the latest feature information and caveats, see the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the Feature Information Table at the end of this document.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.

Restrictions for Implementing Mobile IPv6

When using the network mobility (NEMO) basic support protocol feature, users should not enable any IPv6 routing protocols on any of the roaming interfaces.

Information About Implementing Mobile IPv6

Mobile IPv6 Overview

Mobile IPv4 provides an IPv4 node with the ability to retain the same IPv4 address and maintain uninterrupted network and application connectivity while traveling across networks. In Mobile IPv6, the IPv6 address space enables Mobile IP deployment in any kind of large environment. No foreign agent is needed to use Mobile IPv6.

System infrastructures do not need an upgrade to accept Mobile IPv6 nodes. IPv6 autoconfiguration simplifies mobile node (MN) Care of Address (CoA) assignment.

Mobile IPv6 benefits from the IPv6 protocol itself; for example, Mobile IPv6 uses IPv6 option headers (routing, destination, and mobility) and benefits from the use of neighbor discovery.

Mobile IPv6 provides optimized routing, which helps avoid triangular routing. Mobile IPv6 nodes work transparently even with nodes that do not support mobility (although these nodes do not have route optimization).

Mobile IPv6 is fully backward-compatible with existing IPv6 specifications. Therefore, any existing host that does not understand the new mobile messages will send an error message, and communications with the mobile node will be able to continue, albeit without the direct routing optimization.

How Mobile IPv6 Works

To implement Mobile IPv6, you need a home agent on the home subnet on which the mobile node's home address resides. The IPv6 home address (HA) is assigned to the mobile node. The mobile node obtains a new IPv6 address (the CoA) on networks to which it connects. The home agent accepts BUs from the mobile node informing the agent of the mobile node's location. The home agent then acts as proxy for the mobile node, intercepting traffic to the mobile node's home address and tunneling it to the mobile node.

The mobile node informs a home agent on its original home network about its new address, and the correspondent node communicates with the mobile node about the CoA. Because of the use of ingress filtering, the mobile node reverses tunnel return traffic to the home agent, so that the mobile node source address (that is, its home address) will always be topographically correct.

Mobile IPv6 is the ability of a mobile node to bypass the home agent when sending IP packets to a correspondent node. Optional extensions make direct routing possible in Mobile IPv6, though the extensions might not be implemented in all deployments of Mobile IPv6.

Direct routing is built into Mobile IPv6, and the direct routing function uses the IPv6 routing header and the IPv6 destination options header. The routing header is used for sending packets to the mobile node using its current CoA, and the new home address destination option is used to include the mobile node's home address, because the current CoA is the source address of the packet.

IPv6 NEMO

The NEMO basic support protocol enables mobile IPv6 networks to attach to different points in the Internet. This protocol is an extension of Mobile IPv6 and allows session continuity for every node in the mobile network as the network moves. NEMO also allows every node in the mobile network to be reachable while the user is moving. The mobile router, which connects the network to the Internet, runs the NEMO basic support protocol with its home agent (HA). NEMO allows network mobility to be transparent to the nodes inside the mobile network.

The NEMO router maintains a mobile route, which is the default route for IPv6 over the roaming interface.

Mobile IPv6 Home Agent

The home agent is one of three key components in Mobile IPv6. The home agent works with the correspondent node and mobile node to enable Mobile IPv6 functionality:

  • Home agent--The home agent maintains an association between the mobile mode's home IPv4 or IPv6 address and its CoA (loaned address) on the foreign network.
  • Correspondent node--The correspondent node is the destination IPv4 or IPv6 host in session with a mobile node.
  • Mobile node--An IPv4 or IPv6 host that maintains network connectivity using its home IPv4 or IPv6 address, regardless of the link (or network) to which it is connected.

The following sections describe Mobile IPv6 home agent functionality:

Binding Cache in Mobile IPv6 Home Agent

A separate binding cache is maintained by each IPv6 node for each of its IPv6 addresses. When the router sends a packet, it searches the binding cache for an IPv6 address before it searches the neighbor discovery conceptual destination cache.

The binding cache for any one of a node's IPv6 addresses may contain one entry for each mobile node home address. The contents of all of a node's binding cache entries are cleared when it reboots.

Binding cache entries are marked either as home registration or correspondent registration entries. A home registration entry is deleted when its binding lifetime expires; other entries may be replaced at any time through a local cache replacement policy.

Binding Update List in Mobile IPv6 Home Agent

A binding update (BU) list is maintained by each mobile node. The BU list records information for each BU sent by this mobile node whose lifetime has not yet expired. The BU list includes all BUs sent by the mobile node--those bindings sent to correspondent nodes, and those bindings sent to the mobile node's home agent.

The mobility extension header has a new routing header type and a new destination option, and it is used during the BU process. This header is used by mobile nodes, correspondent nodes, and home agents in all messaging related to the creation and management of bindings.

Home Agents List

A home agents list is maintained by each home agent and each mobile node. The home agents list records information about each home agent from which this node has recently received a router advertisement in which the home agent (H) bit is set.

Each home agent maintains a separate home agents list for each link on which it is serving as a home agent. This list is used by a home agent in the dynamic home agent address discovery mechanism. Each roaming mobile node also maintains a home agents list that enables it to notify a home agent on its previous link when it moves to a new link.

NEMO-Compliant Home Agent

Protocol extensions to Mobile IPv6 are used to enable support for network mobility. The extensions are backward-compatible with existing Mobile IPv6 functionality. A NEMO-compliant home agent can operate as a Mobile IPv6 home agent.

The dynamic home agent address discovery (DHAAD) mechanism allows a mobile node to discover the address of the home agent on its home link. The following list describes DHAAD functionality and features:

  • The mobile router sends Internet Control Message Protocol (ICMP) home agent address discovery requests to the Mobile IPv6 home agent's anycast address for the home subnet prefix.
  • A new flag (R) is introduced in the DHAAD request message, indicating the desire to discover home agents that support mobile routers. This flag is added to the DHAAD reply message as well.
  • On receiving the home agent address discovery reply message, the mobile router discovers the home agents operating on the home link.
  • The mobile router attempts home registration to each of the home agents until its registration is accepted. The mobile router waits for the recommended length of time between its home registration attempts with each of its home registration attempts.
Implicit Prefix Registration

When using implicit prefix registration, the mobile router does not register any prefixes as part of the binding update with its home agent. This function requires a static configuration at the home agent, and the home agent must have the information of the associated prefixes with the given mobile router for it to set up route forwarding.

Explicit Prefix Registration

When using explicit prefix registration, the mobile router presents a list of prefixes to the home agent as part of the binding update procedure. If the home agent determines that the mobile router is authorized to use these prefixes, it sends a bind acknowledgment message.

Packet Headers in Mobile IPv6

The basic IPv6 packet header has 8 fields with a total size of 40 octets (320 bits). Fields were removed from the IPv6 header compared with the IPv4 header because, in IPv6, fragmentation is not handled by routers and checksums at the network layer are not used. Instead, fragmentation in IPv6 is handled by the source of a packet and checksums at the data link layer and transport layer are used. Additionally, the basic IPv6 packet header and options field are aligned to 64 bits, which can facilitate the processing of IPv6 packets.

Mobile IPv6 uses the routing and destination option headers for communications between the mobile node and the correspondent node. The new mobility option header is used only for the BU process.

Several ICMP message types have been defined to support Mobile IPv6. IPv6 access lists can be configured to allow IPv6 access list entries matching Mobile-IPv6-specific ICMP messages to be configured and to allow the definition of entries to match packets containing Mobile IPv6 extension headers.

For further information on IPv6 packet headers, refer to the "Implementing IPv6 Addressing and Basic Connectivity" module.

IPv6 Neighbor Discovery with Mobile IPv6

The IPv6 neighbor discovery feature has the following modifications to allow the feature to work with Mobile IPv6:

  • Modified router advertisement message format--has a single flag bit that indicates home agent service
  • Modified prefix information option format--allows a router to advertise its global address
  • New advertisement interval option format
  • New home agent information option format
  • Changes to sending router advertisements
  • Provide timely movement detection for mobile nodes

IPv6 Neighbor Discovery Duplicate Address Detection in NEMO

IPv6 routers are required to run duplicate address detection (DAD) on all IPv6 addresses obtained in stateless and stateful autoconfiguration modes before assigning them to any of its interfaces. Whenever an mobile router roams and obtains an IPv6 address, the mobile router must perform DAD on the newly obtained care-of address and on its link-local address in order to avoid address collisions.

However, the DAD feature adds significant handoff delays in certain Layer 2 environments. These delays may be avoided by using optimistic DAD techniques. NEMO supports optimization options for omitting DAD on care-of address or on both the care-of address and link-local address.

For further information on IPv6 neighbor discovery, refer to the Implementing IPv6 Addressing and Basic Connectivity module.

Mobile IPv6 Tunnel Optimization

Mobile IPv6 tunnel optimization enables routing over a native IPv6 tunnel infrastructure, allowing Mobile IPv6 to use all IPv6 tunneling infrastructure features, such as Cisco Express Forwarding switching support.

After the home agent receives a valid BU request from a mobile node, it sets up its endpoint of the bidirectional tunnel. This process involves creating a logical interface with the encapsulation mode set to IPv6/IPv6, the tunnel source to the home agent's address on the mobile node's home link, and the tunnel destination set to the mobile node's registered care-of address. A route will be inserted into the routing table for the mobile node's home address via the tunnel.

IPv6 Host Group Configuration

Users can create mobile user or group policies using the IPv6 host group configuration. The host group profile lookup interface will allow the lookup of the profile associated with the sender of the BU using any of the search keys:

  • Profile name
  • IPv6 address
  • Network address identifier (NAI)

The host profile lookup interface also specifies the authentication properties for the IPv6 mobile node by creating either a unidirectional or bidirectional security parameter index (SPI).

A group profile is activated after the SPI option is configured and either an NAI or an IPv6 address is configured. In addition, a profile is deactivated if the minimum required options are not configured. If any active profile that has active bindings gets deactivated or removed, all bindings associated to that profile are revoked.

Mobile IPv6 Node Identification Based on NAI

A mobile node can identify itself using its home address as an identifier. The Mobile IPv6 protocol messages use this identifier in their registration messages. However, for certain deployments it is essential that the mobile node has the capability to identify itself using a logical identifier, such as NAI, rather than a network address. The mobile node identifier option for Mobile IPv6 allows a mobile node to be identified by NAI rather than IPv6 address. This feature enables the network to give a dynamic IPv6 address to a mobile node and authenticate the mobile node using authentication, authorization, and accounting (AAA). This option should be used when either Internet Key Exchange (IKE) or IPsec is not used for protecting BUs or binding acknowledgments (BAs).

In order to provide roaming services, a standardized method, such as NAI or a mobile node home address, is needed for identifying users. Roaming may be loosely defined as the ability to use any one of multiple Internet service providers (ISPs) while maintaining a formal, customer-vendor relationship with only one. Examples of where roaming capabilities might be required include ISP confederations and ISP-provided corporate network access support. Other entities interested in roaming capability may include the following:

  • Regional ISPs, operating within a particular state or province, that want to combine efforts with those of other regional providers to offer dialup service over a wider area.
  • National ISPs that want to combine their operations with those of one or more ISPs in another country to offer more comprehensive dialup service in a group of countries or on a continent.
  • Wireless LAN hot spots that provide service to one or more ISPs.
  • Businesses that want to offer their employees a comprehensive package of dialup services on a global basis. Those services may include Internet access and secure access to corporate intranets using a VPN.

Authentication Protocol for Mobile IPv6

The authentication protocol for Mobile IPv6 support secures mobile node and home agent signaling using the MN-HA mobility message authentication option, which authenticates the BU and BA messages based on the shared-key-based security association between the mobile node (MN) and the HA. This feature allows Mobile IPv6 to be deployed in a production environment where a non-IPsec authentication method is required. MN-HA consists of a mobility SPI, a shared key, an authentication algorithm, and the mobility message replay protection option.

The mobility SPI is a number from 256 through 4,294,967,296. The key consists of an arbitrary value and is 16 octets in length. The authentication algorithm used is HMAC_SHA1. The replay protection mechanism may use either the sequence number option or the time-stamp option. The MN-HA mobility message authentication option must be the last option in a message with a mobility header if it is the only mobility message authentication option in the message.

When a BU or BA message is received without the MN-HA option and the entity receiving it is configured to use the MN-HA option or has the shared-key-based mobility security association for the mobility message authentication option, the entity discards the received message.

The mobility message replay protection option allows the home agent to verify that a BU has been freshly generated by the mobile node and not replayed by an attacker from some previous BU. This functionality is especially useful for cases where the home agent does not maintain stateful information about the mobile node after the binding entry has been removed. The home agent performs the replay protection check after the BU has been authenticated. The mobility message replay protection option is used by the mobile node for matching the BA with the BU. When the home agent receives the mobility message replay protection option in BU, it must include the mobility message replay protection option in the BA.

How to Implement Mobile IPv6

Enabling Mobile IPv6 on the Router

You can customize interface configuration parameters before you start Mobile IPv6 (see the Customizing Mobile IPv6 on the Interface) or while Mobile IPv6 is in operation.

SUMMARY STEPS

1.    enable

2.    configure terminal

3.    interface type number

4.    ipv6 mobile home-agent [preference preference-value

5.    exit

6.    exit

7.    show ipv6 mobile globals

8.    show ipv6 mobile home-agent interface-type interface-number [prefix]]


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
configure terminal


Example:

Router# configure terminal

 

Enters global configuration mode.

 
Step 3
interface type number


Example:

Router(config)# interface Ethernet 2

 

Specifies an interface type and number, and places the router in interface configuration mode.

 
Step 4
ipv6 mobile home-agent [preference preference-value


Example:

Router(config-if)# ipv6 mobile home-agent

 

Initializes and starts the Mobile IPv6 home agent on a specific interface.

 
Step 5
exit


Example:

Router(config-if)# exit

 

Exits interface configuration mode, and returns the router to global configuration mode.

 
Step 6
exit


Example:

Router(config)# exit

 

Exits global configuration mode, and returns the router to privileged EXEC mode.

 
Step 7
show ipv6 mobile globals


Example:

Router# show ipv6 mobile globals

 

Displays global Mobile IPv6 parameters.

 
Step 8
show ipv6 mobile home-agent interface-type interface-number [prefix]]


Example:

Router# show ipv6 mobile home-agent

 

Displays local and discovered neighboring home agents.

 

Configuring Binding Information for Mobile IPv6

Before you start Mobile IPv6 on a specified interface, you can configure binding information on the router.

SUMMARY STEPS

1.    enable

2.    configure terminal

3.    ipv6 mobile home-agent

4.    binding access access-list-name | auth-option | seconds | maximum | refresh

5.    exit

6.    exit

7.    show ipv6 mobile binding [care-of-address address | home-address address | interface-type interface-number

8.    show ipv6 mobile traffic


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
configure terminal


Example:

Router# configure terminal

 

Enters global configuration mode.

 
Step 3
ipv6 mobile home-agent


Example:

Router(config)# ipv6 mobile home-agent

 

Places the router in home-agent configuration mode.

 
Step 4
binding access access-list-name | auth-option | seconds | maximum | refresh


Example:

Router(config-ha)# binding

 

Configures binding options for the Mobile IPv6 home agent feature.

 
Step 5
exit


Example:

Router(config-ha)# exit

 

Exits home-agent configuration mode, and returns the router to global configuration mode.

 
Step 6
exit


Example:

Router(config)# exit

 

Exits global configuration mode, and returns the router to privileged EXEC mode.

 
Step 7
show ipv6 mobile binding [care-of-address address | home-address address | interface-type interface-number


Example:

Router# show ipv6 mobile binding

 

Displays information about the binding cache.

 
Step 8
show ipv6 mobile traffic


Example:

Router# show ipv6 mobile traffic

 

Displays information about BUs received and BAs sent.

 

Enabling and Configuring NEMO on the IPv6 Mobile Router

The NEMO basic support protocol enables mobile IPv6 networks to attach to different points in the Internet.

SUMMARY STEPS

1.    enable

2.    configure terminal

3.    ipv6 mobile router

4.    eui-interface interface-type interface-number

5.    home-network ipv6-prefix

6.    home-address {home-network | ipv6-address-identifier | interface

7.    explicit-prefix

8.    register {extend expire seconds retry number interval seconds | lifetime seconds | retransmit initial milliseconds maximum milliseconds retry number}

9.    exit

10.    exit

11.    show ipv6 mobile router running-config | status]


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
configure terminal


Example:

Router# configure terminal

 

Enters global configuration mode.

 
Step 3
ipv6 mobile router


Example:

Router(config)# ipv6 mobile router

 

Enables IPv6 NEMO functionality on a router, and places the router in IPv6 mobile router configuration mode.

 
Step 4
eui-interface interface-type interface-number


Example:

Router(IPv6-mobile-router)# eui-interface Ethernet0/0

 

Uses the Media Access Control (MAC) address from a specified interface for deriving the IPv6 mobile home address.

 
Step 5
home-network ipv6-prefix


Example:

Router(IPv6-mobile-router)# home-network 2001:0DB1:1/64

 

Specifies the home network's IPv6 prefix on the mobile router.

  • Users can configure up to 10 home-network entries, and they are used in order of priority. The prefix identifies the home network of the mobile router and is used to discover when the mobile router is at home.
 
Step 6
home-address {home-network | ipv6-address-identifier | interface


Example:

Router(IPv6-mobile-router)# home-address home-network eui-64

 

Specifies the mobile router home address using an IPv6 address or interface identifier.

  • When multiple home networks have been configured, we recommend that you use the home-address home-network command syntax, so that the mobile router builds a home address that matches the home network to which it registers.
 
Step 7
explicit-prefix


Example:

Router(IPv6-mobile-router)# explicit-prefix

 

Registers IPv6 prefixes connected to the IPv6 mobile router.

 
Step 8
register {extend expire seconds retry number interval seconds | lifetime seconds | retransmit initial milliseconds maximum milliseconds retry number}


Example:

Router(IPv6-mobile-router)# register lifetime 600

 

Controls the registration parameters of the IPv6 mobile router.

 
Step 9
exit


Example:

Router(IPv6-mobile-router)# exit

 

Exits IPv6 mobile router configuration mode, and returns the router to global configuration mode.

 
Step 10
exit


Example:

Router(config)# exit

 

Exits global configuration mode, and returns the router to privileged EXEC mode.

 
Step 11
show ipv6 mobile router running-config | status]


Example:

Router# show ipv6 mobile router

 

Displays configuration information and monitoring statistics about the IPv6 mobile router.

 

Enabling NEMO on the IPv6 Mobile Router Home Agent

SUMMARY STEPS

1.    enable

2.    configure terminal

3.    ipv6 router nemo

4.    distance [mobile-distance]


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
configure terminal


Example:

Router# configure terminal

 

Enters global configuration mode.

 
Step 3
ipv6 router nemo


Example:

Router(config)# ipv6 router nemo

 

Enables the NEMO routing process on the home agent and place the router in router configuration mode.

 
Step 4
distance [mobile-distance]


Example:

Router(config-rtr)# distance 10

 

Defines an administrative distance for NEMO routes.

 

Enabling Roaming on the IPv6 Mobile Router Interface

SUMMARY STEPS

1.    enable

2.    configure terminal

3.    interface type number

4.    ipv6 mobile router-service roam [bandwidth-efficient | cost-efficient | priority value]


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
configure terminal


Example:

Router# configure terminal

 

Enters global configuration mode.

 
Step 3
interface type number


Example:

Router(config)# interface ethernet 0/0

 

Specifies the interface type and number, and enters interface configuration mode.

 
Step 4
ipv6 mobile router-service roam [bandwidth-efficient | cost-efficient | priority value]


Example:

Router(config-if)# ipv6 mobile router-service roam

 

Enables the IPv6 mobile router interface to roam.

 

Filtering Mobile IPv6 Protocol Headers and Options

IPv6 extension headers have been developed to support the use of option headers specific to Mobile IPv6. The IPv6 mobility header, the type 2 routing header, and the destination option header allow the configuration of IPv6 access list entries that match Mobile-IPv6-specific ICMPv6 messages and allow the definition of entries to match packets that contain the new and modified IPv6 extension headers. For more information on how to create, configure, and apply IPv6 access lists, refer to the I mplementing Traffic Filters and Firewalls for IPv6 Security module.

SUMMARY STEPS

1.    enable

2.    configure terminal

3.    ipv6 access-list access-list-name

4.    permit icmp {source-ipv6-prefix / prefix-length | any | host source-ipv6-address| auth} [operator port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address | auth} [operator [port-number]] [icmp-type [icmp-code] | icmp-message] [dest-option-type [doh-number | doh-type]] [dscp value] [flow-label value] [fragments] [log] [log-input] [mobility] [mobility-type [mh-number | mh-type]] [routing] [routing-type routing-number] [sequence value] [time-range name


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
configure terminal


Example:

Router# configure terminal

 

Enters global configuration mode.

 
Step 3
ipv6 access-list access-list-name


Example:

Router(config)# ipv6 access-list list1

 

Defines an IPv6 access list and places the router in IPv6 access list configuration mode.

 
Step 4
permit icmp {source-ipv6-prefix / prefix-length | any | host source-ipv6-address| auth} [operator port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address | auth} [operator [port-number]] [icmp-type [icmp-code] | icmp-message] [dest-option-type [doh-number | doh-type]] [dscp value] [flow-label value] [fragments] [log] [log-input] [mobility] [mobility-type [mh-number | mh-type]] [routing] [routing-type routing-number] [sequence value] [time-range name


Example:



Example:

or



Example:

deny icmp {source-ipv6-prefix / prefix-length | any | host source-ipv6-address | auth} [operator port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address | auth} [operator [port-number]] [icmp-type [icmp-code] | icmp-message] [dest-option-type [doh-number | doh-type]] [dscp value] [flow-label value] [fragments] [log] [log-input] [mobility] [mobility-type [mh-number | mh-type]] [routing] [routing-type routing-number] [sequence value] [time-range name



Example:

Router(config-ipv6-acl)# permit icmp host 2001:DB8:0:4::32 any routing-type 2



Example:



Example:

or



Example:

Router(config-ipv6-acl)# deny icmp host 2001:DB8:0:4::32 any routing-type 2

 

Specifies permit or deny conditions for Mobile-IPv6-specific option headers in an IPv6 access list.

  • The icmp-type argument can be (but is not limited to) one of the following Mobile-IPv6-specific options:
    • dhaad-request--numeric value is 144
    • dhaad-reply--numeric value is 145
    • mpd-solicitation--numeric value is 146
    • mpd-advertisement--numeric value is 147
  • When the dest-option-type keyword with the doh-number or doh-type argument is used, IPv6 packets are matched against the destination option extension header within each IPv6 packet header.
  • When the mobility keyword is used, IPv6 packets are matched against the mobility extension header within each IPv6 packet header.
  • When the mobility-type keyword with the mh-number or mh-type argument is used, IPv6 packets are matched against the mobility-type option extension header within each IPv6 packet header.
  • When the routing-type keyword and routing-number argument are used, IPv6 packets are matched against the routing-type option extension header within each IPv6 packet header.
 

Controlling ICMP Unreachable Messages

When IPv6 is unable to route a packet, it generates an appropriate ICMP unreachable message directed toward the source of the packet. Perform this task to control ICMP unreachable messages for any packets arriving on a specified interface.

SUMMARY STEPS

1.    enable

2.    configure terminal

3.    interface type number

4.    ipv6 unreachables


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
configure terminal


Example:

Router# configure terminal

 

Enters global configuration mode.

 
Step 3
interface type number


Example:

Router(config)# interface ethernet 0/0

 

Specifies the interface type and number, and enters interface configuration mode.

 
Step 4
ipv6 unreachables


Example:

Router(config-if)# ipv6 unreachables

 

Enables the generation of ICMPv6 unreachable messages for any packets arriving on the specified interface.

 

Verifying Native IPv6 Tunneling for Mobile IPv6

Using the native IPv6 tunneling (or generic routing encapsulation [GRE]) infrastructure improves the scalability and switching performance of the home agent. After the home agent sends a BU from a mobile node, a tunnel interface is created with the encapsulation mode set to IPv6/IPv6, the source address set to that of the home agent address on the home interface of the mobile node, and the tunnel destination set to that of the CoA of the mobile node.

These features are transparent and need not be configured in order to work with Mobile IPv6. For further information on IPv6 tunneling and how to implement GRE tunneling in IPv6, see the Implementing Tunneling for IPv6 module.

SUMMARY STEPS

1.    enable

2.    show ipv6 mobile tunnels [summary | tunnel if-number


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
show ipv6 mobile tunnels [summary | tunnel if-number


Example:

Router# show ipv6 mobile tunnels

 

Lists the Mobile IPv6 tunnels on the home agent.

 

Configuring and Verifying Host Groups for Mobile IPv6

Users can create mobile user or group policies using the host group configuration. The host group profile lookup interface will allow the lookup of the profile associated with the sender of the BU using the sender's profile name, IPv6 address, or NAI. The host profile lookup interface also specifies the authentication properties for the IPv6 mobile node by creating either a unidirectional or bidirectional SPI.

A mobile node can identify itself using its profile name or home address as an identifier, which the Mobile IPv6 protocol messages use as an identifier in their registration messages. However, for certain deployments it is essential that the mobile node has the capability to identify itself using a logical identifier such as NAI rather than a network address.


Note


  • You cannot configure two host group profiles with the same IPv6 address when using the IPv6 address option.
  • You cannot configure a profile with the NAI option set to a realm name and the address option set to a specific IPv6 address. You can either remove the NAI option or specify a fully qualified user name for the NAI option.
>
SUMMARY STEPS

1.    enable

2.    configure terminal

3.    ipv6 mobile home-agent

4.    binding [access access-list-name | auth-option | seconds| maximum | refresh

5.    host group profile-name

6.    address {ipv6-address | autoconfig

7.    nai realm | user | macaddress] {user @ realm| @ realm

8.    authentication inbound-spi {hex-in | decimal decimal-in} outbound-spi {hex-out | decimal decimal-out} | spi {hex-value | decimal decimal-value}} key {ascii string | hex string}[algorithm algorithm-type] [replay within seconds

9.    exit

10.    exit

11.    show ipv6 mobile host groups profile-name ]


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
configure terminal


Example:

Router# configure terminal

 

Enters global configuration mode.

 
Step 3
ipv6 mobile home-agent


Example:

Router(config)# ipv6 mobile home-agent

 

Places the router in home-agent configuration mode.

 
Step 4
binding [access access-list-name | auth-option | seconds| maximum | refresh


Example:

Router(config-ha)# binding 15

 

Configures binding options for the Mobile IPv6 home agent feature.

 
Step 5
host group profile-name


Example:

Router(config-ha)# host group profile1

 

Creates a host configuration in Mobile IPv6.

  • Multiple instances with different profile names can be created and used.
 
Step 6
address {ipv6-address | autoconfig


Example:

Router(config-ha)# address baba 2001:DB8:1

 

Specifies the home address of the IPv6 mobile node.

 
Step 7
nai realm | user | macaddress] {user @ realm| @ realm


Example:

Router(config-ha)# nai @cisco.com

 

Specifies the NAI for the IPv6 mobile node.

 
Step 8
authentication inbound-spi {hex-in | decimal decimal-in} outbound-spi {hex-out | decimal decimal-out} | spi {hex-value | decimal decimal-value}} key {ascii string | hex string}[algorithm algorithm-type] [replay within seconds


Example:

Router(config-ha)# authentication spi 500 key ascii cisco

 

Specifies the authentication properties for the IPv6 mobile node by creating either a unidirectional or bidirectional SPI.

 
Step 9
exit


Example:

Router(config-ha)# exit

 

Exits home-agent configuration mode, and returns the router to global configuration mode.

 
Step 10
exit


Example:

Router(config)# exit

 

Exits global configuration mode, and returns the router to privileged EXEC mode.

 
Step 11
show ipv6 mobile host groups profile-name ]


Example:

Router# show ipv6 mobile host groups

 

Displays information about Mobile IPv6 host groups.

 

Customizing Mobile IPv6 on the Interface

Perform this task to customize interface configuration parameters for your router configuration. You can set these interface configuration parameters before you start Mobile IPv6 or while Mobile IPv6 is in operation. You can customize any of these parameters, as desired.

SUMMARY STEPS

1.    enable

2.    configure terminal

3.    interface type number

4.    ipv6 mobile home-agent [preference preference-value

5.    ipv6 nd advertisement-interval

6.    ipv6 nd prefix {ipv6-prefix / prefix-length | default} [[valid-lifetime preferred-lifetime | at valid-date preferred-date] | infinite | no-advertise | off-link | no-rtr-address | no-autoconfig

7.    ipv6 nd ra interval {maximum-secs [minimum-secs] | msec maximum-msecs [minimum-msecs]}


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
configure terminal


Example:

Router# configure terminal

 

Enters global configuration mode.

 
Step 3
interface type number


Example:

Router(config)# interface serial 3

 

Specifies an interface type and number, and places the router in interface configuration mode.

 
Step 4
ipv6 mobile home-agent [preference preference-value


Example:

Router(config-if)# ipv6 mobile home-agent preference 10

 

Configures the Mobile IPv6 home agent preference value on the interface.

 
Step 5
ipv6 nd advertisement-interval


Example:

Router(config-if)# ipv6 nd advertisement-interval

 

Configures the advertisement interval option to be sent in RAs.

 
Step 6
ipv6 nd prefix {ipv6-prefix / prefix-length | default} [[valid-lifetime preferred-lifetime | at valid-date preferred-date] | infinite | no-advertise | off-link | no-rtr-address | no-autoconfig


Example:

Router(config-if)# ipv6 nd prefix 2001:DB8::/35 1000 900

 

Configures which IPv6 prefixes are included in IPv6 RAs.

 
Step 7
ipv6 nd ra interval {maximum-secs [minimum-secs] | msec maximum-msecs [minimum-msecs]}


Example:

Router(config-if)# ipv6 nd ra interval 201

 

Configures the interval between IPv6 RA transmissions on an interface.

 

Monitoring and Maintaining Mobile IPv6 on the Router

SUMMARY STEPS

1.    enable

2.    clear ipv6 mobile binding [care-of-address prefix | home-address prefix | interface type interface-number

3.    clear ipv6 mobile home-agents [interface-type interface-number

4.    clear ipv6 mobile traffic

5.    debug ipv6 mobile binding-cache | forwarding | home-agent | registration

6.    debug ipv6 mobile networks

7.    debug ipv6 mobile router [detail]


DETAILED STEPS
  Command or Action Purpose
Step 1
enable


Example:

Router> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
clear ipv6 mobile binding [care-of-address prefix | home-address prefix | interface type interface-number


Example:

Router# clear ipv6 mobile binding

 

Clears the Mobile IPv6 binding cache on a router.

 
Step 3
clear ipv6 mobile home-agents [interface-type interface-number


Example:

Router# clear ipv6 mobile home-agents

 

Clears the neighboring home agents list.

 
Step 4
clear ipv6 mobile traffic


Example:

Router# clear ipv6 mobile traffic

 

Clears the counters associated with Mobile IPv6.

 
Step 5
debug ipv6 mobile binding-cache | forwarding | home-agent | registration


Example:

Router# debug ipv6 mobile registration

 

Enables the display of debugging information for Mobile IPv6.

 
Step 6
debug ipv6 mobile networks


Example:

Router# debug ipv6 mobile networks

 

Displays debugging messages for IPv6 mobile networks.

 
Step 7
debug ipv6 mobile router [detail]


Example:

Router# debug ipv6 mobile router

 

Displays debugging messages for the IPv6 mobile router.

 

Examples

Sample Output from the show ipv6 mobile binding Command
Router # show ipv6 mobile binding
 
        
Mobile IPv6 Binding Cache Entries: 
2001:DB8:2000::1111/64
via care-of address 2001:DB8::A8BB:CCFF:FE01:F611
home-agent 2001:DB8:2000::2001
Prefix 2001:DB8:8000::/64
Prefix 2001:DB8:2000::1111/128
Prefix 2001:DB8:1000::1111/128 installed
state ACTIVE, sequence 23, flags AHRlK
lifetime: remaining 44 (secs), granted 60 (secs), requested 60 (secs)
interface Ethernet0/2
tunnel interface Tunnel0
0 tunneled, 0 reversed tunneled
Selection matched 1 bindings
Sample Output from the show ipv6 mobile globals Command

In the following example, the show ipv6 mobile globals command displays the binding parameters:

Router# show ipv6 mobile globals
Mobile IPv6 Global Settings:
  1 Home Agent service on following interfaces:
    Ethernet1/2 
  Bindings: 
    Maximum number is unlimited.
    1 bindings are in use
    1 bindings peak
    Binding lifetime permitted is 262140 seconds
    Recommended refresh time is 300 seconds
Sample Output from the show ipv6 mobile home-agent Command

In the following example, the fact that no neighboring mobile home agents were found is displayed:

Router# show ipv6 mobile home-agent
Home Agent information for Ethernet1/3
  Configured: 
    FE80::20B:BFFF:FE33:501F 
    preference 0 lifetime 1800 
      global address 2001:DB8:1::2/64 
  Discovered Home Agents: 
    FE80::4, last update 0 min 
    preference 0 lifetime 1800 
      global address 2001:DB8:1::4/64 
Sample Output from the show ipv6 mobile host groups Command

In the following example, information about a host group named localhost is displayed:

Router# show ipv6 mobile host groups 
Mobile IPv6 Host Configuration 
Mobile Host List: 
Host Group Name: localhost
    NAI: sai@cisco.com 
    Address: CAB:C0:CA5A:CA5A::CA5A 
    Security Association Entry: 
      SPI: (Hex: 501) (Decimal Int: 1281) 
      Key Format: Hex    Key: baba 
      Algorithm: HMAC_SHA1 
      Replay Protection: On    Replay Window: 6 secs 
Sample Output from the show ipv6 mobile router Command

The following example provides information about the IPv6 mobile router status when the router configured with IPv6 NEMO:

Router# show ipv6 mobile router
Mobile Reverse Tunnel established
---------------------------------
using Nemo Basic mode
Home Agent: 2001:DB8:2000::2001
CareOf Address: 2001:DB8::A8BB:CCFF:FE01:F611
Attachment Router: FE80::A8BB:CCFF:FE01:F511 
Attachment Interface: Ethernet1/1
Home Network: 2001:DB8:2000:0:FDFF:FFFF:FFFF:FFFE/64
Home Address: 2001:DB8:2000::1111/64
Sample Output from the show ipv6 mobile traffic Command

In the following example, information about Mobile IPv6 traffic is displayed:

Router# show ipv6 mobile traffic
 
MIPv6 statistics:
  Rcvd: 6477 total 
      0 truncated, 0 format errors 
      0 checksum errors 
    Binding Updates received:6477 
      0 no HA option, 0 BU's length 
      0 options' length, 0 invalid CoA 
  Sent: 6477 generated 
    Binding Acknowledgements sent:6477 
      6477 accepted (0 prefix discovery required) 
      0 reason unspecified, 0 admin prohibited 
      0 insufficient resources, 0 home reg not supported 
      0 not home subnet, 0 not home agent for node 
      0 DAD failed, 0 sequence number 
    Binding Errors sent:0 
      0 no binding, 0 unknown MH 
  Home Agent Traffic: 
    6477 registrations, 0 deregistrations 
    00:00:23 since last accepted HA registration 
    unknown time since last failed HA registration 
    unknown last failed registration code 
    Traffic forwarded: 
      0 tunneled, 0 reversed tunneled 
    Dynamic Home Agent Address Discovery: 
      1 requests received, 1 replies sent 
    Mobile Prefix Discovery: 
      0 solicitations received, 0 advertisements sent 
Sample Output from the show ipv6 mobile tunnels Command

The following example displays information about the Mobile IPv6 tunnels on the home agent:

Router# show ipv6 mobile tunnels
 
        
Tunnel1:
 Source: 2001:0DB1:1:1 
 Destination: 2001:0DB1:2:1
 Encapsulation Mode: IPv6/IPv6
 Egress Interface: Ethernet 1/0
 Switching Mode: Process
 Keep-Alive: Not Supported
 Path MTU Discovery: Enabled
 Input: 20 packets, 1200 bytes, 0 drops
 Output: 20 packets, 1200 bytes, 0 drops 
 NEMO Options: Not Supported

Configuration Examples for Implementing Mobile IPv6

Example Enabling Mobile IPv6 on the Router

The following example shows how to configure and enable Mobile IPv6 on a specified interface:

Router> enable
Router# config terminal
Router(config)# interface Ethernet 1
Router(config-if)# ipv6 mobile home-agent

Example Enabling and Configuring NEMO on the IPv6 Mobile Router

The following example shows how to enable and configure NEMO on the IPv6 mobile router. The /128 subnet must be used; otherwise, the IPv6 mobile router will fail to register because it will believe the home network is locally connected:

ipv6 unicast-routing
!
interface ethernet0/0
no ip address
ipv6 address 2001:DB8:2000::1111/128
ipv6 nd ra mtu suppress
!
interface ethernet0/1
no ip address
ipv6 address 2001:DB8:1000::1111/128
ipv6 nd ra mtu suppress
!
interface Ethernet0/0
description Roaming Interface to AR2
no ip address
ipv6 address autoconfig
ipv6 enable
ipv6 nd ns-interval 5000
ipv6 mobile router-service roam
ipv6 rip home enable
!
interface Ethernet0/1
description Mobile Network Interface
no ip address
ipv6 address 2001:DB8:8000::8001/64
ipv6 enable
ipv6 nd advertisement-interval 
ipv6 nd ra interval msec 1000
ipv6 rip home enable
!
interface Ethernet1/1
description Roaming Interface to AR1
no ip address
ipv6 address autoconfig
ipv6 enable
ipv6 nd ns-interval 5000
ipv6 mobile router-service roam priority 99
ipv6 rip home enable
!
ipv6 router rip home
!
ipv6 mobile router
host group mr-host-group
nai mr1@cisco.com
address 2001:DB8:2000::1112/128
authentication spi hex 100 key ascii hi
exit
home-network 2001:DB8:2000::/64 discover priority 127
home-network 2001:DB8:1000::/64 discover
home-address home-network eui-64
explicit-prefix
register lifetime 60
register retransmit initial 1000 maximum 1000 retry 1
register extend expire 20 retry 1 interval 1

Example Enabling NEMO on the IPv6 Mobile Router Home Agent

The following example shows how to enable and configure NEMO on the IPv6 mobile router home agent. The anycast address is needed for DHAAD to work. The redistribute nemo command redistributes NEMO routes into the routing protocol:

ipv6 unicast-routing 
!
interface Ethernet0/2
description To Network
no ip address
no ipv6 address
ipv6 address 2001:DB8:2000::2001/64
ipv6 address 2001:DB8:2000::FDFF:FFFF:FFFF:FFFE/64 anycast
ipv6 enable
ipv6 nd advertisement-interval
ipv6 nd ra lifetime 2
ipv6 nd ra interval msec 1000
ipv6 mobile home-agent preference 100
ipv6 mobile home-agent
ipv6 rip home enable
!
interface Ethernet2/2
description To CN2
no ip address
no ipv6 address
ipv6 address 2001:DB8:3000::3001/64
ipv6 enable
ipv6 rip home enable
!
ipv6 router nemo
!
ipv6 router rip home
redistribute nemo
poison-reverse
!
ipv6 mobile home-agent
host group mr-host-group
nai mr1@cisco.com
address 2001:DB8:2000::1112/64
authentication spi hex 100 key ascii hi
exit
host group mr2-host-group
nai mr2@cisco.com
address 2001:DB8:2000::2222
authentication spi decimal 512 key hex 12345678123456781234567812345678
exit

Example Enabling Roaming on the IPv6 Mobile Router Interface

The following example shows how to enable roaming on the IPv6 mobile router interface:

Router(config)# interface ethernet 0/0 
Router(config-if)# ipv6 mobile router-service roam 

Example Configuring Host Groups for Mobile IPv6

The following example shows how to configure a Mobile IPv6 host group named group1:

ipv6 mobile host group group1 
  nai sri@cisco.com 
  address autoconfig 
  authentication spi 500 key ascii cisco

Additional References

Related Documents

Related Topic

Document Title

IPv6 supported feature list

Start Here: Cisco IOS Software Release Specifics for IPv6 Features

IPv6 commands: complete command syntax, command mode, defaults, usage guidelines, and examples

Cisco IOS IPv6 Command Reference

IPv6 simplified packet headers, IPv6 neighbor discovery, IPv6 stateless autoconfiguration, IPv6 stateful autoconfiguration

" Implementing IPv6 Addressing and Basic Connectivity " module of the Cisco IOS IPv6 Configuration Guide

IPv6 access lists

" Implementing Traffic Filters and Firewalls for IPv6 Security " module of the Cisco IOS IPv6 Configuration Guide

IPv6 tunneling

" Implementing Tunneling for IPv6 " module of the Cisco IOS IPv6 Configuration Guide

IPv4 mobility configuration and commands

  • Cisco IOS IP Mobility Configuration Guide
  • Cisco IOS IP Mobility Command Reference

Standards

Standards

Title

No new or modified standards are supported by this feature, and support for existing standards has not been modified by this feature.

--

MIBs

MIBs

MIBs Link

None

To locate and download MIBs for selected platforms, Cisco software releases, and feature sets, use Cisco MIB Locator found at the following URL:

http://www.cisco.com/go/mibs

RFCs

RFCs

Title

RFC 3775

Mobility Support in IPv6

RFC 3846

Mobile IPv4 Extension for Carrying Network Access Identifiers

RFC 3963

Network Mobility (NEMO) Basic Support Protocol

RFC 4282

The Network Access Identifier

RFC 4283

Mobile Node Identifier Option for Mobile IPv6 (MIPv6)

RFC 4285

Authentication Protocol for Mobile IPv6

RFC 4885

Network Mobility Support Terminology

RFC 4887

Network Mobility Home Network Models

Technical Assistance

Description

Link

The Cisco Support and Documentation website provides online resources to download documentation, software, and tools. Use these resources to install and configure the software and to troubleshoot and resolve technical issues with Cisco products and technologies. Access to most tools on the Cisco Support and Documentation website requires a Cisco.com user ID and password.

http://www.cisco.com/cisco/web/support/index.html

Feature Information for Implementing Mobile IPv6

The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.

Table 1 Feature Information for Implementing Mobile IPv6

Feature Name

Releases

Feature Information

Mobile IPv6 Home Agent

12.3(14)T 12.4

The Mobile IPv6 feature uses the IPv6 address space to enable Mobile IP deployment in any kind of large environment. No foreign agent is needed to use Mobile IPv6.

IPv6 ACL Extensions for Mobile IPv6

12.4(2)T 12.2(33)SRB 12.2(33)SXI 15.0(1)S

IPv6 access lists can be configured to allow IPv6 access list entries matching Mobile-IPv6-specific ICMP messages to be configured and to allow the definition of entries to match packets containing Mobile IPv6 extension headers.

Mobile IP--Mobile IPv6 HA phase 2

12.4(11)T

This phase of development for Mobile IPv6 includes support for NAI, alternate authentication, and native IPv6 tunnel infrastructure.

Mobile Networks v6--Basic NEMO

12.4(20)T

The network mobility (NEMO) basic support protocol enables mobile IPv6 networks to attach to different points in the Internet.

Cisco and the Cisco logo are trademarks or registered trademarks of Cisco and/or its affiliates in the U.S. and other countries. To view a list of Cisco trademarks, go to this URL: www.cisco.com/go/trademarks. Third-party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1110R)

Any Internet Protocol (IP) addresses and phone numbers used in this document are not intended to be actual addresses and phone numbers. Any examples, command display output, network topology diagrams, and other figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses or phone numbers in illustrative content is unintentional and coincidental.

© 2012 Cisco Systems, Inc. All rights reserved.