RDNSSD(8)

πŸ’– RDNSSD(8) β€” like, the IPv6 Recursive DNS Server discovery Daemon bestie πŸ’–

okay so. this is rdnssd, from the System Manager's Manual. she's a little daemon and she's literally so good at what she does, no cap. let's get into it 🫢


✨ NAME ✨

rdnssd β€” IPv6 Recursive DNS Server discovery Daemon πŸ‘‘


🌸 SYNOPSIS 🌸

rdnssd [-f] [-H merge-hook] [-r resolv-file] [-p pidfile] [-u username]

πŸ¦‹ DESCRIPTON πŸ¦‹

so rdnssd is a daemon program, and her whole thing is giving client-side support for DNS configuration using the Recursive DNS Server (RDNSS) option, exactly as described in RFC 5006. her purpose? supplying IPv6 DNS resolvers through stateless autoconfiguration, carried by Router Advertisements. it's giving very effortless, very autoconfig ✨

rdnssd parses RDNSS options and keeps track of resolvers so she can write nameservers entries into a resolv.conf(5) configuration file. by default she writes her own separate file, and she may call an external hook to merge it with the main /etc/resolv.conf. this is all aimed at easing coexistence with concurrent daemons β€” especially IPv4 ones β€” that are also out here updating /etc/resolv.conf. sharing the spotlight, as she should πŸ’…

on Linux, since version 2.6.24, rdnssd takes advantage of a new netlink interface, forwarding RDNSS options validated by the kernel to userland. otherwise? she just listens to all ICMPv6 traffic through a raw socket. main character behavior either way tbh.


πŸ’… OPTIONS πŸ’…

  • -f or --foreground β€” do not detach from the console. run the program in the foreground. she stays right there with you, bestie 🫢
  • -H merge-hook or --merge-hook merge-hook β€” execute this hook whenever resolv.conf is updated. if this option is not specified, then no hook will be called. so like, no hook, no drama.
  • -h or --help β€” display some help and exit. very demure, very mindful 🌸
  • -p pidfile or --pidfile pidfile β€” override the location of the pidfile.
  • -r resolv-file or --resolv-file resolv-file β€” set the path to the generated resolv.conf file.
  • -u username or --user username β€” override the user that the program will run as. by default, it runs as nobody. (she's literally nobody and still iconic 😭)
  • -V or --version β€” display program version and license and exit. go off, queen πŸ‘‘

πŸŽ€ FILES πŸŽ€

  • /etc/rdnssd/merge-hook β€” a basic merge hook shipped with rdnssd, to be called with the -H option.
  • /var/run/rdnssd/resolv.conf β€” the default resolv.conf(5) file that rdnssd writes its configuration to.
  • /var/run/rdnssd.pid β€” the process-id file.

πŸ’€ BUGS πŸ’€

okay bestie, we gotta be honest here. rdnssd does not keep track of the lifetimes of the routers associated with some DNS resolvers, whereas it should to strictly comply with RFC 5006. 😭 it's a whole thing. not her best moment, fr fr.

and when rdnssd uses a raw socket instead of the netlink kernel interface, she does not validate received Neighbor Discovery traffic in any way. like, none. for example, it will always consider Router Advertisement packets, whereas it should not if the host is configured as a router. πŸ™ˆ when the netlink interface is used, such validation is done by the kernel. so like, raw socket = trust issues (in the other direction, which is somehow worse).


🌈 SEE ALSO 🌈

resolv.conf(5), rdisc6(8), ipv6(7)


πŸ‘‘ AUTHOR πŸ‘‘

Pierre Ynard <linkfanel at yahoo.fr>

http://www.remlab.net/ndisc6/


and that's the whole vibe check, bestie πŸ’– this was rdnssd β€” version $Date$, and yeah, she's filed under RDNSSD(8). slay, periodt. βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from