TAYGA(8)
π TAYGA(8) β stateless NAT64 daemon π
okay bestie, sit DOWN, because this one is a whole vibe. it's tayga, section 8 of the manual (that's the sysadmin section, iykyk), and she is a stateless NAT64 daemon. yes really. let's get into it β¨
πΈ SYNOPSIS πΈ
tayga [OPTION]...
tayga --mktun [OPTION]...
tayga --rmtun [OPTION]...
three whole modes, three whole moods π
π¦ DESCRIPTION π¦
so. TAYGA is a stateless NAT64 daemon for Linux and FreeBSD. she uses the in-kernel TUN network driver, which means TAYGA receives IPv4 and IPv6 packets straight from the host's network stack, translates them into the other protocol, and then sends the translated packets right back to the host using that same TUN interface. it's giving middle school note-passing but make it networking π«Ά
the translation is compliant with IETF RFC 7915, and address mapping is done in accordance with RFC 6052 and RFC 7757. no cap. and optionally? TAYGA can be configured to dynamically map IPv6 hosts to addresses drawn from a configured IPv4 address pool. flexible queen π
okay now the important part. as a stateless NAT, TAYGA requires a one-to-one mapping between IPv4 addresses and IPv6 addresses. like, one for one, no sharing, that's the rule π
so what if you do want to map multiple IPv6 addresses onto a single IPv4 address? totally doable, but it's a two-step: map the IPv6 addresses to private IPv4 addresses with TAYGA, and then use a stateful NAT44 (think the iptables(8) MASQUERADE target) to map those private IPv4 addresses onto the single IPv4 address you actually want. teamwork makes the dream work π«
TAYGA's configuration lives in the tayga.conf(5) file, which is usually found at /etc/tayga.conf or /usr/local/etc/tayga.conf. go find her π
β¨ INVOCATION β¨
without the --mktun or --rmtun options, the tayga executable runs as a daemon, translating packets exactly like we just described. main character behaviour, honestly.
the --mktun and --rmtun options tell TAYGA to create or destroy, respectively, its configured TUN device as a "persistent" interface β and then it immediately exits. like, does the thing and leaves. iconic πͺπ¨
now, persistent TUN devices stay present on the host system even when TAYGA is not running. that's the whole point, bestie: it lets you set up host-side network parameters and firewall rules before packet translation even starts. this can simplify network configuration on the host β for example, systems that use a Debian-style /etc/network/interfaces file can configure TAYGA's TUN device at boot by running tayga --mktun as a "pre-up" command and then configuring the TUN device like it's any other network interface. chef's kiss π©βπ³π
π OPTIONS π
-c configfile|--config configfileβ Read configuration options fromconfigfile. tell her where the config lives ποΈ-dβ Enable debug messages (this enables--nodetachas well, so buckle up)-n|--nodetachβ Do not detach from terminal. stay right here with me π₯Ί-u userid|--user useridβ Set uid touseridafter initialization-g groupid|--group groupidβ Set gid togroupidafter initialization-r|--chrootβchroot()todata-dir(specified in config file). jail time, but make it security π-p pidfile|--pidfile pidfileβ Write process ID of daemon topidfile
π AUTHOR π
Maintained by Andrew Palardy <andrew@apalrd.net>. thank you for your service π«‘
π COPYRIGHT π
Copyright Β© 2010 Nathan Lutchansky Copyright Β© 2025 Andrew Palardy
License GPLv2+: GNU GPL version 2 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. fr fr, read that part twice π
β SEE ALSO β
and that's the whole page, bestie π¦ go forth and translate some packets. this was TAYGA 0.9.4, from Jun 2025, and she ate πβ¨π
π¦ where this page comes from
- epel 10: tayga 0.9.6-1.20260212git7f00122.el10_2 Β· GPL-2.0-or-later
- fedora 43: tayga 0.9.6-0.1.20250731gitfb5c58f.fc43 Β· GPL-2.0-or-later
- fedora 44: tayga 0.9.6-0.3.20250731gitfb5c58f.fc44 Β· GPL-2.0-or-later
- nixos 26.05: tayga 0.9.5
- nixpkgs unstable: tayga 0.9.6
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms