xl2tpd(8)

πŸ“¦
version 1.3.20 Β· 2 versions
  • 1.3.20 Β· alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, debian bookworm, debian trixie, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 1.3.17 Β· epel 10, epel 9, ubuntu jammy
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, debian bookworm, debian trixie, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ‘‘ NAME πŸŽ€

okay bestie, gather round, because today's main character is xl2tpd β€” that's the Layer 2 Tunneling Protocol Daemon, and it's giving extremely serious networking energy. this whole page lives in the System Manager's Manual section (the (8) situation, yk, admin tools only ✨), so if you're here you're probably already elbow-deep in tunnels. slay.


🌸 DESCRIPTION πŸ’–

so. xl2tpd is an implementation of the Layer 2 Tunneling Protocol, which is RFC 2661 if you wanna read the lore yourself. and what does L2TP do? it lets you tunnel PPP over UDP. that's the whole vibe. πŸ¦‹

some ISPs use L2TP to tunnel user sessions from dial-in servers β€” think modem banks, ADSL DSLAMs β€” over to backend PPP servers. that's one use case. the other big one, and honestly the iconic one, is Virtual Private Networks (VPN), where the IPsec protocol locks down the L2TP connection. that combo has a name: L2TP/IPsec, RFC 3193. no cap. πŸ’…

how does it actually work, you ask? xl2tpd opens a pseudo-tty so it can talk to pppd. it runs completely in userspace, but it also supports kernel mode L2TP. both. at once. versatile queen. πŸ‘‘

and here's the part that's lowkey genius: xl2tpd supports IPsec SA Reference tracking, which enables overlapping internal NAT'ed IPs from different clients β€” like, all of them connecting from their linksys internal IP 192.168.1.101 πŸ™ˆ β€” plus multiple clients sitting behind the same NAT router. yes bestie, it handles the chaos. it thrives in the chaos.

this implementation is based on L2TPd 0.61 from http://www.marko.net/l2tp plus patches collected by Jacco de Leeuw at http://www.jacco2.dds.nl/networking/openswan-l2tp.html. credit where credit is due, always. 🫢


✨ OPTIONS ✨

every single flag, zero skips, let's go:

  • -D β€” this one stops xl2tpd from detaching from the terminal and daemonizing. so it just… stays there. in your face. in your terminal. watching. πŸ‘€
  • -l β€” tells xl2tpd to use syslog for logging even when -D was specified. because sometimes you want the foreground life AND the syslog life.
  • -c <config_file> β€” set an alternate config file. the fallback configuration file is /etc/l2tpd/l2tpd.conf.
  • -s <secret_file> β€” tells xl2tpd to use an alternate "secrets" file. yes, in quotes. mysterious. secretive. we love. 🀫
  • -p <pid_file> β€” set an alternate pid file. default is /var/run/xl2tpd/xl2tpd.pid.
  • -C <control_file> β€” set an alternate control file.

πŸŽ€ FILES 🌈

the default locations, so you know where everything lives:

  • /etc/xl2tpd/xl2tpd.conf β€” the configuration file of xl2tpd, used by default.
  • /etc/xl2tpd/l2tp-secrets β€” the secrets file, used by default. 🀐
  • /var/run/xl2tpd/l2tp-control β€” the control file, used by default.

πŸ’€ BUGS πŸ’€

found something cursed? please use the github project page https://github.com/xelerance/xl2tpd to send bug reports, issues, and any other feedback. they want to hear from you, bestie, that's the whole point. 🫢


πŸ”₯ SEE ALSO πŸ”₯

go read these next, fr fr:


⭐ COPYLEFT ⭐

legal arc incoming, pay attention, it matters. πŸ’œ

this program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

this program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. see the GNU General Public License for more details.

you should have received a copy of the GNU General Public License along with this program (see the file LICENSE); if not, see https://www.gnu.org/licenses/, or contact Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


🧚 CONTRIBUTORS 🧚

these two, absolute legends:

  • Alexander Dorokhov <alex.dorokhov@gmail.com>
  • Alexander Naumov <alexander_naumov@opensuse.org>

πŸ’… AUTHORS πŸ’…

forked from l2tpd by Xelerance: https://github.com/xelerance/xl2tpd

  • Michael Richardson <mcr@xelerance.com>
  • Paul Wouters <paul@xelerance.com>
  • Samir Hussain <shussain@xelerance.com>

previous development was hosted at sourceforge (http://www.sourceforge.net/projects/l2tpd) by:

  • Scott Balmos <sbalmos@iglou.com>
  • David Stipp <dstipp@one.net>
  • Jeff McAdams <jeffm@iglou.com>

based off of l2tpd version 0.61. many thanks to Jacco de Leeuw <jacco2@dds.nl> for maintaining l2tpd. 🫢

Copyright (C)1998 Adtran, Inc. Mark Spencer <markster@marko.net>


and that's the whole page, bestie!! 🌈✨ this little love letter to tunnels dropped in Jan 2022, and it's part of the System Manager's Manual β€” go forth and tunnel responsibly, mwah πŸ’–πŸŽ€πŸ¦‹