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 August 14, 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 dDfFmu1 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 dDfFmu1 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 dDu 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 dDu 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 m 198Enable mobility support. 199If this option is specified, 200.Nm 201sends probing packets to default routers that have advertised Router 202Advertisements 203when the node (re)attaches to an interface. 204Moreover, if the option is specified, 205.Nm 206periodically sends Router Solicitation on an interface that does not support 207.Dv SIOCGIFMEDIA 208ioctl. 209.It Fl 1 210Perform only one probe. 211Transmit Router Solicitation packets until at least one valid Router 212Advertisement packet has arrived on each 213.Ar interface , 214then exit. 215.It Fl M Ar script-name 216Specifies a supplement script file to handle the Managed Configuration 217flag of the router advertisement. 218When the flag changes from FALSE to TRUE, 219.Nm 220will invoke 221.Ar script-name 222with a first argument of the receiving interface name 223and a second argument of the sending router address, 224expecting the script will then start a protocol for the managed 225configuration. 226.Ar script-name 227must be the absolute path from root to the script file, be a regular 228file, and be created by the same owner who runs 229.Nm . 230.It Fl O Ar script-name 231Specifies a supplement script file to handle the Other Configuration 232flag of the router advertisement. 233When the flag changes from FALSE to TRUE, 234.Nm 235will invoke 236.Ar script-name 237with a first argument of the receiving interface name 238and a second argument of the sending router address, 239expecting the script will then start a protocol for the other 240configuration. 241The script will not be run if the Managed Configuration flag in the 242router advertisement is also TRUE. 243.Ar script-name 244must be the absolute path from root to the script file, be a regular 245file, and be created by the same owner who runs 246.Nm . 247.It Fl p Ar pidfile 248Writes the process ID of 249.Nm 250to 251.Pa pidfile 252instead of the default PID file 253.Pa /var/run/rtsold.pid . 254.It Fl R Ar script-name 255Specifies a script to run when router advertisement options 256.Dv RDNSS Pq Recursive DNS Server 257or 258.Dv DNSSL Pq DNS Search List 259are encountered. 260The information of DNS servers and DNS search domains will be sent to 261standard input of this script. 262The 263.Xr resolvconf 8 264script is used by default. 265.It Fl u 266Specifies whether to add the source address of Router Advertisement 267messages to the interface name in the parameters of the RDNSS and DNSSL 268scripts. 269.Pp 270If 271.Fl u 272is specified, the interface name in the script parameters will be 273.Ql ifname:slaac:[RA-source-address] . 274.Pp 275Otherwise it will be 276.Ql ifname:slaac . 277.El 278.Sh FILES 279.Bl -tag -width /var/run/rtsold.dump -compact 280.It Pa /var/run/rtsold.pid 281The PID of the currently running 282.Nm . 283.It Pa /var/run/rtsold.dump 284Internal state dump file. 285.El 286.\" 287.Sh EXIT STATUS 288.Ex -std 289.\" 290.Sh SEE ALSO 291.Xr resolvconf 8 , 292.Xr rtadvd 8 , 293.Xr sysctl 8 294.\" 295.Sh HISTORY 296The 297.Nm 298command is based on the 299.Nm rtsol 300command, which first appeared in WIDE/KAME IPv6 protocol stack kit. 301.Nm rtsol 302is now integrated into 303.Xr rtsold 8 . 304.\" 305.Sh BUGS 306In some operating systems, when a PCMCIA network card is removed 307and reinserted, the corresponding interface index is changed. 308However, 309.Nm 310assumes such changes will not occur, and always uses the index that 311it got at invocation. 312As a result, 313.Nm 314may not work if you reinsert a network card. 315In such a case, 316.Nm 317should be killed and restarted. 318.Pp 319The IPv6 autoconfiguration specification assumes a single-interface host. 320You may see kernel error messages if you try to autoconfigure a host with 321multiple interfaces. 322Also, it seems contradictory for 323.Nm 324to accept multiple 325.Ar interface 326arguments. 327