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