RTSOLD(8)
π rtsold(8) β the router solicitation daemon, explained by your fave π
okay so bestie, this is from the System Manager's Manual section, page RTSOLD(8) β and no cap, it's lowkey iconic once you get past the scary name. let's get into it β¨
πΈ NAME πΈ
rtsold, rtsol β router solicitation daemon π
like⦠it solicits routers. respectfully. on purpose.
π¦ SYNOPSIS π¦
rtsold [-dDfFimu1] [-M script-name] [-O script-name] [-A script-name]
[-p pidfile] [-R script-name] interface ...
rtsold [-dDfFimu1] [-M script-name] [-O script-name] [-A script-name]
[-p pidfile] [-R script-name] -a
rtsol [-dDiu] [-M script-name] [-O script-name] [-A script-name]
[-R script-name] interface ...
rtsol [-dDiu] [-M script-name] [-O script-name] [-A script-name]
[-R script-name] -a
(yes, rtsol gets a smaller flag set than rtsold β she's the β¨limited editionβ¨ version, more on that in a sec)
π DESCRIPTION π
so rtsold is the daemon program whose whole job is to send ICMPv6 Router Solicitation messages out on the interfaces you point it at π«Ά. think of it like: if a node (re)attaches to a link, rtsold fires off a few Router Solicitations on that link β destined to the link-local scope all-routers multicast address β so it can discover new routers and get non link-local addresses. main character energy, fr fr π
heads up: rtsold should be used on IPv6 hosts (non-router nodes) only. read that again. it's not a router thing.
if you invoke the program as rtsol, bestie, it will transmit probes from the specified interface without becoming a daemon. like, same vibes, no commitment. in other words, rtsol behaves as rtsold -f1 interfaces. periodt.
β the three (3) moments she sends solicitations
specifically, rtsold sends at most 3 Router Solicitations on an interface after one of these events:
- just after invocation of the
rtsolddaemon π« - the interface is up after a temporary interface failure π.
rtsolddetects such failures by periodically probing to see if the status of the interface is active or not. note that some network cards and drivers do not allow the extraction of link state β in such cases,rtsoldcannot detect the change of the interface status. (not her fault, blame the driver π) - every 60 seconds if the
-moption is specified and thertsolddaemon cannot get the interface status β°. this feature does not conform to the IPv6 neighbor discovery specification, but is provided for mobile stations. the default interval for router advertisements β which is on the order of 10 minutes β is slightly long for mobile stations. so this feature is provided for such stations so they can find new routers as soon as possible when they attach to another link. thoughtful queen πΈ
once rtsold has sent a Router Solicitation, and has received a valid Router Advertisement, it refrains from sending additional solicitations on that interface β until the next time one of the above events occurs. she's chill like that π
when sending a Router Solicitation on an interface, rtsold includes a Source Link-layer address option if the interface has a link-layer address β¨
π§ the per-interface parameter (iykyk)
rtsold manages a per-interface parameter to detect if a separate protocol is needed for configuration parameters other than host's addresses. at invocation time, the flag is FALSE, and it becomes TRUE when the daemon receives a router advertisement with the OtherConfig flag being set. a script file can be specified to deal with the case (see below π). when rtsold starts resending router solicitation messages by one of the conditions events, the daemon resets the parameter β because the event may indicate a change on the attached link. she resets, she refreshes, she moves on π
π©· the dump file moment
upon receipt of signal SIGUSR1, rtsold will dump the current internal state into /var/run/rtsold.dump. journaling! we love to see it π
the options are as follows:
β¨ OPTIONS β¨
-aβ Autoprobe outgoing interfaces.rtsoldwill try to find any non-loopback, IPv6-capable interfaces and send router solicitation messages on all of them. she'll find them herself, bestie π΅οΈββοΈ-dβ Enable debugging. π-Dβ Enable more debugging including the printing of internal timer information. we're going deeper π₯-fβ Preventrtsoldfrom becoming a daemon (foreground mode). warning messages are generated to standard error instead ofsyslog(3). she stays right there with you π«Ά-Fβ Explicitly configure the kernel to accept Router Advertisements and disable IPv6 forwarding. these settings are required for properrtsoldoperation. without this option, the current settings will be obeyed; if they are incompatible with proper operation, warning messages will be generated, but Router Solicitations will still be sent. the settings may be changed manually withsysctl(8)andifconfig(8).-iβ Transmit Router Solicitation packets immediately, without waiting the normal random (between 0 and 1 second) delay. β‘ do not use this option on networks where it might result in congestion due to many hosts simultaneously (re)connecting and sending such packets β not the move, ngl π-mβ Enable mobility support. if this option is specified,rtsoldsends probing packets to default routers that have advertised Router Advertisements when the node (re)attaches to an interface. moreover, if the option is specified,rtsoldperiodically sends Router Solicitation on an interface that does not supportSIOCGIFMEDIAioctl. mobile station behavior, activated π°οΈ-1β Perform only one probe. transmit Router Solicitation packets until at least one valid Router Advertisement packet has arrived on each interface, then exit. one and done, she's out βοΈ-Mscript-nameβ Specifies a supplement script file to handle the Managed Configuration flag of the router advertisement. when the flag changes fromFALSEtoTRUE,rtsoldwill invokescript-namewith a first argument of the receiving interface name and a second argument of the sending router address, expecting the script will then start a protocol for the managed configuration.script-namemust be the absolute path from root to the script file, be a regular file, and be created by the same owner who runsrtsold. β¨rules are rulesβ¨-Oscript-nameβ Specifies a supplement script file to handle the Other Configuration flag of the router advertisement. when the flag changes fromFALSEtoTRUE,rtsoldwill invokescript-namewith a first argument of the receiving interface name and a second argument of the sending router address, expecting the script will then start a protocol for the other configuration. the script will not be run if the Managed Configuration flag in the router advertisement is alsoTRUE.script-namemust be the absolute path from root to the script file, be a regular file, and be created by the same owner who runsrtsold.-Ascript-nameβ Specifies a supplement script file to always be called for the router advertisement.rtsoldwill invokescript-namewith a first argument of the receiving interface name and a second argument of the sending router address.script-namemust be the absolute path from root to the script file, be a regular file, and be created by the same owner who runsrtsold. always-on bestie energy π«Ά-ppidfileβ Writes the process ID ofrtsoldtopidfileinstead of the default PID file/var/run/rtsold.pid. custom home for the pid π‘-Rscript-nameβ Specifies a script to run when router advertisement optionsRDNSS(Recursive DNS Server) orDNSSL(DNS Search List) are encountered. the information of DNS servers and DNS search domains will be sent to standard input of this script. theresolvconf(8)script is used by default. π-uβ Specifies whether to add the source address of Router Advertisement messages to the interface name in the parameters of theRDNSSandDNSSLscripts.- if
-uis specified, the interface name in the script parameters will beifname:slaac:[RA-source-address]. - otherwise it will be
ifname:slaac.
- if
π FILES π
/var/run/rtsold.pidβ the PID of the currently runningrtsold./var/run/rtsold.dumpβ internal state dump file.
π EXIT STATUS π
the rtsold utility exits 0 on success, and >0 if an error occurs. simple. clean. slay. β¨
π₯ SEE ALSO π₯
resolvconf(8), rtadvd(8), sysctl(8) β go read those too, bestie, they're all part of the ecosystem π
πΈ HISTORY πΈ
the rtsold command is based on the rtsol command, which first appeared in WIDE/KAME IPv6 protocol stack kit. rtsol is now integrated into rtsold(8). glow-up complete, honestly π¦
π BUGS π
okay so this part is important, don't skip it:
when a network card is removed and reinserted, the corresponding interface index may change. however, rtsold assumes such changes will not occur, and always uses the index that it got at invocation. as a result, rtsold may not work if you reinsert a network card. in such a case, rtsold should be killed and restarted. π (she's trying her best, but the index is locked in)
the IPv6 autoconfiguration specification assumes a single-interface host. you may see kernel error messages if you try to autoconfigure a host with multiple interfaces. also, it seems contradictory for rtsold to accept multiple interface arguments. π yeahβ¦ we know.
and that's the whole page, bestie π«Ά this one comes to you courtesy of the Debian folks, dated May 2, 2023 β go forth and solicit those routers responsibly π
β¨π
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms