TPNEMO v2 eng

De Le wiki des TPs RSM
Configuring Mobile IPv6 with NEMO support


  • Implement an environment where the concepts related to Mobile IPv6 could be observed.
  • Verify and analyze the operation of RFC 6275 (Mobility Support in IPv6) and RFC 3963 (Network Mobility Basic Support Protocol).

This practical is scored. The following table must be signed by your instructors all along the lab practice :

Scoring table
Step Description Comments Instructor's signature
Step 2a : Basic IPv6 network Does MN ping HA?
Step 2b : MIPv6 network Does MN ping with mobility enabled?
Step 3 : NEMO Does a MNN inside the NEMO network ping a MN?


Lab Room description

Each lab room (B27 and B30) is composed of a number of benches, each one of these can be connected to a central hub in order to interact with other benches or to find its way to Internet. Lab room configurations are depicted below:


Write down the lab room number (27 or 30) as well as the number of your bench. They will be required for the addressing plan. We will keep the following convention:
TP: Lab room number  --->
X : Your team number --->
Y : Neighbor number  --->

Equipment identification

  • 5 RJ45 cables
  • 1 RJ45 straight through cable (dark blue)
  • 2 PCs with 3 Ethernet ports (One on the motherboard and two ethernet cards).
  • 1 Cisco switch (3560 family)
  • 1 Cisco router (1800 family)
  • Two console cables (light blue). PC on the left side will be connected to the Switch console port while the PC on the right side is connected to the Router console port.



  • Cable connectors can be deteriorated because of constant use. You should always verify the LED at every connection side..
  • Switches can detect the type of cabling. Thus, the type of cable is not important. Routers do not have this type of identification.
  • The ethernet cable attached to the motherboard ethernet port SHOULD NOT be disconnected. We will only use the other two ethernet cards.

Operating System Information

In order to configure and use MIPv6, we need a modified distribution of the operating system and some specific tools. The Linux kernel has MIPv6 feature since version 2.6.19 but it must be specifically enabled. In order to do this, it is necessary to:

  • Compile the Linux kernel with MIPv6 support.
  • Install userland tools for MIPv6, provided by the UMIP project.
  • Configure each entity of your platform so that it behaves as a Home Agent, Mobile Router, Mobile Node, or Correspondent Node.

A MIPv6-ready system has been prepared and installed on every PC. You will find a basic configuration that you will need to adapt.

System booting

Red arrow.png If it has not been done yet, load the Clonezilla image for this lab, « Debian 7 Réseau ».

Red arrow.png Boot your machine.

Red arrow.png After booting, login as user with the password pass4user

Useful commands

During the practical, we will ask you to use several commands on linux either to set the appropriate network configurations or for the purpose of testing. Here are the most important:

  • ip: swiss-knife of the network configuration on linux, this command is able to configure either interfaces, addresses, routes, or even more advanced features
    • ip link: for link-layer related operations (like setting the interface up or down)
    • ip address: to show and manipulate IP addresses; roughly equivalent to former ifconfig command
    • ip route: to show and manipulate IP routes; roughly equivalent to former route command
    • ip neighbour: for neighbour cache (L2/L3 association) operations
  • sysctl: allows to fine-tune your Linux kernel networking stack or just see current configuration
  • ping6: well-known command used to send ICMPv6 ECHOs to a given host
  • traceroute6: permits to discover the route to a host or a network
  • wireshark: graphical application aimed to capture frames transiting on a network interface, have a command line equivalent named tshark
  • telnet or nc: commands to connect to a host on a given port

Feel free to use these commands even if it isn't explicitly written to do so (especially debugging commands such as wireshark, ping6, or traceroute6). They are very powerful and please look at their manuals for detailed instructions. For example, for the ping6 command manual, type:

# man ping6

Step 1: NEMO Infrastructure


  • Understand differences between a basic MIPv6 architecture and a NEMO architecture.
  • Define the addressing plan of a NEMO network.

Scenario TP NEMO v2.1.png

Description: NEMO is an advanced enhancement to the MIPv6 protocol. As show in the figure above, NEMO adds routing features to the Mobile Node, which is renamed Mobile Router (MR). We will setup a Mobile Router through the PC on the central side. The figure below illustrates the way this elements will be deployed in a lab environment as well as their general addressing scheme.

Note: We use both features independently as there is no need to enable both at the same time. However, they are usually used together in industrial deployments in order to provide a Mobile Router with a continuous internet access.

TPNEMO init v1.png

Cabling the network

Red arrow.png Do the following connections:

  • Mobile Node (PC on the left side):
    • Connected to the switch console port from its serial port (light blue cable).
    • Connected to the switch port 1 from its interface eth0.
  • Mobile Router (PC on the right side):
    • Connected to the router console port from the serial port (light blue cable).
    • Connected to the switch port 2 from its interface eth0.
    • Connected to the switch port 6 from its interface eth1 (mobile network).
  • Access Router (Cisco router):
    • Connected to the lab room hub from its interface Fe0/1.
    • Connected to the switch port 3 from its port Fe0/0.

Note: The Mobile Router has two interfaces plugged into the switch, one for its attachment to the Access Router, one for its mobile network. We will isolate the mobile network from the access network by using VLANs in the switch configuration.

Addressing plan description:

As described in the above figure, we will use the following addressing plan:

  • Backbone: 2001:660:7301:<TP>00::/64
    • Access Router X (Fe0/1): 2001:660:7301:<TP>00::<X>/64
  • Local network X: 2001:660:7301:<TP><X>1::/64
    • Access Router X (Fe0/0): 2001:660:7301:<TP><X>1::1
    • Mobile Router X: 2001:660:7301:<TP><X>1:<EUI-64>
    • Mobile Node X: 2001:660:7301:<TP><X>1:<EUI-64>
  • Home Link NEMO: 2001:660:7301:<TP>FF::/64
    • Home Agent Address: 2001:660:7301:<TP>FF::FF
    • Home Address MR X: 2001:660:7301:<TP>FF::<X>
  • Mobile Network X: 2001:660:7301:<TP>F<X>::/64
    • Mobile Network X MR: 2001:660:7301:<TP>F<X>::1
    • Mobile Network X MNN: 2001:660:7301:<TP>F<X>:<EUI-64>

For information only (you will not need it directly):

  • HA Access Router (Fe0/1): 2001:660:7301:<TP>00::A
  • Home Agent Access Network: 2001:660:7301:<TP>A1::/64
    • HA Access Router (Fe0/0): 2001:660:7301:<TP>A1::1
    • Home Agent Access Address: 2001:660:7301:<TP>A1::2
Write down the IPv6 addresses corresponding to each of the following elements:
  • Backbone:
    • Access Router X (Fe0/1):
  • Local network X:
    • Access Router X (Fe0/0):
    • Mobile Router X:
    • Mobile Node X:
  • Home Link NEMO:
    • Home Agent Address:
    • Home Address MR X:
Attention.png Important: It is mandatory to read the lab subject and its related theory before arriving to the lab room.

Step 2: Initial configuration


  • Create virtual LANs to fit to the logical architecture (described in the above schema)
  • Apply a complex addressing plan for a NEMO architecture
  • Configure two fully functioning MIPv6 Mobile Nodes

Description: This section will ask you to setup the basic IPv6 platform. Virtual LANs will allow you to split the switch in two networks, one for backbone access, and one for mobile network nodes. Then you will redo all the configuration steps you did in the MIPv6 practical to get two fully functioning Mobile Nodes. Routing and addressing principles are required to conclude and understand this step.

Basic IPv6 configuration

Configure the switch

We first split the switch into two distinct networks.

The switch has eight available ports, and we want each to be classified in a Virtual LAN. How many VLANs would you define to fit to the desired architecture? Which port numbers would you affect to which VLAN?

Red arrow.png Open a terminal to the switch console from the MN with Applications → TP Réseaux → Console Série

A Command Line Interface (CLI) to configure and manage the switch will appear (it uses minicom). In case a password is asked to run the terminal, it is pass4root. If some questions are proposed, ignore them by using Ctrl ^ C.

Red arrow.png Type the following command and verify if the output is the same as the one that is shown below:

Switch> enable
Switch# show startup-config
startup-config is not present

Red arrow.png If the output is different from the one above, follow the instructions at the end of this document in order to erase any previous configuration.

Red arrow.png Get the configuration prompt on the switch:

Switch> enable

Red arrow.png Copy-paste in the console window commands located in file ~user/TPs/TP_NEMO/switch.conf

Red arrow.png Execute the following command on the switch:

Switch# show interfaces status

What distribution of ports did we actually choose?

Mobile Node basic configurations

At the beginning, we consider both Mobile Node and Mobile Router as normal IPv6 nodes. By default, they should already have the right configuration, lets ensure that they do.

Red arrow.png Check the sysctls on the Mobile Node and the Mobile Router:

# sysctl -a | grep net.ipv6.conf.all

Red arrow.png Ensure that the following sysctls are correctly set:

# net.ipv6.conf.all.forwarding=0
# net.ipv6.conf.all.autoconf=1
# net.ipv6.conf.all.accept_ra=1
# net.ipv6.conf.all.accept_redirects=1

Router configuration

The Access Router will be in charge of sending Router Advertisements on each local network.

Red arrow.png Open a terminal to the router console from the MR with Applications → TP Réseaux → Console Série

A Command Line Interface (CLI) to configure and manage the router will appear. If some questions are proposed, ignore them by using Ctrl ^ C.

Red arrow.png Type the following command and verify if the output is the same as the one that is shown below:

Router > enable
Router# show startup-config
startup-config is not present

Red arrow.png If the output is different from the one above, follow the instructions at the end of this document to erase any previous configuration

Red arrow.png Configure the router's interface linked to the lab bench network (hint: 2592000s is 30 days, 604800s is 7 days):

Routeur# configure terminal
Router(config)# interface FastEthernet0/0
Router(config-if)# no shutdown
Router(config-if)# ipv6 address 2001:660:7301:<TP><X>1::1/64
Router(config-if)# ipv6 enable
Router(config-if)# ipv6 nd prefix 2001:660:7301:<TP><X>1::/64 2592000 604800
Router(config-if)# ipv6 nd ra interval 30
Router(config-if)# exit
Router(config)# ipv6 unicast-routing
Router(config)# end
Router# write

Red arrow.png Configure the router's interface linked to the backbone network:

Router# configure terminal
Router(config)# ipv6 router rip cisco
Router(config-router)# redistribute connected
Router(config-router)# exit
Router(config)# interface FastEthernet0/1
Router(config-if)# no shutdown
Router(config-if)# ipv6 address 2001:660:7301:<TP>00::<X>/64
Router(config-if)# ipv6 enable
Router(config-if)# ipv6 rip cisco enable
Router(config-if)# end
Router# write
Regarding the router configuration, what changed from the previous MIPv6 practical? Why don't we need this configuration?

Configuration tests

Now, we can check that your local network is correctly set up.

On both Mobile Node and Mobile Router :

Red arrow.png Check that your interfaces are correctly configured:

# ip -6 address show eth0

Complete the table below by pinging the specified destinations from the Access Router and the Mobile Node:

Source Destination Result Explanation
MNX MRX [eth0]
MNX ARX [Fe0/0]
MNX ARX [Fe0/1]
MNX ARY [Fe0/1]
ARX ARY [Fe0/1]
ARX ARY [Fe0/0]

Red arrow.png Ask your instructors for approval before continuing

Approved: Not approved:

MIPv6 configuration

You have to configure the Mobile Node and the Mobile Router for mobility.

Red arrow.png Edit (with e.g. gedit) mn.mip6d.conf (located in /home/user/TPs/TP_NEMO) on the Mobile Node and replace <TP> and <X> by your numbers.

Red arrow.png Start mip6d with the appropriate configuration:

# mip6d -c ~user/TPs/TP_NEMO/mn.mip6d.conf

Red arrow.png Edit mr.mip6d.conf on the Mobile Router and replace <TP> and <X> by your numbers.

Red arrow.png Start mip6d with the appropriate configuration:

# mip6d -c ~user/TPs/TP_NEMO/mr.mip6d.conf


  • Logs will be displayed on the standard output.
  • You can administer mip6d using telnet on port 7777 :
# telnet localhost 7777

Allowed commands are help, bc, date, fancy, hal, nonce, pl, prompt, quit, thread, verbose. Type help for more information.

Check that you can still join another node.

Red arrow.png Try to ping another node:

# ping6 2001:660:7301:<TP>FE::<Y>
# ping6 2001:660:7301:<TP>FF::<Y>

Red arrow.png Ask your instructors for approval before continuing

Approved: Not approved:

Step 3: NEMO configuration


  • Change a basic MIPv6 configuration to support NEMO
  • Enable routing features in a Mobile Node
  • Administrate a Mobile Network

Description: This section will ask you to convert your basic MIPv6 Mobile Node into a NEMO-capable Mobile Node (called a Mobile Router). You will have to configure your node for routing without breaking mobility features.

Setup the mobility network

Red arrow.png Type the following command on the Mobile Router:

# ip -6 address add 2001:660:7301:<TP>F<X>::1/64 dev eth1

Red arrow.png Type the following sysctl:

# sysctl -w net.ipv6.conf.all.forwarding=1
For what purpose was this sysctl command used in the previous practical? On which node was it used? Why do we use it here?

Red arrow.png Edit mr.radvd.conf and replace <TP> and <X> by your numbers.

Red arrow.png Start radvd with the appropriate configuration:

# radvd -C ~user/TPs/TP_NEMO/mr.radvd.conf
What is the function of radvd? What is its role on the Mobile Router?

Hint: if you want to restart radvd, you must kill it first with pkill radvd, for example.

Red arrow.png Start a live capture with Wireshark on eth1 on the Mobile Node by using Applications → TP Réseaux → Capture réseau (wireshark)

Take a look at the Router Advertisements. What is the difference with the advertisements sent on the Home Agent dummy interface during the previous practical?

Red arrow.png Check the routes on your router:

Router> show ipv6 route
Your mobile network prefix is routed to which node? Why? (try to guess whose link-local address it is; if you don't know, ask the instructor)

Configure NEMO

You have to configure your Mobile Router to operate as a NEMO node.

Red arrow.png Edit mr.mip6d.conf.

Red arrow.png Replace the following options by corresponding values:

MobRtrUseExplicitMode enabled;
MnHomeLink "eth0" {
 IsMobRtr enabled;
 HomeAddress 2001:660:7301:<TP>FF::<X>/64 (2001:660:7301:<TP>F<X>::/64);
What does the prefix 2001:660:7301:<TP>F<X>::/64 stands for?

Explain the purpose of the options we just changed.

Red arrow.png Start Wireshark on the Mobile Router

Red arrow.png Start again mip6d with the new configuration:

# mip6d -c ~user/TPs/TP_NEMO/mr.mip6d.conf
Looking at your wireshark captures, what differences do you see in the signalisation compared to a non-NEMO signalisation?

Mobile Network tests

We are going to use the "Mobile Node" of your bench as a Mobile Network Node, e.g. a normal IPv6 host that understands nothing about mobility. This Mobile Network Node will be plugged to the mobility network.

Red arrow.png Stop mip6d on the Mobile Node, so that it becomes a non-mobility enabled machine, and plug it to the Mobile Network:

TPNEMO nemo v1.png

Red arrow.png Show your IPv6 address on the Mobile Network Node:

$ ip -6 address
What is the address of your Mobile Network Node now? How was this address assigned?

Red arrow.png From your MNN, ping another node:

$ ping6 2001:660:7301:<TP>FF::<Y>
What is the structure of packets emitted from the Mobile Router? (describe it with symbolic addresses)

Red arrow.png Unplug the Mobile Router and plug it to another bench:

TPNEMO nemo mobility v1.png

What do you see with your ping? What do you see in your wireshark capture? What happened from your Mobile Network Node point of view?

Red arrow.png Ask your instructors for approval before continuing

Approved: Not approved:

Nested mobility

Imagine the following scenario:

  • A Mobile Router is set up as in the previous example
  • A Mobile Node is set up as in the previous practical
  • The Mobile Node is plugged into the Mobile Router's Mobile Network
How would some data traffic between the Mobile Node and its Home Agent be layered?

About the signaling: What happens on the MN when the MR changes its network attachment? What happens when the MN changes its network attachment from some outside network to the Mobile Network?

In the latter case, what would the header chain (particularly, the (symbolic) source/destination addresses) of a Mobile Nodes's Binding Update look like?

You can try it by plugging your Mobile Node into the Mobile Router you just set up, and capturing some traffic from your MR's egress interface.

Do you see any drawbacks in nesting IPv6 mobility?

Restoring your bench

Red arrow.png Disconnect Ethernet cable between PC and Cisco equipments (Switch and router) and the room network. Serial cables (light blue and ethernet cable on the motherboard must not be removed).

Red arrow.png On Cisco equipments (routers and switches) remove the configuration by typing:

Switch#write erase
Erasing the nvram filesystem will remove all configuration files! Continue? [confirm] <return>
Erase of nvram: complete
3d23h: %SYS-7-NV_BLOCK_INIT: Initialized the geometry of nvram

System configuration has been modified. Save? [yes/no]: no
Proceed with reload? [confirm]<return>
Would you like to terminate autoinstall? [yes]: yes

        --- System Configuration Dialog ---

Would you like to enter the initial configuration dialog? [yes/no]: no

Red arrow.png Reboot both PCs by typing:

# reboot

Broadcast message from root@pc-b27-21 (pts/3) (Mon Aug 11 17:44:28 2008): 

The system is going down for reboot NOW!
Outils personnels