isatapd(8) ISATAP client for Linux


isatapd --help
isatapd [ --daemon ] [ --link device ] [ options ] [ router ] [ ... ]


isatapd is a userspace program or daemon that sets up and maintains an ISATAP client tunnel by using the kernels ISATAP capabilities, first introduced with 2.6.25.

The program will create the tunnel, periodically query the specified routers, add them to the potential router list , send periodic router solicitations and parse router advertisements. isatapd will try to keep the tunnel up and running, even if the network topology changes.

See NOTES below for more information


-n --name name
Name of the tunnel interface. Default is is0.
-l --link device
Tunnel link device. If specified, tunnel will be restricted to that device, allowing multiple instances of isatapd with different tunnels. The tunnel can only exist as long as the link device is up and has a IPv4 address configured.

If unspecified or 'auto' , the outgoing IPv4 address will be guessed for the first router and the tunnel created accordingly. The tunnel device will only created, if there is a possible IPv4 source address to reach the first router.

-m --mtu bytes
Sets the MTU to bytes for the tunnel device, minimum is 1280. If unspecified, 'auto' or 0, the kernel will choose the MTU, usually 1480.
-t --ttl hoplimit
Set the tunnel hoplimit, default is 64. Specifying 'auto' or 'inherit' will make the tunnel inherit the ttl from the linked device.
-N --nopmtudisc
Disable (IPv4) Path MTU Discovery on this tunnel. For this to work --ttl has to be set to inherit. Default: do Path MTU Discovery to reduce redundant fragmentation.
-r --router router
Set a potential router. isatapd will resolv the hostname, add the IPv4 address to the PRL and send periodic router solicitation messages. Up to 10 potential routers can be specified, the default is the unqualified domainname "isatap".
-i --interval seconds
Default interval to send router solicitations. If the router lifetime is lower or interval is 'auto' , the interval will be 80 of the router's lifetime. Can be used to force solicitations at a shorter interval.

Default: auto

-D --check-dns seconds
Interval to perform DNS resolution of configured routers and to recreate the PRL, if necessary. Set to 0 to disable.

Default: 3600 sec = 1 hour

-d --daemon
fork to background. No logging is available yet.
-p --pid file
Store the pid as plaintext to file. The pid file will be write-locked to prevent multiple running instances. Useful for scripts and when running isatapd as a daemon.
--user username
Drop privileges to this user when running the solicitation loop.

Default: nobody

-v --verbose
increase verbosity
-q --quiet
decrease verbosity
-h --help
print usage
print version


On success zero is returned, otherwise a non-zero value is returned.


Force sending router solicitations and recreate the tunnel, if neccessary.
Gracefully shut down tunnel device and terminate.


isatapd logs to stderr when run in foreground and to syslog(3), using the facility LOG_DAEMON. Verbosity can be controlled with the -v and -q switches.


Network data will be processed by isatapd with privileges of an unprivileged user to minimize impact of bugs in the networking code. To create and maintain the tunnel device, root privileges are necessary.

Whenever the tunnel link interface goes down or the source address for the local tunnel endpoint changes, the tunnel device will be destroyed and recreated, if possible. Note that till then your tunnel might be in a unusable state.


Sascha Hlusiak <[email protected]>

Kwong-Sang Yin <[email protected]>

Fred Templin <[email protected]>