doc: cleanup multiple

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
Quentin Young 2018-01-29 12:16:20 -05:00
parent 50e75a2b82
commit d1a242fdbf
No known key found for this signature in database
GPG Key ID: DAF48E0F57E0834F
4 changed files with 550 additions and 539 deletions

View File

@ -4,14 +4,13 @@
Babel Babel
***** *****
Babel is an interior gateway protocol that is suitable both for wired Babel is an interior gateway protocol that is suitable both for wired networks
networks and for wireless mesh networks. Babel has been described as and for wireless mesh networks. Babel has been described as 'RIP on speed' --
'RIP on speed' --- it is based on the same principles as RIP, but it is based on the same principles as RIP, but includes a number of refinements
includes a number of refinements that make it react much faster to that make it react much faster to topology changes without ever counting to
topology changes without ever counting to infinity, and allow it to infinity, and allow it to perform reliable link quality estimation on wireless
perform reliable link quality estimation on wireless links. Babel is links. Babel is a double-stack routing protocol, meaning that a single Babel
a double-stack routing protocol, meaning that a single Babel instance instance is able to perform routing for both IPv4 and IPv6.
is able to perform routing for both IPv4 and IPv6.
FRR implements Babel as described in :rfc:`6126`. FRR implements Babel as described in :rfc:`6126`.
@ -40,6 +39,7 @@ Babel configuration
single: no router babel single: no router babel
.. clicmd:: [no] router babel .. clicmd:: [no] router babel
Enable or disable Babel routing. Enable or disable Babel routing.
.. index:: .. index::
@ -47,6 +47,7 @@ Babel configuration
single: no babel resend-delay [(20-655340)] single: no babel resend-delay [(20-655340)]
.. clicmd:: [no] babel resend-delay (20-655340) .. clicmd:: [no] babel resend-delay (20-655340)
Specifies the time after which important messages are resent when Specifies the time after which important messages are resent when
avoiding a black-hole. The default is 2000 ms. avoiding a black-hole. The default is 2000 ms.
@ -55,6 +56,7 @@ Babel configuration
single: no babel diversity single: no babel diversity
.. clicmd:: [no] babel diversity .. clicmd:: [no] babel diversity
Enable or disable routing using radio frequency diversity. This is Enable or disable routing using radio frequency diversity. This is
highly recommended in networks with many wireless nodes. highly recommended in networks with many wireless nodes.
If you enable this, you will probably want to set `babel If you enable this, you will probably want to set `babel
@ -63,6 +65,7 @@ Babel configuration
.. index:: babel diversity-factor (1-256) .. index:: babel diversity-factor (1-256)
.. clicmd:: babel diversity-factor (1-256) .. clicmd:: babel diversity-factor (1-256)
Sets the multiplicative factor used for diversity routing, in units of Sets the multiplicative factor used for diversity routing, in units of
1/256; lower values cause diversity to play a more important role in 1/256; lower values cause diversity to play a more important role in
route selection. The default it 256, which means that diversity plays route selection. The default it 256, which means that diversity plays
@ -74,11 +77,13 @@ Babel configuration
single: no network IFNAME single: no network IFNAME
.. clicmd:: no network IFNAME .. clicmd:: no network IFNAME
Enable or disable Babel on the given interface. Enable or disable Babel on the given interface.
.. index:: babel <wired|wireless> .. index:: babel <wired|wireless>
.. clicmd:: babel <wired|wireless> .. clicmd:: babel <wired|wireless>
Specifies whether this interface is wireless, which disables a number Specifies whether this interface is wireless, which disables a number
of optimisations that are only correct on wired interfaces. of optimisations that are only correct on wired interfaces.
Specifying `wireless` (the default) is always correct, but may Specifying `wireless` (the default) is always correct, but may
@ -89,6 +94,7 @@ Babel configuration
single: no babel split-horizon single: no babel split-horizon
.. clicmd:: [no] babel split-horizon .. clicmd:: [no] babel split-horizon
Specifies whether to perform split-horizon on the interface. Specifying Specifies whether to perform split-horizon on the interface. Specifying
``no babel split-horizon`` is always correct, while ``babel ``no babel split-horizon`` is always correct, while ``babel
split-horizon`` is an optimisation that should only be used on symmetric split-horizon`` is an optimisation that should only be used on symmetric
@ -100,6 +106,7 @@ Babel configuration
.. index:: babel hello-interval (20-655340) .. index:: babel hello-interval (20-655340)
.. clicmd:: babel hello-interval (20-655340) .. clicmd:: babel hello-interval (20-655340)
Specifies the time in milliseconds between two scheduled hellos. On Specifies the time in milliseconds between two scheduled hellos. On
wired links, Babel notices a link failure within two hello intervals; wired links, Babel notices a link failure within two hello intervals;
on wireless links, the link quality value is reestimated at every on wireless links, the link quality value is reestimated at every
@ -108,10 +115,10 @@ Babel configuration
.. index:: babel update-interval (20-655340) .. index:: babel update-interval (20-655340)
.. clicmd:: babel update-interval (20-655340) .. clicmd:: babel update-interval (20-655340)
Specifies the time in milliseconds between two scheduled updates.
Since Babel makes extensive use of triggered updates, this can be set Specifies the time in milliseconds between two scheduled updates. Since
to fairly high values on links with little packet loss. The default Babel makes extensive use of triggered updates, this can be set to fairly
is 20000 ms. high values on links with little packet loss. The default is 20000 ms.
.. index:: .. index::
single: babel channel (1-254) single: babel channel (1-254)
@ -119,32 +126,30 @@ Babel configuration
single: babel channel noninterfering single: babel channel noninterfering
.. clicmd:: babel channel (1-254) .. clicmd:: babel channel (1-254)
see below
.. clicmd:: babel channel interfering .. clicmd:: babel channel interfering
see below
.. clicmd:: babel channel noninterfering .. clicmd:: babel channel noninterfering
Set the channel number that diversity routing uses for this interface
(see `babel diversity` above). Noninterfering interfaces are Set the channel number that diversity routing uses for this interface (see
assumed to only interfere with themselves, interfering interfaces are `babel diversity` above). Noninterfering interfaces are assumed to only
assumed to interfere with all other channels except noninterfering interfere with themselves, interfering interfaces are assumed to interfere
channels, and interfaces with a channel number interfere with with all other channels except noninterfering channels, and interfaces with
interfering interfaces and interfaces with the same channel number. a channel number interfere with interfering interfaces and interfaces with
The default is ``babel channel interfering`` for wireless the same channel number. The default is ``babel channel interfering`` for
interfaces, and ``babel channel noninterfering`` for wired wireless interfaces, and ``babel channel noninterfering`` for wired
interfaces. This is reset when the wired/wireless status of an interfaces. This is reset when the wired/wireless status of an interface is
interface is changed. changed.
.. index:: babel rxcost (1-65534) .. index:: babel rxcost (1-65534)
.. clicmd:: babel rxcost (1-65534) .. clicmd:: babel rxcost (1-65534)
Specifies the base receive cost for this interface. For wireless Specifies the base receive cost for this interface. For wireless
interfaces, it specifies the multiplier used for computing the ETX interfaces, it specifies the multiplier used for computing the ETX
reception cost (default 256); for wired interfaces, it specifies the reception cost (default 256); for wired interfaces, it specifies the
cost that will be advertised to neighbours. This value is reset when cost that will be advertised to neighbours. This value is reset when
the wired/wireless attribute of the interface is changed. the wired/wireless attribute of the interface is changed.
.. note::
Do not use this command unless you know what you are doing; in most Do not use this command unless you know what you are doing; in most
networks, acting directly on the cost using route maps is a better networks, acting directly on the cost using route maps is a better
technique. technique.
@ -152,6 +157,7 @@ Babel configuration
.. index:: babel rtt-decay (1-256) .. index:: babel rtt-decay (1-256)
.. clicmd:: babel rtt-decay (1-256) .. clicmd:: babel rtt-decay (1-256)
This specifies the decay factor for the exponential moving average of This specifies the decay factor for the exponential moving average of
RTT samples, in units of 1/256. Higher values discard old samples RTT samples, in units of 1/256. Higher values discard old samples
faster. The default is 42. faster. The default is 42.
@ -159,6 +165,7 @@ Babel configuration
.. index:: babel rtt-min (1-65535) .. index:: babel rtt-min (1-65535)
.. clicmd:: babel rtt-min (1-65535) .. clicmd:: babel rtt-min (1-65535)
This specifies the minimum RTT, in milliseconds, starting from which we This specifies the minimum RTT, in milliseconds, starting from which we
increase the cost to a neighbour. The additional cost is linear in increase the cost to a neighbour. The additional cost is linear in
(rtt - rtt-min). The default is 100 ms. (rtt - rtt-min). The default is 100 ms.
@ -166,39 +173,43 @@ Babel configuration
.. index:: babel rtt-max (1-65535) .. index:: babel rtt-max (1-65535)
.. clicmd:: babel rtt-max (1-65535) .. clicmd:: babel rtt-max (1-65535)
This specifies the maximum RTT, in milliseconds, above which we don't This specifies the maximum RTT, in milliseconds, above which we don't
increase the cost to a neighbour. The default is 120 ms. increase the cost to a neighbour. The default is 120 ms.
.. index:: babel max-rtt-penalty (0-65535) .. index:: babel max-rtt-penalty (0-65535)
.. clicmd:: babel max-rtt-penalty (0-65535) .. clicmd:: babel max-rtt-penalty (0-65535)
This specifies the maximum cost added to a neighbour because of RTT,
i.e. when the RTT is higher or equal than rtt-max. The default is 0, This specifies the maximum cost added to a neighbour because of RTT, i.e.
which effectively disables the use of a RTT-based cost. when the RTT is higher or equal than rtt-max. The default is 0, which
effectively disables the use of a RTT-based cost.
.. index:: .. index::
single: babel enable-timestamps single: babel enable-timestamps
single: no babel enable-timestamps single: no babel enable-timestamps
.. clicmd:: [no] babel enable-timestamps .. clicmd:: [no] babel enable-timestamps
Enable or disable sending timestamps with each Hello and IHU message in Enable or disable sending timestamps with each Hello and IHU message in
order to compute RTT values. The default is `no babel enable-timestamps`. order to compute RTT values. The default is `no babel enable-timestamps`.
.. index:: babel resend-delay (20-655340) .. index:: babel resend-delay (20-655340)
.. clicmd:: babel resend-delay (20-655340) .. clicmd:: babel resend-delay (20-655340)
Specifies the time in milliseconds after which an 'important'
request or update will be resent. The default is 2000 ms. You Specifies the time in milliseconds after which an 'important' request or
probably don't want to tweak this value. update will be resent. The default is 2000 ms. You probably don't want to
tweak this value.
.. index:: babel smoothing-half-life (0-65534) .. index:: babel smoothing-half-life (0-65534)
.. clicmd:: babel smoothing-half-life (0-65534) .. clicmd:: babel smoothing-half-life (0-65534)
Specifies the time constant, in seconds, of the smoothing algorithm
used for implementing hysteresis. Larger values reduce route Specifies the time constant, in seconds, of the smoothing algorithm used for
oscillation at the cost of very slightly increasing convergence time. implementing hysteresis. Larger values reduce route oscillation at the cost
The value 0 disables hysteresis, and is suitable for wired networks. of very slightly increasing convergence time. The value 0 disables
The default is 4 s. hysteresis, and is suitable for wired networks. The default is 4 s.
.. _Babel_redistribution: .. _Babel_redistribution:
@ -210,6 +221,7 @@ Babel redistribution
single: no redistribute <ipv4|ipv6> KIND single: no redistribute <ipv4|ipv6> KIND
.. clicmd:: [no] redistribute <ipv4|ipv6> KIND .. clicmd:: [no] redistribute <ipv4|ipv6> KIND
Specify which kind of routes should be redistributed into Babel. Specify which kind of routes should be redistributed into Babel.
.. _Show_Babel_information: .. _Show_Babel_information:
@ -222,47 +234,38 @@ These commands dump various parts of *babeld*'s internal state.
.. index:: show babel route .. index:: show babel route
.. clicmd:: show babel route .. clicmd:: show babel route
*missing description*
.. index:: show babel route A.B.C.D .. index:: show babel route A.B.C.D
.. clicmd:: show babel route A.B.C.D .. clicmd:: show babel route A.B.C.D
*missing description*
.. index:: show babel route X:X::X:X .. index:: show babel route X:X::X:X
.. clicmd:: show babel route X:X::X:X .. clicmd:: show babel route X:X::X:X
*missing description*
.. index:: show babel route A.B.C.D/M .. index:: show babel route A.B.C.D/M
.. clicmd:: show babel route A.B.C.D/M .. clicmd:: show babel route A.B.C.D/M
*missing description*
.. index:: show babel route X:X::X:X/M .. index:: show babel route X:X::X:X/M
.. clicmd:: show babel route X:X::X:X/M .. clicmd:: show babel route X:X::X:X/M
*missing description*
.. index:: show babel interface .. index:: show babel interface
.. clicmd:: show babel interface .. clicmd:: show babel interface
*missing description*
.. index:: show babel interface `IFNAME` .. index:: show babel interface IFNAME
.. clicmd:: show babel interface IFNAME .. clicmd:: show babel interface IFNAME
*missing description*
.. index:: show babel neighbor .. index:: show babel neighbor
.. clicmd:: show babel neighbor .. clicmd:: show babel neighbor
*missing description*
.. index:: show babel parameters .. index:: show babel parameters
.. clicmd:: show babel parameters .. clicmd:: show babel parameters
*missing description*
Babel debugging commands Babel debugging commands
======================== ========================
@ -272,16 +275,17 @@ Babel debugging commands
simple: no debug babel KIND simple: no debug babel KIND
.. clicmd:: [no] debug babel KIND .. clicmd:: [no] debug babel KIND
Enable or disable debugging messages of a given kind. ``KIND`` can Enable or disable debugging messages of a given kind. ``KIND`` can
be one of: be one of:
- common - ``common``
- filter - ``filter``
- timeout - ``timeout``
- interface - ``interface``
- route - ``route``
- all - ``all``
Note that if you have compiled with the NO_DEBUG flag, then these commands
aren't available.
.. note::
If you have compiled with the ``NO_DEBUG`` flag, then these commands aren't
available.

View File

@ -39,12 +39,10 @@ starting.
Config files are generally found in |INSTALL_PREFIX_ETC|. Config files are generally found in |INSTALL_PREFIX_ETC|.
Each of the daemons has its own Each of the daemons has its own config file. The daemon name plus ``.conf`` is
config file. For example, zebra's default config file name is *zebra.conf*. the default config file name. For example, zebra's default config file name is
:file:`zebra.conf`. You can specify a config file using the :option:`-f` or
The daemon name plus `.conf` is the default config file name. You :option:`--config-file` options when starting the daemon.
can specify a config file using the :kbd:`-f` or :kbd:`--config-file`
options when starting the daemon.
.. _Basic_Config_Commands: .. _Basic_Config_Commands:
@ -360,22 +358,22 @@ Common Invocation Options
These options apply to all |PACKAGE_NAME| daemons. These options apply to all |PACKAGE_NAME| daemons.
.. clicmd:: -d, --daemon .. option:: -d
.. option:: --daemon
Runs in daemon mode. Run in daemon mode.
.. option:: -f <file>
.. clicmd:: -f file, --config_file=FILE .. option:: --config-file <file>
Set configuration file name. Set configuration file name.
.. option:: -h, --help
.. clicmd:: -h, --help
Display this help and exit. Display this help and exit.
.. option:: -i <file>
.. clicmd:: -i file, --pid_file=file .. option:: --pid-file <file>
Upon startup the process identifier of the daemon is written to a file, Upon startup the process identifier of the daemon is written to a file,
typically in :file:`/var/run`. This file can be used by the init system typically in :file:`/var/run`. This file can be used by the init system
@ -388,29 +386,28 @@ These options apply to all |PACKAGE_NAME| daemons.
machine can be used to collect differing routing views from differing machine can be used to collect differing routing views from differing
points in the network. points in the network.
.. option:: -A <address>
.. clicmd:: -A address, --vty_addr=address .. option:: --vty-addr <address>
Set the VTY local address to bind to. If set, the VTY socket will only Set the VTY local address to bind to. If set, the VTY socket will only
be bound to this address. be bound to this address.
.. option:: -P <port>
.. clicmd:: -P port, --vty_port=port .. option:: --vty-port <port>
Set the VTY TCP port number. If set to 0 then the TCP VTY sockets will not Set the VTY TCP port number. If set to 0 then the TCP VTY sockets will not
be opened. be opened.
.. option:: -u <user>
.. clicmd:: -u user, --vty_addr=user .. option:: --vty_addr <user>
Set the user and group to run as. Set the user and group to run as.
.. option:: -v
.. clicmd:: -v, --version .. option:: --version
Print program version. Print program version.
.. _Loadable_Module_Support: .. _Loadable_Module_Support:
Loadable Module Support Loadable Module Support
@ -421,14 +418,15 @@ unloading modules at runtime is not supported (yet). To load a module, use
the following command line option at daemon startup: the following command line option at daemon startup:
.. clicmd:: -M module:options, --module module:options .. option:: -M <module:options>
.. option:: --module <module:options>
Load the specified module, optionally passing options to it. If the module Load the specified module, optionally passing options to it. If the module
name contains a slash (/), it is assumed to be a full pathname to a file to name contains a slash (/), it is assumed to be a full pathname to a file to
be loaded. If it does not contain a slash, the be loaded. If it does not contain a slash, the |INSTALL_PREFIX_MODULES|
`INSTALL_PREFIX_MODULES` directory is searched for a module of directory is searched for a module of the given name; first with the daemon
the given name; first with the daemon name prepended (e.g. ``zebra_mod`` name prepended (e.g. ``zebra_mod`` for ``mod``), then without the daemon
for ``mod``), then without the daemon name prepended. name prepended.
This option is available on all daemons, though some daemons may not have This option is available on all daemons, though some daemons may not have
any modules available to be loaded. any modules available to be loaded.
@ -446,15 +444,14 @@ for information on its usage.
The FPM Module The FPM Module
-------------- --------------
If FPM is enabled during compile-time and installed as part of the package, If FPM is enabled during compile-time and installed as part of the package, the
the ``fpm`` module can be loaded for the *zebra* daemon. This ``fpm`` module can be loaded for the *zebra* daemon. This provides the
provides the Forwarding Plane Manager ("FPM") API. Forwarding Plane Manager ("FPM") API.
The module expects its argument to be either ``netlink`` or The module expects its argument to be either ``netlink`` or ``protobuf``,
.. clicmd:: protobuf, specifying the encapsulation to use. `netlink` is the specifying the encapsulation to use. ``netlink`` is the default, and
default, and `protobuf` may not be available if the module was built ``protobuf`` may not be available if the module was built without protobuf
without protobuf support. Refer to :ref:`zebra_FIB_push_interface` for more support. Refer to :ref:`zebra_FIB_push_interface` for more information.
information.
.. _Virtual_Terminal_Interfaces: .. _Virtual_Terminal_Interfaces:
@ -505,7 +502,7 @@ is no VTY password, one cannot connect to the VTY interface at all.
Router# Router#
:kbd:`?` is very useful for looking up commands. :kbd:`?` and the ``find`` command are very useful for looking up commands.
.. _VTY_Modes: .. _VTY_Modes:

View File

@ -55,7 +55,6 @@ customize the build to include or exclude specific features and dependencies.
.. option:: --disable-zebra .. option:: --disable-zebra
Do not build zebra daemon. Do not build zebra daemon.
.. option:: --disable-ripd .. option:: --disable-ripd
@ -118,7 +117,7 @@ customize the build to include or exclude specific features and dependencies.
Enable Traffic Engineering Extension for ISIS (RFC5305) Enable Traffic Engineering Extension for ISIS (RFC5305)
.. option:: --enable-multipath=`ARG` .. option:: --enable-multipath <ARG>
Enable support for Equal Cost Multipath. `ARG` is the maximum number Enable support for Equal Cost Multipath. `ARG` is the maximum number
of ECMP paths to allow, set to 0 to allow unlimited number of paths. of ECMP paths to allow, set to 0 to allow unlimited number of paths.
@ -129,9 +128,9 @@ customize the build to include or exclude specific features and dependencies.
.. option:: --enable-gcc-rdynamic .. option:: --enable-gcc-rdynamic
Pass the *-rdynamic* option to the linker driver. This is in most Pass the ``-rdynamic`` option to the linker driver. This is in most cases
cases neccessary for getting usable backtraces. This option defaults to on neccessary for getting usable backtraces. This option defaults to on if the
if the compiler is detected as gcc, but giving an explicit enable/disable is compiler is detected as gcc, but giving an explicit enable/disable is
suggested. suggested.
.. option:: --disable-backtrace .. option:: --disable-backtrace
@ -164,23 +163,23 @@ and the configuration files in :file:`/usr/local/etc`. The :file:`/usr/local/`
installation prefix and other directories may be changed using the following installation prefix and other directories may be changed using the following
options to the configuration script. options to the configuration script.
.. option:: --prefix=`prefix` .. option:: --prefix <prefix>
Install architecture-independent files in `prefix` [/usr/local]. Install architecture-independent files in `prefix` [/usr/local].
.. option:: --sysconfdir=`dir` .. option:: --sysconfdir <dir>
Look for configuration files in `dir` [`prefix`/etc]. Note that sample Look for configuration files in `dir` [`prefix`/etc]. Note that sample
configuration files will be installed here. configuration files will be installed here.
.. option:: --localstatedir=`dir` .. option:: --localstatedir <dir>
Configure zebra to use `dir` for local state files, such Configure zebra to use `dir` for local state files, such as pid files and
as pid files and unix sockets. unix sockets.
.. _Least-Privilege_support: .. _Least-Privilege_support:
Least-Privilege support Least-Privilege Support
----------------------- -----------------------
.. index:: FRR Least-Privileges .. index:: FRR Least-Privileges
@ -192,23 +191,21 @@ shortly after startup and switch to another user. The configure script will
automatically try to configure this support. There are three configure automatically try to configure this support. There are three configure
options to control the behaviour of FRR daemons. options to control the behaviour of FRR daemons.
.. option:: --enable-user=`user` .. option:: --enable-user <user>
Switch to user `ARG` shortly after startup, and run as user `ARG` Switch to user `user shortly after startup, and run as user `user` in normal
in normal operation. operation.
.. option:: --enable-group=`group` .. option:: --enable-group <user>
Switch real and effective group to `group` shortly after Switch real and effective group to `group` shortly after startup.
startup.
.. option:: --enable-vty-group=`group` .. option:: --enable-vty-group <group>
Create Unix Vty sockets (for use with vtysh) with group owndership set to Create Unix Vty sockets (for use with vtysh) with group owndership set to
`group`. This allows one to create a seperate group which is `group`. This allows one to create a seperate group which is restricted to
restricted to accessing only the Vty sockets, hence allowing one to accessing only the vty sockets, hence allowing one to delegate this group to
delegate this group to individual users, or to run vtysh setgid to individual users, or to run vtysh setgid to this group.
this group.
The default user and group which will be configured is 'frr' if no user or The default user and group which will be configured is 'frr' if no user or
group is specified. Note that this user or group requires write access to the group is specified. Note that this user or group requires write access to the
@ -257,14 +254,16 @@ make sure the following libraries have been installed. Please note that
these libraries will not be needed when you uses GNU C library 2.1 these libraries will not be needed when you uses GNU C library 2.1
or upper. or upper.
*inet6-apps* - inet6-apps
The `inet6-apps` package includes basic IPv6 related libraries such The `inet6-apps` package includes basic IPv6 related libraries such
as `inet_ntop` and `inet_pton`. Some basic IPv6 programs such as `inet_ntop` and `inet_pton`. Some basic IPv6 programs such
as *ping*, *ftp*, and *inetd* are also as *ping*, *ftp*, and *inetd* are also
included. The `inet-apps` can be found at included. The `inet-apps` can be found at
`ftp://ftp.inner.net/pub/ipv6/ <ftp://ftp.inner.net/pub/ipv6/>`_. `ftp://ftp.inner.net/pub/ipv6/ <ftp://ftp.inner.net/pub/ipv6/>`_.
*net-tools* - net-tools
The `net-tools` package provides an IPv6 enabled interface and routing The `net-tools` package provides an IPv6 enabled interface and routing
utility. It contains *ifconfig*, *route*, *netstat*, and other tools. utility. It contains *ifconfig*, *route*, *netstat*, and other tools.
`net-tools` may be found at http://www.tazenda.demon.co.uk/phil/net-tools/. `net-tools` may be found at http://www.tazenda.demon.co.uk/phil/net-tools/.

View File

@ -16,200 +16,212 @@ Invoking zebra
Besides the common invocation options (:ref:`Common_Invocation_Options`), the Besides the common invocation options (:ref:`Common_Invocation_Options`), the
*zebra* specific invocation options are listed below. *zebra* specific invocation options are listed below.
.. program:: zebra
.. option:: -b
.. option:: --batch
*-b*
*--batch*
Runs in batch mode. *zebra* parses configuration file and terminates Runs in batch mode. *zebra* parses configuration file and terminates
immediately. immediately.
.. option:: -k
.. option:: --keep_kernel
*-k*
*--keep_kernel*
When zebra starts up, don't delete old self inserted routes. When zebra starts up, don't delete old self inserted routes.
.. option:: -r
.. option:: --retain
*-r*
*--retain*
When program terminates, retain routes added by zebra. When program terminates, retain routes added by zebra.
.. _Interface_Commands: .. _Interface_Commands:
Interface Commands Interface Commands
================== ==================
.. _Standard_Commands: .. _Standard_Commands:
Standard Commands Standard Commands
----------------- -----------------
.. index:: Command {interface `ifname`} {} .. index:: interface IFNAME
Command {interface `ifname`} {} .. clicmd:: interface IFNAME
.. index:: {Interface Command} {shutdown} {} .. index:: shutdown
{Interface Command} {shutdown} {} .. clicmd:: shutdown
.. index:: {Interface Command} {no shutdown} {} .. index:: no shutdown
.. clicmd:: no shutdown
{Interface Command} {no shutdown} {}
Up or down the current interface. Up or down the current interface.
.. index:: {Interface Command} {ip address `address/prefix`} {} .. index:: ip address ADDRESS/PREFIX
{Interface Command} {ip address `address/prefix`} {} .. clicmd:: ip address ADDRESS/PREFIX
.. index:: {Interface Command} {ipv6 address `address/prefix`} {} .. index:: ipv6 address ADDRESS/PREFIX
{Interface Command} {ipv6 address `address/prefix`} {} .. clicmd:: ipv6 address ADDRESS/PREFIX
.. index:: {Interface Command} {no ip address `address/prefix`} {} .. index:: no ip address ADDRESS/PREFIX
{Interface Command} {no ip address `address/prefix`} {} .. clicmd:: no ip address ADDRESS/PREFIX
.. index:: {Interface Command} {no ipv6 address `address/prefix`} {} .. index:: no ipv6 address ADDRESS/PREFIX
.. clicmd:: no ipv6 address ADDRESS/PREFIX
{Interface Command} {no ipv6 address `address/prefix`} {}
Set the IPv4 or IPv6 address/prefix for the interface. Set the IPv4 or IPv6 address/prefix for the interface.
.. index:: {Interface Command} {ip address `local-addr` peer `peer-addr/prefix`} {} .. index:: ip address LOCAL-ADDR peer PEER-ADDR/PREFIX
{Interface Command} {ip address `local-addr` peer `peer-addr/prefix`} {} .. clicmd:: ip address LOCAL-ADDR peer PEER-ADDR/PREFIX
.. index:: {Interface Command} {no ip address `local-addr` peer `peer-addr/prefix`} {} .. index:: no ip address LOCAL-ADDR peer PEER-ADDR/PREFIX
{Interface Command} {no ip address `local-addr` peer `peer-addr/prefix`} {} .. clicmd:: no ip address LOCAL-ADDR peer PEER-ADDR/PREFIX
Configure an IPv4 Pointopoint address on the interface.
(The concept of PtP addressing does not exist for IPv6.)
`local-addr` has no subnet mask since the local side in PtP Configure an IPv4 Pointopoint address on the interface. (The concept of PtP
addressing is always a single (/32) address. `peer-addr/prefix` addressing does not exist for IPv6.)
can be an arbitrary subnet behind the other end of the link (or even on the
link in Point-to-Multipoint setups), though generally /32s are used.
.. index:: {Interface Command} {ip address `address/prefix` secondary} {} `local-addr` has no subnet mask since the local side in PtP addressing is
always a single (/32) address. `peer-addr/prefix` can be an arbitrary subnet
behind the other end of the link (or even on the link in Point-to-Multipoint
setups), though generally /32s are used.
{Interface Command} {ip address `address/prefix` secondary} {} .. index:: ip address ADDRESS/PREFIX secondary
.. index:: {Interface Command} {no ip address `address/prefix` secondary} {}
.. clicmd:: ip address ADDRESS/PREFIX secondary
.. index:: no ip address ADDRESS/PREFIX secondary
.. clicmd:: no ip address ADDRESS/PREFIX secondary
{Interface Command} {no ip address `address/prefix` secondary} {}
Set the secondary flag for this address. This causes ospfd to not treat the Set the secondary flag for this address. This causes ospfd to not treat the
address as a distinct subnet. address as a distinct subnet.
.. index:: {Interface Command} {description `description` ...} {} .. index:: description DESCRIPTION ...
.. clicmd:: description DESCRIPTION ...
{Interface Command} {description `description` ...} {}
Set description for the interface. Set description for the interface.
.. index:: {Interface Command} {multicast} {} .. index:: multicast
{Interface Command} {multicast} {} .. clicmd:: multicast
.. index:: {Interface Command} {no multicast} {} .. index:: no multicast
.. clicmd:: no multicast
{Interface Command} {no multicast} {}
Enable or disables multicast flag for the interface. Enable or disables multicast flag for the interface.
.. index:: {Interface Command} {bandwidth (1-10000000)} {} .. index:: bandwidth (1-10000000)
{Interface Command} {bandwidth (1-10000000)} {} .. clicmd:: bandwidth (1-10000000)
.. index:: {Interface Command} {no bandwidth (1-10000000)} {} .. index:: no bandwidth (1-10000000)
.. clicmd:: no bandwidth (1-10000000)
{Interface Command} {no bandwidth (1-10000000)} {}
Set bandwidth value of the interface in kilobits/sec. This is for Set bandwidth value of the interface in kilobits/sec. This is for
calculating OSPF cost. This command does not affect the actual device calculating OSPF cost. This command does not affect the actual device
configuration. configuration.
.. index:: {Interface Command} {link-detect} {} .. index:: link-detect
{Interface Command} {link-detect} {} .. clicmd:: link-detect
.. index:: {Interface Command} {no link-detect} {} .. index:: no link-detect
{Interface Command} {no link-detect} {} .. clicmd:: no link-detect
Enable/disable link-detect on platforms which support this. Currently
only Linux and Solaris, and only where network interface drivers support reporting Enable/disable link-detect on platforms which support this. Currently only
link-state via the IFF_RUNNING flag. Linux and Solaris, and only where network interface drivers support
reporting link-state via the ``IFF_RUNNING`` flag.
.. _Link_Parameters_Commands: .. _Link_Parameters_Commands:
Link Parameters Commands Link Parameters Commands
------------------------ ------------------------
.. index:: {Interface Command} {link-params} {} .. index:: link-params
.. clicmd:: link-params
{Interface Command} {link-params} {} .. index:: no link-param
.. index:: {Interface Command} {no link-param} {} .. clicmd:: no link-param
{Interface Command} {no link-param} {} Enter into the link parameters sub node. At least 'enable' must be set to
Enter into the link parameters sub node. At least 'enable' must be set to activate the link parameters, activate the link parameters, and consequently Traffic Engineering on this
and consequently Traffic Engineering on this interface. MPLS-TE must be enable at the OSPF (:ref:`OSPF_Traffic_Engineering`) interface. MPLS-TE must be enable at the OSPF
or ISIS (:ref:`ISIS_Traffic_Engineering`) router level in complement to this. (:ref:`OSPF_Traffic_Engineering`) or ISIS (:ref:`ISIS_Traffic_Engineering`)
Disable link parameters for this interface. router level in complement to this. Disable link parameters for this
interface.
Under link parameter statement, the following commands set the different TE values: Under link parameter statement, the following commands set the different TE values:
.. index:: link-params {enable} .. index:: link-params [enable]
.. clicmd:: link-params [enable]
link-params {enable}
Enable link parameters for this interface. Enable link parameters for this interface.
.. index:: link-params {metric (0-4294967295)} {} .. index:: link-params [metric (0-4294967295)]
.. clicmd:: link-params [metric (0-4294967295)]
link-params {metric (0-4294967295)} {} .. index:: link-params max-bw BANDWIDTH
.. index:: link-params {max-bw `bandwidth`} {} .. clicmd:: link-params max-bw BANDWIDTH
link-params {max-bw `bandwidth`} {} .. index:: link-params max-rsv-bw BANDWIDTH
.. index:: link-params {max-rsv-bw `bandwidth`} {} .. clicmd:: link-params max-rsv-bw BANDWIDTH
link-params {max-rsv-bw `bandwidth`} {} .. index:: link-params unrsv-bw (0-7) BANDWIDTH
.. index:: link-params {unrsv-bw (0-7) `bandwidth`} {} .. clicmd:: link-params unrsv-bw (0-7) BANDWIDTH
link-params {unrsv-bw (0-7) `bandwidth`} {} .. index:: link-params admin-grp BANDWIDTH
.. index:: link-params {admin-grp `bandwidth`} {} .. clicmd:: link-params admin-grp BANDWIDTH
link-params {admin-grp `bandwidth`} {} These commands specifies the Traffic Engineering parameters of the interface
These commands specifies the Traffic Engineering parameters of the interface in conformity to RFC3630 (OSPF) in conformity to RFC3630 (OSPF) or RFC5305 (ISIS). There are respectively
or RFC5305 (ISIS). the TE Metric (different from the OSPF or ISIS metric), Maximum Bandwidth
There are respectively the TE Metric (different from the OSPF or ISIS metric), Maximum Bandwidth (interface speed (interface speed by default), Maximum Reservable Bandwidth, Unreserved
by default), Maximum Reservable Bandwidth, Unreserved Bandwidth for each 0-7 priority and Admin Group (ISIS) or Bandwidth for each 0-7 priority and Admin Group (ISIS) or Resource
Resource Class/Color (OSPF). Class/Color (OSPF).
Note that `bandwidth` are specified in IEEE floating point format and express in Bytes/second. Note that BANDIWDTH is specified in IEEE floating point format and express
in Bytes/second.
.. index:: link-param {delay (0-16777215) [min (0-16777215) | max (0-16777215)]} {} .. index:: link-param delay (0-16777215) [min (0-16777215) | max (0-16777215)]
.. clicmd:: link-param delay (0-16777215) [min (0-16777215) | max (0-16777215)]
link-param {delay (0-16777215) [min (0-16777215) | max (0-16777215)]} {} .. index:: link-param delay-variation (0-16777215)
.. index:: link-param {delay-variation (0-16777215)} {} .. clicmd:: link-param delay-variation (0-16777215)
link-param {delay-variation (0-16777215)} {} .. index:: link-param packet-loss PERCENTAGE
.. index:: link-param {packet-loss `percentage`} {} .. clicmd:: link-param packet-loss PERCENTAGE
link-param {packet-loss `percentage`} {} .. index:: link-param res-bw BANDWIDTH
.. index:: link-param {res-bw `bandwidth`} {} .. clicmd:: link-param res-bw BANDWIDTH
link-param {res-bw `bandwidth`} {} .. index:: link-param ava-bw BANDWIDTH
.. index:: link-param {ava-bw `bandwidth`} {} .. clicmd:: link-param ava-bw BANDWIDTH
link-param {ava-bw `bandwidth`} {} .. index:: link-param use-bw BANDWIDTH
.. index:: link-param {use-bw `bandwidth`} {} .. clicmd:: link-param use-bw BANDWIDTH
link-param {use-bw `bandwidth`} {} These command specifies additionnal Traffic Engineering parameters of the
These command specifies additionnal Traffic Engineering parameters of the interface in conformity to interface in conformity to draft-ietf-ospf-te-metrics-extension-05.txt and
draft-ietf-ospf-te-metrics-extension-05.txt and draft-ietf-isis-te-metrics-extension-03.txt. There are draft-ietf-isis-te-metrics-extension-03.txt. There are respectively the
respectively the delay, jitter, loss, available bandwidth, reservable bandwidth and utilized bandwidth. delay, jitter, loss, available bandwidth, reservable bandwidth and utilized
bandwidth.
Note that `bandwidth` are specified in IEEE floating point format and express in Bytes/second. Note that BANDWIDTH is specified in IEEE floating point format and express
Delays and delay variation are express in micro-second (µs). Loss is specified in `percentage` ranging in Bytes/second. Delays and delay variation are express in micro-second
from 0 to 50.331642% by step of 0.000003. (µs). Loss is specified in PERCENTAGE ranging from 0 to 50.331642% by step
of 0.000003.
.. index:: link-param {neighbor <A.B.C.D> as (0-65535)} {} .. index:: link-param neighbor <A.B.C.D> as (0-65535)
.. clicmd:: link-param neighbor <A.B.C.D> as (0-65535)
link-param {neighbor <A.B.C.D> as (0-65535)} {} .. index:: link-param no neighbor
.. index:: link-param {no neighbor} {} .. clicmd:: link-param no neighbor
link-param {no neighbor} {} Specifies the remote ASBR IP address and Autonomous System (AS) number
Specifies the remote ASBR IP address and Autonomous System (AS) number for InterASv2 link in OSPF (RFC5392). for InterASv2 link in OSPF (RFC5392). Note that this option is not yet
Note that this option is not yet supported for ISIS (RFC5316). supported for ISIS (RFC5316).
.. _Static_Route_Commands: .. _Static_Route_Commands:
@ -219,32 +231,31 @@ Static Route Commands
Static routing is a very fundamental feature of routing technology. It Static routing is a very fundamental feature of routing technology. It
defines static prefix and gateway. defines static prefix and gateway.
.. index:: Command {ip route `network` `gateway`} {} .. index:: ip route NETWORK GATEWAY
.. clicmd:: ip route NETWORK GATEWAY
Command {ip route `network` `gateway`} {} NETWORK is destination prefix with format of A.B.C.D/M. GATEWAY is gateway
`network` is destination prefix with format of A.B.C.D/M. for the prefix. When GATEWAY is A.B.C.D format. It is taken as a IPv4
`gateway` is gateway for the prefix. When `gateway` is address gateway. Otherwise it is treated as an interface name. If the
A.B.C.D format. It is taken as a IPv4 address gateway. Otherwise it interface name is ``null0`` then zebra installs a blackhole route.
is treated as an interface name. If the interface name is `null0` then
zebra installs a blackhole route. Some example configuration:
:: ::
ip route 10.0.0.0/8 10.0.0.2 ip route 10.0.0.0/8 10.0.0.2
ip route 10.0.0.0/8 ppp0 ip route 10.0.0.0/8 ppp0
ip route 10.0.0.0/8 null0 ip route 10.0.0.0/8 null0
First example defines 10.0.0.0/8 static route with gateway 10.0.0.2. First example defines 10.0.0.0/8 static route with gateway 10.0.0.2.
Second one defines the same prefix but with gateway to interface ppp0. The Second one defines the same prefix but with gateway to interface ppp0. The
third install a blackhole route. third install a blackhole route.
.. index:: Command {ip route `network` `netmask` `gateway`} {} .. index:: ip route NETWORK NETMASK GATEWAY
.. clicmd:: ip route NETWORK NETMASK GATEWAY
Command {ip route `network` `netmask` `gateway`} {} This is alternate version of above command. When NETWORK is
This is alternate version of above command. When `network` is A.B.C.D format, user must define NETMASK value with A.B.C.D
A.B.C.D format, user must define `netmask` value with A.B.C.D format. GATEWAY is same option as above command.
format. `gateway` is same option as above command
:: ::
@ -255,9 +266,9 @@ Command {ip route `network` `netmask` `gateway`} {}
These statements are equivalent to those in the previous example. These statements are equivalent to those in the previous example.
.. index:: Command {ip route `network` `gateway` `distance`} {} .. index:: ip route NETWORK GATEWAY DISTANCE
.. clicmd:: ip route NETWORK GATEWAY DISTANCE
Command {ip route `network` `gateway` `distance`} {}
Installs the route with the specified distance. Installs the route with the specified distance.
Multiple nexthop static route Multiple nexthop static route
@ -309,20 +320,20 @@ default) should the specified gateways not be reachable. Eg:
directly connected, Null0 directly connected, Null0
.. index:: Command {ipv6 route `network` `gateway`} {} .. index:: ipv6 route NETWORK GATEWAY
.. clicmd:: ipv6 route NETWORK GATEWAY
Command {ipv6 route `network` `gateway`} {} .. index:: ipv6 route NETWORK GATEWAY DISTANCE
.. index:: Command {ipv6 route `network` `gateway` `distance`} {} .. clicmd:: ipv6 route NETWORK GATEWAY DISTANCE
Command {ipv6 route `network` `gateway` `distance`} {}
These behave similarly to their ipv4 counterparts. These behave similarly to their ipv4 counterparts.
.. index:: Command {ipv6 route `network` from `srcprefix` `gateway`} {} .. index:: ipv6 route NETWORK from SRCPREFIX GATEWAY
.. clicmd:: ipv6 route NETWORK from SRCPREFIX GATEWAY
Command {ipv6 route `network` from `srcprefix` `gateway`} {} .. index:: ipv6 route NETWORK from SRCPREFIX GATEWAY DISTANCE
.. index:: Command {ipv6 route `network` from `srcprefix` `gateway` `distance`} {} .. clicmd:: ipv6 route NETWORK from SRCPREFIX GATEWAY DISTANCE
Command {ipv6 route `network` from `srcprefix` `gateway` `distance`} {}
Install a static source-specific route. These routes are currently supported Install a static source-specific route. These routes are currently supported
on Linux operating systems only, and perform AND matching on packet's on Linux operating systems only, and perform AND matching on packet's
destination and source addresses in the kernel's forwarding path. Note that destination and source addresses in the kernel's forwarding path. Note that
@ -330,12 +341,12 @@ Command {ipv6 route `network` from `srcprefix` `gateway` `distance`} {}
*"2001:db8:1::/64 from 2001:db8::/48"* will win over *"2001:db8:1::/64 from 2001:db8::/48"* will win over
*"2001:db8::/48 from 2001:db8:1::/64"* if both match. *"2001:db8::/48 from 2001:db8:1::/64"* if both match.
.. index:: Command {table `tableno`} {} .. index:: table TABLENO
.. clicmd:: table TABLENO
Command {table `tableno`} {}
Select the primary kernel routing table to be used. This only works Select the primary kernel routing table to be used. This only works
for kernels supporting multiple routing tables (like GNU/Linux 2.2.x for kernels supporting multiple routing tables (like GNU/Linux 2.2.x
and later). After setting `tableno` with this command, and later). After setting TABLENO with this command,
static routes defined after this are added to the specified table. static routes defined after this are added to the specified table.
.. _Multicast_RIB_Commands: .. _Multicast_RIB_Commands:
@ -355,32 +366,30 @@ WARNING: RPF lookup results are non-responsive in this version of FRR,
i.e. multicast routing does not actively react to changes in underlying i.e. multicast routing does not actively react to changes in underlying
unicast topology! unicast topology!
.. index:: Command {ip multicast rpf-lookup-mode `mode`} {} .. index:: ip multicast rpf-lookup-mode MODE
.. clicmd:: ip multicast rpf-lookup-mode MODE
Command {ip multicast rpf-lookup-mode `mode`} {} .. index:: no ip multicast rpf-lookup-mode [MODE]
.. index:: Command {no ip multicast rpf-lookup-mode [`mode`]} {} .. clicmd:: no ip multicast rpf-lookup-mode [MODE]
Command {no ip multicast rpf-lookup-mode [`mode`]} {} MODE sets the method used to perform RPF lookups. Supported modes:
`mode` sets the method used to perform RPF lookups. Supported modes:
urib-only
*urib-only*
Performs the lookup on the Unicast RIB. The Multicast RIB is never used. Performs the lookup on the Unicast RIB. The Multicast RIB is never used.
*mrib-only* mrib-only
Performs the lookup on the Multicast RIB. The Unicast RIB is never used. Performs the lookup on the Multicast RIB. The Unicast RIB is never used.
*mrib-then-urib* mrib-then-urib
Tries to perform the lookup on the Multicast RIB. If any route is found, Tries to perform the lookup on the Multicast RIB. If any route is found,
that route is used. Otherwise, the Unicast RIB is tried. that route is used. Otherwise, the Unicast RIB is tried.
*lower-distance* lower-distance
Performs a lookup on the Multicast RIB and Unicast RIB each. The result 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 with the lower administrative distance is used; if they're equal, the
Multicast RIB takes precedence. Multicast RIB takes precedence.
*longer-prefix* longer-prefix
Performs a lookup on the Multicast RIB and Unicast RIB each. The result 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 with the longer prefix length is used; if they're equal, the
Multicast RIB takes precedence. Multicast RIB takes precedence.
@ -390,20 +399,22 @@ Command {no ip multicast rpf-lookup-mode [`mode`]} {}
configured to make the configuration immune against possible changes in configured to make the configuration immune against possible changes in
what the default behavior is. what the default behavior is.
WARNING: Unreachable routes do not receive special treatment and do not .. warning::
cause fallback to a second lookup. Unreachable routes do not receive special treatment and do not cause
fallback to a second lookup.
.. index:: Command {show ip rpf `addr`} {} .. index:: show ip rpf ADDR
.. clicmd:: show ip rpf ADDR
Command {show ip rpf `addr`} {} Performs a Multicast RPF lookup, as configured with ``ip multicast
Performs a Multicast RPF lookup, as configured with rpf-lookup-mode MODE``. ADDR specifies the multicast source address to look
*ip multicast rpf-lookup-mode `mode*`. `addr` specifies up.
the multicast source address to look up.
:: ::
> show ip rpf 192.0.2.1 > show ip rpf 192.0.2.1
Routing entry for 192.0.2.0/24 using Unicast RIB Routing entry for 192.0.2.0/24 using Unicast RIB
Known via "kernel", distance 0, metric 0, best Known via "kernel", distance 0, metric 0, best
* 198.51.100.1, via eth0 * 198.51.100.1, via eth0
@ -411,62 +422,64 @@ Command {show ip rpf `addr`} {}
Indicates that a multicast source lookup for 192.0.2.1 would use an 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. Unicast RIB entry for 192.0.2.0/24 with a gateway of 198.51.100.1.
.. index:: Command {show ip rpf} {} .. index:: show ip rpf
.. clicmd:: show ip rpf
Command {show ip rpf} {}
Prints the entire Multicast RIB. Note that this is independent of the Prints the entire Multicast RIB. Note that this is independent of the
configured RPF lookup mode, the Multicast RIB may be printed yet not configured RPF lookup mode, the Multicast RIB may be printed yet not
used at all. used at all.
.. index:: Command {ip mroute `prefix` `nexthop` [`distance`]} {} .. index:: ip mroute PREFIX NEXTHOP [DISTANCE]
.. clicmd:: ip mroute PREFIX NEXTHOP [DISTANCE]
Command {ip mroute `prefix` `nexthop` [`distance`]} {} .. index:: no ip mroute PREFIX NEXTHOP [DISTANCE]
.. index:: Command {no ip mroute `prefix` `nexthop` [`distance`]} {} .. clicmd:: no ip mroute PREFIX NEXTHOP [DISTANCE]
Command {no ip mroute `prefix` `nexthop` [`distance`]} {} Adds a static route entry to the Multicast RIB. This performs exactly as the
Adds a static route entry to the Multicast RIB. This performs exactly as ``ip route`` command, except that it inserts the route in the Multicast RIB
the *ip route* command, except that it inserts the route in the instead of the Unicast RIB.
Multicast RIB instead of the Unicast RIB.
.. _zebra_Route_Filtering: .. _zebra_Route_Filtering:
zebra Route Filtering zebra Route Filtering
===================== =====================
Zebra supports *prefix-list* and *route-map* to match Zebra supports :dfn:`prefix-list`s and :ref:`Route_Map`s to match routes
routes received from other frr components. The received from other frr components. The permit/deny facilities provided by
*permit*/*deny* facilities provided by these commands these commands can be used to filter which routes zebra will install in the
can be used to filter which routes zebra will install in the kernel. kernel.
.. index:: Command {ip protocol `protocol` route-map `routemap`} {} .. index:: ip protocol PROTOCOL route-map ROUTEMAP
.. clicmd:: ip protocol PROTOCOL route-map ROUTEMAP
Command {ip protocol `protocol` route-map `routemap`} {} Apply a route-map filter to routes for the specified protocol. PROTOCOL can
Apply a route-map filter to routes for the specified protocol. `protocol` be **any** or one of
can be **any** or one of
**system**,
**kernel**,
**connected**,
**static**,
**rip**,
**ripng**,
**ospf**,
**ospf6**,
**isis**,
**bgp**,
**hsls**.
.. index:: {Route Map} {set src `address`} - system,
- kernel,
- connected,
- static,
- rip,
- ripng,
- ospf,
- ospf6,
- isis,
- bgp,
- hsls.
.. index:: set src ADDRESS
.. clicmd:: set src ADDRESS
{Route Map} {set src `address`}
Within a route-map, set the preferred source address for matching routes Within a route-map, set the preferred source address for matching routes
when installing in the kernel. when installing in the kernel.
::
The following creates a prefix-list that matches all addresses, a route-map The following creates a prefix-list that matches all addresses, a route-map
that sets the preferred source address, and applies the route-map to all that sets the preferred source address, and applies the route-map to all
*rip* routes. *rip* routes.
::
ip prefix-list ANY permit 0.0.0.0/0 le 32 ip prefix-list ANY permit 0.0.0.0/0 le 32
route-map RM1 permit 10 route-map RM1 permit 10
match ip address prefix-list ANY match ip address prefix-list ANY
@ -507,7 +520,7 @@ the FPM. The connection is initiated by zebra -- that is, the FPM acts
as the TCP server. as the TCP server.
The relevant zebra code kicks in when zebra is configured with the The relevant zebra code kicks in when zebra is configured with the
`--enable-fpm` flag. Zebra periodically attempts to connect to :option:`--enable-fpm` flag. Zebra periodically attempts to connect to
the well-known FPM port. Once the connection is up, zebra starts the well-known FPM port. Once the connection is up, zebra starts
sending messages containing routes over the socket to the FPM. Zebra sending messages containing routes over the socket to the FPM. Zebra
sends a complete copy of the forwarding table to the FPM, including sends a complete copy of the forwarding table to the FPM, including
@ -527,12 +540,10 @@ schema. Protobuf messages can be extended easily while maintaining
backward-compatibility with older code. Protobuf has the following backward-compatibility with older code. Protobuf has the following
advantages over netlink: advantages over netlink:
* - Code for serialization/deserialization is generated automatically. This
Code for serialization/deserialization is generated reduces the likelihood of bugs, allows third-party programs to be integrated
automatically. This reduces the likelihood of bugs, allows third-party quickly, and makes it easy to add fields.
programs to be integrated quickly, and makes it easy to add fields. - The message format is not tied to an OS (Linux), and can be evolved
*
The message format is not tied to an OS (Linux), and can be evolved
independently. independently.
As mentioned before, zebra encodes routes sent to the FPM in netlink As mentioned before, zebra encodes routes sent to the FPM in netlink
@ -551,9 +562,9 @@ the FPM a complete copy of the forwarding table(s) when it reconnects.
zebra Terminal Mode Commands zebra Terminal Mode Commands
============================ ============================
.. index:: Command {show ip route} {} .. index:: show ip route
.. clicmd:: show ip route
Command {show ip route} {}
Display current routes which zebra holds in its database. Display current routes which zebra holds in its database.
:: ::
@ -568,48 +579,48 @@ Command {show ip route} {}
C* 203.181.89.240/28 eth0 C* 203.181.89.240/28 eth0
.. index:: Command {show ipv6 route} {} .. index:: show ipv6 route
.. clicmd:: show ipv6 route
Command {show ipv6 route} {} .. index:: show interface
.. index:: Command {show interface} {} .. clicmd:: show interface
Command {show interface} {} .. index:: show ip prefix-list [NAME]
.. index:: Command {show ip prefix-list [`name`]} {} .. clicmd:: show ip prefix-list [NAME]
Command {show ip prefix-list [`name`]} {} .. index:: show route-map [NAME]
.. index:: Command {show route-map [`name`]} {} .. clicmd:: show route-map [NAME]
Command {show route-map [`name`]} {} .. index:: show ip protocol
.. index:: Command {show ip protocol} {} .. clicmd:: show ip protocol
Command {show ip protocol} {} .. index:: show ipforward
.. index:: Command {show ipforward} {} .. clicmd:: show ipforward
Command {show ipforward} {}
Display whether the host's IP forwarding function is enabled or not. Display whether the host's IP forwarding function is enabled or not.
Almost any UNIX kernel can be configured with IP forwarding disabled. Almost any UNIX kernel can be configured with IP forwarding disabled.
If so, the box can't work as a router. If so, the box can't work as a router.
.. index:: Command {show ipv6forward} {} .. index:: show ipv6forward
.. clicmd:: show ipv6forward
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.
.. index:: Command {show zebra} {} .. index:: show zebra
.. clicmd:: show zebra
Command {show zebra} {}
Display various statistics related to the installation and deletion Display various statistics related to the installation and deletion
of routes, neighbor updates, and LSP's into the kernel. of routes, neighbor updates, and LSP's into the kernel.
.. index:: Command {show zebra fpm stats} {} .. index:: show zebra fpm stats
.. clicmd:: show zebra fpm stats
Command {show zebra fpm stats} {}
Display statistics related to the zebra code that interacts with the Display statistics related to the zebra code that interacts with the
optional Forwarding Plane Manager (FPM) component. optional Forwarding Plane Manager (FPM) component.
.. index:: Command {clear zebra fpm stats} {} .. index:: clear zebra fpm stats
.. clicmd:: clear zebra fpm stats
Command {clear zebra fpm stats} {}
Reset statistics related to the zebra code that interacts with the Reset statistics related to the zebra code that interacts with the
optional Forwarding Plane Manager (FPM) component. optional Forwarding Plane Manager (FPM) component.