version 1.1, 2012/02/21 17:26:11
|
version 1.1.1.3, 2016/11/02 10:09:11
|
Line 10 different routing protocols.
|
Line 10 different routing protocols.
|
* Invoking zebra:: Running the program |
* Invoking zebra:: Running the program |
* Interface Commands:: Commands for zebra interfaces |
* Interface Commands:: Commands for zebra interfaces |
* Static Route Commands:: Commands for adding static routes |
* Static Route Commands:: Commands for adding static routes |
|
* Multicast RIB Commands:: Commands for controlling MRIB behavior |
* zebra Route Filtering:: Commands for zebra route filtering |
* zebra Route Filtering:: Commands for zebra route filtering |
|
* zebra FIB push interface:: Interface to optional FPM component |
* zebra Terminal Mode Commands:: Commands for zebra's VTY |
* zebra Terminal Mode Commands:: Commands for zebra's VTY |
@end menu |
@end menu |
|
|
Line 184 and later). After setting @var{tableno} with this com
|
Line 186 and later). After setting @var{tableno} with this com
|
static routes defined after this are added to the specified table. |
static routes defined after this are added to the specified table. |
@end deffn |
@end deffn |
|
|
|
@node Multicast RIB Commands |
|
@section Multicast RIB Commands |
|
|
|
The Multicast RIB provides a separate table of unicast destinations which |
|
is used for Multicast Reverse Path Forwarding decisions. It is used with |
|
a multicast source's IP address, hence contains not multicast group |
|
addresses but unicast addresses. |
|
|
|
This table is fully separate from the default unicast table. However, |
|
RPF lookup can include the unicast table. |
|
|
|
WARNING: RPF lookup results are non-responsive in this version of Quagga, |
|
i.e. multicast routing does not actively react to changes in underlying |
|
unicast topology! |
|
|
|
@deffn Command {ip multicast rpf-lookup-mode @var{mode}} {} |
|
@deffnx Command {no ip multicast rpf-lookup-mode [@var{mode}]} {} |
|
|
|
@var{mode} sets the method used to perform RPF lookups. Supported modes: |
|
|
|
@table @samp |
|
@item urib-only |
|
Performs the lookup on the Unicast RIB. The Multicast RIB is never used. |
|
@item mrib-only |
|
Performs the lookup on the Multicast RIB. The Unicast RIB is never used. |
|
@item mrib-then-urib |
|
Tries to perform the lookup on the Multicast RIB. If any route is found, |
|
that route is used. Otherwise, the Unicast RIB is tried. |
|
@item lower-distance |
|
Performs a lookup on the Multicast RIB and Unicast RIB each. The result |
|
with the lower administrative distance is used; if they're equal, the |
|
Multicast RIB takes precedence. |
|
@item longer-prefix |
|
Performs a lookup on the Multicast RIB and Unicast RIB each. The result |
|
with the longer prefix length is used; if they're equal, the |
|
Multicast RIB takes precedence. |
|
@end table |
|
|
|
The @code{mrib-then-urib} setting is the default behavior if nothing is |
|
configured. If this is the desired behavior, it should be explicitly |
|
configured to make the configuration immune against possible changes in |
|
what the default behavior is. |
|
|
|
WARNING: Unreachable routes do not receive special treatment and do not |
|
cause fallback to a second lookup. |
|
@end deffn |
|
|
|
@deffn Command {show ip rpf @var{addr}} {} |
|
|
|
Performs a Multicast RPF lookup, as configured with |
|
@command{ip multicast rpf-lookup-mode @var{mode}}. @var{addr} specifies |
|
the multicast source address to look up. |
|
|
|
@example |
|
> show ip rpf 192.0.2.1 |
|
Routing entry for 192.0.2.0/24 using Unicast RIB |
|
Known via "kernel", distance 0, metric 0, best |
|
* 198.51.100.1, via eth0 |
|
@end example |
|
|
|
Indicates that a multicast source lookup for 192.0.2.1 would use an |
|
Unicast RIB entry for 192.0.2.0/24 with a gateway of 198.51.100.1. |
|
@end deffn |
|
|
|
@deffn Command {show ip rpf} {} |
|
|
|
Prints the entire Multicast RIB. Note that this is independent of the |
|
configured RPF lookup mode, the Multicast RIB may be printed yet not |
|
used at all. |
|
@end deffn |
|
|
|
@deffn Command {ip mroute @var{prefix} @var{nexthop} [@var{distance}]} {} |
|
@deffnx Command {no ip mroute @var{prefix} @var{nexthop} [@var{distance}]} {} |
|
|
|
Adds a static route entry to the Multicast RIB. This performs exactly as |
|
the @command{ip route} command, except that it inserts the route in the |
|
Multicast RIB instead of the Unicast RIB. |
|
@end deffn |
|
|
|
|
@node zebra Route Filtering |
@node zebra Route Filtering |
@section zebra Route Filtering |
@section zebra Route Filtering |
Zebra supports @command{prefix-list} and @command{route-map} to match |
Zebra supports @command{prefix-list} and @command{route-map} to match |
Line 227 ip protocol rip route-map RM1
|
Line 309 ip protocol rip route-map RM1
|
@end group |
@end group |
@end example |
@end example |
|
|
|
@node zebra FIB push interface |
|
@section zebra FIB push interface |
|
|
|
Zebra supports a 'FIB push' interface that allows an external |
|
component to learn the forwarding information computed by the Quagga |
|
routing suite. |
|
|
|
In Quagga, the Routing Information Base (RIB) resides inside |
|
zebra. Routing protocols communicate their best routes to zebra, and |
|
zebra computes the best route across protocols for each prefix. This |
|
latter information makes up the Forwarding Information Base |
|
(FIB). Zebra feeds the FIB to the kernel, which allows the IP stack in |
|
the kernel to forward packets according to the routes computed by |
|
Quagga. The kernel FIB is updated in an OS-specific way. For example, |
|
the @code{netlink} interface is used on Linux, and route sockets are |
|
used on FreeBSD. |
|
|
|
The FIB push interface aims to provide a cross-platform mechanism to |
|
support scenarios where the router has a forwarding path that is |
|
distinct from the kernel, commonly a hardware-based fast path. In |
|
these cases, the FIB needs to be maintained reliably in the fast path |
|
as well. We refer to the component that programs the forwarding plane |
|
(directly or indirectly) as the Forwarding Plane Manager or FPM. |
|
|
|
The FIB push interface comprises of a TCP connection between zebra and |
|
the FPM. The connection is initiated by zebra -- that is, the FPM acts |
|
as the TCP server. |
|
|
|
The relevant zebra code kicks in when zebra is configured with the |
|
@code{--enable-fpm} flag. Zebra periodically attempts to connect to |
|
the well-known FPM port. Once the connection is up, zebra starts |
|
sending messages containing routes over the socket to the FPM. Zebra |
|
sends a complete copy of the forwarding table to the FPM, including |
|
routes that it may have picked up from the kernel. The existing |
|
interaction of zebra with the kernel remains unchanged -- that is, the |
|
kernel continues to receive FIB updates as before. |
|
|
|
The format of the messages exchanged with the FPM is defined by the |
|
file @file{fpm/fpm.h} in the quagga tree. |
|
|
|
The zebra FPM interface uses replace semantics. That is, if a 'route |
|
add' message for a prefix is followed by another 'route add' message, |
|
the information in the second message is complete by itself, and |
|
replaces the information sent in the first message. |
|
|
|
If the connection to the FPM goes down for some reason, zebra sends |
|
the FPM a complete copy of the forwarding table(s) when it reconnects. |
|
|
@node zebra Terminal Mode Commands |
@node zebra Terminal Mode Commands |
@section zebra Terminal Mode Commands |
@section zebra Terminal Mode Commands |
|
|
Line 270 If so, the box can't work as a router.
|
Line 400 If so, the box can't work as a router.
|
|
|
@deffn Command {show ipv6forward} {} |
@deffn Command {show ipv6forward} {} |
Display whether the host's IP v6 forwarding is enabled or not. |
Display whether the host's IP v6 forwarding is enabled or not. |
|
@end deffn |
|
|
|
@deffn Command {show zebra fpm stats} {} |
|
Display statistics related to the zebra code that interacts with the |
|
optional Forwarding Plane Manager (FPM) component. |
|
@end deffn |
|
|
|
@deffn Command {clear zebra fpm stats} {} |
|
Reset statistics related to the zebra code that interacts with the |
|
optional Forwarding Plane Manager (FPM) component. |
@end deffn |
@end deffn |