How to use our set of PMIPv6 patches

Back to index

Overview   Patches   Configuration   Changelog

Overview

Our repository of PMIPv6 patches contains patches to enable the Proxy Mobile IPv6 feature to UMIP. These patches will eventually find their way into the UMIP source repository once they have proved to be stable. This documentation describes how to retrieve and use this set of patches.

Overview   Patches   Configuration   Changelog

Getting the patch repository

First, you need to retrieve the UMIP sources from our umip.git repository:

$ git clone git://git.umip.org/umip.git

The set of PMIPv6 patches applies on top of UMIP v0.5. You first need to checkout this tag, then you can retrieve our set of experimental patches directly in the umip/ directory:

$ cd umip/
$ git checkout v0.5
$ git clone git://git.umip.org/umip-pmipv6-patches.git patches

Patches are located in the patches directory.

Patching UMIP using Quilt

You have to install the quilt package. On a Debian operating system, you can install it with:

# apt-get install quilt

Now, from the umip/ directory, apply the set of patches to the UMIP sources:

$ quilt push -a
patching file README
patching file configure.ac
patching file include/netinet/ip6mh.h
patching file src/bcache.c
[...]

Now at patch umip-pmipv6-base.patch

Compiling UMIP

You can compile UMIP as usual (check this documentation for more details). One difference with PMIPv6 is that you have to specify the --enable-pmipv6 flag at configure time:

$ autoreconf -i 
$ CPPFLAGS='-isystem /usr/src/linux/usr/include/' ./configure --enable-vt --enable-pmipv6
$ make
# make install
Overview   Patches   Configuration   Changelog

Configuration

Sample Topology

The configuration files proposed in this document are based on the below sample PMIPv6 testbed:

PMIPv6 Topology

Mobile Access Gateway (MAG)

Below is a sample MAG configuration file:

  # This is an example of mip6d PMIPv6 enable Mobile Access Gateway configuration file
  NodeConfig MN; 
  DebugLevel 10;
  DoRouteOptimizationCN disabled;
  DoRouteOptimizationMN disabled;
  UseCnBuAck disabled;

  # Enable Optimistic Handovers
  OptimisticHandoff enabled;

  # The Binding Lifetime, for exampe 60 seconds
  MnMaxHaBindingLife 60;

  # The global address of the MAG
  MAGEgressGlobalAddress 2001:a:b:0::a;
  
  # The link-local addresses of the MAG on the 
  # interface connected to the mobile node
  MAGInterfaceLMA "eth1";
  FixedMAGLinkLocalAddressOnAllAccessLinks fe80::a;
  FixedMAGLinkLayerAddressOnAllAccessLinks fe80::210:f3ff:fe0e:8b87;

  MNIdentifier "00:1d:72:80:c2:1b" {
   	PMIPEnabled 1;
   	LMAAddress 2001:a:b:0::1;
   	HomeNetworkPrefix1 2001:a:b:1::/64;
   	PMIPInterface1 "eth0";
   	HomePrefixLifetime 460.0;
  }
  
  # IPsec configration - NO IPSEC AT THE MOMENT
  UseMnHaIPsec disabled;
  KeyMngMobCapability disabled;

Below is a sample MAG startup script:

  #!/bin/bash
  # Mobile Access Gateway MAG - Startup script
  # Interface definition
  IF1=eth0
  IF2=eth1

  # Put here the path to your mip6d binary
  PMIP=/usr/local/sbin/mip6d
  
  # Deny RA and setup forwarding
  echo 0 > /proc/sys/net/ipv6/conf/all/accept_ra
  echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
  
  # IF1 is the interface, connected to the PMIPv6 domain.
  ifconfig $IF1 up
  ifconfig $IF1 inet6 add 2001:a:b:0::a/64

  # IF2 is the interface, connected to the Mobile Node. 
  # Do not configure any address on it.
  ifconfig $IF2 up
  ifconfig $IF2 promisc
  
  # Execute the PMIP daemon
  $PMIP -c /etc/pmip6d.conf -l /var/log/pmip6d.log

Local Mobility Anchor (LMA)

Below is a sample LMA configuration file:

  # PMIPv6 LMA configuration file
  NodeConfig HA;
  # Set DebugLevel to 0 if you do not want debug message 
  DebugLevel 10;
  # Replace eth1 with the ingress interface connected to the PMIPv6 Domain
  LMAInterfaceMAG "eth1";

  # IPsec configration - NO IPSEC AT THE MOMENT
  UseMnHaIPsec disabled;
  KeyMngMobCapability disabled;

Below is a sample LMA startup script:

  #!/bin/bash
  # Local Mobility Anchor LMA - Startup script
  # Interface definition
  IF1=eth0
  IF2=eth1

  # Put here the path to your mip6d binary
  PMIP=/usr/local/sbin/mip6d

  # Deny RA and setup forwarding
  echo 0 > /proc/sys/net/ipv6/conf/all/accept_ra
  echo 1 > /proc/sys/net/ipv6/conf/all/forwarding

  # Configure the interface connected to the Internet
  ifconfig $IF1 up
  ifconfig $IF1 inet6 add 2001:a:a:0::1/64
  
  # Configure the interface connected to the PMIPv6 Domain
  ifconfig $IF2 up
  ifconfig $IF2 promisc
  ifconfig $IF2 inet6 add 2001:a:b:0::1/64

  # Execute the PMIP daemon
  $PMIP -c /etc/pmip6d.conf -l /var/log/pmip6d.log
Overview   Patches   Configuration   Changelog

Changelog