1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
|
.\" $OpenBSD: rtsold.8,v 1.30 2013/05/24 14:48:50 jmc Exp $
.\" $KAME: rtsold.8,v 1.17 2001/07/09 22:30:37 itojun Exp $
.\"
.\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. Neither the name of the project nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd $Mdocdate: May 24 2013 $
.Dt RTSOLD 8
.Os
.\"
.Sh NAME
.Nm rtsold
.Nd router solicitation daemon
.\"
.Sh SYNOPSIS
.Nm rtsold
.Op Fl 1DdFfm
.Op Fl O Ar script-name
.Ar interface ...
.Nm rtsold
.Op Fl 1DdFfm
.Fl a
.Pp
.Nm rtsol
.Op Fl DdF
.Op Fl O Ar script-name
.Ar interface ...
.Nm rtsol
.Op Fl DdF
.Fl a
.\"
.Sh DESCRIPTION
.Nm
is the daemon program to send ICMPv6 Router Solicitation messages
on the specified interfaces.
If a node (re)attaches to a link,
.Nm
sends some Router Solicitations on the link destined to the link-local scope
all-routers multicast address to discover new routers
and to get non link-local addresses.
.Pp
.Nm
should be used on IPv6 hosts
.Pq non-router nodes
only.
The
.Va net.inet6.ip6.forwarding
.Xr sysctl 8
should be set to zero and the
.Va net.inet6.ip6.accept_rtadv
and
.Va net.inet6.icmp6.rediraccept
.Xr sysctl 8
should be set to a non-zero value
(see also the
.Fl F
option below).
.Pp
If you invoke the program as
.Nm rtsol ,
it will transmit probes from the specified
.Ar interface ,
without becoming a daemon.
In other words,
.Nm rtsol
behaves as
.Dq rtsold -f1 interface ... .
.Pp
An interface may be configured at boot
to be brought up using
.Nm rtsol
via a
.Xr hostname.if 5
file.
See that man page for more information.
.Pp
.Nm
sends at most 3 Router Solicitations on an interface
after one of the following events:
.Bl -bullet
.It
Just after invocation of
.Nm
daemon.
.It
The interface is up after a temporary interface failure.
.Nm
detects such failures by periodically probing to see if the status
of the interface is active or not.
Note that some network cards and drivers do not allow the extraction
of link state.
In such cases,
.Nm
cannot detect the change of the interface status.
.It
Every 60 seconds if the
.Fl m
option is specified and the
.Nm
daemon cannot get the interface status.
This feature does not conform to the IPv6 neighbor discovery
specification, but is provided for mobile stations.
The default interval for router advertisements, which is in the order of 10
minutes, is slightly long for mobile stations.
This feature is provided
for such stations so that they can find new routers as soon as possible
when they attach to another link.
.El
.Pp
Once
.Nm
has sent a Router Solicitation, and has received a valid Router Advertisement,
it refrains from sending additional solicitations on that interface, until
the next time one of the above events occurs.
.Pp
When sending a Router Solicitation on an interface,
.Nm
includes a Source Link-layer address option if the interface
has a link-layer address.
.Pp
.Nm
is able to do some additional configuration for interfaces
where more than setting the host's address is needed.
When the daemon receives a router advertisement
with the
.Dq Other Configuration
flag set,
the script specified using the
.Fl O
option is run.
.Pp
Upon receipt of signal
.Dv SIGUSR1 ,
.Nm
will dump the current internal state into
.Pa /var/run/rtsold.dump .
.\"
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl 1
Perform only one probe.
Transmit Router Solicitation packets until at least one valid Router
Advertisement packet has arrived on each
.Ar interface ,
then exit.
.It Fl a
Autoprobe outgoing interfaces.
.Nm
will try to find any non-loopback, non-point-to-point, IPv6-capable interfaces,
and send router solicitation messages on all of them.
.It Fl D
Enable more debugging (than that offered by the
.Fl d
option) including the printing of internal timer information.
.It Fl d
Enable debugging.
.It Fl F
Automatically set the
.Xr sysctl 8
variables relating to
.Nm
(see above).
Without this option,
.Nm
will obey the current
.Xr sysctl 8
settings.
.It Fl f
This option prevents
.Nm
from becoming a daemon (foreground mode).
Warning messages are generated to standard error
instead of
.Xr syslog 3 .
.It Fl m
Enable mobility support.
If this option is specified,
.Nm
sends probing packets to default routers that have advertised Router
Advertisements
when the node (re)attaches to an interface.
Moreover, if the option is specified,
.Nm
periodically sends Router Solicitation on an interface that does not support
.Dv SIOCGIFMEDIA
ioctl.
.It Fl O Ar script-name
Specifies a script to handle the Other Configuration
flag of the router advertisement (see above).
.Ar script-name
is invoked with a single argument of the receiving interface name,
expecting the script will then start a protocol
to provide additional configuration.
.Ar script-name
should be specified as the absolute path from root to the script file,
and the file itself should be a regular file
and owned by the same user running
.Nm .
.El
.\"
.Sh FILES
.Bl -tag -width "/var/run/rtsold.dumpXX" -compact
.It Pa /var/run/rtsold.dump
Internal state dump file.
.El
.\"
.Sh EXIT STATUS
.Ex -std rtsold
.\"
.Sh SEE ALSO
.Xr hostname.if 5 ,
.Xr netstart 8 ,
.Xr rtadvd 8 ,
.Xr sysctl 8
.\"
.Sh HISTORY
The
.Nm
command is based on the
.Nm rtsol
command, which first appeared in WIDE/KAME IPv6 protocol stack kit.
.Nm rtsol
is now integrated into
.Nm rtsold .
.\"
.Sh BUGS
In some operating systems, when a PCMCIA network card is removed
and reinserted, the corresponding interface index is changed.
However,
.Nm
assumes such changes will not occur, and always uses the index that
it got at invocation.
As a result,
.Nm
may not work if you reinsert a network card.
In such a case,
.Nm
should be killed and restarted.
.Pp
The IPv6 autoconfiguration specification assumes a single-interface host.
You may see kernel error messages if you try to autoconfigure a host with
multiple interfaces.
Also, it seems contradictory for
.Nm
to accept multiple
.Ar interface
arguments.
|