mirror of
				https://git.proxmox.com/git/mirror_frr
				synced 2025-10-31 09:04:27 +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 is an interior gateway protocol that is suitable both for wired | ||||
| networks and for wireless mesh networks.  Babel has been described as | ||||
| 'RIP on speed' --- it is based on the same principles as RIP, but | ||||
| includes a number of refinements that make it react much faster to | ||||
| topology changes without ever counting to infinity, and allow it to | ||||
| perform reliable link quality estimation on wireless links.  Babel is | ||||
| a double-stack routing protocol, meaning that a single Babel instance | ||||
| is able to perform routing for both IPv4 and IPv6. | ||||
| Babel is an interior gateway protocol that is suitable both for wired networks | ||||
| and for wireless mesh networks.  Babel has been described as 'RIP on speed' -- | ||||
| it is based on the same principles as RIP, but includes a number of refinements | ||||
| that make it react much faster to topology changes without ever counting to | ||||
| infinity, and allow it to perform reliable link quality estimation on wireless | ||||
| links.  Babel is a double-stack routing protocol, meaning that a single Babel | ||||
| instance is able to perform routing for both IPv4 and IPv6. | ||||
| 
 | ||||
| FRR implements Babel as described in :rfc:`6126`. | ||||
| 
 | ||||
| @ -40,78 +39,86 @@ Babel configuration | ||||
|    single: no router babel | ||||
| 
 | ||||
| .. clicmd:: [no] router babel | ||||
|     Enable or disable Babel routing. | ||||
| 
 | ||||
|    Enable or disable Babel routing. | ||||
| 
 | ||||
| .. index:: | ||||
|    single: babel resend-delay (20-655340) | ||||
|    single: 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:: | ||||
|    single: babel diversity | ||||
|    single: 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. | ||||
|       If you enable this, you will probably want to set `babel | ||||
|       diversity-factor` and `babel channel` below. | ||||
| 
 | ||||
|    Enable or disable routing using radio frequency diversity.  This is | ||||
|    highly recommended in networks with many wireless nodes. | ||||
|    If you enable this, you will probably want to set `babel | ||||
|    diversity-factor` and `babel channel` below. | ||||
| 
 | ||||
| .. index:: 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 | ||||
|       route selection.  The default it 256, which means that diversity plays | ||||
|       no role in route selection; you will probably want to set that to 128 | ||||
|       or less on nodes with multiple independent radios. | ||||
| 
 | ||||
|    Sets the multiplicative factor used for diversity routing, in units of | ||||
|    1/256; lower values cause diversity to play a more important role in | ||||
|    route selection.  The default it 256, which means that diversity plays | ||||
|    no role in route selection; you will probably want to set that to 128 | ||||
|    or less on nodes with multiple independent radios. | ||||
| 
 | ||||
| .. index:: | ||||
|    single: network IFNAME | ||||
|    single: 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> | ||||
| 
 | ||||
| .. clicmd:: babel <wired|wireless> | ||||
|       Specifies whether this interface is wireless, which disables a number | ||||
|       of optimisations that are only correct on wired interfaces. | ||||
|       Specifying `wireless` (the default) is always correct, but may | ||||
|       cause slower convergence and extra routing traffic. | ||||
| 
 | ||||
|    Specifies whether this interface is wireless, which disables a number | ||||
|    of optimisations that are only correct on wired interfaces. | ||||
|    Specifying `wireless` (the default) is always correct, but may | ||||
|    cause slower convergence and extra routing traffic. | ||||
| 
 | ||||
| .. index:: | ||||
|    single: babel split-horizon | ||||
|    single: 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 | ||||
|       split-horizon`` is an optimisation that should only be used on symmetric | ||||
|       and transitive (wired) networks.  The default is ``babel split-horizon`` | ||||
|       on wired interfaces, and ``no babel split-horizon`` on wireless | ||||
|       interfaces.  This flag is reset when the wired/wireless status of an | ||||
|       interface is changed. | ||||
| 
 | ||||
|    Specifies whether to perform split-horizon on the interface.  Specifying | ||||
|    ``no babel split-horizon`` is always correct, while ``babel | ||||
|    split-horizon`` is an optimisation that should only be used on symmetric | ||||
|    and transitive (wired) networks.  The default is ``babel split-horizon`` | ||||
|    on wired interfaces, and ``no babel split-horizon`` on wireless | ||||
|    interfaces.  This flag is reset when the wired/wireless status of an | ||||
|    interface is changed. | ||||
| 
 | ||||
| .. index:: 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; | ||||
|       on wireless links, the link quality value is reestimated at every | ||||
|       hello interval.  The default is 4000 ms. | ||||
| 
 | ||||
|    Specifies the time in milliseconds between two scheduled hellos.  On | ||||
|    wired links, Babel notices a link failure within two hello intervals; | ||||
|    on wireless links, the link quality value is reestimated at every | ||||
|    hello interval.  The default is 4000 ms. | ||||
| 
 | ||||
| .. index:: 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 | ||||
|       to fairly high values on links with little packet loss.  The default | ||||
|       is 20000 ms. | ||||
| 
 | ||||
|    Specifies the time in milliseconds between two scheduled updates.  Since | ||||
|    Babel makes extensive use of triggered updates, this can be set to fairly | ||||
|    high values on links with little packet loss.  The default is 20000 ms. | ||||
| 
 | ||||
| .. index:: | ||||
|    single: babel channel (1-254) | ||||
| @ -119,86 +126,90 @@ Babel configuration | ||||
|    single: babel channel noninterfering | ||||
| 
 | ||||
| .. clicmd:: babel channel (1-254) | ||||
|       see below | ||||
| 
 | ||||
| .. clicmd:: babel channel interfering | ||||
|       see below | ||||
| 
 | ||||
| .. clicmd:: babel channel noninterfering | ||||
|       Set the channel number that diversity routing uses for this interface | ||||
|       (see `babel diversity` above).  Noninterfering interfaces are | ||||
|       assumed to only interfere with themselves, interfering interfaces are | ||||
|       assumed to interfere with all other channels except noninterfering | ||||
|       channels, and interfaces with a channel number interfere with | ||||
|       interfering interfaces and interfaces with the same channel number. | ||||
|       The default is ``babel channel interfering`` for wireless | ||||
|       interfaces, and ``babel channel noninterfering`` for wired | ||||
|       interfaces.  This is reset when the wired/wireless status of an | ||||
|       interface is changed. | ||||
| 
 | ||||
|    Set the channel number that diversity routing uses for this interface (see | ||||
|    `babel diversity` above).  Noninterfering interfaces are assumed to only | ||||
|    interfere with themselves, interfering interfaces are assumed to interfere | ||||
|    with all other channels except noninterfering channels, and interfaces with | ||||
|    a channel number interfere with interfering interfaces and interfaces with | ||||
|    the same channel number.  The default is ``babel channel interfering`` for | ||||
|    wireless interfaces, and ``babel channel noninterfering`` for wired | ||||
|    interfaces.  This is reset when the wired/wireless status of an interface is | ||||
|    changed. | ||||
| 
 | ||||
| .. index:: 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 | ||||
|       networks, acting directly on the cost using route maps is a better | ||||
|       technique. | ||||
|    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. | ||||
| 
 | ||||
| .. 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) | ||||
| 
 | ||||
| .. 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 | ||||
|       faster.  The default is 42. | ||||
| 
 | ||||
|    This specifies the decay factor for the exponential moving average of | ||||
|    RTT samples, in units of 1/256.  Higher values discard old samples | ||||
|    faster.  The default is 42. | ||||
| 
 | ||||
| .. index:: 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 | ||||
|       (rtt - rtt-min).  The default is 100 ms. | ||||
| 
 | ||||
|    This specifies the minimum RTT, in milliseconds, starting from which we | ||||
|    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) | ||||
| 
 | ||||
| .. 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) | ||||
| 
 | ||||
| .. 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, | ||||
|       which effectively disables the use of a RTT-based cost. | ||||
| 
 | ||||
|    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, which | ||||
|    effectively disables the use of a RTT-based cost. | ||||
| 
 | ||||
| .. index:: | ||||
|    single: babel enable-timestamps | ||||
|    single: 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) | ||||
| 
 | ||||
| .. 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 | ||||
|       probably don't want to tweak this value. | ||||
| 
 | ||||
|    Specifies the time in milliseconds after which an 'important' request or | ||||
|    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) | ||||
| 
 | ||||
| .. 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 | ||||
|       oscillation at the cost of very slightly increasing convergence time. | ||||
|       The value 0 disables hysteresis, and is suitable for wired networks. | ||||
|       The default is 4 s. | ||||
| 
 | ||||
|    Specifies the time constant, in seconds, of the smoothing algorithm used for | ||||
|    implementing hysteresis.  Larger values reduce route oscillation at the cost | ||||
|    of very slightly increasing convergence time.  The value 0 disables | ||||
|    hysteresis, and is suitable for wired networks.  The default is 4 s. | ||||
| 
 | ||||
| .. _Babel_redistribution: | ||||
| 
 | ||||
| @ -210,7 +221,8 @@ Babel redistribution | ||||
|    single: 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: | ||||
| 
 | ||||
| @ -222,47 +234,38 @@ These commands dump various parts of *babeld*'s internal state. | ||||
| .. index:: show babel route | ||||
| 
 | ||||
| .. clicmd:: show babel route | ||||
|       *missing description* | ||||
| 
 | ||||
| .. index:: 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 | ||||
| 
 | ||||
| .. clicmd:: show babel route X:X::X:X | ||||
|       *missing description* | ||||
| 
 | ||||
| .. index:: 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 | ||||
| 
 | ||||
| .. clicmd:: show babel route X:X::X:X/M | ||||
|       *missing description* | ||||
| 
 | ||||
| .. index:: show babel interface | ||||
| 
 | ||||
| .. clicmd:: show babel interface | ||||
|       *missing description* | ||||
| 
 | ||||
| .. index:: show babel interface `IFNAME` | ||||
| .. index:: show babel interface IFNAME | ||||
| 
 | ||||
| .. clicmd:: show babel interface IFNAME | ||||
|       *missing description* | ||||
| 
 | ||||
| .. index:: show babel neighbor | ||||
| 
 | ||||
| .. clicmd:: show babel neighbor | ||||
|       *missing description* | ||||
| 
 | ||||
| .. index:: show babel parameters | ||||
| 
 | ||||
| .. clicmd:: show babel parameters | ||||
|       *missing description* | ||||
| 
 | ||||
| Babel debugging commands | ||||
| ======================== | ||||
| @ -272,16 +275,17 @@ Babel debugging commands | ||||
|    simple: no debug babel KIND | ||||
| 
 | ||||
| .. clicmd:: [no] debug babel KIND | ||||
|       Enable or disable debugging messages of a given kind. ``KIND`` can | ||||
|       be one of: | ||||
| 
 | ||||
|          - common | ||||
|          - filter | ||||
|          - timeout | ||||
|          - interface | ||||
|          - route | ||||
|          - all | ||||
|    Enable or disable debugging messages of a given kind. ``KIND`` can | ||||
|    be one of: | ||||
| 
 | ||||
|       Note that if you have compiled with the NO_DEBUG flag, then these commands | ||||
|       aren't available. | ||||
|    - ``common`` | ||||
|    - ``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|. | ||||
| 
 | ||||
| Each of the daemons has its own | ||||
| config file. For example, zebra's default config file name is *zebra.conf*. | ||||
| 
 | ||||
| The daemon name plus `.conf` is the default config file name. You | ||||
| can specify a config file using the :kbd:`-f` or :kbd:`--config-file` | ||||
| options when starting the daemon. | ||||
| Each of the daemons has its own config file. The daemon name plus ``.conf`` is | ||||
| 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 | ||||
| :option:`--config-file` options when starting the daemon. | ||||
| 
 | ||||
| .. _Basic_Config_Commands: | ||||
| 
 | ||||
| @ -71,8 +69,8 @@ Basic Config Commands | ||||
|    Set enable password. | ||||
| 
 | ||||
| .. index:: | ||||
|     single: no log trap [LEVEL] | ||||
|     single: log trap LEVEL | ||||
|    single: no log trap [LEVEL] | ||||
|    single: log trap LEVEL | ||||
| 
 | ||||
| .. clicmd:: [no] log trap LEVEL | ||||
| 
 | ||||
| @ -85,8 +83,8 @@ Basic Config Commands | ||||
|    existing logging destinations. | ||||
| 
 | ||||
| .. index:: | ||||
|     single: no log stdout [LEVEL] | ||||
|     single: log stdout [LEVEL] | ||||
|    single: no log stdout [LEVEL] | ||||
|    single: log stdout [LEVEL] | ||||
| 
 | ||||
| .. clicmd:: [no] log stdout LEVEL | ||||
| 
 | ||||
| @ -100,8 +98,8 @@ Basic Config Commands | ||||
|    ``errors``. | ||||
| 
 | ||||
| .. index:: | ||||
|     single: no log file [FILENAME [LEVEL]] | ||||
|     single: log file FILENAME [LEVEL] | ||||
|    single: no log file [FILENAME [LEVEL]] | ||||
|    single: log file FILENAME [LEVEL] | ||||
| 
 | ||||
| .. clicmd:: [no] log file [FILENAME [LEVEL]] | ||||
| 
 | ||||
| @ -121,8 +119,8 @@ Basic Config Commands | ||||
|    information. | ||||
| 
 | ||||
| .. index:: | ||||
|     single: no log syslog [LEVEL] | ||||
|     single: log syslog [LEVEL] | ||||
|    single: no log syslog [LEVEL] | ||||
|    single: 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. | ||||
| 
 | ||||
| .. index:: | ||||
|     single: no log monitor [LEVEL] | ||||
|     single: log monitor [LEVEL] | ||||
|    single: no log monitor [LEVEL] | ||||
|    single: log monitor [LEVEL] | ||||
| 
 | ||||
| .. clicmd:: [no] log monitor [LEVEL] | ||||
| 
 | ||||
| @ -147,8 +145,8 @@ Basic Config Commands | ||||
|    terminal monitors. | ||||
| 
 | ||||
| .. index:: | ||||
|     single: no log facility [FACILITY] | ||||
|     single: log facility [FACILITY] | ||||
|    single: no log facility [FACILITY] | ||||
|    single: log facility [FACILITY] | ||||
| 
 | ||||
| .. clicmd:: [no] log facility [FACILITY] | ||||
| 
 | ||||
| @ -157,8 +155,8 @@ Basic Config Commands | ||||
|    the facility to the default ``daemon`` facility. | ||||
| 
 | ||||
| .. index:: | ||||
|     single: no log record-priority | ||||
|     single: log record-priority | ||||
|    single: no log record-priority | ||||
|    single: log record-priority | ||||
| 
 | ||||
| .. clicmd:: [no] log record-priority | ||||
| 
 | ||||
| @ -171,8 +169,8 @@ Basic Config Commands | ||||
|    the facility and level in the messages emitted. | ||||
| 
 | ||||
| .. index:: | ||||
|     single: log timestamp precision (0-6) | ||||
|     single: [no] log timestamp precision (0-6) | ||||
|    single: log timestamp precision (0-6) | ||||
|    single: [no] log timestamp precision (0-6) | ||||
| 
 | ||||
| .. clicmd:: [no] log timestamp precision [(0-6)] | ||||
| 
 | ||||
| @ -298,59 +296,59 @@ Terminal Mode Commands | ||||
| 
 | ||||
| .. clicmd:: write terminal | ||||
| 
 | ||||
|   Displays the current configuration to the vty interface. | ||||
|    Displays the current configuration to the vty interface. | ||||
| 
 | ||||
| .. index:: write file | ||||
| 
 | ||||
| .. clicmd:: write file | ||||
| 
 | ||||
|   Write current configuration to configuration file. | ||||
|    Write current configuration to configuration file. | ||||
| 
 | ||||
| .. index:: configure terminal | ||||
| 
 | ||||
| .. clicmd:: configure terminal | ||||
| 
 | ||||
|   Change to configuration mode. This command is the first step to | ||||
|   configuration. | ||||
|    Change to configuration mode. This command is the first step to | ||||
|    configuration. | ||||
| 
 | ||||
| .. index:: terminal length (0-512) | ||||
| 
 | ||||
| .. clicmd:: terminal length (0-512) | ||||
| 
 | ||||
|   Set terminal display length to ``(0-512)``. If length is 0, no | ||||
|   display control is performed. | ||||
|    Set terminal display length to ``(0-512)``. If length is 0, no | ||||
|    display control is performed. | ||||
| 
 | ||||
| .. index:: who | ||||
| 
 | ||||
| .. clicmd:: who | ||||
| 
 | ||||
|   Show a list of currently connected vty sessions. | ||||
|    Show a list of currently connected vty sessions. | ||||
| 
 | ||||
| .. index:: list | ||||
| 
 | ||||
| .. clicmd:: list | ||||
| 
 | ||||
|   List all available commands. | ||||
|    List all available commands. | ||||
| 
 | ||||
| .. index:: 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 | ||||
| 
 | ||||
| .. clicmd:: show logging | ||||
| 
 | ||||
|   Shows the current configuration of the logging system. This includes | ||||
|   the status of all logging destinations. | ||||
|    Shows the current configuration of the logging system. This includes | ||||
|    the status of all logging destinations. | ||||
| 
 | ||||
| .. index:: logmsg LEVEL MESSAGE | ||||
| 
 | ||||
| .. clicmd:: logmsg LEVEL MESSAGE | ||||
| 
 | ||||
|   Send a message to all logging destinations that are enabled for messages | ||||
|   of the given severity. | ||||
|    Send a message to all logging destinations that are enabled for messages | ||||
|    of the given severity. | ||||
| 
 | ||||
| .. _Common_Invocation_Options: | ||||
| 
 | ||||
| @ -360,56 +358,55 @@ Common Invocation Options | ||||
| 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, | ||||
|   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``. | ||||
|    Set the VTY local address to bind to. If set, the VTY socket will only | ||||
|    be bound to this address. | ||||
| 
 | ||||
|   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. | ||||
| .. option:: -P <port> | ||||
| .. option:: --vty-port <port> | ||||
| 
 | ||||
|    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 | ||||
|   be bound to this address. | ||||
|    Set the user and group to run as. | ||||
| 
 | ||||
| .. option:: -v | ||||
| .. option:: --version | ||||
| 
 | ||||
| .. clicmd:: -P port, --vty_port=port | ||||
| 
 | ||||
|   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. | ||||
| 
 | ||||
|    Print program version. | ||||
| 
 | ||||
| .. _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: | ||||
| 
 | ||||
| 
 | ||||
| .. 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 | ||||
|   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 | ||||
|   `INSTALL_PREFIX_MODULES` directory is searched for a module of | ||||
|   the given name; first with the daemon name prepended (e.g. ``zebra_mod`` | ||||
|   for ``mod``), then without the daemon name prepended. | ||||
|    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 | ||||
|    be loaded. If it does not contain a slash, the |INSTALL_PREFIX_MODULES| | ||||
|    directory is searched for a module of the given name; first with the daemon | ||||
|    name prepended (e.g. ``zebra_mod`` for ``mod``), then without the daemon | ||||
|    name prepended. | ||||
| 
 | ||||
|   This option is available on all daemons, though some daemons may not have | ||||
|   any modules available to be loaded. | ||||
|    This option is available on all daemons, though some daemons may not have | ||||
|    any modules available to be loaded. | ||||
| 
 | ||||
| The SNMP Module | ||||
| --------------- | ||||
| @ -446,15 +444,14 @@ for information on its usage. | ||||
| The FPM Module | ||||
| -------------- | ||||
| 
 | ||||
| If FPM is enabled during compile-time and installed as part of the package, | ||||
| the ``fpm`` module can be loaded for the *zebra* daemon. This | ||||
| provides the Forwarding Plane Manager ("FPM") API. | ||||
| If FPM is enabled during compile-time and installed as part of the package, the | ||||
| ``fpm`` module can be loaded for the *zebra* daemon. This provides the | ||||
| Forwarding Plane Manager ("FPM") API. | ||||
| 
 | ||||
| The module expects its argument to be either ``netlink`` or | ||||
| .. clicmd:: protobuf, specifying the encapsulation to use. `netlink` is the | ||||
| default, and `protobuf` may not be available if the module was built | ||||
| without protobuf support. Refer to :ref:`zebra_FIB_push_interface` for more | ||||
| information. | ||||
| The module expects its argument to be either ``netlink`` or ``protobuf``, | ||||
| specifying the encapsulation to use. ``netlink`` is the default, and | ||||
| ``protobuf`` may not be available if the module was built without protobuf | ||||
| support. Refer to :ref:`zebra_FIB_push_interface` for more information. | ||||
| 
 | ||||
| .. _Virtual_Terminal_Interfaces: | ||||
| 
 | ||||
| @ -505,7 +502,7 @@ is no VTY password, one cannot connect to the VTY interface at all. | ||||
|   Router# | ||||
| 
 | ||||
| 
 | ||||
| :kbd:`?` is very useful for looking up commands. | ||||
| :kbd:`?` and the ``find`` command are very useful for looking up commands. | ||||
| 
 | ||||
| .. _VTY_Modes: | ||||
| 
 | ||||
|  | ||||
| @ -55,7 +55,6 @@ customize the build to include or exclude specific features and dependencies. | ||||
| 
 | ||||
| .. option:: --disable-zebra | ||||
| 
 | ||||
| 
 | ||||
|    Do not build zebra daemon. | ||||
| 
 | ||||
| .. 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) | ||||
| 
 | ||||
| .. option:: --enable-multipath=`ARG` | ||||
| .. option:: --enable-multipath <ARG> | ||||
| 
 | ||||
|    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. | ||||
| @ -129,9 +128,9 @@ customize the build to include or exclude specific features and dependencies. | ||||
| 
 | ||||
| .. option:: --enable-gcc-rdynamic | ||||
| 
 | ||||
|    Pass the *-rdynamic* option to the linker driver.  This is in most | ||||
|    cases neccessary for getting usable backtraces.  This option defaults to on | ||||
|    if the compiler is detected as gcc, but giving an explicit enable/disable is | ||||
|    Pass the ``-rdynamic`` option to the linker driver.  This is in most cases | ||||
|    neccessary for getting usable backtraces.  This option defaults to on if the | ||||
|    compiler is detected as gcc, but giving an explicit enable/disable is | ||||
|    suggested. | ||||
| 
 | ||||
| .. 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 | ||||
| options to the configuration script. | ||||
| 
 | ||||
| .. option:: --prefix=`prefix` | ||||
| .. option:: --prefix <prefix> | ||||
| 
 | ||||
|    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 | ||||
|    configuration files will be installed here. | ||||
| 
 | ||||
| .. option:: --localstatedir=`dir` | ||||
| .. option:: --localstatedir <dir> | ||||
| 
 | ||||
|    Configure zebra to use `dir` for local state files, such | ||||
|    as pid files and unix sockets. | ||||
|    Configure zebra to use `dir` for local state files, such as pid files and | ||||
|    unix sockets. | ||||
| 
 | ||||
| .. _Least-Privilege_support: | ||||
| 
 | ||||
| Least-Privilege support | ||||
| Least-Privilege Support | ||||
| ----------------------- | ||||
| 
 | ||||
| .. 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 | ||||
| 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` | ||||
|    in normal operation. | ||||
|    Switch to user `user shortly after startup, and run as user `user` in normal | ||||
|    operation. | ||||
| 
 | ||||
| .. option:: --enable-group=`group` | ||||
| .. option:: --enable-group <user> | ||||
| 
 | ||||
|    Switch real and effective group to `group` shortly after | ||||
|    startup. | ||||
|    Switch real and effective group to `group` shortly after startup. | ||||
| 
 | ||||
| .. option:: --enable-vty-group=`group` | ||||
| .. option:: --enable-vty-group <group> | ||||
| 
 | ||||
|    Create Unix Vty sockets (for use with vtysh) with group owndership set to | ||||
|    `group`. This allows one to create a seperate group which is | ||||
|    restricted to accessing only the Vty sockets, hence allowing one to | ||||
|    delegate this group to individual users, or to run vtysh setgid to | ||||
|    this group. | ||||
|    `group`. This allows one to create a seperate group which is restricted to | ||||
|    accessing only the vty sockets, hence allowing one to delegate this group to | ||||
|    individual users, or to run vtysh setgid to this group. | ||||
| 
 | ||||
| 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 | ||||
| @ -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 | ||||
| or upper. | ||||
| 
 | ||||
| *inet6-apps* | ||||
| - inet6-apps | ||||
| 
 | ||||
|   The `inet6-apps` package includes basic IPv6 related libraries such | ||||
|   as `inet_ntop` and `inet_pton`.  Some basic IPv6 programs such | ||||
|   as *ping*, *ftp*, and *inetd* are also | ||||
|   included. The `inet-apps` can be found at | ||||
|   `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 | ||||
|   utility.  It contains *ifconfig*, *route*, *netstat*, and other tools. | ||||
|   `net-tools` may be found at http://www.tazenda.demon.co.uk/phil/net-tools/. | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
| 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 | ||||
| different routing protocols. | ||||
| 
 | ||||
| @ -16,257 +16,268 @@ Invoking zebra | ||||
| Besides the common invocation options (:ref:`Common_Invocation_Options`), the | ||||
| *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* | ||||
|   Runs in batch mode.  *zebra* parses configuration file and terminates | ||||
|   immediately. | ||||
| .. option:: -k | ||||
| .. option:: --keep_kernel | ||||
| 
 | ||||
|    When zebra starts up, don't delete old self inserted routes. | ||||
| 
 | ||||
| *-k* | ||||
| 
 | ||||
| *--keep_kernel* | ||||
|   When zebra starts up, don't delete old self inserted routes. | ||||
| 
 | ||||
| 
 | ||||
| *-r* | ||||
| 
 | ||||
| *--retain* | ||||
|   When program terminates, retain routes added by zebra. | ||||
| .. option:: -r | ||||
| .. option:: --retain | ||||
| 
 | ||||
|    When program terminates, retain routes added by zebra. | ||||
| 
 | ||||
| .. _Interface_Commands: | ||||
| 
 | ||||
| Interface 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} {} | ||||
| .. index:: {Interface Command} {no shutdown} {} | ||||
| .. clicmd:: shutdown | ||||
| .. index:: no shutdown | ||||
| 
 | ||||
| {Interface Command} {no shutdown} {} | ||||
|     Up or down the current interface. | ||||
| .. clicmd:: no shutdown | ||||
| 
 | ||||
| .. index:: {Interface Command} {ip address `address/prefix`} {} | ||||
|    Up or down the current interface. | ||||
| 
 | ||||
| {Interface Command} {ip address `address/prefix`} {} | ||||
| .. index:: {Interface Command} {ipv6 address `address/prefix`} {} | ||||
| .. index:: ip address ADDRESS/PREFIX | ||||
| 
 | ||||
| {Interface Command} {ipv6 address `address/prefix`} {} | ||||
| .. index:: {Interface Command} {no ip address `address/prefix`} {} | ||||
| .. clicmd:: ip address ADDRESS/PREFIX | ||||
| .. index:: ipv6 address ADDRESS/PREFIX | ||||
| 
 | ||||
| {Interface Command} {no ip address `address/prefix`} {} | ||||
| .. index:: {Interface Command} {no ipv6 address `address/prefix`} {} | ||||
| .. clicmd:: ipv6 address ADDRESS/PREFIX | ||||
| .. index:: no ip address ADDRESS/PREFIX | ||||
| 
 | ||||
| {Interface Command} {no ipv6 address `address/prefix`} {} | ||||
|           Set the IPv4 or IPv6 address/prefix for the interface. | ||||
| .. clicmd:: no ip address ADDRESS/PREFIX | ||||
| .. 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`} {} | ||||
| .. index:: {Interface Command} {no ip address `local-addr` peer `peer-addr/prefix`} {} | ||||
|    Set the IPv4 or IPv6 address/prefix for the interface. | ||||
| 
 | ||||
| {Interface Command} {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.) | ||||
| .. index:: ip address LOCAL-ADDR peer PEER-ADDR/PREFIX | ||||
| 
 | ||||
|             `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. | ||||
| .. clicmd:: ip address LOCAL-ADDR peer PEER-ADDR/PREFIX | ||||
| .. index:: no ip address LOCAL-ADDR peer PEER-ADDR/PREFIX | ||||
| 
 | ||||
| .. 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} {} | ||||
| .. index:: {Interface Command} {no ip address `address/prefix` secondary} {} | ||||
|    Configure an IPv4 Pointopoint address on the interface. (The concept of PtP | ||||
|    addressing does not exist for IPv6.) | ||||
| 
 | ||||
| {Interface Command} {no ip address `address/prefix` secondary} {} | ||||
|               Set the secondary flag for this address. This causes ospfd to not treat the | ||||
|               address as a distinct subnet. | ||||
|    `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. | ||||
| 
 | ||||
| .. index:: {Interface Command} {description `description` ...} {} | ||||
| .. index:: ip address ADDRESS/PREFIX secondary | ||||
| 
 | ||||
| {Interface Command} {description `description` ...} {} | ||||
|               Set description for the interface. | ||||
| .. clicmd:: ip address ADDRESS/PREFIX secondary | ||||
| .. index:: no ip address ADDRESS/PREFIX secondary | ||||
| 
 | ||||
| .. index:: {Interface Command} {multicast} {} | ||||
| .. clicmd:: no ip address ADDRESS/PREFIX secondary | ||||
| 
 | ||||
| {Interface Command} {multicast} {} | ||||
| .. index:: {Interface Command} {no multicast} {} | ||||
|    Set the secondary flag for this address. This causes ospfd to not treat the | ||||
|    address as a distinct subnet. | ||||
| 
 | ||||
| {Interface Command} {no multicast} {} | ||||
|                 Enable or disables multicast flag for the interface. | ||||
| .. index:: description DESCRIPTION ... | ||||
| 
 | ||||
| .. index:: {Interface Command} {bandwidth (1-10000000)} {} | ||||
| .. clicmd:: description DESCRIPTION ... | ||||
| 
 | ||||
| {Interface Command} {bandwidth (1-10000000)} {} | ||||
| .. index:: {Interface Command} {no bandwidth (1-10000000)} {} | ||||
|    Set description for the interface. | ||||
| 
 | ||||
| {Interface Command} {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:: multicast | ||||
| 
 | ||||
| .. index:: {Interface Command} {link-detect} {} | ||||
| .. clicmd:: multicast | ||||
| .. index:: no multicast | ||||
| 
 | ||||
| {Interface Command} {link-detect} {} | ||||
| .. index:: {Interface Command} {no link-detect} {} | ||||
| .. clicmd:: no multicast | ||||
| 
 | ||||
| {Interface Command} {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. | ||||
|    Enable or disables multicast flag for the interface. | ||||
| 
 | ||||
| .. index:: bandwidth (1-10000000) | ||||
| 
 | ||||
| .. 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 | ||||
| ------------------------ | ||||
| 
 | ||||
| .. index:: {Interface Command} {link-params} {} | ||||
| .. index:: link-params | ||||
| .. clicmd:: link-params | ||||
| 
 | ||||
| {Interface Command} {link-params} {} | ||||
| .. index:: {Interface Command} {no link-param} {} | ||||
| .. index:: 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 activate the link parameters, | ||||
|     and consequently Traffic Engineering on this interface. MPLS-TE must be enable at the OSPF (:ref:`OSPF_Traffic_Engineering`) | ||||
|     or ISIS (:ref:`ISIS_Traffic_Engineering`) router level in complement to this. | ||||
|     Disable link parameters for this interface. | ||||
|    Enter into the link parameters sub node. At least 'enable' must be set to | ||||
|    activate the link parameters, and consequently Traffic Engineering on this | ||||
|    interface. MPLS-TE must be enable at the OSPF | ||||
|    (:ref:`OSPF_Traffic_Engineering`) or ISIS (:ref:`ISIS_Traffic_Engineering`) | ||||
|    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 in conformity to RFC3630 (OSPF) | ||||
|             or RFC5305 (ISIS). | ||||
|             There are respectively the TE Metric (different from the OSPF or ISIS metric), Maximum Bandwidth (interface speed | ||||
|             by default), Maximum Reservable Bandwidth, Unreserved Bandwidth for each 0-7 priority and Admin Group (ISIS) or | ||||
|             Resource Class/Color (OSPF). | ||||
|    These commands specifies the Traffic Engineering parameters of the interface | ||||
|    in conformity to RFC3630 (OSPF) or RFC5305 (ISIS).  There are respectively | ||||
|    the TE Metric (different from the OSPF or ISIS metric), Maximum Bandwidth | ||||
|    (interface speed by default), Maximum Reservable Bandwidth, Unreserved | ||||
|    Bandwidth for each 0-7 priority and Admin Group (ISIS) or Resource | ||||
|    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 interface in conformity to | ||||
|                       draft-ietf-ospf-te-metrics-extension-05.txt and draft-ietf-isis-te-metrics-extension-03.txt. There are | ||||
|                       respectively the delay, jitter, loss, available bandwidth, reservable bandwidth and utilized bandwidth. | ||||
|    These command specifies additionnal Traffic Engineering parameters of the | ||||
|    interface in conformity to draft-ietf-ospf-te-metrics-extension-05.txt and | ||||
|    draft-ietf-isis-te-metrics-extension-03.txt. There are respectively the | ||||
|    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. | ||||
|                       Delays and delay variation are express in micro-second (µs). Loss is specified in `percentage` ranging | ||||
|                       from 0 to 50.331642% by step of 0.000003. | ||||
|    Note that BANDWIDTH is specified in IEEE floating point format and express | ||||
|    in Bytes/second.  Delays and delay variation are express in micro-second | ||||
|    (µ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 for InterASv2 link in OSPF (RFC5392). | ||||
|                         Note that this option is not yet supported for ISIS (RFC5316). | ||||
|    Specifies the remote ASBR IP address and Autonomous System (AS) number | ||||
|    for InterASv2 link in OSPF (RFC5392).  Note that this option is not yet | ||||
|    supported for ISIS (RFC5316). | ||||
| 
 | ||||
| .. _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. | ||||
| 
 | ||||
| .. 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 for the prefix.  When `gateway` is | ||||
|   A.B.C.D format.  It is taken as a IPv4 address gateway.  Otherwise it | ||||
|   is treated as an interface name. If the interface name is `null0` then | ||||
|   zebra installs a blackhole route. | ||||
|    NETWORK is destination prefix with format of A.B.C.D/M. GATEWAY is gateway | ||||
|    for the prefix. When GATEWAY is A.B.C.D format. It is taken as a IPv4 | ||||
|    address gateway. Otherwise it 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 null0 | ||||
|    :: | ||||
|       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 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. | ||||
|   Second one defines the same prefix but with gateway to interface ppp0. The | ||||
|   third install a blackhole route. | ||||
|    These statements are equivalent to those in the previous example. | ||||
| 
 | ||||
| .. 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`} {} | ||||
|   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. | ||||
|    Installs the route with the specified distance. | ||||
| 
 | ||||
| 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.3 | ||||
|   ip route 10.0.0.1/32 eth0 | ||||
|    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 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 | ||||
|   S>  10.0.0.1/32 [1/0] via 10.0.0.2 inactive | ||||
|                         via 10.0.0.3 inactive | ||||
|     *                   is directly connected, eth0 | ||||
|    zebra> show ip route | ||||
|    S>  10.0.0.1/32 [1/0] via 10.0.0.2 inactive | ||||
|        via 10.0.0.3 inactive | ||||
|      *       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.3 | ||||
|   ip route 10.0.0.0/8 null0 255 | ||||
|    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 null0 255 | ||||
| 
 | ||||
| 
 | ||||
| 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 | ||||
|   Routing entry for 10.0.0.0/8 | ||||
|     Known via "static", distance 1, metric 0 | ||||
|       10.0.0.2 inactive | ||||
|       10.0.0.3 inactive | ||||
|    zebra> show ip route 10.0.0.0/8 | ||||
|    Routing entry for 10.0.0.0/8 | ||||
|      Known via "static", distance 1, metric 0 | ||||
|        10.0.0.2 inactive | ||||
|        10.0.0.3 inactive | ||||
| 
 | ||||
|   Routing entry for 10.0.0.0/8 | ||||
|     Known via "static", distance 255, metric 0 | ||||
|       directly connected, Null0 | ||||
|    Routing entry for 10.0.0.0/8 | ||||
|      Known via "static", distance 255, metric 0 | ||||
|        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:: Command {ipv6 route `network` `gateway` `distance`} {} | ||||
| .. index:: 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:: Command {ipv6 route `network` from `srcprefix` `gateway` `distance`} {} | ||||
| .. index:: 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 | ||||
|       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 longest-prefix match is "more important" than source LPM, e.g. | ||||
|       *"2001:db8:1::/64 from 2001:db8::/48"* will win over | ||||
|       *"2001:db8::/48 from 2001:db8:1::/64"* if both match. | ||||
|    Install a static source-specific route. These routes are currently supported | ||||
|    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 longest-prefix match is "more important" than source LPM, e.g. | ||||
|    *"2001:db8:1::/64 from 2001:db8::/48"* will win over | ||||
|    *"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 | ||||
|       for kernels supporting multiple routing tables (like GNU/Linux 2.2.x | ||||
|       and later).  After setting `tableno` with this command, | ||||
|       static routes defined after this are added to the specified table. | ||||
|    Select the primary kernel routing table to be used. This only works | ||||
|    for kernels supporting multiple routing tables (like GNU/Linux 2.2.x | ||||
|    and later). After setting TABLENO with this command, | ||||
|    static routes defined after this are added to the specified table. | ||||
| 
 | ||||
| .. _Multicast_RIB_Commands: | ||||
| 
 | ||||
| @ -344,135 +355,137 @@ Multicast RIB Commands | ||||
| ====================== | ||||
| 
 | ||||
| The Multicast RIB provides a separate table of unicast destinations which | ||||
| is used for Multicast Reverse Path Forwarding decisions.  It is used with | ||||
| is used for Multicast Reverse Path Forwarding decisions. It is used with | ||||
| a multicast source's IP address, hence contains not multicast group | ||||
| addresses but unicast addresses. | ||||
| 
 | ||||
| This table is fully separate from the default unicast table.  However, | ||||
| This table is fully separate from the default unicast table. However, | ||||
| RPF lookup can include the unicast table. | ||||
| 
 | ||||
| WARNING: RPF lookup results are non-responsive in this version of FRR, | ||||
| i.e. multicast routing does not actively react to changes in underlying | ||||
| 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:: Command {no ip multicast rpf-lookup-mode [`mode`]} {} | ||||
| .. index:: 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* | ||||
|       Performs the lookup on the Unicast RIB.  The Multicast RIB is never used. | ||||
| mrib-then-urib | ||||
|    Tries to perform the lookup on the Multicast RIB. If any route is found, | ||||
|    that route is used. Otherwise, the Unicast RIB is tried. | ||||
| 
 | ||||
| *mrib-only* | ||||
|       Performs the lookup on the Multicast RIB.  The Unicast RIB is never used. | ||||
| lower-distance | ||||
|    Performs a lookup on the Multicast RIB and Unicast RIB each. The result | ||||
|    with the lower administrative distance is used;  if they're equal, the | ||||
|    Multicast RIB takes precedence. | ||||
| 
 | ||||
| *mrib-then-urib* | ||||
|       Tries to perform the lookup on the Multicast RIB.  If any route is found, | ||||
|       that route is used.  Otherwise, the Unicast RIB is tried. | ||||
| longer-prefix | ||||
|    Performs a lookup on the Multicast RIB and Unicast RIB each. The result | ||||
|    with the longer prefix length is used;  if they're equal, the | ||||
|    Multicast RIB takes precedence. | ||||
| 
 | ||||
| *lower-distance* | ||||
|       Performs a lookup on the Multicast RIB and Unicast RIB each.  The result | ||||
|       with the lower administrative distance is used;  if they're equal, the | ||||
|       Multicast RIB takes precedence. | ||||
|    The `mrib-then-urib` setting is the default behavior if nothing is | ||||
|    configured. If this is the desired behavior, it should be explicitly | ||||
|    configured to make the configuration immune against possible changes in | ||||
|    what the default behavior is. | ||||
| 
 | ||||
| *longer-prefix* | ||||
|       Performs a lookup on the Multicast RIB and Unicast RIB each.  The result | ||||
|       with the longer prefix length is used;  if they're equal, the | ||||
|       Multicast RIB takes precedence. | ||||
| .. warning:: | ||||
|    Unreachable routes do not receive special treatment and do not cause | ||||
|    fallback to a second lookup. | ||||
| 
 | ||||
|     The `mrib-then-urib` setting is the default behavior if nothing is | ||||
|     configured.  If this is the desired behavior, it should be explicitly | ||||
|     configured to make the configuration immune against possible changes in | ||||
|     what the default behavior is. | ||||
| .. index:: show ip rpf ADDR | ||||
| .. clicmd:: show ip rpf ADDR | ||||
| 
 | ||||
|     WARNING: Unreachable routes do not receive special treatment and do not | ||||
|     cause fallback to a second lookup. | ||||
|    Performs a Multicast RPF lookup, as configured with ``ip multicast | ||||
|    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 | ||||
|       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 | ||||
|     Unicast RIB entry for 192.0.2.0/24 with a gateway of 198.51.100.1. | ||||
|    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. | ||||
| 
 | ||||
| .. 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 | ||||
|     configured RPF lookup mode, the Multicast RIB may be printed yet not | ||||
|     used at all. | ||||
|    Prints the entire Multicast RIB. Note that this is independent of the | ||||
|    configured RPF lookup mode, the Multicast RIB may be printed yet not | ||||
|    used at all. | ||||
| 
 | ||||
| .. 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:: Command {no ip mroute `prefix` `nexthop` [`distance`]} {} | ||||
| .. index:: 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 *ip route* command, except that it inserts the route in the | ||||
|       Multicast RIB instead of the Unicast RIB. | ||||
|    Adds a static route entry to the Multicast RIB. This performs exactly as the | ||||
|    ``ip route`` command, except that it inserts the route in the Multicast RIB | ||||
|    instead of the Unicast RIB. | ||||
| 
 | ||||
| .. _zebra_Route_Filtering: | ||||
| 
 | ||||
| zebra Route Filtering | ||||
| ===================== | ||||
| 
 | ||||
| Zebra supports *prefix-list* and *route-map* to match | ||||
| routes received from other frr components.  The | ||||
| *permit*/*deny* facilities provided by these commands | ||||
| can be used to filter which routes zebra will install in the kernel. | ||||
| Zebra supports :dfn:`prefix-list`s and :ref:`Route_Map`s to match routes | ||||
| received from other frr components. The permit/deny facilities provided by | ||||
| these commands can be used to filter which routes zebra will install in the | ||||
| 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 be **any** or one of | ||||
|   **system**, | ||||
|   **kernel**, | ||||
|   **connected**, | ||||
|   **static**, | ||||
|   **rip**, | ||||
|   **ripng**, | ||||
|   **ospf**, | ||||
|   **ospf6**, | ||||
|   **isis**, | ||||
|   **bgp**, | ||||
|   **hsls**. | ||||
|   Apply a route-map filter to routes for the specified protocol. PROTOCOL can | ||||
|   be **any** or one of | ||||
| 
 | ||||
| .. index:: {Route Map} {set src `address`} | ||||
|   - system, | ||||
|   - kernel, | ||||
|   - connected, | ||||
|   - static, | ||||
|   - rip, | ||||
|   - ripng, | ||||
|   - ospf, | ||||
|   - ospf6, | ||||
|   - isis, | ||||
|   - bgp, | ||||
|   - hsls. | ||||
| 
 | ||||
| {Route Map} {set src `address`} | ||||
|   Within a route-map, set the preferred source address for matching routes | ||||
|   when installing in the kernel. | ||||
| .. index:: set src ADDRESS | ||||
| .. clicmd:: set src ADDRESS | ||||
| 
 | ||||
|    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 | ||||
|   that sets the preferred source address, and applies the route-map to all | ||||
|   *rip* routes. | ||||
|    ip prefix-list ANY permit 0.0.0.0/0 le 32 | ||||
|    route-map RM1 permit 10 | ||||
|         match ip address prefix-list ANY | ||||
|         set src 10.0.0.1 | ||||
| 
 | ||||
|   ip prefix-list ANY permit 0.0.0.0/0 le 32 | ||||
|   route-map RM1 permit 10 | ||||
|        match ip address prefix-list ANY | ||||
|        set src 10.0.0.1 | ||||
| 
 | ||||
|   ip protocol rip route-map RM1 | ||||
|    ip protocol rip route-map RM1 | ||||
| 
 | ||||
| 
 | ||||
| .. _zebra_FIB_push_interface: | ||||
| @ -482,7 +495,7 @@ zebra FIB push interface | ||||
| 
 | ||||
| Zebra supports a 'FIB push' interface that allows an external | ||||
| 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`. | ||||
| 
 | ||||
| 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. | ||||
| 
 | ||||
| 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 | ||||
| sending messages containing routes over the socket to the FPM. Zebra | ||||
| 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 | ||||
| advantages over netlink: | ||||
| 
 | ||||
| * | ||||
|   Code for serialization/deserialization is generated | ||||
|   automatically. This reduces the likelihood of bugs, allows third-party | ||||
|   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 | ||||
| - Code for serialization/deserialization is generated automatically. This | ||||
|   reduces the likelihood of bugs, allows third-party 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 | ||||
|   independently. | ||||
| 
 | ||||
| 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 | ||||
| ============================ | ||||
| 
 | ||||
| .. 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 | ||||
|     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 | ||||
|     S  0.0.0.0/0              203.181.89.1 | ||||
|     C* 127.0.0.0/8            lo | ||||
|     K* 0.0.0.0/0        203.181.89.241 | ||||
|     S  0.0.0.0/0        203.181.89.1 | ||||
|     C* 127.0.0.0/8      lo | ||||
|     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:: Command {show interface} {} | ||||
| .. index:: show interface | ||||
| .. clicmd:: show interface | ||||
| 
 | ||||
| Command {show interface} {} | ||||
| .. index:: Command {show ip prefix-list [`name`]} {} | ||||
| .. index:: show ip prefix-list [NAME] | ||||
| .. clicmd:: show ip prefix-list [NAME] | ||||
| 
 | ||||
| Command {show ip prefix-list [`name`]} {} | ||||
| .. index:: Command {show route-map [`name`]} {} | ||||
| .. index:: show route-map [NAME] | ||||
| .. clicmd:: show route-map [NAME] | ||||
| 
 | ||||
| Command {show route-map [`name`]} {} | ||||
| .. index:: Command {show ip protocol} {} | ||||
| .. index:: show ip protocol | ||||
| .. clicmd:: show ip protocol | ||||
| 
 | ||||
| Command {show ip protocol} {} | ||||
| .. index:: Command {show ipforward} {} | ||||
| .. index:: show ipforward | ||||
| .. clicmd:: show ipforward | ||||
| 
 | ||||
| Command {show ipforward} {} | ||||
|   Display whether the host's IP forwarding function is enabled or not. | ||||
|   Almost any UNIX kernel can be configured with IP forwarding disabled. | ||||
|   If so, the box can't work as a router. | ||||
|    Display whether the host's IP forwarding function is enabled or not. | ||||
|    Almost any UNIX kernel can be configured with IP forwarding disabled. | ||||
|    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 | ||||
|   of routes, neighbor updates, and LSP's into the kernel. | ||||
|    Display various statistics related to the installation and deletion | ||||
|    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 | ||||
|   optional Forwarding Plane Manager (FPM) component. | ||||
|    Display statistics related to the zebra code that interacts with the | ||||
|    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 | ||||
|   optional Forwarding Plane Manager (FPM) component. | ||||
|    Reset statistics related to the zebra code that interacts with the | ||||
|    optional Forwarding Plane Manager (FPM) component. | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Quentin Young
						Quentin Young