Initial import from FreeBSD RELENG_4:
[games.git] / sbin / route / route.8
1 .\" Copyright (c) 1983, 1991, 1993
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\"    must display the following acknowledgement:
14 .\"     This product includes software developed by the University of
15 .\"     California, Berkeley and its contributors.
16 .\" 4. Neither the name of the University nor the names of its contributors
17 .\"    may be used to endorse or promote products derived from this software
18 .\"    without specific prior written permission.
19 .\"
20 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .\" SUCH DAMAGE.
31 .\"
32 .\"     @(#)route.8     8.3 (Berkeley) 3/19/94
33 .\" $FreeBSD: src/sbin/route/route.8,v 1.17.2.9 2003/02/24 00:56:43 trhodes Exp $
34 .\"
35 .Dd June 8, 2001
36 .Dt ROUTE 8
37 .Os
38 .Sh NAME
39 .Nm route
40 .Nd manually manipulate the routing tables
41 .Sh SYNOPSIS
42 .Nm
43 .Op Fl dnqtv
44 .Ar command
45 .Oo
46 .Op Ar modifiers
47 .Ar args
48 .Oc
49 .Sh DESCRIPTION
50 The
51 .Nm
52 utility is used to manually manipulate the network
53 routing tables.  It normally is not needed, as a
54 system routing table management daemon such as
55 .Xr routed 8 ,
56 should tend to this task.
57 .Pp
58 The
59 .Nm
60 utility supports a limited number of general options,
61 but a rich command language, enabling the user to specify
62 any arbitrary request that could be delivered via the
63 programmatic interface discussed in
64 .Xr route 4 .
65 .Pp
66 The following options are available:
67 .Bl -tag -width indent
68 .It Fl n
69 Bypass attempts to print host and network names symbolically
70 when reporting actions.  (The process of translating between symbolic
71 names and numerical equivalents can be quite time consuming, and
72 may require correct operation of the network; thus it may be expedient
73 to forget this, especially when attempting to repair networking operations).
74 .It Fl v
75 (verbose) Print additional details.
76 .It Fl q
77 Suppress all output from the
78 .Cm add , delete ,
79 and
80 .Cm flush
81 commands.
82 .El
83 .Pp
84 The
85 .Nm
86 utility provides six commands:
87 .Pp
88 .Bl -tag -width Fl -compact
89 .It Cm add
90 Add a route.
91 .It Cm flush
92 Remove all routes.
93 .It Cm delete
94 Delete a specific route.
95 .It Cm change
96 Change aspects of a route (such as its gateway).
97 .It Cm get
98 Lookup and display the route for a destination.
99 .It Cm monitor
100 Continuously report any changes to the routing information base,
101 routing lookup misses, or suspected network partitionings.
102 .El
103 .Pp
104 The monitor command has the syntax:
105 .Pp
106 .Bd -ragged -offset indent -compact
107 .Nm
108 .Op Fl n
109 .Cm monitor
110 .Ed
111 .Pp
112 The flush command has the syntax:
113 .Pp
114 .Bd -ragged -offset indent -compact
115 .Nm
116 .Op Fl n
117 .Cm flush
118 .Op Ar family
119 .Ed
120 .Pp
121 If the
122 .Cm flush
123 command is specified,
124 .Nm
125 will ``flush'' the routing tables of all gateway entries.
126 When the address family may is specified by any of the
127 .Fl osi ,
128 .Fl xns ,
129 .Fl atalk ,
130 .Fl inet6 ,
131 or
132 .Fl inet
133 modifiers, only routes having destinations with addresses in the
134 delineated family will be deleted.
135 .Pp
136 The other commands have the following syntax:
137 .Pp
138 .Bd -ragged -offset indent -compact
139 .Nm
140 .Op Fl n
141 .Ar command
142 .Op Fl net No \&| Fl host
143 .Ar destination gateway
144 .Op Ar netmask
145 .Ed
146 .Pp
147 where
148 .Ar destination
149 is the destination host or network,
150 .Ar gateway
151 is the next-hop intermediary via which packets should be routed.
152 Routes to a particular host may be distinguished from those to
153 a network by interpreting the Internet address specified as the
154 .Ar destination
155 argument.
156 The optional modifiers
157 .Fl net
158 and
159 .Fl host
160 force the destination to be interpreted as a network or a host, respectively.
161 Otherwise, if the
162 .Ar destination
163 has a
164 .Dq local address part
165 of
166 INADDR_ANY
167 .Pq Li 0.0.0.0 ,
168 or if the
169 .Ar destination
170 is the symbolic name of a network, then the route is
171 assumed to be to a network; otherwise, it is presumed to be a
172 route to a host.
173 Optionally, the
174 .Ar destination
175 could also be specified in the
176 .Ar net Ns / Ns Ar bits
177 format.
178 .Pp
179 For example,
180 .Li 128.32
181 is interpreted as
182 .Fl host Li 128.0.0.32 ;
183 .Li 128.32.130
184 is interpreted as
185 .Fl host Li 128.32.0.130 ;
186 .Fl net Li 128.32
187 is interpreted as
188 .Li 128.32.0.0;
189 .Fl net Li 128.32.130
190 is interpreted as
191 .Li 128.32.130.0;
192 and
193 .Li 192.168.64/20
194 is interpreted as
195 .Fl net Li 192.168.64 Fl netmask Li 255.255.240.0 .
196 .Pp
197 A
198 .Ar destination
199 of
200 .Ar default
201 is a synonym for
202 .Fl net Li 0.0.0.0 ,
203 which is the default route.
204 .Pp
205 If the destination is directly reachable
206 via an interface requiring
207 no intermediary system to act as a gateway, the
208 .Fl interface
209 modifier should be specified;
210 the gateway given is the address of this host on the common network,
211 indicating the interface to be used for transmission.
212 Alternately, if the interface is point to point the name of the interface
213 itself may be given, in which case the route remains valid even
214 if the local or remote addresses change.
215 .Pp
216 The optional modifiers
217 .Fl xns ,
218 .Fl osi ,
219 .Fl atalk ,
220 and
221 .Fl link
222 specify that all subsequent addresses are in the
223 .Tn XNS ,
224 .Tn OSI ,
225 or
226 .Tn AppleTalk
227 address families,
228 or are specified as link-level addresses,
229 and the names must be numeric specifications rather than
230 symbolic names.
231 .Pp
232 The optional
233 .Fl netmask
234 modifier is intended
235 to achieve the effect of an
236 .Tn OSI
237 .Tn ESIS
238 redirect with the netmask option,
239 or to manually add subnet routes with
240 netmasks different from that of the implied network interface
241 (as would otherwise be communicated using the OSPF or ISIS routing protocols).
242 One specifies an additional ensuing address parameter
243 (to be interpreted as a network mask).
244 The implicit network mask generated in the AF_INET case
245 can be overridden by making sure this option follows the destination parameter.
246 .Pp
247 For
248 .Dv AF_INET6 ,
249 the
250 .Fl prefixlen
251 qualifier
252 is available instead of the
253 .Fl mask
254 qualifier because non-continuous masks are not allowed in IPv6.
255 For example,
256 .Fl prefixlen Li 32
257 specifies network mask of
258 .Li ffff:ffff:0000:0000:0000:0000:0000:0000
259 to be used.
260 The default value of prefixlen is 64 to get along with
261 the aggregatable address.
262 But 0 is assumed if
263 .Cm default
264 is specified.
265 Note that the qualifier works only for
266 .Dv AF_INET6
267 address family.
268 .Pp
269 Routes have associated flags which influence operation of the protocols
270 when sending to destinations matched by the routes.
271 These flags may be set (or sometimes cleared)
272 by indicating the following corresponding modifiers:
273 .Bd -literal
274 -cloning   RTF_CLONING    - generates a new route on use
275 -xresolve  RTF_XRESOLVE   - emit mesg on use (for external lookup)
276 -iface    ~RTF_GATEWAY    - destination is directly reachable
277 -static    RTF_STATIC     - manually added route
278 -nostatic ~RTF_STATIC     - pretend route added by kernel or daemon
279 -reject    RTF_REJECT     - emit an ICMP unreachable when matched
280 -blackhole RTF_BLACKHOLE  - silently discard pkts (during updates)
281 -proto1    RTF_PROTO1     - set protocol specific routing flag #1
282 -proto2    RTF_PROTO2     - set protocol specific routing flag #2
283 -llinfo    RTF_LLINFO     - validly translates proto addr to link addr
284 .Ed
285 .Pp
286 The optional modifiers
287 .Fl rtt ,
288 .Fl rttvar ,
289 .Fl sendpipe ,
290 .Fl recvpipe ,
291 .Fl mtu ,
292 .Fl hopcount ,
293 .Fl expire ,
294 and
295 .Fl ssthresh
296 provide initial values to quantities maintained in the routing entry
297 by transport level protocols, such as TCP or TP4.
298 These may be individually locked by preceding each such modifier to
299 be locked by
300 the
301 .Fl lock
302 meta-modifier, or one can
303 specify that all ensuing metrics may be locked by the
304 .Fl lockrest
305 meta-modifier.
306 .Pp
307 In a
308 .Cm change
309 or
310 .Cm add
311 command where the destination and gateway are not sufficient to specify
312 the route (as in the
313 .Tn ISO
314 case where several interfaces may have the
315 same address), the
316 .Fl ifp
317 or
318 .Fl ifa
319 modifiers may be used to determine the interface or interface address.
320 .Pp
321 The optional
322 .Fl proxy
323 modifier specifies that the
324 .Dv RTF_LLINFO
325 routing table entry is the
326 .Dq published (proxy-only)
327 .Tn ARP
328 entry, as reported by
329 .Xr arp 8 .
330 .Pp
331 All symbolic names specified for a
332 .Ar destination
333 or
334 .Ar gateway
335 are looked up first as a host name using
336 .Xr gethostbyname 3 .
337 If this lookup fails,
338 .Xr getnetbyname 3
339 is then used to interpret the name as that of a network.
340 .Pp
341 The
342 .Nm
343 utility uses a routing socket and the new message types
344 .Dv RTM_ADD , RTM_DELETE , RTM_GET ,
345 and
346 .Dv RTM_CHANGE .
347 As such, only the super-user may modify
348 the routing tables.
349 .Sh DIAGNOSTICS
350 .Bl -diag
351 .It "add [host \&| network ] %s: gateway %s flags %x"
352 The specified route is being added to the tables.  The
353 values printed are from the routing table entry supplied
354 in the
355 .Xr ioctl 2
356 call.
357 If the gateway address used was not the primary address of the gateway
358 (the first one returned by
359 .Xr gethostbyname 3 ) ,
360 the gateway address is printed numerically as well as symbolically.
361 .It "delete [ host \&| network ] %s: gateway %s flags %x"
362 As above, but when deleting an entry.
363 .It "%s %s done"
364 When the
365 .Cm flush
366 command is specified, each routing table entry deleted
367 is indicated with a message of this form.
368 .It "Network is unreachable"
369 An attempt to add a route failed because the gateway listed was not
370 on a directly-connected network.
371 The next-hop gateway must be given.
372 .It "not in table"
373 A delete operation was attempted for an entry which
374 wasn't present in the tables.
375 .It "routing table overflow"
376 An add operation was attempted, but the system was
377 low on resources and was unable to allocate memory
378 to create the new entry.
379 .It "gateway uses the same route"
380 A
381 .Cm change
382 operation resulted in a route whose gateway uses the
383 same route as the one being changed.
384 The next-hop gateway should be reachable through a different route.
385 .El
386 .Pp
387 .Ex -std
388 .Sh SEE ALSO
389 .\".Xr esis 4 ,
390 .Xr netintro 4 ,
391 .Xr route 4 ,
392 .Xr arp 8 ,
393 .Xr IPXrouted 8 ,
394 .Xr routed 8
395 .\".Xr XNSrouted 8
396 .Sh HISTORY
397 The
398 .Nm
399 utility appeared in
400 .Bx 4.2 .
401 .Sh BUGS
402 The first paragraph may have slightly exaggerated
403 .Xr routed 8 Ns 's
404 abilities.