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