Skip to content
mportoles edited this page May 25, 2012 · 16 revisions

LISPmob supports the following features, as specified by draft-ietf-lisp:

Data plane (lisp.ko and lisp_int.ko)

  • lmn0 virtual interface
  • IPv4-in-IPv4 encapsulation
  • IPv6-in-IPv4 encapsulation
  • Receiving Loc-Status-Bits (LSB) information
  • Many control plane functions below also need support from the data plane

Control plane (lispd)

  • Map-Register with a statically configured shared key to a single Map-Server
  • Map-Notify messages are verified for validy and the result is logged
  • Mapping lookups using a single, statically configured Map-Resolver
  • Sending Solicit-Map-Request (SMR) messages to all RLOCs in the map-cache and to a statically configured list of P-ITRs
    • P-ITR list needs to be manually maintained in the configuration file, check the LISP beta network map for more info
  • Sending SMR-invoked Map-Requests using a single, statically configured Map-Resolver
  • Replying to (Encapsulated) Map-Request messages
  • RLOC probing
    • Probe interval is a compiled-in constant, currently 30 seconds
    • Two probes are sent at an interval of one second, the corresponding RLOC is put in "Down" state after a timeout without a reply
    • Probes are sent for "Down" RLOCs as well, which are put back "Up" once a reply is received
  • NAT traversal
    • Code on the 'natt' branch.
    • Compatible Map-Server and Re-encapsulating Tunnel Router (RTR) are needed.
    • No manual configuration required.
    • Sending Info-Request messages to the Map-Server. Procesing Info-Reply answers.
    • Sending Encapsulated Map-Register messages to the RTR. Procesing Data-Map-Notify answers.

Tools

  • lispconf can be used to query the kernel module for information such as map-cache or database contents
  • TCP and UDP echo client/server for basic functionality testing

Multihoming

  • This option is still being tested. As of now it is distributed as the "multihoming" branch on the repository.
  • Note: Lispmob only uses those interfaces for which it finds a default route in the routing table. If you want to use multihoming, make sure to add a default routing entry (e.g., with metric > 0) for each one of the interfaces that you intend to use.
  • Lispmob accepts (and uses) multiple database-mapping entries in the configuration file (lispd.conf)
  • Compilation options:
    • Legacy Mode: Compile normally
    • Full Multihoming: Compile adding -DLISPMOBMH to the CFLAGS var in lispd/Makefile
  • Legacy Mode:
    • In this mode the Lispmob runs as usual except that it registers all database-mappings in the configuration file.
    • The MN is able to "receive" data on any of its active interfaces.
  • Full Multihoming Mode:
    • This mode of operation allows using any of the MN's active interfaces to transmit and receive.
    • Lispmob keeps track of interfaces status (up/down) and updates the mapping system accordingly.
    • The Data Plane module expects outgoing packets to be "marked" ("mark" field in sk_buff structure).
      • mark 0 (no-mark) indicates "default" (i.e., the same behavior as in legacy mode)
      • when another mark is used, the module uses the network device whose if_index (see /sys/class/net/<device_name>/ifindex) matches the mark
    • Marking of flows can be done through iptables rules.
    • Example of use:
      • To force all packets with destination EID 10.0.1.2 use the interface with ifindex 2, one would use the following rule:
        • iptables -t MANGLE -I OUTPUT -d 10.0.1.2 -j MARK --set-mark 2

Some features are not yet fully compliant with the specification. This page will be expanded to note the missing bits.

Clone this wiki locally