xref: /freebsd/usr.sbin/rtsold/rtsold.8 (revision c243e4902be8df1e643c76b5f18b68bb77cc5268)
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 June 14, 2011
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 O Ar script-name
44.Op Fl p Ar pidfile
45.Op Fl R Ar script-name
46.Ar interface ...
47.Nm
48.Op Fl dDfFmu1
49.Op Fl O Ar script-name
50.Op Fl p Ar pidfile
51.Op Fl R Ar script-name
52.Fl a
53.Nm rtsol
54.Op Fl dDu
55.Op Fl O Ar script-name
56.Op Fl R Ar script-name
57.Ar interface ...
58.Nm rtsol
59.Op Fl dDu
60.Op Fl O Ar script-name
61.Op Fl R Ar script-name
62.Fl a
63.\"
64.Sh DESCRIPTION
65.Nm
66is the daemon program to send ICMPv6 Router Solicitation messages
67on the specified interfaces.
68If a node (re)attaches to a link,
69.Nm
70sends some Router Solicitations on the link destined to the link-local scope
71all-routers multicast address to discover new routers
72and to get non link-local addresses.
73.Pp
74.Nm
75should be used on IPv6 hosts
76.Pq non-router nodes
77only.
78.Pp
79If you invoke the program as
80.Nm rtsol ,
81it will transmit probes from the specified
82.Ar interface ,
83without becoming a daemon.
84In other words,
85.Nm rtsol
86behaves as
87.Do
88.Nm
89.Fl f1
90.Ar interfaces
91.Dc .
92.Pp
93Specifically,
94.Nm
95sends at most 3 Router Solicitations on an interface
96after one of the following events:
97.Pp
98.Bl -bullet -compact
99.It
100Just after invocation of
101.Nm
102daemon.
103.It
104The interface is up after a temporary interface failure.
105.Nm
106detects such failures by periodically probing to see if the status
107of the interface is active or not.
108Note that some network cards and drivers do not allow the extraction
109of link state.
110In such cases,
111.Nm
112cannot detect the change of the interface status.
113.It
114Every 60 seconds if the
115.Fl m
116option is specified and the
117.Nm
118daemon cannot get the interface status.
119This feature does not conform to the IPv6 neighbor discovery
120specification, but is provided for mobile stations.
121The default interval for router advertisements, which is on the order of 10
122minutes, is slightly long for mobile stations.
123This feature is provided
124for such stations so that they can find new routers as soon as possible
125when they attach to another link.
126.El
127.Lp
128Once
129.Nm
130has sent a Router Solicitation, and has received a valid Router Advertisement,
131it refrains from sending additional solicitations on that interface, until
132the next time one of the above events occurs.
133.Lp
134When sending a Router Solicitation on an interface,
135.Nm
136includes a Source Link-layer address option if the interface
137has a link-layer address.
138.Lp
139.Nm
140manages a per-interface parameter to detect if a separate protocol is
141needed for configuration parameters other than host's addresses.
142At the invocation time, the flag is FALSE, and becomes TRUE when
143the daemon receives a router advertisement with the OtherConfig flag
144being set.
145A script file can be specified to deal with the case
146.Pq see below .
147When
148.Nm
149start resending router solicitation messages by one of the conditions
150events,
151the daemon resets the parameter because the event may indicate a
152change on the attached link.
153.Pp
154Upon receipt of signal
155.Dv SIGUSR1 ,
156.Nm
157will dump the current internal state into
158.Pa /var/run/rtsold.dump .
159.\"
160.Pp
161The options are as follows:
162.Bl -tag -width indent
163.It Fl a
164Autoprobe outgoing interface.
165.Nm
166will try to find a non-loopback, non-point-to-point, IPv6-capable interface.
167If
168.Nm
169finds multiple interfaces,
170.Nm
171will exit with error.
172.\"
173.It Fl d
174Enable debugging.
175.It Fl D
176Enable more debugging including the printing of internal timer information.
177.It Fl f
178Prevent
179.Nm
180from becoming a daemon (foreground mode).
181Warning messages are generated to standard error
182instead of
183.Xr syslog 3 .
184.It Fl F
185Explicitly configure the kernel to accept Router Advertisements and
186disable IPv6 forwarding.
187These settings are required for proper
188.Nm
189operation.
190Without this option, the current settings will be obeyed;
191if they are incompatible with proper operation,
192warning messages will be generated,
193but Router Solicitations will still be sent.
194The settings may be changed manually with
195.Xr sysctl 8
196and
197.Xr ifconfig 8 .
198.It Fl m
199Enable mobility support.
200If this option is specified,
201.Nm
202sends probing packets to default routers that have advertised Router
203Advertisements
204when the node (re)attaches to an interface.
205Moreover, if the option is specified,
206.Nm
207periodically sends Router Solicitation on an interface that does not support
208.Dv SIOCGIFMEDIA
209ioctl.
210.It Fl 1
211Perform only one probe.
212Transmit Router Solicitation packets until at least one valid Router
213Advertisement packet has arrived on each
214.Ar interface ,
215then exit.
216.It Fl O Ar script-name
217Specifies a supplement script file to handle the Other Configuration
218flag of the router advertisement.
219When the flag changes from FALSE to TRUE,
220.Nm
221will invoke
222.Ar script-name
223with a single argument of the receiving interface name,
224expecting the script will then start a protocol for the other
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 p Ar pidfile
231Writes the process ID of
232.Nm
233to
234.Pa pidfile
235instead of the default PID file
236.Pa /var/run/rtsold.pid .
237.It Fl R Ar script-name
238Specifies a script to run when router advertisement options
239.Dv RDNSS Pq Recursive DNS Server
240or
241.Dv DNSSL Pq DNS Search List
242are encountered.
243The information of DNS servers and DNS search domains will be sent to
244standard input of this script.
245The
246.Xr resolvconf 8
247script is used by default.
248.It Fl u
249Specifies whether adding the source address of Router Advertisement
250messages to the interface name in an argument of the RDNSS and DNSSL
251script.
252.Pp
253If
254.Fl u
255is specified, the interface name in the script argument will be
256.Ql ifname:slaac:[RA-source-address] .
257.Pp
258If not, it will be
259.Ql ifname:slaac .
260.El
261.Sh FILES
262.Bl -tag -width /var/run/rtsold.dump -compact
263.It Pa /var/run/rtsold.pid
264the pid of the currently running
265.Nm .
266.It Pa /var/run/rtsold.dump
267dumps internal state on.
268.El
269.\"
270.Sh EXIT STATUS
271.Ex -std
272.\"
273.Sh SEE ALSO
274.Xr resolvconf 8 ,
275.Xr rtadvd 8 ,
276.Xr sysctl 8
277.\"
278.Sh HISTORY
279The
280.Nm
281command is based on the
282.Nm rtsol
283command, which first appeared in WIDE/KAME IPv6 protocol stack kit.
284.Nm rtsol
285is now integrated into
286.Xr rtsold 8 .
287.\"
288.Sh BUGS
289In some operating systems, when a PCMCIA network card is removed
290and reinserted, the corresponding interface index is changed.
291However,
292.Nm
293assumes such changes will not occur, and always uses the index that
294it got at invocation.
295As a result,
296.Nm
297may not work if you reinsert a network card.
298In such a case,
299.Nm
300should be killed and restarted.
301.Pp
302The IPv6 autoconfiguration specification assumes a single-interface host.
303You may see kernel error messages if you try to autoconfigure a host with
304multiple interfaces.
305Also, it seems contradictory for
306.Nm
307to accept multiple
308.Ar interface
309arguments.
310