LISPmob/lispmob — pull request #16 by mportoles (2012-05-03 16:35:47+00:00)
Title: Multihoming

Added support to multihoming to lispd.

It can run in two modes: legacy and multi-interface

Compilation options
- Legacy Mode: compile normally
- Multi-interface: add -DLISPMOBMH to CFLAGS in lispd/Makefile

Comments:
- Multi-interface: The control interface receives index 0.
- The Netfilter priority is downgraded from NF_IP_PRI_FIRST to NF_IP_PRI_LAST. This is to ensure that lisp_mod "captures" packets after they have been marked. (the mangle priority is NF_IP_PRI_MANGLE

Basic Functionality:
- The module lisp_mod selects the outgoing interface/rloc based on the value that each packet (sk_buff structure) carries, using the variable "mark".
- lispd assigns a "mark" value to each rloc, 0 being the default rloc.
- As of now lispd assigns as "mark" the ifindex of the interface associated to each rloc (see /sys/class/net//ifindex
- Example of use:
To force all packets with destination eid 10.0.1.2 use the interface with ifindex 2, we would use the following rule:
iptables -t MANGLE -I OUTPUT -d 10.0.1.2 -j MARK --set-mark 2