1.\" $KAME: rtsold.8,v 1.20 2003/04/11 12:46:12 jinmei Exp $ 2.\" 3.\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 4.\" All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer. 11.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 3. Neither the name of the project nor the names of its contributors 15.\" may be used to endorse or promote products derived from this software 16.\" without specific prior written permission. 17.\" 18.\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND 19.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21.\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE 22.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28.\" SUCH DAMAGE. 29.\" 30.\" $FreeBSD$ 31.\" 32.Dd December 15, 2021 33.Dt RTSOLD 8 34.Os 35.\" 36.Sh NAME 37.Nm rtsold , rtsol 38.Nd router solicitation daemon 39.\" 40.Sh SYNOPSIS 41.Nm 42.Op Fl dDfFimu1 43.Op Fl M Ar script-name 44.Op Fl O Ar script-name 45.Op Fl p Ar pidfile 46.Op Fl R Ar script-name 47.Ar interface ... 48.Nm 49.Op Fl dDfFimu1 50.Op Fl M Ar script-name 51.Op Fl O Ar script-name 52.Op Fl p Ar pidfile 53.Op Fl R Ar script-name 54.Fl a 55.Nm rtsol 56.Op Fl dDiu 57.Op Fl M Ar script-name 58.Op Fl O Ar script-name 59.Op Fl R Ar script-name 60.Ar interface ... 61.Nm rtsol 62.Op Fl dDiu 63.Op Fl M Ar script-name 64.Op Fl O Ar script-name 65.Op Fl R Ar script-name 66.Fl a 67.\" 68.Sh DESCRIPTION 69.Nm 70is the daemon program to send ICMPv6 Router Solicitation messages 71on the specified interfaces. 72If a node (re)attaches to a link, 73.Nm 74sends some Router Solicitations on the link destined to the link-local scope 75all-routers multicast address to discover new routers 76and to get non link-local addresses. 77.Pp 78.Nm 79should be used on IPv6 hosts 80.Pq non-router nodes 81only. 82.Pp 83If you invoke the program as 84.Nm rtsol , 85it will transmit probes from the specified 86.Ar interface , 87without becoming a daemon. 88In other words, 89.Nm rtsol 90behaves as 91.Do 92.Nm 93.Fl f1 94.Ar interfaces 95.Dc . 96.Pp 97Specifically, 98.Nm 99sends at most 3 Router Solicitations on an interface 100after one of the following events: 101.Pp 102.Bl -bullet -compact 103.It 104Just after invocation of 105.Nm 106daemon. 107.It 108The interface is up after a temporary interface failure. 109.Nm 110detects such failures by periodically probing to see if the status 111of the interface is active or not. 112Note that some network cards and drivers do not allow the extraction 113of link state. 114In such cases, 115.Nm 116cannot detect the change of the interface status. 117.It 118Every 60 seconds if the 119.Fl m 120option is specified and the 121.Nm 122daemon cannot get the interface status. 123This feature does not conform to the IPv6 neighbor discovery 124specification, but is provided for mobile stations. 125The default interval for router advertisements, which is on the order of 10 126minutes, is slightly long for mobile stations. 127This feature is provided 128for such stations so that they can find new routers as soon as possible 129when they attach to another link. 130.El 131.Lp 132Once 133.Nm 134has sent a Router Solicitation, and has received a valid Router Advertisement, 135it refrains from sending additional solicitations on that interface, until 136the next time one of the above events occurs. 137.Lp 138When sending a Router Solicitation on an interface, 139.Nm 140includes a Source Link-layer address option if the interface 141has a link-layer address. 142.Lp 143.Nm 144manages a per-interface parameter to detect if a separate protocol is 145needed for configuration parameters other than host's addresses. 146At the invocation time, the flag is FALSE, and becomes TRUE when 147the daemon receives a router advertisement with the OtherConfig flag 148being set. 149A script file can be specified to deal with the case 150.Pq see below . 151When 152.Nm 153start resending router solicitation messages by one of the conditions 154events, 155the daemon resets the parameter because the event may indicate a 156change on the attached link. 157.Pp 158Upon receipt of signal 159.Dv SIGUSR1 , 160.Nm 161will dump the current internal state into 162.Pa /var/run/rtsold.dump . 163.\" 164.Pp 165The options are as follows: 166.Bl -tag -width indent 167.It Fl a 168Autoprobe outgoing interfaces. 169.Nm 170will try to find any non-loopback, IPv6-capable interfaces 171and send router solicitation messages on all of them. 172.It Fl d 173Enable debugging. 174.It Fl D 175Enable more debugging including the printing of internal timer information. 176.It Fl f 177Prevent 178.Nm 179from becoming a daemon (foreground mode). 180Warning messages are generated to standard error 181instead of 182.Xr syslog 3 . 183.It Fl F 184Explicitly configure the kernel to accept Router Advertisements and 185disable IPv6 forwarding. 186These settings are required for proper 187.Nm 188operation. 189Without this option, the current settings will be obeyed; 190if they are incompatible with proper operation, 191warning messages will be generated, 192but Router Solicitations will still be sent. 193The settings may be changed manually with 194.Xr sysctl 8 195and 196.Xr ifconfig 8 . 197.It Fl i 198Transmit Router Solicitation packets immediately, without waiting the 199normal random (between 0 and 1 second) delay. 200This option should not be used on networks where it might result in 201congestion due to many hosts simultaneously (re)connecting and 202sending such packets. 203.It Fl m 204Enable mobility support. 205If this option is specified, 206.Nm 207sends probing packets to default routers that have advertised Router 208Advertisements 209when the node (re)attaches to an interface. 210Moreover, if the option is specified, 211.Nm 212periodically sends Router Solicitation on an interface that does not support 213.Dv SIOCGIFMEDIA 214ioctl. 215.It Fl 1 216Perform only one probe. 217Transmit Router Solicitation packets until at least one valid Router 218Advertisement packet has arrived on each 219.Ar interface , 220then exit. 221.It Fl M Ar script-name 222Specifies a supplement script file to handle the Managed Configuration 223flag of the router advertisement. 224When the flag changes from FALSE to TRUE, 225.Nm 226will invoke 227.Ar script-name 228with a first argument of the receiving interface name 229and a second argument of the sending router address, 230expecting the script will then start a protocol for the managed 231configuration. 232.Ar script-name 233must be the absolute path from root to the script file, be a regular 234file, and be created by the same owner who runs 235.Nm . 236.It Fl O Ar script-name 237Specifies a supplement script file to handle the Other Configuration 238flag of the router advertisement. 239When the flag changes from FALSE to TRUE, 240.Nm 241will invoke 242.Ar script-name 243with a first argument of the receiving interface name 244and a second argument of the sending router address, 245expecting the script will then start a protocol for the other 246configuration. 247The script will not be run if the Managed Configuration flag in the 248router advertisement is also TRUE. 249.Ar script-name 250must be the absolute path from root to the script file, be a regular 251file, and be created by the same owner who runs 252.Nm . 253.It Fl p Ar pidfile 254Writes the process ID of 255.Nm 256to 257.Pa pidfile 258instead of the default PID file 259.Pa /var/run/rtsold.pid . 260.It Fl R Ar script-name 261Specifies a script to run when router advertisement options 262.Dv RDNSS Pq Recursive DNS Server 263or 264.Dv DNSSL Pq DNS Search List 265are encountered. 266The information of DNS servers and DNS search domains will be sent to 267standard input of this script. 268The 269.Xr resolvconf 8 270script is used by default. 271.It Fl u 272Specifies whether to add the source address of Router Advertisement 273messages to the interface name in the parameters of the RDNSS and DNSSL 274scripts. 275.Pp 276If 277.Fl u 278is specified, the interface name in the script parameters will be 279.Ql ifname:slaac:[RA-source-address] . 280.Pp 281Otherwise it will be 282.Ql ifname:slaac . 283.El 284.Sh FILES 285.Bl -tag -width /var/run/rtsold.dump -compact 286.It Pa /var/run/rtsold.pid 287The PID of the currently running 288.Nm . 289.It Pa /var/run/rtsold.dump 290Internal state dump file. 291.El 292.\" 293.Sh EXIT STATUS 294.Ex -std 295.\" 296.Sh SEE ALSO 297.Xr resolvconf 8 , 298.Xr rtadvd 8 , 299.Xr sysctl 8 300.\" 301.Sh HISTORY 302The 303.Nm 304command is based on the 305.Nm rtsol 306command, which first appeared in WIDE/KAME IPv6 protocol stack kit. 307.Nm rtsol 308is now integrated into 309.Xr rtsold 8 . 310.\" 311.Sh BUGS 312When a network card is removed and reinserted, the corresponding interface index 313may change. 314However, 315.Nm 316assumes such changes will not occur, and always uses the index that 317it got at invocation. 318As a result, 319.Nm 320may not work if you reinsert a network card. 321In such a case, 322.Nm 323should be killed and restarted. 324.Pp 325The IPv6 autoconfiguration specification assumes a single-interface host. 326You may see kernel error messages if you try to autoconfigure a host with 327multiple interfaces. 328Also, it seems contradictory for 329.Nm 330to accept multiple 331.Ar interface 332arguments. 333