joold(8)
β¨ joold β the NAT64 Jool Session Synchronization Daemon β¨
okay bestie, sit down, we're talking about joold(8) π it's the userspace Session Synchronization (SS) daemon for NAT64 Jool, and yeah it lives in section 8 of your manual, which means it's a system-admin girly. π
πΈ NAME πΈ
joold β Userspace Session Synchronization (SS) daemon for NAT64 Jool. π¦
π DESCRIPTION π
so, lowkey? this command is deprecated. π« she's not doing the heavy lifting herself anymore β she's now implemented as a wrapper for jool session proxy. so if you're looking for the real tea, go read jool(8). periodt.
π SYNTAX π
joold [NETSOCKET] [MODSOCKET] [PORT]
β OPTIONS β
NETSOCKETβ path to the JSON file holding your network socket's config. if you don't say anything, she just assumesnetsocket.json. πββοΈMODSOCKETβ path to the JSON file holding your Netlink socket's config. default vibe?modsocket.json. β¨PORTβ if you actually pass this, she spins up a UDP server bound to portPORT, and that's where the daemon serves up stat counters. π
π NETWORK SOCKET CONFIGURATION π
this file is a JSON-formatted collection of keyvalues. yes, keyvalues. that's the word. π§
multicast address=<IPv6-or-IPv4-address>β the IP address the SS traffic gets sent to and listened from. Mandatory, no default, she will not guess for you. πmulticast port=<port-or-service-name>β the TCP port where the SS traffic gets sent to and listened from. also Mandatory, also no default. π€in interface=<String>β ifmulticast addressis IPv4, this should be one address from the interface where the SS traffic is expected to be received. ifmulticast addressis IPv6, this should be the name of the interface (eg."eth0"). Optional β defaults to being automatically assigned by the kernel. It is strongly recommended that you define this value so the SS traffic doesn't leak through other interfaces. πout interface=<String>β ifmulticast addressis IPv4, this should be one address from the interface where the multicast traffic is expected to be sent. ifmulticast addressis IPv6, this should be the name of the interface (eg."eth0"). Optional β defaults to being automatically assigned by the kernel. It is strongly recommended that you define this value so the SS traffic doesn't leak through other interfaces. no cap, protect your packets. π‘οΈttl=<INT>β time-to-live of packets sent out by this socket. π₯
π¦ NETLINK SOCKET CONFIGURATION π¦
also a JSON-formatted collection of keyvalues, because consistency is iconic. π
instance=<String>β the name of the instance the daemon is supposed to synchronize. it's the one you designate duringjool instance add. the instance is expected to exist within the same network namespace the daemon is running in. and as usual, it defaults to"default". π―
πΈ EXAMPLES πΈ
IPv6 version:
$ # All Jool instances should have the basic configuration.
$ jool --file same-config-as-everyone-else.json
$
$ # Configure the SS interface
$ ip addr add 2001:db8:ff08::4/96 dev eth0
$ ip link set eth0 up
$
$ # joold
$ cat ipv6-netsocket.json
{
"multicast address": "ff08::db8:64:64",
"multicast port": "6464",
"in interface": "eth0",
"out interface": "eth0",
"ttl": 3
}
$
$ cat modsocket.json
{ "instance": "default" }
$
$ joold ipv6-netsocket.json modsocket.json 45678 &
IPv4 version:
$ # All Jool instances should have the basic configuration.
$ jool --file same-config-as-everyone-else.json
$
$ # Configure the SS interface
$ ip addr add 192.0.2.1/24 dev eth0
$ ip link set eth0 up
$
$ # joold
$ cat ipv4-netsocket.json
{
"multicast address": "233.252.0.64",
"multicast port": "6464",
"in interface": "192.0.2.1",
"out interface": "192.0.2.1",
"ttl": 3
}
$
$ cat modsocket.json
{ "instance": "default" }
$
$ joold ipv4-netsocket.json modsocket.json 45678 &
Request stats:
$ echo "" | nc -u 127.0.0.1 45678
KERNEL_SENT_PKTS,4
KERNEL_SENT_BYTES,208
NET_RCVD_PKTS,0
NET_RCVD_BYTES,0
NET_SENT_PKTS,4
NET_SENT_BYTES,208
π EXIT STATUS π
zero on success, non-zero on failure. that's it, that's the whole mood. π«
π AUTHOR π
NIC Mexico & ITESM. legends fr fr. π«Ά
π₯ REPORTING BUGS π₯
https://github.com/NICMx/Jool/issues
π KNOWN BUGS π
- maybe the daemon should be able to automatically enable SS on the kernel module. π€
and to be perfectly honest? the main reason fixing this isn't on the radar is because joold gives the author the impression that nobody is using it. π not me reading that in the manpage. okay but like, if you are using it, you're the main character now, go file an issue. π
π COPYRIGHT π
Copyright 2011 NIC Mexico.
License: GPLv2 (GNU GPL version 2)
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. β οΈ
π SEE ALSO π
- https://nicmx.github.io/Jool/en/session-synchronization.html
- https://nicmx.github.io/Jool/en/usr-flags-session.html
and that's the whole page, bestie!! this was joold(8) from Jool v4.1.15, dated 2026-01-26 β she's deprecated but she's still serving looks. bye mwah π
πβ¨
π¦ where this page comes from
- nixpkgs unstable: jool-cli 4.1.15
- ubuntu resolute: jool-tools 4.1.15-1 Β· GPL-2.0-only
- ubuntu stonking: jool-tools 4.1.15-1ubuntu1 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms