mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-29 21:01:42 +00:00
doc: cleanup multiple
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
parent
50e75a2b82
commit
d1a242fdbf
@ -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,78 +39,86 @@ 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::
|
||||||
single: babel resend-delay (20-655340)
|
single: babel resend-delay (20-655340)
|
||||||
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
|
|
||||||
avoiding a black-hole. The default is 2000 ms.
|
Specifies the time after which important messages are resent when
|
||||||
|
avoiding a black-hole. The default is 2000 ms.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: babel diversity
|
single: babel diversity
|
||||||
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
|
|
||||||
highly recommended in networks with many wireless nodes.
|
Enable or disable routing using radio frequency diversity. This is
|
||||||
If you enable this, you will probably want to set `babel
|
highly recommended in networks with many wireless nodes.
|
||||||
diversity-factor` and `babel channel` below.
|
If you enable this, you will probably want to set `babel
|
||||||
|
diversity-factor` and `babel channel` below.
|
||||||
|
|
||||||
.. 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
|
|
||||||
1/256; lower values cause diversity to play a more important role in
|
Sets the multiplicative factor used for diversity routing, in units of
|
||||||
route selection. The default it 256, which means that diversity plays
|
1/256; lower values cause diversity to play a more important role in
|
||||||
no role in route selection; you will probably want to set that to 128
|
route selection. The default it 256, which means that diversity plays
|
||||||
or less on nodes with multiple independent radios.
|
no role in route selection; you will probably want to set that to 128
|
||||||
|
or less on nodes with multiple independent radios.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: network IFNAME
|
single: network IFNAME
|
||||||
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
|
|
||||||
of optimisations that are only correct on wired interfaces.
|
Specifies whether this interface is wireless, which disables a number
|
||||||
Specifying `wireless` (the default) is always correct, but may
|
of optimisations that are only correct on wired interfaces.
|
||||||
cause slower convergence and extra routing traffic.
|
Specifying `wireless` (the default) is always correct, but may
|
||||||
|
cause slower convergence and extra routing traffic.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: babel split-horizon
|
single: babel split-horizon
|
||||||
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
|
|
||||||
``no babel split-horizon`` is always correct, while ``babel
|
Specifies whether to perform split-horizon on the interface. Specifying
|
||||||
split-horizon`` is an optimisation that should only be used on symmetric
|
``no babel split-horizon`` is always correct, while ``babel
|
||||||
and transitive (wired) networks. The default is ``babel split-horizon``
|
split-horizon`` is an optimisation that should only be used on symmetric
|
||||||
on wired interfaces, and ``no babel split-horizon`` on wireless
|
and transitive (wired) networks. The default is ``babel split-horizon``
|
||||||
interfaces. This flag is reset when the wired/wireless status of an
|
on wired interfaces, and ``no babel split-horizon`` on wireless
|
||||||
interface is changed.
|
interfaces. This flag is reset when the wired/wireless status of an
|
||||||
|
interface is changed.
|
||||||
|
|
||||||
.. 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
|
|
||||||
wired links, Babel notices a link failure within two hello intervals;
|
Specifies the time in milliseconds between two scheduled hellos. On
|
||||||
on wireless links, the link quality value is reestimated at every
|
wired links, Babel notices a link failure within two hello intervals;
|
||||||
hello interval. The default is 4000 ms.
|
on wireless links, the link quality value is reestimated at every
|
||||||
|
hello interval. The default is 4000 ms.
|
||||||
|
|
||||||
.. 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,86 +126,90 @@ 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
|
|
||||||
interfaces, it specifies the multiplier used for computing the ETX
|
|
||||||
reception cost (default 256); for wired interfaces, it specifies the
|
|
||||||
cost that will be advertised to neighbours. This value is reset when
|
|
||||||
the wired/wireless attribute of the interface is changed.
|
|
||||||
|
|
||||||
Do not use this command unless you know what you are doing; in most
|
Specifies the base receive cost for this interface. For wireless
|
||||||
networks, acting directly on the cost using route maps is a better
|
interfaces, it specifies the multiplier used for computing the ETX
|
||||||
technique.
|
reception cost (default 256); for wired interfaces, it specifies the
|
||||||
|
cost that will be advertised to neighbours. This value is reset when
|
||||||
|
the wired/wireless attribute of the interface is changed.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
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
|
||||||
|
technique.
|
||||||
|
|
||||||
.. 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
|
|
||||||
RTT samples, in units of 1/256. Higher values discard old samples
|
This specifies the decay factor for the exponential moving average of
|
||||||
faster. The default is 42.
|
RTT samples, in units of 1/256. Higher values discard old samples
|
||||||
|
faster. The default is 42.
|
||||||
|
|
||||||
.. 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
|
|
||||||
increase the cost to a neighbour. The additional cost is linear in
|
This specifies the minimum RTT, in milliseconds, starting from which we
|
||||||
(rtt - rtt-min). The default is 100 ms.
|
increase the cost to a neighbour. The additional cost is linear in
|
||||||
|
(rtt - rtt-min). The default is 100 ms.
|
||||||
|
|
||||||
.. 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
|
|
||||||
increase the cost to a neighbour. The default is 120 ms.
|
This specifies the maximum RTT, in milliseconds, above which we don't
|
||||||
|
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
|
|
||||||
order to compute RTT values. The default is `no babel enable-timestamps`.
|
Enable or disable sending timestamps with each Hello and IHU message in
|
||||||
|
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,7 +221,8 @@ 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
|
|
||||||
be one of:
|
|
||||||
|
|
||||||
- common
|
Enable or disable debugging messages of a given kind. ``KIND`` can
|
||||||
- filter
|
be one of:
|
||||||
- timeout
|
|
||||||
- interface
|
|
||||||
- route
|
|
||||||
- all
|
|
||||||
|
|
||||||
Note that if you have compiled with the NO_DEBUG flag, then these commands
|
- ``common``
|
||||||
aren't available.
|
- ``filter``
|
||||||
|
- ``timeout``
|
||||||
|
- ``interface``
|
||||||
|
- ``route``
|
||||||
|
- ``all``
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
If you have compiled with the ``NO_DEBUG`` flag, then these commands aren't
|
||||||
|
available.
|
||||||
|
@ -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:
|
||||||
|
|
||||||
@ -71,8 +69,8 @@ Basic Config Commands
|
|||||||
Set enable password.
|
Set enable password.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: no log trap [LEVEL]
|
single: no log trap [LEVEL]
|
||||||
single: log trap LEVEL
|
single: log trap LEVEL
|
||||||
|
|
||||||
.. clicmd:: [no] log trap LEVEL
|
.. clicmd:: [no] log trap LEVEL
|
||||||
|
|
||||||
@ -85,8 +83,8 @@ Basic Config Commands
|
|||||||
existing logging destinations.
|
existing logging destinations.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: no log stdout [LEVEL]
|
single: no log stdout [LEVEL]
|
||||||
single: log stdout [LEVEL]
|
single: log stdout [LEVEL]
|
||||||
|
|
||||||
.. clicmd:: [no] log stdout LEVEL
|
.. clicmd:: [no] log stdout LEVEL
|
||||||
|
|
||||||
@ -100,8 +98,8 @@ Basic Config Commands
|
|||||||
``errors``.
|
``errors``.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: no log file [FILENAME [LEVEL]]
|
single: no log file [FILENAME [LEVEL]]
|
||||||
single: log file FILENAME [LEVEL]
|
single: log file FILENAME [LEVEL]
|
||||||
|
|
||||||
.. clicmd:: [no] log file [FILENAME [LEVEL]]
|
.. clicmd:: [no] log file [FILENAME [LEVEL]]
|
||||||
|
|
||||||
@ -121,8 +119,8 @@ Basic Config Commands
|
|||||||
information.
|
information.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: no log syslog [LEVEL]
|
single: no log syslog [LEVEL]
|
||||||
single: log syslog [LEVEL]
|
single: log syslog [LEVEL]
|
||||||
|
|
||||||
.. clicmd:: [no] log syslog [LEVEL]
|
.. clicmd:: [no] log syslog [LEVEL]
|
||||||
|
|
||||||
@ -132,8 +130,8 @@ Basic Config Commands
|
|||||||
be used. The ``no`` form of the command disables logging to syslog.
|
be used. The ``no`` form of the command disables logging to syslog.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: no log monitor [LEVEL]
|
single: no log monitor [LEVEL]
|
||||||
single: log monitor [LEVEL]
|
single: log monitor [LEVEL]
|
||||||
|
|
||||||
.. clicmd:: [no] log monitor [LEVEL]
|
.. clicmd:: [no] log monitor [LEVEL]
|
||||||
|
|
||||||
@ -147,8 +145,8 @@ Basic Config Commands
|
|||||||
terminal monitors.
|
terminal monitors.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: no log facility [FACILITY]
|
single: no log facility [FACILITY]
|
||||||
single: log facility [FACILITY]
|
single: log facility [FACILITY]
|
||||||
|
|
||||||
.. clicmd:: [no] log facility [FACILITY]
|
.. clicmd:: [no] log facility [FACILITY]
|
||||||
|
|
||||||
@ -157,8 +155,8 @@ Basic Config Commands
|
|||||||
the facility to the default ``daemon`` facility.
|
the facility to the default ``daemon`` facility.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: no log record-priority
|
single: no log record-priority
|
||||||
single: log record-priority
|
single: log record-priority
|
||||||
|
|
||||||
.. clicmd:: [no] log record-priority
|
.. clicmd:: [no] log record-priority
|
||||||
|
|
||||||
@ -171,8 +169,8 @@ Basic Config Commands
|
|||||||
the facility and level in the messages emitted.
|
the facility and level in the messages emitted.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: log timestamp precision (0-6)
|
single: log timestamp precision (0-6)
|
||||||
single: [no] log timestamp precision (0-6)
|
single: [no] log timestamp precision (0-6)
|
||||||
|
|
||||||
.. clicmd:: [no] log timestamp precision [(0-6)]
|
.. clicmd:: [no] log timestamp precision [(0-6)]
|
||||||
|
|
||||||
@ -298,59 +296,59 @@ Terminal Mode Commands
|
|||||||
|
|
||||||
.. clicmd:: write terminal
|
.. clicmd:: write terminal
|
||||||
|
|
||||||
Displays the current configuration to the vty interface.
|
Displays the current configuration to the vty interface.
|
||||||
|
|
||||||
.. index:: write file
|
.. index:: write file
|
||||||
|
|
||||||
.. clicmd:: write file
|
.. clicmd:: write file
|
||||||
|
|
||||||
Write current configuration to configuration file.
|
Write current configuration to configuration file.
|
||||||
|
|
||||||
.. index:: configure terminal
|
.. index:: configure terminal
|
||||||
|
|
||||||
.. clicmd:: configure terminal
|
.. clicmd:: configure terminal
|
||||||
|
|
||||||
Change to configuration mode. This command is the first step to
|
Change to configuration mode. This command is the first step to
|
||||||
configuration.
|
configuration.
|
||||||
|
|
||||||
.. index:: terminal length (0-512)
|
.. index:: terminal length (0-512)
|
||||||
|
|
||||||
.. clicmd:: terminal length (0-512)
|
.. clicmd:: terminal length (0-512)
|
||||||
|
|
||||||
Set terminal display length to ``(0-512)``. If length is 0, no
|
Set terminal display length to ``(0-512)``. If length is 0, no
|
||||||
display control is performed.
|
display control is performed.
|
||||||
|
|
||||||
.. index:: who
|
.. index:: who
|
||||||
|
|
||||||
.. clicmd:: who
|
.. clicmd:: who
|
||||||
|
|
||||||
Show a list of currently connected vty sessions.
|
Show a list of currently connected vty sessions.
|
||||||
|
|
||||||
.. index:: list
|
.. index:: list
|
||||||
|
|
||||||
.. clicmd:: list
|
.. clicmd:: list
|
||||||
|
|
||||||
List all available commands.
|
List all available commands.
|
||||||
|
|
||||||
.. index:: show version
|
.. index:: show version
|
||||||
|
|
||||||
.. clicmd:: show version
|
.. clicmd:: show version
|
||||||
|
|
||||||
Show the current version of |PACKAGE_NAME| and its build host information.
|
Show the current version of |PACKAGE_NAME| and its build host information.
|
||||||
|
|
||||||
.. index:: show logging
|
.. index:: show logging
|
||||||
|
|
||||||
.. clicmd:: show logging
|
.. clicmd:: show logging
|
||||||
|
|
||||||
Shows the current configuration of the logging system. This includes
|
Shows the current configuration of the logging system. This includes
|
||||||
the status of all logging destinations.
|
the status of all logging destinations.
|
||||||
|
|
||||||
.. index:: logmsg LEVEL MESSAGE
|
.. index:: logmsg LEVEL MESSAGE
|
||||||
|
|
||||||
.. clicmd:: logmsg LEVEL MESSAGE
|
.. clicmd:: logmsg LEVEL MESSAGE
|
||||||
|
|
||||||
Send a message to all logging destinations that are enabled for messages
|
Send a message to all logging destinations that are enabled for messages
|
||||||
of the given severity.
|
of the given severity.
|
||||||
|
|
||||||
.. _Common_Invocation_Options:
|
.. _Common_Invocation_Options:
|
||||||
|
|
||||||
@ -360,56 +358,55 @@ 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>
|
||||||
|
.. option:: --config-file <file>
|
||||||
|
|
||||||
.. clicmd:: -f file, --config_file=FILE
|
Set configuration file name.
|
||||||
|
|
||||||
Set configuration file name.
|
.. option:: -h, --help
|
||||||
|
|
||||||
|
Display this help and exit.
|
||||||
|
|
||||||
.. clicmd:: -h, --help
|
.. option:: -i <file>
|
||||||
|
.. option:: --pid-file <file>
|
||||||
|
|
||||||
Display this help and exit.
|
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
|
||||||
|
to implement commands such as ``.../init.d/zebra status``,
|
||||||
|
``.../init.d/zebra restart`` or ``.../init.d/zebra stop``.
|
||||||
|
|
||||||
|
The file name is an run-time option rather than a configure-time option
|
||||||
|
so that multiple routing daemons can be run simultaneously. This is
|
||||||
|
useful when using |PACKAGE_NAME| to implement a routing looking glass. One
|
||||||
|
machine can be used to collect differing routing views from differing
|
||||||
|
points in the network.
|
||||||
|
|
||||||
.. clicmd:: -i file, --pid_file=file
|
.. option:: -A <address>
|
||||||
|
.. option:: --vty-addr <address>
|
||||||
|
|
||||||
Upon startup the process identifier of the daemon is written to a file,
|
Set the VTY local address to bind to. If set, the VTY socket will only
|
||||||
typically in :file:`/var/run`. This file can be used by the init system
|
be bound to this address.
|
||||||
to implement commands such as ``.../init.d/zebra status``,
|
|
||||||
``.../init.d/zebra restart`` or ``.../init.d/zebra stop``.
|
|
||||||
|
|
||||||
The file name is an run-time option rather than a configure-time option
|
.. option:: -P <port>
|
||||||
so that multiple routing daemons can be run simultaneously. This is
|
.. option:: --vty-port <port>
|
||||||
useful when using |PACKAGE_NAME| to implement a routing looking glass. One
|
|
||||||
machine can be used to collect differing routing views from differing
|
|
||||||
points in the network.
|
|
||||||
|
|
||||||
|
Set the VTY TCP port number. If set to 0 then the TCP VTY sockets will not
|
||||||
|
be opened.
|
||||||
|
|
||||||
.. clicmd:: -A address, --vty_addr=address
|
.. option:: -u <user>
|
||||||
|
.. option:: --vty_addr <user>
|
||||||
|
|
||||||
Set the VTY local address to bind to. If set, the VTY socket will only
|
Set the user and group to run as.
|
||||||
be bound to this address.
|
|
||||||
|
|
||||||
|
.. option:: -v
|
||||||
|
.. option:: --version
|
||||||
|
|
||||||
.. clicmd:: -P port, --vty_port=port
|
Print program version.
|
||||||
|
|
||||||
Set the VTY TCP port number. If set to 0 then the TCP VTY sockets will not
|
|
||||||
be opened.
|
|
||||||
|
|
||||||
|
|
||||||
.. clicmd:: -u user, --vty_addr=user
|
|
||||||
|
|
||||||
Set the user and group to run as.
|
|
||||||
|
|
||||||
|
|
||||||
.. clicmd:: -v, --version
|
|
||||||
|
|
||||||
Print program version.
|
|
||||||
|
|
||||||
|
|
||||||
.. _Loadable_Module_Support:
|
.. _Loadable_Module_Support:
|
||||||
|
|
||||||
@ -421,17 +418,18 @@ 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.
|
||||||
|
|
||||||
The SNMP Module
|
The SNMP Module
|
||||||
---------------
|
---------------
|
||||||
@ -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:
|
||||||
|
|
||||||
|
@ -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/.
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
Zebra
|
Zebra
|
||||||
*****
|
*****
|
||||||
|
|
||||||
*zebra* is an IP routing manager. It provides kernel routing
|
*zebra* is an IP routing manager. It provides kernel routing
|
||||||
table updates, interface lookups, and redistribution of routes between
|
table updates, interface lookups, and redistribution of routes between
|
||||||
different routing protocols.
|
different routing protocols.
|
||||||
|
|
||||||
@ -16,257 +16,268 @@ 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*
|
Runs in batch mode. *zebra* parses configuration file and terminates
|
||||||
|
immediately.
|
||||||
|
|
||||||
*--batch*
|
.. option:: -k
|
||||||
Runs in batch mode. *zebra* parses configuration file and terminates
|
.. option:: --keep_kernel
|
||||||
immediately.
|
|
||||||
|
|
||||||
|
When zebra starts up, don't delete old self inserted routes.
|
||||||
|
|
||||||
*-k*
|
.. option:: -r
|
||||||
|
.. option:: --retain
|
||||||
*--keep_kernel*
|
|
||||||
When zebra starts up, don't delete old self inserted routes.
|
|
||||||
|
|
||||||
|
|
||||||
*-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
|
||||||
|
|
||||||
{Interface Command} {no shutdown} {}
|
.. clicmd:: no shutdown
|
||||||
Up or down the current interface.
|
|
||||||
|
|
||||||
.. index:: {Interface Command} {ip address `address/prefix`} {}
|
Up or down the current interface.
|
||||||
|
|
||||||
{Interface Command} {ip address `address/prefix`} {}
|
.. index:: ip address ADDRESS/PREFIX
|
||||||
.. index:: {Interface Command} {ipv6 address `address/prefix`} {}
|
|
||||||
|
|
||||||
{Interface Command} {ipv6 address `address/prefix`} {}
|
.. clicmd:: ip address ADDRESS/PREFIX
|
||||||
.. index:: {Interface Command} {no ip address `address/prefix`} {}
|
.. index:: ipv6 address ADDRESS/PREFIX
|
||||||
|
|
||||||
{Interface Command} {no ip address `address/prefix`} {}
|
.. clicmd:: ipv6 address ADDRESS/PREFIX
|
||||||
.. index:: {Interface Command} {no ipv6 address `address/prefix`} {}
|
.. index:: no ip address ADDRESS/PREFIX
|
||||||
|
|
||||||
{Interface Command} {no ipv6 address `address/prefix`} {}
|
.. clicmd:: no ip address ADDRESS/PREFIX
|
||||||
Set the IPv4 or IPv6 address/prefix for the interface.
|
.. index:: no ipv6 address ADDRESS/PREFIX
|
||||||
|
|
||||||
.. index:: {Interface Command} {ip address `local-addr` peer `peer-addr/prefix`} {}
|
.. clicmd:: no ipv6 address ADDRESS/PREFIX
|
||||||
|
|
||||||
{Interface Command} {ip address `local-addr` peer `peer-addr/prefix`} {}
|
Set the IPv4 or IPv6 address/prefix for the interface.
|
||||||
.. index:: {Interface Command} {no ip address `local-addr` peer `peer-addr/prefix`} {}
|
|
||||||
|
|
||||||
{Interface Command} {no ip address `local-addr` peer `peer-addr/prefix`} {}
|
.. index:: 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
|
.. clicmd:: ip address LOCAL-ADDR peer PEER-ADDR/PREFIX
|
||||||
addressing is always a single (/32) address. `peer-addr/prefix`
|
.. index:: no ip address LOCAL-ADDR peer 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.
|
|
||||||
|
|
||||||
.. index:: {Interface Command} {ip address `address/prefix` secondary} {}
|
.. clicmd:: no ip address LOCAL-ADDR peer PEER-ADDR/PREFIX
|
||||||
|
|
||||||
{Interface Command} {ip address `address/prefix` secondary} {}
|
Configure an IPv4 Pointopoint address on the interface. (The concept of PtP
|
||||||
.. index:: {Interface Command} {no ip address `address/prefix` secondary} {}
|
addressing does not exist for IPv6.)
|
||||||
|
|
||||||
{Interface Command} {no ip address `address/prefix` secondary} {}
|
`local-addr` has no subnet mask since the local side in PtP addressing is
|
||||||
Set the secondary flag for this address. This causes ospfd to not treat the
|
always a single (/32) address. `peer-addr/prefix` can be an arbitrary subnet
|
||||||
address as a distinct 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} {description `description` ...} {}
|
.. index:: ip address ADDRESS/PREFIX secondary
|
||||||
|
|
||||||
{Interface Command} {description `description` ...} {}
|
.. clicmd:: ip address ADDRESS/PREFIX secondary
|
||||||
Set description for the interface.
|
.. index:: no ip address ADDRESS/PREFIX secondary
|
||||||
|
|
||||||
.. index:: {Interface Command} {multicast} {}
|
.. clicmd:: no ip address ADDRESS/PREFIX secondary
|
||||||
|
|
||||||
{Interface Command} {multicast} {}
|
Set the secondary flag for this address. This causes ospfd to not treat the
|
||||||
.. index:: {Interface Command} {no multicast} {}
|
address as a distinct subnet.
|
||||||
|
|
||||||
{Interface Command} {no multicast} {}
|
.. index:: description DESCRIPTION ...
|
||||||
Enable or disables multicast flag for the interface.
|
|
||||||
|
|
||||||
.. index:: {Interface Command} {bandwidth (1-10000000)} {}
|
.. clicmd:: description DESCRIPTION ...
|
||||||
|
|
||||||
{Interface Command} {bandwidth (1-10000000)} {}
|
Set description for the interface.
|
||||||
.. index:: {Interface Command} {no bandwidth (1-10000000)} {}
|
|
||||||
|
|
||||||
{Interface Command} {no bandwidth (1-10000000)} {}
|
.. index:: multicast
|
||||||
Set bandwidth value of the interface in kilobits/sec. This is for
|
|
||||||
calculating OSPF cost. This command does not affect the actual device
|
|
||||||
configuration.
|
|
||||||
|
|
||||||
.. index:: {Interface Command} {link-detect} {}
|
.. clicmd:: multicast
|
||||||
|
.. index:: no multicast
|
||||||
|
|
||||||
{Interface Command} {link-detect} {}
|
.. clicmd:: no multicast
|
||||||
.. index:: {Interface Command} {no link-detect} {}
|
|
||||||
|
|
||||||
{Interface Command} {no link-detect} {}
|
Enable or disables multicast flag for the interface.
|
||||||
Enable/disable link-detect on platforms which support this. Currently
|
|
||||||
only Linux and Solaris, and only where network interface drivers support reporting
|
.. index:: bandwidth (1-10000000)
|
||||||
link-state via the IFF_RUNNING flag.
|
|
||||||
|
.. clicmd:: bandwidth (1-10000000)
|
||||||
|
.. index:: no bandwidth (1-10000000)
|
||||||
|
|
||||||
|
.. clicmd:: no bandwidth (1-10000000)
|
||||||
|
|
||||||
|
Set bandwidth value of the interface in kilobits/sec. This is for
|
||||||
|
calculating OSPF cost. This command does not affect the actual device
|
||||||
|
configuration.
|
||||||
|
|
||||||
|
.. index:: link-detect
|
||||||
|
|
||||||
|
.. clicmd:: link-detect
|
||||||
|
.. index:: 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 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:
|
||||||
|
|
||||||
Static Route Commands
|
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 ppp0
|
ip route 10.0.0.0/8 10.0.0.2
|
||||||
ip route 10.0.0.0/8 null0
|
ip route 10.0.0.0/8 ppp0
|
||||||
|
ip route 10.0.0.0/8 null0
|
||||||
|
|
||||||
|
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
|
||||||
|
third install a blackhole route.
|
||||||
|
|
||||||
|
.. index:: ip route NETWORK NETMASK GATEWAY
|
||||||
|
.. clicmd:: ip route NETWORK NETMASK GATEWAY
|
||||||
|
|
||||||
|
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
|
||||||
|
format. GATEWAY is same option as above command.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
ip route 10.0.0.0 255.255.255.0 10.0.0.2
|
||||||
|
ip route 10.0.0.0 255.255.255.0 ppp0
|
||||||
|
ip route 10.0.0.0 255.255.255.0 null0
|
||||||
|
|
||||||
|
|
||||||
First example defines 10.0.0.0/8 static route with gateway 10.0.0.2.
|
These statements are equivalent to those in the previous example.
|
||||||
Second one defines the same prefix but with gateway to interface ppp0. The
|
|
||||||
third install a blackhole route.
|
|
||||||
|
|
||||||
.. index:: Command {ip route `network` `netmask` `gateway`} {}
|
.. index:: ip route NETWORK GATEWAY DISTANCE
|
||||||
|
.. clicmd:: ip route NETWORK GATEWAY DISTANCE
|
||||||
|
|
||||||
Command {ip route `network` `netmask` `gateway`} {}
|
Installs the route with the specified distance.
|
||||||
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
|
|
||||||
format. `gateway` is same option as above command
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
ip route 10.0.0.0 255.255.255.0 10.0.0.2
|
|
||||||
ip route 10.0.0.0 255.255.255.0 ppp0
|
|
||||||
ip route 10.0.0.0 255.255.255.0 null0
|
|
||||||
|
|
||||||
|
|
||||||
These statements are equivalent to those in the previous example.
|
|
||||||
|
|
||||||
.. index:: Command {ip route `network` `gateway` `distance`} {}
|
|
||||||
|
|
||||||
Command {ip route `network` `gateway` `distance`} {}
|
|
||||||
Installs the route with the specified distance.
|
|
||||||
|
|
||||||
Multiple nexthop static route
|
Multiple nexthop static route
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
ip route 10.0.0.1/32 10.0.0.2
|
ip route 10.0.0.1/32 10.0.0.2
|
||||||
ip route 10.0.0.1/32 10.0.0.3
|
ip route 10.0.0.1/32 10.0.0.3
|
||||||
ip route 10.0.0.1/32 eth0
|
ip route 10.0.0.1/32 eth0
|
||||||
|
|
||||||
|
|
||||||
If there is no route to 10.0.0.2 and 10.0.0.3, and interface eth0
|
If there is no route to 10.0.0.2 and 10.0.0.3, and interface eth0
|
||||||
@ -278,17 +289,17 @@ nexthops, if the platform supports this.
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
zebra> show ip route
|
zebra> show ip route
|
||||||
S> 10.0.0.1/32 [1/0] via 10.0.0.2 inactive
|
S> 10.0.0.1/32 [1/0] via 10.0.0.2 inactive
|
||||||
via 10.0.0.3 inactive
|
via 10.0.0.3 inactive
|
||||||
* is directly connected, eth0
|
* is directly connected, eth0
|
||||||
|
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
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 10.0.0.3
|
ip route 10.0.0.0/8 10.0.0.3
|
||||||
ip route 10.0.0.0/8 null0 255
|
ip route 10.0.0.0/8 null0 255
|
||||||
|
|
||||||
|
|
||||||
This will install a multihop route via the specified next-hops if they are
|
This will install a multihop route via the specified next-hops if they are
|
||||||
@ -298,45 +309,45 @@ default) should the specified gateways not be reachable. Eg:
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
zebra> show ip route 10.0.0.0/8
|
zebra> show ip route 10.0.0.0/8
|
||||||
Routing entry for 10.0.0.0/8
|
Routing entry for 10.0.0.0/8
|
||||||
Known via "static", distance 1, metric 0
|
Known via "static", distance 1, metric 0
|
||||||
10.0.0.2 inactive
|
10.0.0.2 inactive
|
||||||
10.0.0.3 inactive
|
10.0.0.3 inactive
|
||||||
|
|
||||||
Routing entry for 10.0.0.0/8
|
Routing entry for 10.0.0.0/8
|
||||||
Known via "static", distance 255, metric 0
|
Known via "static", distance 255, metric 0
|
||||||
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
|
destination longest-prefix match is "more important" than source LPM, e.g.
|
||||||
destination longest-prefix match is "more important" than source LPM, e.g.
|
*"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:
|
||||||
|
|
||||||
@ -344,135 +355,137 @@ Multicast RIB Commands
|
|||||||
======================
|
======================
|
||||||
|
|
||||||
The Multicast RIB provides a separate table of unicast destinations which
|
The Multicast RIB provides a separate table of unicast destinations which
|
||||||
is used for Multicast Reverse Path Forwarding decisions. It is used with
|
is used for Multicast Reverse Path Forwarding decisions. It is used with
|
||||||
a multicast source's IP address, hence contains not multicast group
|
a multicast source's IP address, hence contains not multicast group
|
||||||
addresses but unicast addresses.
|
addresses but unicast addresses.
|
||||||
|
|
||||||
This table is fully separate from the default unicast table. However,
|
This table is fully separate from the default unicast table. However,
|
||||||
RPF lookup can include the unicast table.
|
RPF lookup can include the unicast table.
|
||||||
|
|
||||||
WARNING: RPF lookup results are non-responsive in this version of FRR,
|
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
|
||||||
|
Performs the lookup on the Unicast RIB. The Multicast RIB is never used.
|
||||||
|
|
||||||
|
mrib-only
|
||||||
|
Performs the lookup on the Multicast RIB. The Unicast RIB is never used.
|
||||||
|
|
||||||
*urib-only*
|
mrib-then-urib
|
||||||
Performs the lookup on the Unicast RIB. The Multicast RIB is never used.
|
Tries to perform the lookup on the Multicast RIB. If any route is found,
|
||||||
|
that route is used. Otherwise, the Unicast RIB is tried.
|
||||||
|
|
||||||
*mrib-only*
|
lower-distance
|
||||||
Performs the lookup on the Multicast RIB. The Unicast RIB is never used.
|
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.
|
||||||
|
|
||||||
*mrib-then-urib*
|
longer-prefix
|
||||||
Tries to perform the lookup on the Multicast RIB. If any route is found,
|
Performs a lookup on the Multicast RIB and Unicast RIB each. The result
|
||||||
that route is used. Otherwise, the Unicast RIB is tried.
|
with the longer prefix length is used; if they're equal, the
|
||||||
|
Multicast RIB takes precedence.
|
||||||
|
|
||||||
*lower-distance*
|
The `mrib-then-urib` setting is the default behavior if nothing is
|
||||||
Performs a lookup on the Multicast RIB and Unicast RIB each. The result
|
configured. If this is the desired behavior, it should be explicitly
|
||||||
with the lower administrative distance is used; if they're equal, the
|
configured to make the configuration immune against possible changes in
|
||||||
Multicast RIB takes precedence.
|
what the default behavior is.
|
||||||
|
|
||||||
*longer-prefix*
|
.. warning::
|
||||||
Performs a lookup on the Multicast RIB and Unicast RIB each. The result
|
Unreachable routes do not receive special treatment and do not cause
|
||||||
with the longer prefix length is used; if they're equal, the
|
fallback to a second lookup.
|
||||||
Multicast RIB takes precedence.
|
|
||||||
|
|
||||||
The `mrib-then-urib` setting is the default behavior if nothing is
|
.. index:: show ip rpf ADDR
|
||||||
configured. If this is the desired behavior, it should be explicitly
|
.. clicmd:: show ip rpf ADDR
|
||||||
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
|
Performs a Multicast RPF lookup, as configured with ``ip multicast
|
||||||
cause fallback to a second lookup.
|
rpf-lookup-mode MODE``. ADDR specifies the multicast source address to look
|
||||||
|
up.
|
||||||
|
|
||||||
.. index:: Command {show ip rpf `addr`} {}
|
::
|
||||||
|
|
||||||
Command {show ip rpf `addr`} {}
|
|
||||||
Performs a Multicast RPF lookup, as configured with
|
|
||||||
*ip multicast rpf-lookup-mode `mode*`. `addr` specifies
|
|
||||||
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
|
|
||||||
* 198.51.100.1, via eth0
|
Known via "kernel", distance 0, metric 0, best
|
||||||
|
* 198.51.100.1, via eth0
|
||||||
|
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
{Route Map} {set src `address`}
|
.. index:: set src ADDRESS
|
||||||
Within a route-map, set the preferred source address for matching routes
|
.. clicmd:: set src ADDRESS
|
||||||
when installing in the kernel.
|
|
||||||
|
Within a route-map, set the preferred source address for matching routes
|
||||||
|
when installing in the kernel.
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
*rip* routes.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
The following creates a prefix-list that matches all addresses, a route-map
|
ip prefix-list ANY permit 0.0.0.0/0 le 32
|
||||||
that sets the preferred source address, and applies the route-map to all
|
route-map RM1 permit 10
|
||||||
*rip* routes.
|
match ip address prefix-list ANY
|
||||||
|
set src 10.0.0.1
|
||||||
|
|
||||||
ip prefix-list ANY permit 0.0.0.0/0 le 32
|
ip protocol rip route-map RM1
|
||||||
route-map RM1 permit 10
|
|
||||||
match ip address prefix-list ANY
|
|
||||||
set src 10.0.0.1
|
|
||||||
|
|
||||||
ip protocol rip route-map RM1
|
|
||||||
|
|
||||||
|
|
||||||
.. _zebra_FIB_push_interface:
|
.. _zebra_FIB_push_interface:
|
||||||
@ -482,7 +495,7 @@ zebra FIB push interface
|
|||||||
|
|
||||||
Zebra supports a 'FIB push' interface that allows an external
|
Zebra supports a 'FIB push' interface that allows an external
|
||||||
component to learn the forwarding information computed by the FRR
|
component to learn the forwarding information computed by the FRR
|
||||||
routing suite. This is a loadable module that needs to be enabled
|
routing suite. This is a loadable module that needs to be enabled
|
||||||
at startup as described in :ref:`Loadable_Module_Support`.
|
at startup as described in :ref:`Loadable_Module_Support`.
|
||||||
|
|
||||||
In FRR, the Routing Information Base (RIB) resides inside
|
In FRR, the Routing Information Base (RIB) resides inside
|
||||||
@ -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,65 +562,65 @@ 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.
|
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
Router# show ip route
|
Router# show ip route
|
||||||
Codes: K - kernel route, C - connected, S - static, R - RIP,
|
Codes: K - kernel route, C - connected, S - static, R - RIP,
|
||||||
B - BGP * - FIB route.
|
B - BGP * - FIB route.
|
||||||
|
|
||||||
K* 0.0.0.0/0 203.181.89.241
|
K* 0.0.0.0/0 203.181.89.241
|
||||||
S 0.0.0.0/0 203.181.89.1
|
S 0.0.0.0/0 203.181.89.1
|
||||||
C* 127.0.0.0/8 lo
|
C* 127.0.0.0/8 lo
|
||||||
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.
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user