This section shows how to setup two experiments that allow you to test OPMIP in two diferent scenarios.
This are only examples and obviously other experiments are possible.
The following experiments test handover between two APs using a single homed and a multi homed mobile node.
To run the experiments you will need:
Three computers configured to run OPMIP applications (router nodes)
A computer to simulate the mobile node
Note | |
---|---|
IPv6 Forwarding: In order to allow MN to obtain the assigned HoA (and not act like a router), you need to disable IPv6 forwarding at the attaching MN interface:
sysctl net.ipv6.conf.ath1.forwarding=0
|
Note | |
---|---|
Stateful Address Configuration: If you wish to obtain the HoA defined in the node.db, using the Routing Advertisements from MAG, you need to run DHCP in the MN. Besides, you need to disable autoconfiguration (i.e. configuration based on the interface MAC address) using the following command at the MN:
sysctl -w net.ipv6.conf.eth1.autoconf=0
|
In these experiments:
PATH
and node
database (named node.db
) are in the home directory
that is the current working directory
We use the following node database:
{ "router-nodes" : [ { "id" : "lma1", "ip-address" : "2001::1:1", "ip-scope-id" : "4" }, { "id" : "mag1", "ip-address" : "2001::2:1", "ip-scope-id" : "4" }, { "id" : "mag2", "ip-address" : "2001::2:2", "ip-scope-id" : "4" }, ], "mobile-nodes" : [ { "id" : "mn1", "ip-prefix" : [ "3001:aaaa:bbbb:cccc::/64", ], "home-address" : "3001:aaaa:bbbb:cccc::1", "link-address" : [ "00:00:00:00:00:00", "00:00:00:00:00:00" ], "lma-id" : "lma1" } ] }
We follow the next conventions:
x
where x
is a number identify a computer running opmip-mag
application
x
access point SSID is OPMIP_MAGx
ath0
ath0
and
ath1
First steps:
PATH
otherwise
node.db
file to the routers (LMA, MAG1 and MAG2)
Important | |
---|---|
Make sure the node database is consistent in all router nodes, and the nodes are configured accordingly to the database. |
This experiments test an handover between two APs using a single homed mobile node.
To run this experiment follow the next steps (first check Basic setup above)
Start opmip-lma application in LMA
opmip-lma -d node.db
Start opmip-mag application in both MAGs
opmip-mag -e madwifi ath0
Start iperf server in LMA
iperf -V -s
Attach the mobile node to the MAG1 Access Point
iwconfig ath0 essid OPMIP_MAG1
Start iperf client
iperf -V -c 2001::1:1 -t 10000
Attach the mobile node to the MAG2 Access Point
iwconfig ath0 essid OPMIP_MAG2
Important | |
---|---|
Make sure that iperf
client binds to the ip address autoconfigured by the mobile node. If you
need use |
This experiments test an handover between two APs using a multi homed mobile node. In order to allow this experiment we'll need to use DHCP.
Important | |
---|---|
Multihoming support is a research area on which we are currently working. This experiment's only purpose is to demonstrate OPMIP's current capabilities of supporting multihoming. Expect some improvements in a near future. For example, there are no easy way to make a client remove a previous lease from DHCP. We are currently researching on how to make the client drop the lease instead of make the user remove it himself/herself. |
To run this experiment follow the next steps (first check Basic setup above)
Start opmip-lma application in LMA
opmip-lma -d node.db
Start opmip-mag application in both MAGs
opmip-mag -e madwifi ath0
Start iperf server in LMA
iperf -V -s
Attach the mobile node's ath0
interface to the MAG1
Access Point
iwconfig ath0 essid OPMIP_MAG1
Get an ip addres through DHCPv6
dhclient -6 ath0
Start iperf client
iperf -V -c 2001::1:1 -t 10000
Attach the mobile node's ath1
interface to the MAG2
Access Point
iwconfig ath1 essid OPMIP_MAG2
Release the previous lease manualy
rm /var/lib/dhcp/dhclient6.leases
Get ip address for ath1
dhclient -6 ath1
Dettach and turn down mobile node's ath0
interface
iwconfig ath0 essid _
ifconfig ath0 down
ath1
interface
Important | |
---|---|
Make sure that iperf
client binds to the ip address autoconfigured by the mobile node. If you
need use |