xref: /freebsd/usr.sbin/rtsold/rtsold.8 (revision 19261079b74319502c6ffa1249920079f0f69a72)
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