isatapd(8)

πŸ’– isatapd(8) β€” ISATAP client for Linux πŸ’–

okay so bestie, sit down, hydrate, and let me tell you about isatapd, which is the ISATAP client for Linux, and it is so much cooler than it sounds, no cap. πŸ¦‹


✨ SYNOPSIS ✨

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

🌸 DESCRIPTION 🌸

isatapd is a userspace program or a daemon (pick your era, both are valid πŸ’…) that sets up and maintains an ISATAP client tunnel. And how does it do that? By using the kernel's own ISATAP capabilities, which β€” fun fact β€” were first introduced way back with 2.6.25. History icon behavior honestly. πŸ‘‘

So here's the vibe: the program creates the tunnel, it periodically queries the routers you told it about, it adds them to the potential router list, it sends out periodic router solicitations, and it parses router advertisements. And it will try to keep the tunnel up and running even if the network topology changes β€” like, it's not gonna ghost you the second the network gets messy. Resilient queen. 🫢

Go peek at NOTES below for more, bestie, there's important stuff down there.

πŸŽ€ OPTIONS πŸŽ€

  • -n, --name name β€” the name of the tunnel interface. Default is is0. Name it like you'd name your pet. πŸ’–
  • -l, --link device β€” the tunnel link device. If you specify it, the tunnel gets restricted to that device, which means you can run multiple isatapd instances with different tunnels, living their separate lives, no drama. But heads up: the tunnel can only exist as long as the link device is up and has a IPv4 address configured. Periodt. If it's unspecified, or if you pass auto, the outgoing IPv4 address will be guessed for the first router and the tunnel gets created accordingly. And the tunnel device will only be created if there's actually a possible IPv4 source address to reach that first router. No address, no tunnel, sorry bestie. 😭
  • -m, --mtu bytes β€” sets the MTU to bytes for the tunnel device. Minimum is 1280. If unspecified, or auto, or 0, the kernel will choose the MTU, which is usually 1480. Let the kernel cook. πŸ“
  • -t, --ttl hoplimit β€” sets the tunnel hoplimit, default is 64. If you say auto or inherit, the tunnel will inherit the ttl from the linked device. Passing down the family traits. 🧚
  • -N, --nopmtudisc β€” disables (IPv4) Path MTU Discovery on this tunnel. And for this to work, --ttl has to be set to inherit. Default behavior: do Path MTU Discovery to reduce redundant fragmentation. ✨
  • -r, --router router β€” sets a potential router. isatapd will resolv the hostname, add the IPv4 address to the PRL, and send periodic router solicitation messages. You can specify up to 10 potential routers, and the default is the unqualified domainname "isatap". Ten router besties max, choose wisely. πŸ‘‘
  • -i, --interval seconds β€” the default interval for sending router solicitations. If the router lifetime is lower, or if 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 β€” the interval for performing DNS resolution of configured routers and for recreating the PRL, if necessary. Set it to 0 to disable. πŸ’€ Default: 3600 sec = 1 hour
  • -d, --daemon β€” fork to background. And ngl, no logging is available yet. πŸ™ˆ
  • -p, --pid file β€” stores the pid as plaintext to file. The pid file will be write-locked to prevent multiple running instances, because we do not do duplicate processes in this house. Super useful for scripts and when running isatapd as a daemon. πŸŽ€
  • --user username β€” drops privileges to this username when running the solicitation loop. Default: nobody
  • -v, --verbose β€” increase verbosity. Tell me more, tell me more. πŸ’¬
  • -q, --quiet β€” decrease verbosity. Shhh era. 🀫
  • -h, --help β€” print usage. Classic.
  • --version β€” print version. Also classic. ⭐

πŸ¦‹ EXIT STATUS πŸ¦‹

On success, zero is returned. Otherwise, a non-zero value is returned. That's it, that's the whole rule. 🌈


πŸ’… SIGNALS πŸ’…

  • SIGHUP β€” force sending router solicitations and recreate the tunnel, if neccessary. A little refresh, a little glow-up. ✨
  • SIGINT SIGTERM β€” gracefully shut down the tunnel device and terminate. Leaving the party politely, saying goodbye to everyone on the way out. 🫢

🌸 SYSLOG 🌸

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. You are literally in charge of how chatty it is. πŸ’¬


πŸ‘‘ NOTES πŸ‘‘

Network data will be processed by isatapd with the privileges of an unprivileged user, to minimize the impact of bugs in the networking code. But to create and maintain the tunnel device, root privileges are necessary. Balance, bestie. It's giving responsible. 🧚

And listen: 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. Just so you're not surprised. 😭

πŸ’– AUTHORS πŸ’–

  • Sascha Hlusiak <mail@saschahlusiak.de>
  • Kwong-Sang Yin <kwong-sang.yin@boeing.com>
  • Fred Templin <fred.l.templin@boeing.com>

Legends, all three of them. πŸ‘‘


🌈 SEE ALSO 🌈


and that's the whole page, bestie!! this one's isatapd-0.9.7, dated September 13th, 2013 β€” yes it's an old queen but she ate and she's still serving, so go set up that tunnel and slay πŸ’…βœ¨πŸŽ€