TPNEMO v2 eng
TP |
Configuring Mobile IPv6 with NEMO support
|
Objectives:
- 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 :
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? |
Sommaire |
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:
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.
Notice:
- 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
If it has not been done yet, load the Clonezilla image for this lab, « Debian 7 Réseau ».
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
Objectives:
- Understand differences between a basic MIPv6 architecture and a NEMO architecture.
- Define the addressing plan of a NEMO network.
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.
Cabling the network
- 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
![]() |
Important: It is mandatory to read the lab subject and its related theory before arriving to the lab room. |
Step 2: Initial configuration
Objectives:
- 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.
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.
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 Switch#
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.
Get the configuration prompt on the switch:
Switch> enable
Copy-paste in the console window commands located in file ~user/TPs/TP_NEMO/switch.conf
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.
Check the sysctls on the Mobile Node and the Mobile Router:
# sysctl -a | grep net.ipv6.conf.all
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.
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.
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 Router#
If the output is different from the one above, follow the instructions at the end of this document to erase any previous configuration
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 Router#
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 Router#
![]() |
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 :
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] | ||
MNX | HA |
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.
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.
Start mip6d with the appropriate configuration:
# mip6d -c ~user/TPs/TP_NEMO/mn.mip6d.conf
Edit mr.mip6d.conf on the Mobile Router and replace <TP> and <X> by your numbers.
Start mip6d with the appropriate configuration:
# mip6d -c ~user/TPs/TP_NEMO/mr.mip6d.conf
Notes:
- 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.
# ping6 2001:660:7301:<TP>FE::<Y> # ping6 2001:660:7301:<TP>FF::<Y>
Ask your instructors for approval before continuing
Approved: | Not approved: |
Step 3: NEMO configuration
Objectives:
- 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
Type the following command on the Mobile Router:
# ip -6 address add 2001:660:7301:<TP>F<X>::1/64 dev eth1
# 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?
|
Edit mr.radvd.conf and replace <TP> and <X> by your numbers.
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.
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?
|
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.
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.
|
Start Wireshark on the Mobile Router
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.
Stop mip6d on the Mobile Node, so that it becomes a non-mobility enabled machine, and plug it to the Mobile Network:
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?
|
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)
|
Unplug the Mobile Router and plug it to another bench:
![]() |
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?
|
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
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).
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> [OK] Erase of nvram: complete Switch# 3d23h: %SYS-7-NV_BLOCK_INIT: Initialized the geometry of nvram Switch#reload 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 Switch>
# 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!