supernode(8)

πŸ“¦ version 3.1.1, in ubuntu stonking

πŸ’… supernode β€” the n2n supernode daemon (section 8, bestie)

okay so you opened the manual page for supernode(8) and honestly? iconic choice. this is the group-chat rundown of the n2n supernode daemon, section 8 of the user commands manual, and i'm gonna hold your hand through every single flag. no skips. periodt. πŸŽ€


✨ NAME ✨

supernode β€” the n2n supernode daemon, aka the main character of your peer-to-peer VPN setup πŸ‘‘


🌸 SYNOPSIS 🌸

supernode <config file>
supernode [OPTION]...

πŸ¦‹ DESCRIPTION πŸ¦‹

N2N is a peer-to-peer VPN system, and supernode is that girl. she's the node introduction registry, the broadcast conduit, and the packet relay node for the n2n system. when she starts up, she begins listening on the specified UDP port for node registrations plus all the other packets she's gotta route. πŸ’…

she can service literally any number of communities, and she routes packets only between members of the same community. no crossover, no drama, no gossip between friend groups. πŸ™…β€β™€οΈ

and here's the part that makes her trustworthy: the supernode does not hold the community encryption key, so she can't snoop on packets or inject stuff into the community. she's the friend who holds your bag and does not go through it. 🫢

she can service a number of n2n communities concurrently. traffic does not cross between communities. that's the vibe check and she passes it.

all logging goes to stdout. all of it. πŸ“’

the config file is similar to the command line, with one option per line. lines starting with a "#" are ignored. an equal sign ('=') should be used between key and value. example: -p=7777


🌈 OPTIONS FOR THE UNDERLYING NETWORK CONNECTION 🌈

  • -p <local_port>, --local-port= <local_port> β€” listen on this fixed local UDP port, defaults to 7654 🎧
  • -F <fed_name> β€” the name of the supernode's federation, defaults to '*Federation' (see also N2N_FEDERATION in ENVIRONMENT πŸ‘€)
  • -l <host:port> β€” ip address or name, and port of known supernode
  • -m <mac_address> β€” fixed MAC address for the supernode, e.g. '-m 10:20:30:40:50:60', random otherwise 🎲
  • -M β€” disable MAC and IP address spoofing protection for all non-username-password-authenticating communities
  • -V <version_string> β€” modify the supernode version string which is distributed to the edges and shown at their management port output, up to 19 characters (yes, nineteen, count 'em βœ‚οΈ)

🧚 TAP DEVICE AND OVERLAY NETWORK CONFIGURATION 🧚

  • -c <path>, --communities= <path> β€” file containing the allowed communities and any User / Password based authentication details (See ALLOWED COMMUNITIES FILE section πŸ“‚)
  • -a <net-net/n>, --autoip= <net-net/n> β€” subnet range for auto ip address service, e.g. '-a 192.168.0.0-192.168.255.0/24', defaults to '10.128.255.0-10.255.255.0/24' 🌐

πŸ’– LOCAL OPTIONS πŸ’–

  • -f, --foreground β€” disable daemon mode (UNIX) and run in foreground. (she comes out from backstage, she wants to be seen ✨)
  • -t <port>, --mgmt-port= <port> β€” management UDP port, for multiple supernodes on a machine, defaults to 5645
  • --management-password <password> β€” sets the password for access to JSON API at the management port, defaults to 'n2n'. The password has to be provided for relevant access to JSON API at the management port. πŸ”
  • -v, --verbose β€” use verbose logging (she will overshare and you will love it)
  • -u <UID> β€” numeric user ID to use when privileges are dropped
  • -g <GID> β€” numeric group ID to use when privileges are dropped
  • -h β€” shows a quick reference including all available options (the tl;dr bestie version)
  • --help β€” shows detailed parameter description (the full essay version πŸ“)

πŸŽ€ ALLOWED COMMUNITIES FILE πŸŽ€

this file is a plain text file. comments are introduced with a hash at the beginning of the line. a line that begins with an asterisk is a user authentication definition and adds an allowed user to the most recently defined community. allowed communities can be specified with a regular expression. πŸ€“

example community file:

# List of allowed communities
mynetwork
netleo
* logan nHWum+r42k1qDXdIeH-WFKeylK5UyLStRzxofRNAgpG
* sister HwHpPrdMft+38tFDDiunUds6927t0+zhCMMkQdJafcC

more details on creating the allowed communities file are found in the Communities.md and Authentication.md documentation included with this package. πŸ“š


🌸 ENVIRONMENT 🌸

  • N2N_FEDERATION β€” set the federation name so it is not visible at the command line 🀫

⭐ EXAMPLES ⭐

supernode -p 7654 -v

Start supernode listening on UDP port 7654 with verbose output. πŸŽ‰

echo | nc -w1 -u 127.0.0.1 5645

Shows the management status of a running supernode.


πŸ’€ RESTART πŸ’€

when supernode restarts it loses all registration information from associated edge nodes. it can take up to five minutes for the edge nodes to re-register and normal traffic flow to resume. so like… plan accordingly, bestie. don't just yolo a restart mid-meeting 😭


πŸ”₯ EXIT STATUS πŸ”₯

supernode is a daemon and any exit is an error. that's it. she doesn't leave. if she leaves, something went wrong. πŸ’…


πŸ‘‘ AUTHOR πŸ‘‘

Luca Deri ( deri (at) ntop.org ), Richard Andrews ( andrews (at) ntop.org ), Don Bindner


🌈 SEE ALSO 🌈

  • ifconfig(8) edge(8)
  • the documentation contained in the source code
  • the extensive documentation found in n2n's doc/ folder

and that's the whole page, no cap β€” brought to you by version 3, dated Jul 16, 2021. go forth and federate responsibly πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from