Annotation of embedaddon/quagga/doc/main.texi, revision 1.1.1.1
1.1 misho 1: @node Zebra
2: @chapter Zebra
3:
4: @c SYNOPSIS
5: @command{zebra} is an IP routing manager. It provides kernel routing
6: table updates, interface lookups, and redistribution of routes between
7: different routing protocols.
8:
9: @menu
10: * Invoking zebra:: Running the program
11: * Interface Commands:: Commands for zebra interfaces
12: * Static Route Commands:: Commands for adding static routes
13: * zebra Route Filtering:: Commands for zebra route filtering
14: * zebra Terminal Mode Commands:: Commands for zebra's VTY
15: @end menu
16:
17:
18: @node Invoking zebra
19: @section Invoking zebra
20:
21: Besides the common invocation options (@pxref{Common Invocation Options}), the
22: @command{zebra} specific invocation options are listed below.
23:
24: @table @samp
25: @item -b
26: @itemx --batch
27: Runs in batch mode. @command{zebra} parses configuration file and terminates
28: immediately.
29:
30: @item -k
31: @itemx --keep_kernel
32: When zebra starts up, don't delete old self inserted routes.
33:
34: @item -r
35: @itemx --retain
36: When program terminates, retain routes added by zebra.
37:
38: @end table
39:
40: @node Interface Commands
41: @section Interface Commands
42:
43: @deffn Command {interface @var{ifname}} {}
44: @end deffn
45:
46: @deffn {Interface Command} {shutdown} {}
47: @deffnx {Interface Command} {no shutdown} {}
48: Up or down the current interface.
49: @end deffn
50:
51: @deffn {Interface Command} {ip address @var{address/prefix}} {}
52: @deffnx {Interface Command} {ipv6 address @var{address/prefix}} {}
53: @deffnx {Interface Command} {no ip address @var{address/prefix}} {}
54: @deffnx {Interface Command} {no ipv6 address @var{address/prefix}} {}
55: Set the IPv4 or IPv6 address/prefix for the interface.
56: @end deffn
57:
58: @deffn {Interface Command} {ip address @var{address/prefix} secondary} {}
59: @deffnx {Interface Command} {no ip address @var{address/prefix} secondary} {}
60: Set the secondary flag for this address. This causes ospfd to not treat the
61: address as a distinct subnet.
62: @end deffn
63:
64: @deffn {Interface Command} {description @var{description} ...} {}
65: Set description for the interface.
66: @end deffn
67:
68: @deffn {Interface Command} {multicast} {}
69: @deffnx {Interface Command} {no multicast} {}
70: Enable or disables multicast flag for the interface.
71: @end deffn
72:
73: @deffn {Interface Command} {bandwidth <1-10000000>} {}
74: @deffnx {Interface Command} {no bandwidth <1-10000000>} {}
75: Set bandwidth value of the interface in kilobits/sec. This is for
76: calculating OSPF cost. This command does not affect the actual device
77: configuration.
78: @end deffn
79:
80: @deffn {Interface Command} {link-detect} {}
81: @deffnx {Interface Command} {no link-detect} {}
82: Enable/disable link-detect on platforms which support this. Currently
83: only Linux and Solaris, and only where network interface drivers support reporting
84: link-state via the IFF_RUNNING flag.
85: @end deffn
86:
87: @node Static Route Commands
88: @section Static Route Commands
89:
90: Static routing is a very fundamental feature of routing technology. It
91: defines static prefix and gateway.
92:
93: @deffn Command {ip route @var{network} @var{gateway}} {}
94: @var{network} is destination prefix with format of A.B.C.D/M.
95: @var{gateway} is gateway for the prefix. When @var{gateway} is
96: A.B.C.D format. It is taken as a IPv4 address gateway. Otherwise it
97: is treated as an interface name. If the interface name is @var{null0} then
98: zebra installs a blackhole route.
99:
100: @example
101: ip route 10.0.0.0/8 10.0.0.2
102: ip route 10.0.0.0/8 ppp0
103: ip route 10.0.0.0/8 null0
104: @end example
105:
106: First example defines 10.0.0.0/8 static route with gateway 10.0.0.2.
107: Second one defines the same prefix but with gateway to interface ppp0. The
108: third install a blackhole route.
109: @end deffn
110:
111: @deffn Command {ip route @var{network} @var{netmask} @var{gateway}} {}
112: This is alternate version of above command. When @var{network} is
113: A.B.C.D format, user must define @var{netmask} value with A.B.C.D
114: format. @var{gateway} is same option as above command
115:
116: @example
117: ip route 10.0.0.0 255.255.255.0 10.0.0.2
118: ip route 10.0.0.0 255.255.255.0 ppp0
119: ip route 10.0.0.0 255.255.255.0 null0
120: @end example
121:
122: These statements are equivalent to those in the previous example.
123: @end deffn
124:
125: @deffn Command {ip route @var{network} @var{gateway} @var{distance}} {}
126: Installs the route with the specified distance.
127: @end deffn
128:
129: Multiple nexthop static route
130:
131: @example
132: ip route 10.0.0.1/32 10.0.0.2
133: ip route 10.0.0.1/32 10.0.0.3
134: ip route 10.0.0.1/32 eth0
135: @end example
136:
137: If there is no route to 10.0.0.2 and 10.0.0.3, and interface eth0
138: is reachable, then the last route is installed into the kernel.
139:
140: If zebra has been compiled with multipath support, and both 10.0.0.2 and
141: 10.0.0.3 are reachable, zebra will install a multipath route via both
142: nexthops, if the platform supports this.
143:
144: @example
145: zebra> show ip route
146: S> 10.0.0.1/32 [1/0] via 10.0.0.2 inactive
147: via 10.0.0.3 inactive
148: * is directly connected, eth0
149: @end example
150:
151: @example
152: ip route 10.0.0.0/8 10.0.0.2
153: ip route 10.0.0.0/8 10.0.0.3
154: ip route 10.0.0.0/8 null0 255
155: @end example
156:
157: This will install a multihop route via the specified next-hops if they are
158: reachable, as well as a high-metric blackhole route, which can be useful to
159: prevent traffic destined for a prefix to match less-specific routes (eg
160: default) should the specified gateways not be reachable. Eg:
161:
162: @example
163: zebra> show ip route 10.0.0.0/8
164: Routing entry for 10.0.0.0/8
165: Known via "static", distance 1, metric 0
166: 10.0.0.2 inactive
167: 10.0.0.3 inactive
168:
169: Routing entry for 10.0.0.0/8
170: Known via "static", distance 255, metric 0
171: directly connected, Null0
172: @end example
173:
174: @deffn Command {ipv6 route @var{network} @var{gateway}} {}
175: @deffnx Command {ipv6 route @var{network} @var{gateway} @var{distance}} {}
176: These behave similarly to their ipv4 counterparts.
177: @end deffn
178:
179:
180: @deffn Command {table @var{tableno}} {}
181: Select the primary kernel routing table to be used. This only works
182: for kernels supporting multiple routing tables (like GNU/Linux 2.2.x
183: and later). After setting @var{tableno} with this command,
184: static routes defined after this are added to the specified table.
185: @end deffn
186:
187: @node zebra Route Filtering
188: @section zebra Route Filtering
189: Zebra supports @command{prefix-list} and @command{route-map} to match
190: routes received from other quagga components. The
191: @command{permit}/@command{deny} facilities provided by these commands
192: can be used to filter which routes zebra will install in the kernel.
193:
194: @deffn Command {ip protocol @var{protocol} route-map @var{routemap}} {}
195: Apply a route-map filter to routes for the specified protocol. @var{protocol}
196: can be @b{any} or one of
197: @b{system},
198: @b{kernel},
199: @b{connected},
200: @b{static},
201: @b{rip},
202: @b{ripng},
203: @b{ospf},
204: @b{ospf6},
205: @b{isis},
206: @b{bgp},
207: @b{hsls}.
208: @end deffn
209:
210: @deffn {Route Map} {set src @var{address}}
211: Within a route-map, set the preferred source address for matching routes
212: when installing in the kernel.
213: @end deffn
214:
215: @example
216: The following creates a prefix-list that matches all addresses, a route-map
217: that sets the preferred source address, and applies the route-map to all
218: @command{rip} routes.
219:
220: @group
221: ip prefix-list ANY permit 0.0.0.0/0 le 32
222: route-map RM1 permit 10
223: match ip address prefix-list ANY
224: set src 10.0.0.1
225:
226: ip protocol rip route-map RM1
227: @end group
228: @end example
229:
230: @node zebra Terminal Mode Commands
231: @section zebra Terminal Mode Commands
232:
233: @deffn Command {show ip route} {}
234: Display current routes which zebra holds in its database.
235:
236: @example
237: @group
238: Router# show ip route
239: Codes: K - kernel route, C - connected, S - static, R - RIP,
240: B - BGP * - FIB route.
241:
242: K* 0.0.0.0/0 203.181.89.241
243: S 0.0.0.0/0 203.181.89.1
244: C* 127.0.0.0/8 lo
245: C* 203.181.89.240/28 eth0
246: @end group
247: @end example
248: @end deffn
249:
250: @deffn Command {show ipv6 route} {}
251: @end deffn
252:
253: @deffn Command {show interface} {}
254: @end deffn
255:
256: @deffn Command {show ip prefix-list [@var{name}]} {}
257: @end deffn
258:
259: @deffn Command {show route-map [@var{name}]} {}
260: @end deffn
261:
262: @deffn Command {show ip protocol} {}
263: @end deffn
264:
265: @deffn Command {show ipforward} {}
266: Display whether the host's IP forwarding function is enabled or not.
267: Almost any UNIX kernel can be configured with IP forwarding disabled.
268: If so, the box can't work as a router.
269: @end deffn
270:
271: @deffn Command {show ipv6forward} {}
272: Display whether the host's IP v6 forwarding is enabled or not.
273: @end deffn
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>