MOBILEIP(4)

NAME
mobileip - MobileIP encapsulating network device

SYNOPSIS
pseudo-device mobileip

DESCRIPTION
The mobileip driver provides IP tunnel construction using the Mobile IP (RFC 2004) encapsulation protocol

mobileip datagrams (IP protocol number 55) are encapsulated into IP using a small encapsulation header. This protocol, in line with the RFC, only supports encapsulating IPv4.

A mobileip interface can be created at runtime using the ifconfig mobileipN create command or by setting up a hostname.if(5) configuration file for netstart(8).

The MTU is set to 1488 by default. This may not be an optimal value depending on the link between the two tunnel endpoints, but it can be adjusted via ifconfig(8).

For correct operation, the route to the tunnel destination must not go over the interface itself. This can be implemented by adding a distinct or a more specific route to the tunnel destination than the hosts or networks routed via the tunnel interface. Alternatively, the tunnel traffic may be configured in a separate routing table to the encapsulated traffic.

mobileip interfaces support the following ioctl(2)s for configuring tunnel options:

SIOCSLIFPHYADDR struct if_laddrreq *
    Set the addresses of the outer IP header. The addresses may only be configured while the interface is down.

SIOCGLIFPHYADDR struct if_laddrreq *
    Get the addresses of the outer IP header.

SIOCDIFPHYADDR
    Clear the outer IP header addresses. The addresses may only be cleared while the interface is down.

SIOCSLIFPHYRTABLE struct ifreq *
    Set the routing table the encapsulated IP packets operate within. The routing table may only be configured while the interface is down.

SIOCGLIFPHYRTABLE struct ifreq *
    Get the routing table the encapsulated IP packets operate within.

EXAMPLES
Configuration example:

    Host X --- Host A ----------- MobileIP ------------ Host D --- Host E
                  \                                      /
                   \                                    /
                    +------ Host B ------ Host C ------+

On Host A (OpenBSD):

    # route add default B
    # ifconfig mobileipN create
    # ifconfig mobileipN tunnel A D
    # ifconfig mobileipN A D netmask 255.255.255.255
    # route add E D

On Host D (OpenBSD):

    # route add default C
    # ifconfig mobileipN create
    # ifconfig mobileipN tunnel D A
    # ifconfig mobileipN D A netmask 255.255.255.255
    # route add D E

The route domain used for the encapsulated traffic may be set using ifconfig(8) and the tunneldomain argument:

    # ifconfig mobileipN tunneldomain 1

SEE ALSO
inet(4), ip(4), netintro(4), options(4), hostname.if(5), protocols(5), ifconfig(8), netstart(8)

STANDARDS
C. Perkins, October 1996, RFC 2004, Minimal Encapsulation within IP.

HISTORY
Support for the MobileIP protocol was originally implemented as part of the gre(4) driver. The mobileip driver was split off from gre(4) in OpenBSD 6.3.