mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-12 16:00:25 +00:00
doc: manually finish conversion
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
parent
d1a242fdbf
commit
c1a54c054d
@ -1,11 +1,12 @@
|
|||||||
|
.. _packet-binary-dump-format:
|
||||||
|
|
||||||
Packet Binary Dump Format
|
Packet Binary Dump Format
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
Packet Binary Dump Format
|
Packet Binary Dump Format
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
FRR can dump routing protocol packet into file with a binary format
|
FRR can dump routing protocol packet into file with a binary format.
|
||||||
(@pxref{Dump BGP packets and table}).
|
|
||||||
|
|
||||||
It seems to be better that we share the MRT's header format for
|
It seems to be better that we share the MRT's header format for
|
||||||
backward compatibility with MRT's dump logs. We should also define the
|
backward compatibility with MRT's dump logs. We should also define the
|
||||||
|
1284
doc/user/bgp.rst
1284
doc/user/bgp.rst
File diff suppressed because it is too large
Load Diff
@ -18,16 +18,14 @@ known topology.
|
|||||||
Starting and Stopping eigrpd
|
Starting and Stopping eigrpd
|
||||||
============================
|
============================
|
||||||
|
|
||||||
The default configuration file name of *eigrpd*'s is
|
The default configuration file name of *eigrpd*'s is :file:`eigrpd.conf`. When
|
||||||
:file:`eigrpd.conf`. When invocation *eigrpd* searches directory
|
invocation *eigrpd* searches directory |INSTALL_PREFIX_ETC|. If
|
||||||
|INSTALL_PREFIX_ETC|. If :file:`eigrpd.conf` is not there next
|
:file:`eigrpd.conf` is not there next search current directory. If an
|
||||||
search current directory. If an integrated config is specified
|
integrated config is specified configuration is written into :file:`frr.conf`.
|
||||||
configuration is written into frr.conf
|
|
||||||
|
|
||||||
The EIGRP protocol requires interface information
|
The EIGRP protocol requires interface information maintained by *zebra* daemon.
|
||||||
maintained by *zebra* daemon. So running *zebra*
|
So running *zebra* is mandatory to run *eigrpd*. Thus minimum sequence for
|
||||||
is mandatory to run *eigrpd*. Thus minimum sequence for running
|
running EIGRP is:
|
||||||
EIGRP is like below:
|
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -37,8 +35,10 @@ EIGRP is like below:
|
|||||||
|
|
||||||
Please note that *zebra* must be invoked before *eigrpd*.
|
Please note that *zebra* must be invoked before *eigrpd*.
|
||||||
|
|
||||||
To stop *eigrpd*. Please use @command{kill `cat
|
To stop *eigrpd*, please use ::
|
||||||
/var/run/eigrpd.pid`}. Certain signals have special meanings to *eigrpd*.
|
kill `cat /var/run/eigrpd.pid`
|
||||||
|
|
||||||
|
Certain signals have special meanings to *eigrpd*.
|
||||||
|
|
||||||
+------------------+-----------------------------------------------------------+
|
+------------------+-----------------------------------------------------------+
|
||||||
| Signal | Meaning |
|
| Signal | Meaning |
|
||||||
@ -65,23 +65,23 @@ EIGRP Configuration
|
|||||||
===================
|
===================
|
||||||
|
|
||||||
.. index:: router eigrp (1-65535)
|
.. index:: router eigrp (1-65535)
|
||||||
|
|
||||||
.. clicmd:: router eigrp (1-65535)
|
.. clicmd:: router eigrp (1-65535)
|
||||||
|
|
||||||
The `router eigrp` command is necessary to enable EIGRP. To disable EIGRP,
|
The `router eigrp` command is necessary to enable EIGRP. To disable EIGRP,
|
||||||
use the `no router eigrp (1-65535)` command. EIGRP must be enabled before
|
use the `no router eigrp (1-65535)` command. EIGRP must be enabled before
|
||||||
carrying out any of the EIGRP commands.
|
carrying out any of the EIGRP commands.
|
||||||
|
|
||||||
.. index:: no router eigrp (1-65535)
|
.. index:: no router eigrp (1-65535)
|
||||||
|
|
||||||
.. clicmd:: no router eigrp (1-65535)
|
.. clicmd:: no router eigrp (1-65535)
|
||||||
|
|
||||||
Disable EIGRP.
|
Disable EIGRP.
|
||||||
|
|
||||||
.. index:: network NETWORK
|
.. index:: network NETWORK
|
||||||
|
|
||||||
.. clicmd:: network NETWORK
|
.. clicmd:: network NETWORK
|
||||||
.. index:: no network NETWORK
|
|
||||||
|
|
||||||
|
.. index:: no network NETWORK
|
||||||
.. clicmd:: no network NETWORK
|
.. clicmd:: no network NETWORK
|
||||||
|
|
||||||
Set the EIGRP enable interface by `network`. The interfaces which
|
Set the EIGRP enable interface by `network`. The interfaces which
|
||||||
have addresses matching with `network` are enabled.
|
have addresses matching with `network` are enabled.
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ EIGRP Configuration
|
|||||||
Below is very simple EIGRP configuration. Interface `eth0` and
|
Below is very simple EIGRP configuration. Interface `eth0` and
|
||||||
interface which address match to `10.0.0.0/8` are EIGRP enabled.
|
interface which address match to `10.0.0.0/8` are EIGRP enabled.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
!
|
!
|
||||||
router eigrp 1
|
router eigrp 1
|
||||||
@ -102,19 +102,17 @@ EIGRP Configuration
|
|||||||
!
|
!
|
||||||
|
|
||||||
|
|
||||||
Passive interface
|
|
||||||
|
|
||||||
.. index:: passive-interface (IFNAME|default)
|
.. index:: passive-interface (IFNAME|default)
|
||||||
|
|
||||||
.. clicmd:: passive-interface (IFNAME|default)
|
.. clicmd:: passive-interface (IFNAME|default)
|
||||||
.. index:: no passive-interface IFNAME
|
|
||||||
|
|
||||||
|
.. index:: no passive-interface IFNAME
|
||||||
.. clicmd:: no passive-interface IFNAME
|
.. clicmd:: no passive-interface IFNAME
|
||||||
|
|
||||||
This command sets the specified interface to passive mode. On passive mode
|
This command sets the specified interface to passive mode. On passive mode
|
||||||
interface, all receiving packets are ignored and eigrpd does
|
interface, all receiving packets are ignored and eigrpd does not send either
|
||||||
not send either multicast or unicast EIGRP packets except to EIGRP neighbors
|
multicast or unicast EIGRP packets except to EIGRP neighbors specified with
|
||||||
specified with `neighbor` command. The interface may be specified
|
`neighbor` command. The interface may be specified as `default` to make
|
||||||
as `default` to make eigrpd default to passive on all interfaces.
|
eigrpd default to passive on all interfaces.
|
||||||
|
|
||||||
The default is to be passive on all interfaces.
|
The default is to be passive on all interfaces.
|
||||||
|
|
||||||
@ -124,70 +122,66 @@ How to Announce EIGRP route
|
|||||||
===========================
|
===========================
|
||||||
|
|
||||||
.. index:: redistribute kernel
|
.. index:: redistribute kernel
|
||||||
|
|
||||||
.. clicmd:: redistribute kernel
|
.. clicmd:: redistribute kernel
|
||||||
|
|
||||||
.. index:: redistribute kernel metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
.. index:: redistribute kernel metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
||||||
|
|
||||||
.. clicmd:: redistribute kernel metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
.. clicmd:: redistribute kernel metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
||||||
.. index:: no redistribute kernel
|
|
||||||
|
|
||||||
|
.. index:: no redistribute kernel
|
||||||
.. clicmd:: no redistribute kernel
|
.. clicmd:: no redistribute kernel
|
||||||
`redistribute kernel` redistributes routing information from
|
|
||||||
kernel route entries into the EIGRP tables. `no redistribute kernel`
|
`redistribute kernel` redistributes routing information from kernel route
|
||||||
disables the routes.
|
entries into the EIGRP tables. `no redistribute kernel` disables the routes.
|
||||||
|
|
||||||
.. index:: redistribute static
|
.. index:: redistribute static
|
||||||
|
|
||||||
.. clicmd:: redistribute static
|
.. clicmd:: redistribute static
|
||||||
|
|
||||||
.. index:: redistribute static metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
.. index:: redistribute static metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
||||||
|
|
||||||
.. clicmd:: redistribute static metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
.. clicmd:: redistribute static metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
||||||
.. index:: no redistribute static
|
|
||||||
|
|
||||||
|
.. index:: no redistribute static
|
||||||
.. clicmd:: no redistribute static
|
.. clicmd:: no redistribute static
|
||||||
`redistribute static` redistributes routing information from
|
|
||||||
static route entries into the EIGRP tables. `no redistribute static`
|
`redistribute static` redistributes routing information from static route
|
||||||
disables the routes.
|
entries into the EIGRP tables. `no redistribute static` disables the routes.
|
||||||
|
|
||||||
.. index:: redistribute connected
|
.. index:: redistribute connected
|
||||||
|
|
||||||
.. clicmd:: redistribute connected
|
.. clicmd:: redistribute connected
|
||||||
|
|
||||||
.. index:: redistribute connected metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
.. index:: redistribute connected metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
||||||
|
|
||||||
.. clicmd:: redistribute connected metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
.. clicmd:: redistribute connected metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
||||||
.. index:: no redistribute connected
|
|
||||||
|
|
||||||
|
.. index:: no redistribute connected
|
||||||
.. clicmd:: no redistribute connected
|
.. clicmd:: no redistribute connected
|
||||||
|
|
||||||
Redistribute connected routes into the EIGRP tables. `no redistribute
|
Redistribute connected routes into the EIGRP tables. `no redistribute
|
||||||
connected` disables the connected routes in the EIGRP tables. This command
|
connected` disables the connected routes in the EIGRP tables. This command
|
||||||
redistribute connected of the interface which EIGRP disabled. The connected
|
redistribute connected of the interface which EIGRP disabled. The connected
|
||||||
route on EIGRP enabled interface is announced by default.
|
route on EIGRP enabled interface is announced by default.
|
||||||
|
|
||||||
.. index:: redistribute ospf
|
.. index:: redistribute ospf
|
||||||
|
|
||||||
.. clicmd:: redistribute ospf
|
.. clicmd:: redistribute ospf
|
||||||
|
|
||||||
.. index:: redistribute ospf metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
.. index:: redistribute ospf metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
||||||
|
|
||||||
.. clicmd:: redistribute ospf metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
.. clicmd:: redistribute ospf metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
||||||
.. index:: no redistribute ospf
|
|
||||||
|
|
||||||
|
.. index:: no redistribute ospf
|
||||||
.. clicmd:: no redistribute ospf
|
.. clicmd:: no redistribute ospf
|
||||||
|
|
||||||
`redistribute ospf` redistributes routing information from ospf route
|
`redistribute ospf` redistributes routing information from ospf route
|
||||||
entries into the EIGRP tables. `no redistribute ospf` disables the
|
entries into the EIGRP tables. `no redistribute ospf` disables the routes.
|
||||||
routes.
|
|
||||||
|
|
||||||
.. index:: redistribute bgp
|
.. index:: redistribute bgp
|
||||||
|
|
||||||
.. clicmd:: redistribute bgp
|
.. clicmd:: redistribute bgp
|
||||||
|
|
||||||
.. index:: redistribute bgp metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
.. index:: redistribute bgp metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
||||||
|
|
||||||
.. clicmd:: redistribute bgp metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
.. clicmd:: redistribute bgp metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
|
||||||
.. index:: no redistribute bgp
|
|
||||||
|
|
||||||
|
.. index:: no redistribute bgp
|
||||||
.. clicmd:: no redistribute bgp
|
.. clicmd:: no redistribute bgp
|
||||||
`redistribute bgp` redistributes routing information from
|
|
||||||
bgp route entries into the EIGRP tables. `no redistribute bgp`
|
`redistribute bgp` redistributes routing information from bgp route entries
|
||||||
disables the routes.
|
into the EIGRP tables. `no redistribute bgp` disables the routes.
|
||||||
|
|
||||||
.. _Show_EIGRP_Information:
|
.. _Show_EIGRP_Information:
|
||||||
|
|
||||||
@ -197,18 +191,18 @@ Show EIGRP Information
|
|||||||
To display EIGRP routes.
|
To display EIGRP routes.
|
||||||
|
|
||||||
.. index:: show ip eigrp topology
|
.. index:: show ip eigrp topology
|
||||||
|
|
||||||
.. clicmd:: show ip eigrp topology
|
.. clicmd:: show ip eigrp topology
|
||||||
|
|
||||||
Show EIGRP routes.
|
Show EIGRP routes.
|
||||||
|
|
||||||
The command displays all EIGRP routes.
|
The command displays all EIGRP routes.
|
||||||
|
|
||||||
.. index:: show ip eigrp topology
|
.. index:: show ip eigrp topology
|
||||||
|
|
||||||
.. clicmd:: show ip eigrp topology
|
.. clicmd:: show ip eigrp topology
|
||||||
|
|
||||||
The command displays current EIGRP status
|
The command displays current EIGRP status
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
eigrpd> **show ip eigrp topology**
|
eigrpd> **show ip eigrp topology**
|
||||||
# show ip eigrp topo
|
# show ip eigrp topo
|
||||||
@ -228,24 +222,25 @@ EIGRP Debug Commands
|
|||||||
Debug for EIGRP protocol.
|
Debug for EIGRP protocol.
|
||||||
|
|
||||||
.. index:: debug eigrp packets
|
.. index:: debug eigrp packets
|
||||||
|
|
||||||
.. clicmd:: debug eigrp packets
|
.. clicmd:: debug eigrp packets
|
||||||
|
|
||||||
Debug eigrp packets
|
Debug eigrp packets
|
||||||
|
|
||||||
`debug eigrp` will show EIGRP packets that are sent and recevied.
|
``debug eigrp`` will show EIGRP packets that are sent and recevied.
|
||||||
|
|
||||||
.. index:: debug eigrp transmit
|
.. index:: debug eigrp transmit
|
||||||
|
|
||||||
.. clicmd:: debug eigrp transmit
|
.. clicmd:: debug eigrp transmit
|
||||||
|
|
||||||
Debug eigrp transmit events
|
Debug eigrp transmit events
|
||||||
|
|
||||||
`debug eigrp transmit` will display detailed information about the EIGRP transmit events.
|
``debug eigrp transmit`` will display detailed information about the EIGRP
|
||||||
|
transmit events.
|
||||||
|
|
||||||
.. index:: show debugging eigrp
|
.. index:: show debugging eigrp
|
||||||
|
|
||||||
.. clicmd:: show debugging eigrp
|
.. clicmd:: show debugging eigrp
|
||||||
|
|
||||||
Display *eigrpd*'s debugging option.
|
Display *eigrpd*'s debugging option.
|
||||||
|
|
||||||
`show debugging eigrp` will show all information currently set for eigrpd
|
``show debugging eigrp`` will show all information currently set for eigrpd
|
||||||
debug.
|
debug.
|
||||||
|
|
||||||
|
@ -6,29 +6,24 @@ FRR provides many very flexible filtering features. Filtering is used
|
|||||||
for both input and output of the routing information. Once filtering is
|
for both input and output of the routing information. Once filtering is
|
||||||
defined, it can be applied in any direction.
|
defined, it can be applied in any direction.
|
||||||
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
|
|
||||||
IP Access List
|
IP Access List
|
||||||
==============
|
==============
|
||||||
|
|
||||||
.. index:: {Command} {access-list `name` permit `ipv4-network`} {}
|
.. index:: access-list NAME permit IPV4-NETWORK
|
||||||
|
.. clicmd:: access-list NAME permit IPV4-NETWORK
|
||||||
|
|
||||||
{Command} {access-list `name` permit `ipv4-network`} {}
|
.. index:: access-list NAME deny IPV4-NETWORK
|
||||||
.. index:: {Command} {access-list `name` deny `ipv4-network`} {}
|
.. clicmd:: access-list NAME deny IPV4-NETWORK
|
||||||
|
|
||||||
{Command} {access-list `name` deny `ipv4-network`} {}
|
|
||||||
|
|
||||||
Basic filtering is done by `access-list` as shown in the
|
Basic filtering is done by `access-list` as shown in the
|
||||||
following example.
|
following example.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
access-list filter deny 10.0.0.0/9
|
access-list filter deny 10.0.0.0/9
|
||||||
access-list filter permit 10.0.0.0/8
|
access-list filter permit 10.0.0.0/8
|
||||||
|
|
||||||
|
|
||||||
@comment node-name, next, previous, up
|
|
||||||
|
|
||||||
IP Prefix List
|
IP Prefix List
|
||||||
==============
|
==============
|
||||||
|
|
||||||
@ -41,17 +36,15 @@ filters to arbitrary points of prefix-list using sequential number specification
|
|||||||
If no ip prefix-list is specified, it acts as permit. If *ip prefix-list*
|
If no ip prefix-list is specified, it acts as permit. If *ip prefix-list*
|
||||||
is defined, and no match is found, default deny is applied.
|
is defined, and no match is found, default deny is applied.
|
||||||
|
|
||||||
.. index:: {Command} {ip prefix-list `name` (permit|deny) `prefix` [le `len`] [ge `len`]} {}
|
.. index:: ip prefix-list NAME (permit|deny) PREFIX [le LEN] [ge LEN]
|
||||||
|
.. clicmd:: ip prefix-list NAME (permit|deny) PREFIX [le LEN] [ge LEN]
|
||||||
|
|
||||||
{Command} {ip prefix-list `name` (permit|deny) `prefix` [le `len`] [ge `len`]} {}
|
.. index:: ip prefix-list NAME seq NUMBER (permit|deny) PREFIX [le LEN] [ge LEN]
|
||||||
.. index:: {Command} {ip prefix-list `name` seq `number` (permit|deny) `prefix` [le `len`] [ge `len`]} {}
|
.. clicmd:: ip prefix-list NAME seq NUMBER (permit|deny) PREFIX [le LEN] [ge LEN]
|
||||||
|
|
||||||
{Command} {ip prefix-list `name` seq `number` (permit|deny) `prefix` [le `len`] [ge `len`]} {}
|
|
||||||
You can create *ip prefix-list* using above commands.
|
You can create *ip prefix-list* using above commands.
|
||||||
|
|
||||||
|
seq
|
||||||
|
|
||||||
*@asis{seq}*
|
|
||||||
seq `number` can be set either automatically or manually. In the
|
seq `number` can be set either automatically or manually. In the
|
||||||
case that sequential numbers are set manually, the user may pick any
|
case that sequential numbers are set manually, the user may pick any
|
||||||
number less than 4294967295. In the case that sequential number are set
|
number less than 4294967295. In the case that sequential number are set
|
||||||
@ -64,15 +57,13 @@ is defined, and no match is found, default deny is applied.
|
|||||||
lists 2 and 7 already exist and a new list with no specified number is
|
lists 2 and 7 already exist and a new list with no specified number is
|
||||||
created, the new list will be numbered 10.
|
created, the new list will be numbered 10.
|
||||||
|
|
||||||
|
le
|
||||||
|
Specifies prefix length. The prefix list will be applied if the prefix
|
||||||
|
length is less than or equal to the le prefix length.
|
||||||
|
|
||||||
*@asis{le}*
|
ge
|
||||||
*le* command specifies prefix length. The prefix list will be
|
Specifies prefix length. The prefix list will be applied if the prefix
|
||||||
applied if the prefix length is less than or equal to the le prefix length.
|
length is greater than or equal to the ge prefix length.
|
||||||
|
|
||||||
|
|
||||||
*@asis{ge}*
|
|
||||||
*ge* command specifies prefix length. The prefix list will be
|
|
||||||
applied if the prefix length is greater than or equal to the ge prefix length.
|
|
||||||
|
|
||||||
|
|
||||||
Less than or equal to prefix numbers and greater than or equal to
|
Less than or equal to prefix numbers and greater than or equal to
|
||||||
@ -93,24 +84,23 @@ is defined, and no match is found, default deny is applied.
|
|||||||
In the case of no le or ge command, the prefix length must match exactly the
|
In the case of no le or ge command, the prefix length must match exactly the
|
||||||
length specified in the prefix list.
|
length specified in the prefix list.
|
||||||
|
|
||||||
.. index:: {Command} {no ip prefix-list `name`} {}
|
.. index:: no ip prefix-list NAME
|
||||||
|
.. clicmd:: no ip prefix-list NAME
|
||||||
{Command} {no ip prefix-list `name`} {}
|
|
||||||
|
|
||||||
.. _ip_prefix-list_description:
|
.. _ip_prefix-list_description:
|
||||||
|
|
||||||
ip prefix-list description
|
ip prefix-list description
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
.. index:: {Command} {ip prefix-list `name` description `desc`} {}
|
.. index:: ip prefix-list NAME description DESC
|
||||||
|
.. clicmd:: ip prefix-list NAME description DESC
|
||||||
|
|
||||||
{Command} {ip prefix-list `name` description `desc`} {}
|
|
||||||
Descriptions may be added to prefix lists. This command adds a
|
Descriptions may be added to prefix lists. This command adds a
|
||||||
description to the prefix list.
|
description to the prefix list.
|
||||||
|
|
||||||
.. index:: {Command} {no ip prefix-list `name` description [`desc`]} {}
|
.. index:: no ip prefix-list NAME description [DESC]
|
||||||
|
.. clicmd:: no ip prefix-list NAME description [DESC]
|
||||||
|
|
||||||
{Command} {no ip prefix-list `name` description [`desc`]} {}
|
|
||||||
Deletes the description from a prefix list. It is possible to use the
|
Deletes the description from a prefix list. It is possible to use the
|
||||||
command without the full description.
|
command without the full description.
|
||||||
|
|
||||||
@ -119,15 +109,15 @@ ip prefix-list description
|
|||||||
ip prefix-list sequential number control
|
ip prefix-list sequential number control
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
.. index:: {Command} {ip prefix-list sequence-number} {}
|
.. index:: ip prefix-list sequence-number
|
||||||
|
.. clicmd:: ip prefix-list sequence-number
|
||||||
|
|
||||||
{Command} {ip prefix-list sequence-number} {}
|
|
||||||
With this command, the IP prefix list sequential number is displayed.
|
With this command, the IP prefix list sequential number is displayed.
|
||||||
This is the default behavior.
|
This is the default behavior.
|
||||||
|
|
||||||
.. index:: {Command} {no ip prefix-list sequence-number} {}
|
.. index:: no ip prefix-list sequence-number
|
||||||
|
.. clicmd:: no ip prefix-list sequence-number
|
||||||
|
|
||||||
{Command} {no ip prefix-list sequence-number} {}
|
|
||||||
With this command, the IP prefix list sequential number is not
|
With this command, the IP prefix list sequential number is not
|
||||||
displayed.
|
displayed.
|
||||||
|
|
||||||
@ -136,62 +126,53 @@ ip prefix-list sequential number control
|
|||||||
Showing ip prefix-list
|
Showing ip prefix-list
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
.. index:: {Command} {show ip prefix-list} {}
|
.. index:: show ip prefix-list
|
||||||
|
.. clicmd:: show ip prefix-list
|
||||||
|
|
||||||
{Command} {show ip prefix-list} {}
|
|
||||||
Display all IP prefix lists.
|
Display all IP prefix lists.
|
||||||
|
|
||||||
.. 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`} {}
|
|
||||||
Show IP prefix list can be used with a prefix list name.
|
Show IP prefix list can be used with a prefix list name.
|
||||||
|
|
||||||
.. index:: {Command} {show ip prefix-list `name` seq `num`} {}
|
.. index:: show ip prefix-list NAME seq NUM
|
||||||
|
.. clicmd:: show ip prefix-list NAME seq NUM
|
||||||
|
|
||||||
{Command} {show ip prefix-list `name` seq `num`} {}
|
|
||||||
Show IP prefix list can be used with a prefix list name and sequential
|
Show IP prefix list can be used with a prefix list name and sequential
|
||||||
number.
|
number.
|
||||||
|
|
||||||
.. index:: {Command} {show ip prefix-list `name` `a.b.c.d/m`} {}
|
.. index:: show ip prefix-list NAME A.B.C.D/M
|
||||||
|
.. clicmd:: show ip prefix-list NAME A.B.C.D/M
|
||||||
|
|
||||||
{Command} {show ip prefix-list `name` `a.b.c.d/m`} {}
|
|
||||||
If the command longer is used, all prefix lists with prefix lengths equal to
|
If the command longer is used, all prefix lists with prefix lengths equal to
|
||||||
or longer than the specified length will be displayed.
|
or longer than the specified length will be displayed. If the command first
|
||||||
If the command first match is used, the first prefix length match will be
|
match is used, the first prefix length match will be displayed.
|
||||||
displayed.
|
|
||||||
|
|
||||||
.. index:: {Command} {show ip prefix-list `name` `a.b.c.d/m` longer} {}
|
.. index:: show ip prefix-list NAME A.B.C.D/M longer
|
||||||
|
.. clicmd:: show ip prefix-list NAME A.B.C.D/M longer
|
||||||
{Command} {show ip prefix-list `name` `a.b.c.d/m` longer} {}
|
.. index:: show ip prefix-list NAME A.B.C.D/M first-match
|
||||||
.. index:: {Command} {show ip prefix-list `name` `a.b.c.d/m` first-match} {}
|
.. clicmd:: show ip prefix-list NAME A.B.C.D/M first-match
|
||||||
|
.. index:: show ip prefix-list summary
|
||||||
{Command} {show ip prefix-list `name` `a.b.c.d/m` first-match} {}
|
.. clicmd:: show ip prefix-list summary
|
||||||
.. index:: {Command} {show ip prefix-list summary} {}
|
.. index:: show ip prefix-list summary NAME
|
||||||
|
.. clicmd:: show ip prefix-list summary NAME
|
||||||
{Command} {show ip prefix-list summary} {}
|
.. index:: show ip prefix-list detail
|
||||||
.. index:: {Command} {show ip prefix-list summary `name`} {}
|
.. clicmd:: show ip prefix-list detail
|
||||||
|
.. index:: show ip prefix-list detail NAME
|
||||||
{Command} {show ip prefix-list summary `name`} {}
|
.. clicmd:: show ip prefix-list detail NAME
|
||||||
.. index:: {Command} {show ip prefix-list detail} {}
|
|
||||||
|
|
||||||
{Command} {show ip prefix-list detail} {}
|
|
||||||
.. index:: {Command} {show ip prefix-list detail `name`} {}
|
|
||||||
|
|
||||||
{Command} {show ip prefix-list detail `name`} {}
|
|
||||||
|
|
||||||
Clear counter of ip prefix-list
|
Clear counter of ip prefix-list
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
.. index:: {Command} {clear ip prefix-list} {}
|
.. index:: clear ip prefix-list
|
||||||
|
.. clicmd:: clear ip prefix-list
|
||||||
|
|
||||||
{Command} {clear ip prefix-list} {}
|
Clears the counters of all IP prefix lists. Clear IP Prefix List can be used
|
||||||
Clears the counters of all IP prefix lists. Clear IP Prefix List can be
|
with a specified name and prefix.
|
||||||
used with a specified name and prefix.
|
|
||||||
|
|
||||||
.. index:: {Command} {clear ip prefix-list `name`} {}
|
.. index:: clear ip prefix-list NAME
|
||||||
|
.. clicmd:: clear ip prefix-list NAME
|
||||||
{Command} {clear ip prefix-list `name`} {}
|
|
||||||
.. index:: {Command} {clear ip prefix-list `name` `a.b.c.d/m`} {}
|
|
||||||
|
|
||||||
{Command} {clear ip prefix-list `name` `a.b.c.d/m`} {}
|
|
||||||
|
|
||||||
|
.. index:: clear ip prefix-list NAME A.B.C.D/M
|
||||||
|
.. clicmd:: clear ip prefix-list NAME A.B.C.D/M
|
||||||
|
@ -156,6 +156,9 @@ customize the build to include or exclude specific features and dependencies.
|
|||||||
|
|
||||||
Build without SNMP support.
|
Build without SNMP support.
|
||||||
|
|
||||||
|
.. option:: --disable-vtysh
|
||||||
|
|
||||||
|
Build without VTYSH.
|
||||||
|
|
||||||
You may specify any combination of the above options to the configure
|
You may specify any combination of the above options to the configure
|
||||||
script. By default, the executables are placed in :file:`/usr/local/sbin`
|
script. By default, the executables are placed in :file:`/usr/local/sbin`
|
||||||
|
@ -4,11 +4,12 @@
|
|||||||
IPv6 Support
|
IPv6 Support
|
||||||
************
|
************
|
||||||
|
|
||||||
FRR fully supports IPv6 routing. As described so far, Frr supports
|
FRR fully supports IPv6 routing. As described so far, Frr supports RIPng,
|
||||||
RIPng, OSPFv3, and BGP-4+. You can give IPv6 addresses to an interface
|
OSPFv3, and BGP-4+. You can give IPv6 addresses to an interface and configure
|
||||||
and configure static IPv6 routing information. FRR IPv6 also provides
|
static IPv6 routing information. FRR IPv6 also provides automatic address
|
||||||
automatic address configuration via a feature called ``address auto configuration``. To do it, the router must send router advertisement
|
configuration via a feature called ``address auto configuration``. To do it,
|
||||||
messages to the all nodes that exist on the network.
|
the router must send router advertisement messages to the all nodes that exist
|
||||||
|
on the network.
|
||||||
|
|
||||||
Previous versions of FRR could be built without IPv6 support. This is
|
Previous versions of FRR could be built without IPv6 support. This is
|
||||||
no longer possible.
|
no longer possible.
|
||||||
@ -17,18 +18,18 @@ Router Advertisement
|
|||||||
====================
|
====================
|
||||||
|
|
||||||
.. index:: no ipv6 nd suppress-ra
|
.. index:: no ipv6 nd suppress-ra
|
||||||
|
|
||||||
.. clicmd:: no ipv6 nd suppress-ra
|
.. clicmd:: no ipv6 nd suppress-ra
|
||||||
|
|
||||||
Send router advertisment messages.
|
Send router advertisment messages.
|
||||||
|
|
||||||
.. index:: ipv6 nd suppress-ra
|
.. index:: ipv6 nd suppress-ra
|
||||||
|
|
||||||
.. clicmd:: ipv6 nd suppress-ra
|
.. clicmd:: ipv6 nd suppress-ra
|
||||||
|
|
||||||
Don't send router advertisment messages.
|
Don't send router advertisment messages.
|
||||||
|
|
||||||
.. index:: ipv6 nd prefix ipv6prefix [valid-lifetime] [preferred-lifetime] [off-link] [no-autoconfig] [router-address]
|
.. index:: ipv6 nd prefix ipv6prefix [valid-lifetime] [preferred-lifetime] [off-link] [no-autoconfig] [router-address]
|
||||||
|
|
||||||
.. clicmd:: ipv6 nd prefix ipv6prefix [valid-lifetime] [preferred-lifetime] [off-link] [no-autoconfig] [router-address]
|
.. clicmd:: ipv6 nd prefix ipv6prefix [valid-lifetime] [preferred-lifetime] [off-link] [no-autoconfig] [router-address]
|
||||||
|
|
||||||
Configuring the IPv6 prefix to include in router advertisements. Several prefix
|
Configuring the IPv6 prefix to include in router advertisements. Several prefix
|
||||||
specific optional parameters and flags may follow:
|
specific optional parameters and flags may follow:
|
||||||
|
|
||||||
@ -59,20 +60,18 @@ Router Advertisement
|
|||||||
.. index::
|
.. index::
|
||||||
single: no ipv6 nd ra-interval [(1-1800)]
|
single: no ipv6 nd ra-interval [(1-1800)]
|
||||||
single: no ipv6 nd ra-interval [(1-1800)]
|
single: no ipv6 nd ra-interval [(1-1800)]
|
||||||
|
|
||||||
.. clicmd:: [no] ipv6 nd ra-interval [(1-1800)]
|
.. clicmd:: [no] ipv6 nd ra-interval [(1-1800)]
|
||||||
|
|
||||||
The maximum time allowed between sending unsolicited multicast router
|
The maximum time allowed between sending unsolicited multicast router
|
||||||
advertisements from the interface, in seconds.
|
advertisements from the interface, in seconds.
|
||||||
Default: ``600``
|
Default: ``600``
|
||||||
|
|
||||||
.. index:: ipv6 nd ra-interval msec (70-1800000)
|
.. index:: ipv6 nd ra-interval msec (70-1800000)
|
||||||
|
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: no ipv6 nd ra-interval [msec (70-1800000)]
|
single: no ipv6 nd ra-interval [msec (70-1800000)]
|
||||||
single: ipv6 nd ra-interval msec (70-1800000)
|
single: ipv6 nd ra-interval msec (70-1800000)
|
||||||
|
|
||||||
.. clicmd:: [no] ipv6 nd ra-interval [msec (70-1800000)]
|
.. clicmd:: [no] ipv6 nd ra-interval [msec (70-1800000)]
|
||||||
|
|
||||||
The maximum time allowed between sending unsolicited multicast router
|
The maximum time allowed between sending unsolicited multicast router
|
||||||
advertisements from the interface, in milliseconds.
|
advertisements from the interface, in milliseconds.
|
||||||
Default: ``600000``
|
Default: ``600000``
|
||||||
@ -80,8 +79,8 @@ Router Advertisement
|
|||||||
.. index::
|
.. index::
|
||||||
single: ipv6 nd ra-lifetime (0-9000)
|
single: ipv6 nd ra-lifetime (0-9000)
|
||||||
single: no ipv6 nd ra-lifetime [(0-9000)]
|
single: no ipv6 nd ra-lifetime [(0-9000)]
|
||||||
|
|
||||||
.. clicmd:: [no] ipv6 nd ra-lifetime [(0-9000)]
|
.. clicmd:: [no] ipv6 nd ra-lifetime [(0-9000)]
|
||||||
|
|
||||||
The value to be placed in the Router Lifetime field of router advertisements
|
The value to be placed in the Router Lifetime field of router advertisements
|
||||||
sent from the interface, in seconds. Indicates the usefulness of the router
|
sent from the interface, in seconds. Indicates the usefulness of the router
|
||||||
as a default router on this interface. Setting the value to zero indicates
|
as a default router on this interface. Setting the value to zero indicates
|
||||||
@ -93,30 +92,30 @@ Router Advertisement
|
|||||||
.. index::
|
.. index::
|
||||||
single: no ipv6 nd reachable-time [(1-3600000)]
|
single: no ipv6 nd reachable-time [(1-3600000)]
|
||||||
single: ipv6 nd reachable-time (1-3600000)
|
single: ipv6 nd reachable-time (1-3600000)
|
||||||
|
|
||||||
.. clicmd:: [no] ipv6 nd reachable-time [(1-3600000)]
|
.. clicmd:: [no] ipv6 nd reachable-time [(1-3600000)]
|
||||||
The value to be placed in the Reachable Time field in the Router Advertisement
|
|
||||||
messages sent by the router, in milliseconds. The configured time enables the
|
The value to be placed in the Reachable Time field in the Router
|
||||||
router to detect unavailable neighbors. The value zero means unspecified (by
|
Advertisement messages sent by the router, in milliseconds. The configured
|
||||||
this router).
|
time enables the router to detect unavailable neighbors. The value zero
|
||||||
|
means unspecified (by this router).
|
||||||
Default: ``0``
|
Default: ``0``
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: ipv6 nd managed-config-flag
|
single: ipv6 nd managed-config-flag
|
||||||
single: no ipv6 nd managed-config-flag
|
single: no ipv6 nd managed-config-flag
|
||||||
|
|
||||||
.. clicmd:: [no] ipv6 nd managed-config-flag
|
.. clicmd:: [no] ipv6 nd managed-config-flag
|
||||||
Set/unset flag in IPv6 router advertisements which indicates to hosts that they
|
|
||||||
should use managed (stateful) protocol for addresses autoconfiguration in
|
Set/unset flag in IPv6 router advertisements which indicates to hosts that
|
||||||
addition to any addresses autoconfigured using stateless address
|
they should use managed (stateful) protocol for addresses autoconfiguration
|
||||||
|
in addition to any addresses autoconfigured using stateless address
|
||||||
autoconfiguration.
|
autoconfiguration.
|
||||||
Default: not set
|
Default: not set
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: ipv6 nd other-config-flag
|
single: ipv6 nd other-config-flag
|
||||||
single: no ipv6 nd other-config-flag
|
single: no ipv6 nd other-config-flag
|
||||||
|
|
||||||
.. clicmd:: [no] ipv6 nd other-config-flag
|
.. clicmd:: [no] ipv6 nd other-config-flag
|
||||||
|
|
||||||
Set/unset flag in IPv6 router advertisements which indicates to hosts that
|
Set/unset flag in IPv6 router advertisements which indicates to hosts that
|
||||||
they should use administered (stateful) protocol to obtain autoconfiguration
|
they should use administered (stateful) protocol to obtain autoconfiguration
|
||||||
information other than addresses.
|
information other than addresses.
|
||||||
@ -125,8 +124,8 @@ Router Advertisement
|
|||||||
.. index::
|
.. index::
|
||||||
single: ipv6 nd home-agent-config-flag
|
single: ipv6 nd home-agent-config-flag
|
||||||
single: no ipv6 nd home-agent-config-flag
|
single: no ipv6 nd home-agent-config-flag
|
||||||
|
|
||||||
.. clicmd:: [no] ipv6 nd home-agent-config-flag
|
.. clicmd:: [no] ipv6 nd home-agent-config-flag
|
||||||
|
|
||||||
Set/unset flag in IPv6 router advertisements which indicates to hosts that
|
Set/unset flag in IPv6 router advertisements which indicates to hosts that
|
||||||
the router acts as a Home Agent and includes a Home Agent Option.
|
the router acts as a Home Agent and includes a Home Agent Option.
|
||||||
Default: not set
|
Default: not set
|
||||||
@ -136,18 +135,18 @@ Router Advertisement
|
|||||||
.. index::
|
.. index::
|
||||||
single: no ipv6 nd home-agent-preference [(0-65535)]
|
single: no ipv6 nd home-agent-preference [(0-65535)]
|
||||||
single: ipv6 nd home-agent-preference (0-65535)
|
single: ipv6 nd home-agent-preference (0-65535)
|
||||||
|
|
||||||
.. clicmd:: [no] ipv6 nd home-agent-preference [(0-65535)]
|
.. clicmd:: [no] ipv6 nd home-agent-preference [(0-65535)]
|
||||||
The value to be placed in Home Agent Option, when Home Agent config flag is set,
|
|
||||||
which indicates to hosts Home Agent preference. The default value of 0 stands
|
The value to be placed in Home Agent Option, when Home Agent config flag is
|
||||||
for the lowest preference possible.
|
set, which indicates to hosts Home Agent preference. The default value of 0
|
||||||
|
stands for the lowest preference possible.
|
||||||
Default: ``0``
|
Default: ``0``
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: ipv6 nd home-agent-lifetime (0-65520)
|
single: ipv6 nd home-agent-lifetime (0-65520)
|
||||||
single: no ipv6 nd home-agent-lifetime (0-65520)
|
single: no ipv6 nd home-agent-lifetime (0-65520)
|
||||||
|
|
||||||
.. clicmd:: [no] ipv6 nd home-agent-lifetime [(0-65520)]
|
.. clicmd:: [no] ipv6 nd home-agent-lifetime [(0-65520)]
|
||||||
|
|
||||||
The value to be placed in Home Agent Option, when Home Agent config flag is set,
|
The value to be placed in Home Agent Option, when Home Agent config flag is set,
|
||||||
which indicates to hosts Home Agent Lifetime. The default value of 0 means to
|
which indicates to hosts Home Agent Lifetime. The default value of 0 means to
|
||||||
place the current Router Lifetime value.
|
place the current Router Lifetime value.
|
||||||
@ -157,8 +156,8 @@ Router Advertisement
|
|||||||
.. index::
|
.. index::
|
||||||
single: ipv6 nd adv-interval-option
|
single: ipv6 nd adv-interval-option
|
||||||
single: no ipv6 nd adv-interval-option
|
single: no ipv6 nd adv-interval-option
|
||||||
|
|
||||||
.. clicmd:: [no] ipv6 nd adv-interval-option
|
.. clicmd:: [no] ipv6 nd adv-interval-option
|
||||||
|
|
||||||
Include an Advertisement Interval option which indicates to hosts the maximum time,
|
Include an Advertisement Interval option which indicates to hosts the maximum time,
|
||||||
in milliseconds, between successive unsolicited Router Advertisements.
|
in milliseconds, between successive unsolicited Router Advertisements.
|
||||||
Default: not set
|
Default: not set
|
||||||
@ -166,19 +165,19 @@ Router Advertisement
|
|||||||
.. index::
|
.. index::
|
||||||
single: ipv6 nd router-preference (high|medium|low)
|
single: ipv6 nd router-preference (high|medium|low)
|
||||||
single: no ipv6 nd router-preference (high|medium|low)
|
single: no ipv6 nd router-preference (high|medium|low)
|
||||||
|
|
||||||
.. clicmd:: [no] ipv6 nd router-preference [(high|medium|low)]
|
.. clicmd:: [no] ipv6 nd router-preference [(high|medium|low)]
|
||||||
|
|
||||||
Set default router preference in IPv6 router advertisements per RFC4191.
|
Set default router preference in IPv6 router advertisements per RFC4191.
|
||||||
Default: medium
|
Default: medium
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: ipv6 nd mtu (1-65535)
|
single: ipv6 nd mtu (1-65535)
|
||||||
single: no ipv6 nd mtu [(1-65535)]
|
single: no ipv6 nd mtu [(1-65535)]
|
||||||
|
|
||||||
.. clicmd:: [no] ipv6 nd mtu [(1-65535)]
|
.. clicmd:: [no] ipv6 nd mtu [(1-65535)]
|
||||||
Include an MTU (type 5) option in each RA packet to assist the attached hosts
|
|
||||||
in proper interface configuration. The announced value is not verified to be
|
Include an MTU (type 5) option in each RA packet to assist the attached
|
||||||
consistent with router interface MTU.
|
hosts in proper interface configuration. The announced value is not verified
|
||||||
|
to be consistent with router interface MTU.
|
||||||
|
|
||||||
Default: don't advertise any MTU option.::
|
Default: don't advertise any MTU option.::
|
||||||
interface eth0
|
interface eth0
|
||||||
@ -186,8 +185,9 @@ Router Advertisement
|
|||||||
ipv6 nd prefix 2001:0DB8:5009::/64
|
ipv6 nd prefix 2001:0DB8:5009::/64
|
||||||
|
|
||||||
|
|
||||||
For more information see
|
.. seealso::
|
||||||
:t:`RFC2462 (IPv6 Stateless Address Autoconfiguration)`,
|
|
||||||
:t:`RFC4861 (Neighbor Discovery for IP Version 6 (IPv6))`,
|
- :rfc:`2462` (IPv6 Stateless Address Autoconfiguration)
|
||||||
:t:`RFC6275 (Mobility Support in IPv6)` and
|
- :rfc:`4861` (Neighbor Discovery for IP Version 6 (IPv6))
|
||||||
:t:`RFC4191 (Default Router Preferences and More-Specific Routes)`.
|
- :rfc:`6275` (Mobility Support in IPv6)
|
||||||
|
- :rfc:`4191` (Default Router Preferences and More-Specific Routes)
|
||||||
|
@ -16,15 +16,14 @@ like :abbr:`OSPF`. ISIS is widely used in large networks such as :abbr:`ISP
|
|||||||
Configuring isisd
|
Configuring isisd
|
||||||
=================
|
=================
|
||||||
|
|
||||||
There are no *isisd* specific options. Common options can be
|
There are no *isisd* specific options. Common options can be specified
|
||||||
specified (:ref:`Common_Invocation_Options`) to *isisd*.
|
(:ref:`Common_Invocation_Options`) to *isisd*. *isisd* needs to acquire
|
||||||
*isisd* needs to acquire interface information from
|
interface information from *zebra* in order to function. Therefore *zebra* must
|
||||||
*zebra* in order to function. Therefore *zebra* must be
|
be running before invoking *isisd*. Also, if *zebra* is restarted then *isisd*
|
||||||
running before invoking *isisd*. Also, if *zebra* is
|
must be too.
|
||||||
restarted then *isisd* must be too.
|
|
||||||
|
|
||||||
Like other daemons, *isisd* configuration is done in :abbr:`ISIS`
|
Like other daemons, *isisd* configuration is done in :abbr:`ISIS` specific
|
||||||
specific configuration file :file:`isisd.conf`.
|
configuration file :file:`isisd.conf`.
|
||||||
|
|
||||||
.. _ISIS_router:
|
.. _ISIS_router:
|
||||||
|
|
||||||
@ -34,77 +33,81 @@ ISIS router
|
|||||||
To start ISIS process you have to specify the ISIS router. As of this
|
To start ISIS process you have to specify the ISIS router. As of this
|
||||||
writing, *isisd* does not support multiple ISIS processes.
|
writing, *isisd* does not support multiple ISIS processes.
|
||||||
|
|
||||||
.. index:: Command {router isis WORD} {}
|
.. index:: router isis WORD
|
||||||
|
.. clicmd:: router isis WORD
|
||||||
|
|
||||||
Command {router isis WORD} {}
|
.. index:: no router isis WORD
|
||||||
.. index:: Command {no router isis WORD} {}
|
.. clicmd:: no router isis WORD
|
||||||
|
|
||||||
Command {no router isis WORD} {}
|
|
||||||
.. _router_isis_WORD:
|
.. _router_isis_WORD:
|
||||||
|
|
||||||
Enable or disable the ISIS process by specifying the ISIS domain with 'WORD'.
|
Enable or disable the ISIS process by specifying the ISIS domain with
|
||||||
*isisd* does not yet support multiple ISIS processes but you must specify
|
'WORD'. *isisd* does not yet support multiple ISIS processes but you must
|
||||||
the name of ISIS process. The ISIS process name 'WORD' is then used for interface
|
specify the name of ISIS process. The ISIS process name 'WORD' is then used
|
||||||
(see command :ref:`ip_router_isis_WORD`).
|
for interface (see command :ref:`ip_router_isis_WORD`).
|
||||||
|
|
||||||
.. index:: {ISIS Command} {net XX.XXXX. ... .XXX.XX} {}
|
.. index:: net XX.XXXX. ... .XXX.XX
|
||||||
|
.. clicmd:: net XX.XXXX. ... .XXX.XX
|
||||||
|
|
||||||
{ISIS Command} {net XX.XXXX. ... .XXX.XX} {}
|
.. index:: no net XX.XXXX. ... .XXX.XX
|
||||||
.. index:: {ISIS Command} {no net XX.XXXX. ... .XXX.XX} {}
|
.. clicmd:: no net XX.XXXX. ... .XXX.XX
|
||||||
|
|
||||||
{ISIS Command} {no net XX.XXXX. ... .XXX.XX} {}
|
|
||||||
Set/Unset network entity title (NET) provided in ISO format.
|
Set/Unset network entity title (NET) provided in ISO format.
|
||||||
|
|
||||||
.. index:: {ISIS Command} {hostname dynamic} {}
|
.. index:: hostname dynamic
|
||||||
|
.. clicmd:: hostname dynamic
|
||||||
|
|
||||||
{ISIS Command} {hostname dynamic} {}
|
.. index:: no hostname dynamic
|
||||||
.. index:: {ISIS Command} {no hostname dynamic} {}
|
.. clicmd:: no hostname dynamic
|
||||||
|
|
||||||
{ISIS Command} {no hostname dynamic} {}
|
|
||||||
Enable support for dynamic hostname.
|
Enable support for dynamic hostname.
|
||||||
|
|
||||||
.. index:: {ISIS Command} {area-password [clear | md5] <password>} {}
|
.. index:: area-password [clear | md5] <password>
|
||||||
|
.. clicmd:: area-password [clear | md5] <password>
|
||||||
|
|
||||||
{ISIS Command} {area-password [clear | md5] <password>} {}
|
.. index:: domain-password [clear | md5] <password>
|
||||||
.. index:: {ISIS Command} {domain-password [clear | md5] <password>} {}
|
.. clicmd:: domain-password [clear | md5] <password>
|
||||||
|
|
||||||
{ISIS Command} {domain-password [clear | md5] <password>} {}
|
.. index:: no area-password
|
||||||
.. index:: {ISIS Command} {no area-password} {}
|
.. clicmd:: no area-password
|
||||||
|
|
||||||
{ISIS Command} {no area-password} {}
|
.. index:: no domain-password
|
||||||
.. index:: {ISIS Command} {no domain-password} {}
|
.. clicmd:: no domain-password
|
||||||
|
|
||||||
{ISIS Command} {no domain-password} {}
|
Configure the authentication password for an area, respectively a domain, as
|
||||||
Configure the authentication password for an area, respectively a domain,
|
clear text or md5 one.
|
||||||
as clear text or md5 one.
|
|
||||||
|
|
||||||
.. index:: {ISIS Command} {log-adjacency-changes} {}
|
.. index:: log-adjacency-changes
|
||||||
|
.. clicmd:: log-adjacency-changes
|
||||||
|
|
||||||
{ISIS Command} {log-adjacency-changes} {}
|
.. index:: no log-adjacency-changes
|
||||||
.. index:: {ISIS Command} {no log-adjacency-changes} {}
|
.. clicmd:: no log-adjacency-changes
|
||||||
|
|
||||||
{ISIS Command} {no log-adjacency-changes} {}
|
|
||||||
Log changes in adjacency state.
|
Log changes in adjacency state.
|
||||||
|
|
||||||
.. index:: {ISIS Command} {metric-style [narrow | transition | wide]} {}
|
.. index:: metric-style [narrow | transition | wide]
|
||||||
|
.. clicmd:: metric-style [narrow | transition | wide]
|
||||||
|
|
||||||
{ISIS Command} {metric-style [narrow | transition | wide]} {}
|
.. index:: no metric-style
|
||||||
.. index:: {ISIS Command} {no metric-style} {}
|
.. clicmd:: no metric-style
|
||||||
|
|
||||||
{ISIS Command} {no metric-style} {}
|
.. _metric-style:
|
||||||
.. _metric-style:
|
|
||||||
|
|
||||||
Set old-style (ISO 10589) or new-style packet formats:
|
Set old-style (ISO 10589) or new-style packet formats:
|
||||||
- narrow Use old style of TLVs with narrow metric
|
|
||||||
- transition Send and accept both styles of TLVs during transition
|
|
||||||
- wide Use new style of TLVs to carry wider metric
|
|
||||||
|
|
||||||
.. index:: {ISIS Command} {set-overload-bit} {}
|
- narrow
|
||||||
|
Use old style of TLVs with narrow metric
|
||||||
|
- transition
|
||||||
|
Send and accept both styles of TLVs during transition
|
||||||
|
- wide
|
||||||
|
Use new style of TLVs to carry wider metric
|
||||||
|
|
||||||
{ISIS Command} {set-overload-bit} {}
|
.. index:: set-overload-bit
|
||||||
.. index:: {ISIS Command} {no set-overload-bit} {}
|
.. clicmd:: set-overload-bit
|
||||||
|
|
||||||
|
.. index:: no set-overload-bit
|
||||||
|
.. clicmd:: no set-overload-bit
|
||||||
|
|
||||||
{ISIS Command} {no set-overload-bit} {}
|
|
||||||
Set overload bit to avoid any transit traffic.
|
Set overload bit to avoid any transit traffic.
|
||||||
|
|
||||||
.. _ISIS_Timer:
|
.. _ISIS_Timer:
|
||||||
@ -112,75 +115,57 @@ Command {no router isis WORD} {}
|
|||||||
ISIS Timer
|
ISIS Timer
|
||||||
==========
|
==========
|
||||||
|
|
||||||
.. index:: {ISIS Command} {lsp-gen-interval (1-120)} {}
|
.. index:: lsp-gen-interval (1-120)
|
||||||
|
.. clicmd:: lsp-gen-interval (1-120)
|
||||||
|
|
||||||
{ISIS Command} {lsp-gen-interval (1-120)} {}
|
.. index:: lsp-gen-interval [level-1 | level-2] (1-120)
|
||||||
.. index:: {ISIS Command} {lsp-gen-interval [level-1 | level-2] (1-120)} {}
|
.. clicmd:: lsp-gen-interval [level-1 | level-2] (1-120)
|
||||||
|
|
||||||
{ISIS Command} {lsp-gen-interval [level-1 | level-2] (1-120)} {}
|
.. index:: no lsp-gen-interval
|
||||||
.. index:: {ISIS Command} {no lsp-gen-interval} {}
|
.. clicmd:: no lsp-gen-interval
|
||||||
|
|
||||||
{ISIS Command} {no lsp-gen-interval} {}
|
.. index:: no lsp-gen-interval [level-1 | level-2]
|
||||||
.. index:: {ISIS Command} {no lsp-gen-interval [level-1 | level-2]} {}
|
.. clicmd:: no lsp-gen-interval [level-1 | level-2]
|
||||||
|
|
||||||
{ISIS Command} {no lsp-gen-interval [level-1 | level-2]} {}
|
|
||||||
Set minimum interval in seconds between regenerating same LSP,
|
Set minimum interval in seconds between regenerating same LSP,
|
||||||
globally, for an area (level-1) or a domain (level-2).
|
globally, for an area (level-1) or a domain (level-2).
|
||||||
|
|
||||||
.. index:: {ISIS Command} {lsp-refresh-interval (1-65235)} {}
|
.. index:: lsp-refresh-interval [level-1 | level-2] (1-65235)
|
||||||
|
.. clicmd:: lsp-refresh-interval [level-1 | level-2] (1-65235)
|
||||||
|
|
||||||
{ISIS Command} {lsp-refresh-interval (1-65235)} {}
|
.. index:: no lsp-refresh-interval [level-1 | level-2]
|
||||||
.. index:: {ISIS Command} {lsp-refresh-interval [level-1 | level-2] (1-65235)} {}
|
.. clicmd:: no lsp-refresh-interval [level-1 | level-2]
|
||||||
|
|
||||||
{ISIS Command} {lsp-refresh-interval [level-1 | level-2] (1-65235)} {}
|
Set LSP refresh interval in seconds, globally, for an area (level-1) or a
|
||||||
.. index:: {ISIS Command} {no lsp-refresh-interval} {}
|
domain (level-2).
|
||||||
|
|
||||||
{ISIS Command} {no lsp-refresh-interval} {}
|
.. index:: max-lsp-lifetime (360-65535)
|
||||||
.. index:: {ISIS Command} {no lsp-refresh-interval [level-1 | level-2]} {}
|
.. clicmd:: max-lsp-lifetime (360-65535)
|
||||||
|
|
||||||
{ISIS Command} {no lsp-refresh-interval [level-1 | level-2]} {}
|
.. index:: max-lsp-lifetime [level-1 | level-2] (360-65535)
|
||||||
Set LSP refresh interval in seconds, globally, for an area (level-1) or a domain (level-2).
|
.. clicmd:: max-lsp-lifetime [level-1 | level-2] (360-65535)
|
||||||
|
|
||||||
.. index:: {ISIS Command} {lsp-refresh-interval (1-65235)} {}
|
.. index:: no max-lsp-lifetime
|
||||||
|
.. clicmd:: no max-lsp-lifetime
|
||||||
|
|
||||||
{ISIS Command} {lsp-refresh-interval (1-65235)} {}
|
.. index:: no max-lsp-lifetime [level-1 | level-2]
|
||||||
.. index:: {ISIS Command} {lsp-refresh-interval [level-1 | level-2] (1-65235)} {}
|
.. clicmd:: no max-lsp-lifetime [level-1 | level-2]
|
||||||
|
|
||||||
{ISIS Command} {lsp-refresh-interval [level-1 | level-2] (1-65235)} {}
|
Set LSP maximum LSP lifetime in seconds, globally, for an area (level-1) or
|
||||||
.. index:: {ISIS Command} {no lsp-refresh-interval} {}
|
a domain (level-2).
|
||||||
|
|
||||||
{ISIS Command} {no lsp-refresh-interval} {}
|
.. index:: spf-interval (1-120)
|
||||||
.. index:: {ISIS Command} {no lsp-refresh-interval [level-1 | level-2]} {}
|
.. clicmd:: spf-interval (1-120)
|
||||||
|
|
||||||
{ISIS Command} {no lsp-refresh-interval [level-1 | level-2]} {}
|
.. index:: spf-interval [level-1 | level-2] (1-120)
|
||||||
Set LSP refresh interval in seconds, globally, for an area (level-1) or a domain (level-2).
|
.. clicmd:: spf-interval [level-1 | level-2] (1-120)
|
||||||
|
|
||||||
.. index:: {ISIS Command} {max-lsp-lifetime (360-65535)} {}
|
.. index:: no spf-interval
|
||||||
|
.. clicmd:: no spf-interval
|
||||||
|
|
||||||
{ISIS Command} {max-lsp-lifetime (360-65535)} {}
|
.. index:: no spf-interval [level-1 | level-2]
|
||||||
.. index:: {ISIS Command} {max-lsp-lifetime [level-1 | level-2] (360-65535)} {}
|
.. clicmd:: no spf-interval [level-1 | level-2]
|
||||||
|
|
||||||
{ISIS Command} {max-lsp-lifetime [level-1 | level-2] (360-65535)} {}
|
|
||||||
.. index:: {ISIS Command} {no max-lsp-lifetime} {}
|
|
||||||
|
|
||||||
{ISIS Command} {no max-lsp-lifetime} {}
|
|
||||||
.. index:: {ISIS Command} {no max-lsp-lifetime [level-1 | level-2]} {}
|
|
||||||
|
|
||||||
{ISIS Command} {no max-lsp-lifetime [level-1 | level-2]} {}
|
|
||||||
Set LSP maximum LSP lifetime in seconds, globally, for an area (level-1) or a domain (level-2).
|
|
||||||
|
|
||||||
.. index:: {ISIS Command} {spf-interval (1-120)} {}
|
|
||||||
|
|
||||||
{ISIS Command} {spf-interval (1-120)} {}
|
|
||||||
.. index:: {ISIS Command} {spf-interval [level-1 | level-2] (1-120)} {}
|
|
||||||
|
|
||||||
{ISIS Command} {spf-interval [level-1 | level-2] (1-120)} {}
|
|
||||||
.. index:: {ISIS Command} {no spf-interval} {}
|
|
||||||
|
|
||||||
{ISIS Command} {no spf-interval} {}
|
|
||||||
.. index:: {ISIS Command} {no spf-interval [level-1 | level-2]} {}
|
|
||||||
|
|
||||||
{ISIS Command} {no spf-interval [level-1 | level-2]} {}
|
|
||||||
Set minimum interval between consecutive SPF calculations in seconds.
|
Set minimum interval between consecutive SPF calculations in seconds.
|
||||||
|
|
||||||
.. _ISIS_region:
|
.. _ISIS_region:
|
||||||
@ -188,259 +173,275 @@ ISIS Timer
|
|||||||
ISIS region
|
ISIS region
|
||||||
===========
|
===========
|
||||||
|
|
||||||
.. index:: {ISIS Command} {is-type [level-1 | level-1-2 | level-2-only]} {}
|
.. index:: is-type [level-1 | level-1-2 | level-2-only]
|
||||||
|
.. clicmd:: is-type [level-1 | level-1-2 | level-2-only]
|
||||||
|
|
||||||
{ISIS Command} {is-type [level-1 | level-1-2 | level-2-only]} {}
|
.. index:: no is-type
|
||||||
.. index:: {ISIS Command} {no is-type} {}
|
.. clicmd:: no is-type
|
||||||
|
|
||||||
{ISIS Command} {no is-type} {}
|
|
||||||
Define the ISIS router behavior:
|
Define the ISIS router behavior:
|
||||||
- level-1 Act as a station router only
|
|
||||||
- level-1-2 Act as both a station router and an area router
|
- level-1
|
||||||
- level-2-only Act as an area router only
|
Act as a station router only
|
||||||
|
- level-1-2
|
||||||
|
Act as both a station router and an area router
|
||||||
|
- level-2-only
|
||||||
|
Act as an area router only
|
||||||
|
|
||||||
.. _ISIS_interface:
|
.. _ISIS_interface:
|
||||||
|
|
||||||
ISIS interface
|
ISIS interface
|
||||||
==============
|
==============
|
||||||
|
|
||||||
.. index:: {Interface Command} {ip router isis WORD} {}
|
.. index:: ip router isis WORD
|
||||||
|
.. clicmd:: ip router isis WORD
|
||||||
|
|
||||||
{Interface Command} {ip router isis WORD} {}
|
.. index:: no ip router isis WORD
|
||||||
.. index:: {Interface Command} {no ip router isis WORD} {}
|
.. clicmd:: no ip router isis WORD
|
||||||
|
|
||||||
{Interface Command} {no ip router isis WORD} {}
|
.. _ip_router_isis_WORD:
|
||||||
.. _ip_router_isis_WORD:
|
|
||||||
|
|
||||||
Activate ISIS adjacency on this interface. Note that the name
|
Activate ISIS adjacency on this interface. Note that the name
|
||||||
of ISIS instance must be the same as the one used to configure the ISIS process
|
of ISIS instance must be the same as the one used to configure the ISIS process
|
||||||
(see command :ref:`router_isis_WORD`).
|
(see command :ref:`router_isis_WORD`).
|
||||||
|
|
||||||
.. index:: {Interface Command} {isis circuit-type [level-1 | level-1-2 | level-2]} {}
|
.. index:: isis circuit-type [level-1 | level-1-2 | level-2]
|
||||||
|
.. clicmd:: isis circuit-type [level-1 | level-1-2 | level-2]
|
||||||
|
|
||||||
{Interface Command} {isis circuit-type [level-1 | level-1-2 | level-2]} {}
|
.. index:: no isis circuit-type
|
||||||
.. index:: {Interface Command} {no isis circuit-type} {}
|
.. clicmd:: no isis circuit-type
|
||||||
|
|
||||||
{Interface Command} {no isis circuit-type} {}
|
|
||||||
Configure circuit type for interface:
|
Configure circuit type for interface:
|
||||||
- level-1 Level-1 only adjacencies are formed
|
|
||||||
- level-1-2 Level-1-2 adjacencies are formed
|
|
||||||
- level-2-only Level-2 only adjacencies are formed
|
|
||||||
|
|
||||||
.. index:: {Interface Command} {isis csnp-interval (1-600)} {}
|
- level-1
|
||||||
|
Level-1 only adjacencies are formed
|
||||||
|
- level-1-2
|
||||||
|
Level-1-2 adjacencies are formed
|
||||||
|
- level-2-only
|
||||||
|
Level-2 only adjacencies are formed
|
||||||
|
|
||||||
{Interface Command} {isis csnp-interval (1-600)} {}
|
.. index:: isis csnp-interval (1-600)
|
||||||
.. index:: {Interface Command} {isis csnp-interval (1-600) [level-1 | level-2]} {}
|
.. clicmd:: isis csnp-interval (1-600)
|
||||||
|
|
||||||
{Interface Command} {isis csnp-interval (1-600) [level-1 | level-2]} {}
|
.. index:: isis csnp-interval (1-600) [level-1 | level-2]
|
||||||
.. index:: {Interface Command} {no isis csnp-interval} {}
|
.. clicmd:: isis csnp-interval (1-600) [level-1 | level-2]
|
||||||
|
|
||||||
{Interface Command} {no isis csnp-interval} {}
|
.. index:: no isis csnp-interval
|
||||||
.. index:: {Interface Command} {no isis csnp-interval [level-1 | level-2]} {}
|
.. clicmd:: no isis csnp-interval
|
||||||
|
|
||||||
{Interface Command} {no isis csnp-interval [level-1 | level-2]} {}
|
.. index:: no isis csnp-interval [level-1 | level-2]
|
||||||
Set CSNP interval in seconds globally, for an area (level-1) or a domain (level-2).
|
.. clicmd:: no isis csnp-interval [level-1 | level-2]
|
||||||
|
|
||||||
.. index:: {Interface Command} {isis hello padding} {}
|
Set CSNP interval in seconds globally, for an area (level-1) or a domain
|
||||||
|
(level-2).
|
||||||
|
|
||||||
|
.. index:: isis hello padding
|
||||||
|
.. clicmd:: isis hello padding
|
||||||
|
|
||||||
{Interface Command} {isis hello padding} {}
|
|
||||||
Add padding to IS-IS hello packets.
|
Add padding to IS-IS hello packets.
|
||||||
|
|
||||||
.. index:: {Interface Command} {isis hello-interval (1-600)} {}
|
.. index:: isis hello-interval (1-600)
|
||||||
|
.. clicmd:: isis hello-interval (1-600)
|
||||||
|
|
||||||
{Interface Command} {isis hello-interval (1-600)} {}
|
.. index:: isis hello-interval (1-600) [level-1 | level-2]
|
||||||
.. index:: {Interface Command} {isis hello-interval (1-600) [level-1 | level-2]} {}
|
.. clicmd:: isis hello-interval (1-600) [level-1 | level-2]
|
||||||
|
|
||||||
{Interface Command} {isis hello-interval (1-600) [level-1 | level-2]} {}
|
.. index:: no isis hello-interval
|
||||||
.. index:: {Interface Command} {no isis hello-interval} {}
|
.. clicmd:: no isis hello-interval
|
||||||
|
|
||||||
{Interface Command} {no isis hello-interval} {}
|
.. index:: no isis hello-interval [level-1 | level-2]
|
||||||
.. index:: {Interface Command} {no isis hello-interval [level-1 | level-2]} {}
|
.. clicmd:: no isis hello-interval [level-1 | level-2]
|
||||||
|
|
||||||
{Interface Command} {no isis hello-interval [level-1 | level-2]} {}
|
Set Hello interval in seconds globally, for an area (level-1) or a domain
|
||||||
Set Hello interval in seconds globally, for an area (level-1) or a domain (level-2).
|
(level-2).
|
||||||
|
|
||||||
.. index:: {Interface Command} {isis hello-multiplier (2-100)} {}
|
.. index:: isis hello-multiplier (2-100)
|
||||||
|
.. clicmd:: isis hello-multiplier (2-100)
|
||||||
|
|
||||||
{Interface Command} {isis hello-multiplier (2-100)} {}
|
.. index:: isis hello-multiplier (2-100) [level-1 | level-2]
|
||||||
.. index:: {Interface Command} {isis hello-multiplier (2-100) [level-1 | level-2]} {}
|
.. clicmd:: isis hello-multiplier (2-100) [level-1 | level-2]
|
||||||
|
|
||||||
{Interface Command} {isis hello-multiplier (2-100) [level-1 | level-2]} {}
|
.. index:: no isis hello-multiplier
|
||||||
.. index:: {Interface Command} {no isis hello-multiplier} {}
|
.. clicmd:: no isis hello-multiplier
|
||||||
|
|
||||||
{Interface Command} {no isis hello-multiplier} {}
|
.. index:: no isis hello-multiplier [level-1 | level-2]
|
||||||
.. index:: {Interface Command} {no isis hello-multiplier [level-1 | level-2]} {}
|
.. clicmd:: no isis hello-multiplier [level-1 | level-2]
|
||||||
|
|
||||||
{Interface Command} {no isis hello-multiplier [level-1 | level-2]} {}
|
Set multiplier for Hello holding time globally, for an area (level-1) or a
|
||||||
Set multiplier for Hello holding time globally, for an area (level-1) or a domain (level-2).
|
domain (level-2).
|
||||||
|
|
||||||
.. index:: {Interface Command} {isis metric [(0-255) | (0-16777215)]} {}
|
.. index:: isis metric [(0-255) | (0-16777215)]
|
||||||
|
.. clicmd:: isis metric [(0-255) | (0-16777215)]
|
||||||
|
|
||||||
{Interface Command} {isis metric [(0-255) | (0-16777215)]} {}
|
.. index:: isis metric [(0-255) | (0-16777215)] [level-1 | level-2]
|
||||||
.. index:: {Interface Command} {isis metric [(0-255) | (0-16777215)] [level-1 | level-2]} {}
|
.. clicmd:: isis metric [(0-255) | (0-16777215)] [level-1 | level-2]
|
||||||
|
|
||||||
{Interface Command} {isis metric [(0-255) | (0-16777215)] [level-1 | level-2]} {}
|
.. index:: no isis metric
|
||||||
.. index:: {Interface Command} {no isis metric} {}
|
.. clicmd:: no isis metric
|
||||||
|
|
||||||
{Interface Command} {no isis metric} {}
|
.. index:: no isis metric [level-1 | level-2]
|
||||||
.. index:: {Interface Command} {no isis metric [level-1 | level-2]} {}
|
.. clicmd:: no isis metric [level-1 | level-2]
|
||||||
|
|
||||||
{Interface Command} {no isis metric [level-1 | level-2]} {}
|
Set default metric value globally, for an area (level-1) or a domain
|
||||||
Set default metric value globally, for an area (level-1) or a domain (level-2).
|
(level-2). Max value depend if metric support narrow or wide value (see
|
||||||
Max value depend if metric support narrow or wide value (see command :ref:`metric-style`).
|
command :ref:`metric-style`).
|
||||||
|
|
||||||
.. index:: {Interface Command} {isis network point-to-point} {}
|
.. index:: isis network point-to-point
|
||||||
|
.. clicmd:: isis network point-to-point
|
||||||
|
|
||||||
{Interface Command} {isis network point-to-point} {}
|
.. index:: no isis network point-to-point
|
||||||
.. index:: {Interface Command} {no isis network point-to-point} {}
|
.. clicmd:: no isis network point-to-point
|
||||||
|
|
||||||
{Interface Command} {no isis network point-to-point} {}
|
|
||||||
Set network type to 'Point-to-Point' (broadcast by default).
|
Set network type to 'Point-to-Point' (broadcast by default).
|
||||||
|
|
||||||
.. index:: {Interface Command} {isis passive} {}
|
.. index:: isis passive
|
||||||
|
.. clicmd:: isis passive
|
||||||
|
|
||||||
{Interface Command} {isis passive} {}
|
.. index:: no isis passive
|
||||||
.. index:: {Interface Command} {no isis passive} {}
|
.. clicmd:: no isis passive
|
||||||
|
|
||||||
{Interface Command} {no isis passive} {}
|
|
||||||
Configure the passive mode for this interface.
|
Configure the passive mode for this interface.
|
||||||
|
|
||||||
.. index:: {Interface Command} {isis password [clear | md5] <password>} {}
|
.. index:: isis password [clear | md5] <password>
|
||||||
|
.. clicmd:: isis password [clear | md5] <password>
|
||||||
|
|
||||||
{Interface Command} {isis password [clear | md5] <password>} {}
|
.. index:: no isis password
|
||||||
.. index:: {Interface Command} {no isis password} {}
|
.. clicmd:: no isis password
|
||||||
|
|
||||||
{Interface Command} {no isis password} {}
|
Configure the authentication password (clear or encoded text) for the
|
||||||
Configure the authentication password (clear or encoded text) for the interface.
|
interface.
|
||||||
|
|
||||||
.. index:: {Interface Command} {isis priority (0-127)} {}
|
.. index:: isis priority (0-127)
|
||||||
|
.. clicmd:: isis priority (0-127)
|
||||||
|
|
||||||
{Interface Command} {isis priority (0-127)} {}
|
.. index:: isis priority (0-127) [level-1 | level-2]
|
||||||
.. index:: {Interface Command} {isis priority (0-127) [level-1 | level-2]} {}
|
.. clicmd:: isis priority (0-127) [level-1 | level-2]
|
||||||
|
|
||||||
{Interface Command} {isis priority (0-127) [level-1 | level-2]} {}
|
.. index:: no isis priority
|
||||||
.. index:: {Interface Command} {no isis priority} {}
|
.. clicmd:: no isis priority
|
||||||
|
|
||||||
{Interface Command} {no isis priority} {}
|
.. index:: no isis priority [level-1 | level-2]
|
||||||
.. index:: {Interface Command} {no isis priority [level-1 | level-2]} {}
|
.. clicmd:: no isis priority [level-1 | level-2]
|
||||||
|
|
||||||
{Interface Command} {no isis priority [level-1 | level-2]} {}
|
Set priority for Designated Router election, globally, for the area
|
||||||
Set priority for Designated Router election, globally, for the area (level-1)
|
(level-1) or the domain (level-2).
|
||||||
or the domain (level-2).
|
|
||||||
|
|
||||||
.. index:: {Interface Command} {isis psnp-interval (1-120)} {}
|
.. index:: isis psnp-interval (1-120)
|
||||||
|
.. clicmd:: isis psnp-interval (1-120)
|
||||||
|
|
||||||
{Interface Command} {isis psnp-interval (1-120)} {}
|
.. index:: isis psnp-interval (1-120) [level-1 | level-2]
|
||||||
.. index:: {Interface Command} {isis psnp-interval (1-120) [level-1 | level-2]} {}
|
.. clicmd:: isis psnp-interval (1-120) [level-1 | level-2]
|
||||||
|
|
||||||
{Interface Command} {isis psnp-interval (1-120) [level-1 | level-2]} {}
|
.. index:: no isis psnp-interval
|
||||||
.. index:: {Interface Command} {no isis psnp-interval} {}
|
.. clicmd:: no isis psnp-interval
|
||||||
|
|
||||||
{Interface Command} {no isis psnp-interval} {}
|
.. index:: no isis psnp-interval [level-1 | level-2]
|
||||||
.. index:: {Interface Command} {no isis psnp-interval [level-1 | level-2]} {}
|
.. clicmd:: no isis psnp-interval [level-1 | level-2]
|
||||||
|
|
||||||
{Interface Command} {no isis psnp-interval [level-1 | level-2]} {}
|
Set PSNP interval in seconds globally, for an area (level-1) or a domain
|
||||||
Set PSNP interval in seconds globally, for an area (level-1) or a domain (level-2).
|
(level-2).
|
||||||
|
|
||||||
.. _Showing_ISIS_information:
|
.. _Showing_ISIS_information:
|
||||||
|
|
||||||
Showing ISIS information
|
Showing ISIS information
|
||||||
========================
|
========================
|
||||||
|
|
||||||
.. index:: {Command} {show isis summary} {}
|
.. index:: show isis summary
|
||||||
|
.. clicmd:: show isis summary
|
||||||
|
|
||||||
{Command} {show isis summary} {}
|
|
||||||
Show summary information about ISIS.
|
Show summary information about ISIS.
|
||||||
|
|
||||||
.. index:: {Command} {show isis hostname} {}
|
.. index:: show isis hostname
|
||||||
|
.. clicmd:: show isis hostname
|
||||||
|
|
||||||
{Command} {show isis hostname} {}
|
|
||||||
Show information about ISIS node.
|
Show information about ISIS node.
|
||||||
|
|
||||||
.. index:: {Command} {show isis interface} {}
|
.. index:: show isis interface
|
||||||
|
.. clicmd:: show isis interface
|
||||||
|
|
||||||
{Command} {show isis interface} {}
|
.. index:: show isis interface detail
|
||||||
.. index:: {Command} {show isis interface detail} {}
|
.. clicmd:: show isis interface detail
|
||||||
|
|
||||||
{Command} {show isis interface detail} {}
|
.. index:: show isis interface <interface name>
|
||||||
.. index:: {Command} {show isis interface <interface name>} {}
|
.. clicmd:: show isis interface <interface name>
|
||||||
|
|
||||||
{Command} {show isis interface <interface name>} {}
|
Show state and configuration of ISIS specified interface, or all interfaces
|
||||||
Show state and configuration of ISIS specified interface, or all
|
if no interface is given with or without details.
|
||||||
interfaces if no interface is given with or without details.
|
|
||||||
|
|
||||||
.. index:: {Command} {show isis neighbor} {}
|
.. index:: show isis neighbor
|
||||||
|
.. clicmd:: show isis neighbor
|
||||||
|
|
||||||
{Command} {show isis neighbor} {}
|
.. index:: show isis neighbor <System Id>
|
||||||
.. index:: {Command} {show isis neighbor <System Id>} {}
|
.. clicmd:: show isis neighbor <System Id>
|
||||||
|
|
||||||
{Command} {show isis neighbor <System Id>} {}
|
.. index:: show isis neighbor detail
|
||||||
.. index:: {Command} {show isis neighbor detail} {}
|
.. clicmd:: show isis neighbor detail
|
||||||
|
|
||||||
{Command} {show isis neighbor detail} {}
|
Show state and information of ISIS specified neighbor, or all neighbors if
|
||||||
Show state and information of ISIS specified neighbor, or all
|
no system id is given with or without details.
|
||||||
neighbors if no system id is given with or without details.
|
|
||||||
|
|
||||||
.. index:: {Command} {show isis database} {}
|
.. index:: show isis database
|
||||||
|
.. clicmd:: show isis database
|
||||||
|
|
||||||
{Command} {show isis database} {}
|
.. index:: show isis database [detail]
|
||||||
.. index:: {Command} {show isis database [detail]} {}
|
.. clicmd:: show isis database [detail]
|
||||||
|
|
||||||
{Command} {show isis database [detail]} {}
|
.. index:: show isis database <LSP id> [detail]
|
||||||
.. index:: {Command} {show isis database <LSP id> [detail]} {}
|
.. clicmd:: show isis database <LSP id> [detail]
|
||||||
|
|
||||||
{Command} {show isis database <LSP id> [detail]} {}
|
.. index:: show isis database detail <LSP id>
|
||||||
.. index:: {Command} {show isis database detail <LSP id>} {}
|
.. clicmd:: show isis database detail <LSP id>
|
||||||
|
|
||||||
{Command} {show isis database detail <LSP id>} {}
|
Show the ISIS database globally, for a specific LSP id without or with
|
||||||
Show the ISIS database globally, for a specific LSP id without or with details.
|
details.
|
||||||
|
|
||||||
.. index:: {Command} {show isis topology} {}
|
.. index:: show isis topology
|
||||||
|
.. clicmd:: show isis topology
|
||||||
|
|
||||||
{Command} {show isis topology} {}
|
.. index:: show isis topology [level-1|level-2]
|
||||||
.. index:: {Command} {show isis topology [level-1|level-2]} {}
|
.. clicmd:: show isis topology [level-1|level-2]
|
||||||
|
|
||||||
{Command} {show isis topology [level-1|level-2]} {}
|
Show topology IS-IS paths to Intermediate Systems, globally, in area
|
||||||
Show topology IS-IS paths to Intermediate Systems, globally,
|
(level-1) or domain (level-2).
|
||||||
in area (level-1) or domain (level-2).
|
|
||||||
|
|
||||||
.. index:: {Command} {show ip route isis} {}
|
.. index:: show ip route isis
|
||||||
|
.. clicmd:: show ip route isis
|
||||||
|
|
||||||
{Command} {show ip route isis} {}
|
Show the ISIS routing table, as determined by the most recent SPF
|
||||||
Show the ISIS routing table, as determined by the most recent SPF calculation.
|
calculation.
|
||||||
|
|
||||||
.. _Traffic_Engineering:
|
.. _ospf-traffic-engineering:
|
||||||
|
|
||||||
Traffic Engineering
|
Traffic Engineering
|
||||||
===================
|
===================
|
||||||
|
|
||||||
.. index:: {ISIS Command} {mpls-te on} {}
|
.. index:: mpls-te on
|
||||||
|
.. clicmd:: mpls-te on
|
||||||
|
|
||||||
{ISIS Command} {mpls-te on} {}
|
.. index:: no mpls-te
|
||||||
.. index:: {ISIS Command} {no mpls-te} {}
|
.. clicmd:: no mpls-te
|
||||||
|
|
||||||
{ISIS Command} {no mpls-te} {}
|
|
||||||
Enable Traffic Engineering LSP flooding.
|
Enable Traffic Engineering LSP flooding.
|
||||||
|
|
||||||
.. index:: {ISIS Command} {mpls-te router-address <A.B.C.D>} {}
|
.. index:: mpls-te router-address <A.B.C.D>
|
||||||
|
.. clicmd:: mpls-te router-address <A.B.C.D>
|
||||||
|
|
||||||
{ISIS Command} {mpls-te router-address <A.B.C.D>} {}
|
.. index:: no mpls-te router-address
|
||||||
.. index:: {ISIS Command} {no mpls-te router-address} {}
|
.. clicmd:: no mpls-te router-address
|
||||||
|
|
||||||
{ISIS Command} {no mpls-te router-address} {}
|
|
||||||
Configure stable IP address for MPLS-TE.
|
Configure stable IP address for MPLS-TE.
|
||||||
|
|
||||||
.. index:: {Command} {show isis mpls-te interface} {}
|
.. index:: show isis mpls-te interface
|
||||||
|
.. clicmd:: show isis mpls-te interface
|
||||||
|
|
||||||
{Command} {show isis mpls-te interface} {}
|
.. index:: show isis mpls-te interface INTERFACE
|
||||||
.. index:: {Command} {show isis mpls-te interface `interface`} {}
|
.. clicmd:: show isis mpls-te interface INTERFACE
|
||||||
|
|
||||||
{Command} {show isis mpls-te interface `interface`} {}
|
|
||||||
Show MPLS Traffic Engineering parameters for all or specified interface.
|
Show MPLS Traffic Engineering parameters for all or specified interface.
|
||||||
|
|
||||||
.. index:: {Command} {show isis mpls-te router} {}
|
.. index:: show isis mpls-te router
|
||||||
|
.. clicmd:: show isis mpls-te router
|
||||||
|
|
||||||
{Command} {show isis mpls-te router} {}
|
|
||||||
Show Traffic Engineering router parameters.
|
Show Traffic Engineering router parameters.
|
||||||
|
|
||||||
.. _Debugging_ISIS:
|
.. _Debugging_ISIS:
|
||||||
@ -448,110 +449,108 @@ Traffic Engineering
|
|||||||
Debugging ISIS
|
Debugging ISIS
|
||||||
==============
|
==============
|
||||||
|
|
||||||
.. index:: {Command} {debug isis adj-packets} {}
|
.. index:: debug isis adj-packets
|
||||||
|
.. clicmd:: debug isis adj-packets
|
||||||
|
|
||||||
{Command} {debug isis adj-packets} {}
|
.. index:: no debug isis adj-packets
|
||||||
.. index:: {Command} {no debug isis adj-packets} {}
|
.. clicmd:: no debug isis adj-packets
|
||||||
|
|
||||||
{Command} {no debug isis adj-packets} {}
|
|
||||||
IS-IS Adjacency related packets.
|
IS-IS Adjacency related packets.
|
||||||
|
|
||||||
.. index:: {Command} {debug isis checksum-errors} {}
|
.. index:: debug isis checksum-errors
|
||||||
|
.. clicmd:: debug isis checksum-errors
|
||||||
|
|
||||||
{Command} {debug isis checksum-errors} {}
|
.. index:: no debug isis checksum-errors
|
||||||
.. index:: {Command} {no debug isis checksum-errors} {}
|
.. clicmd:: no debug isis checksum-errors
|
||||||
|
|
||||||
{Command} {no debug isis checksum-errors} {}
|
|
||||||
IS-IS LSP checksum errors.
|
IS-IS LSP checksum errors.
|
||||||
|
|
||||||
.. index:: {Command} {debug isis events} {}
|
.. index:: debug isis events
|
||||||
|
.. clicmd:: debug isis events
|
||||||
|
|
||||||
{Command} {debug isis events} {}
|
.. index:: no debug isis events
|
||||||
.. index:: {Command} {no debug isis events} {}
|
.. clicmd:: no debug isis events
|
||||||
|
|
||||||
{Command} {no debug isis events} {}
|
|
||||||
IS-IS Events.
|
IS-IS Events.
|
||||||
|
|
||||||
.. index:: {Command} {debug isis local-updates} {}
|
.. index:: debug isis local-updates
|
||||||
|
.. clicmd:: debug isis local-updates
|
||||||
|
|
||||||
{Command} {debug isis local-updates} {}
|
.. index:: no debug isis local-updates
|
||||||
.. index:: {Command} {no debug isis local-updates} {}
|
.. clicmd:: no debug isis local-updates
|
||||||
|
|
||||||
{Command} {no debug isis local-updates} {}
|
|
||||||
IS-IS local update packets.
|
IS-IS local update packets.
|
||||||
|
|
||||||
.. index:: {Command} {debug isis packet-dump} {}
|
.. index:: debug isis packet-dump
|
||||||
|
.. clicmd:: debug isis packet-dump
|
||||||
|
|
||||||
{Command} {debug isis packet-dump} {}
|
.. index:: no debug isis packet-dump
|
||||||
.. index:: {Command} {no debug isis packet-dump} {}
|
.. clicmd:: no debug isis packet-dump
|
||||||
|
|
||||||
{Command} {no debug isis packet-dump} {}
|
|
||||||
IS-IS packet dump.
|
IS-IS packet dump.
|
||||||
|
|
||||||
.. index:: {Command} {debug isis protocol-errors} {}
|
.. index:: debug isis protocol-errors
|
||||||
|
.. clicmd:: debug isis protocol-errors
|
||||||
|
|
||||||
{Command} {debug isis protocol-errors} {}
|
.. index:: no debug isis protocol-errors
|
||||||
.. index:: {Command} {no debug isis protocol-errors} {}
|
.. clicmd:: no debug isis protocol-errors
|
||||||
|
|
||||||
{Command} {no debug isis protocol-errors} {}
|
|
||||||
IS-IS LSP protocol errors.
|
IS-IS LSP protocol errors.
|
||||||
|
|
||||||
.. index:: {Command} {debug isis route-events} {}
|
.. index:: debug isis route-events
|
||||||
|
.. clicmd:: debug isis route-events
|
||||||
|
|
||||||
{Command} {debug isis route-events} {}
|
.. index:: no debug isis route-events
|
||||||
.. index:: {Command} {no debug isis route-events} {}
|
.. clicmd:: no debug isis route-events
|
||||||
|
|
||||||
{Command} {no debug isis route-events} {}
|
|
||||||
IS-IS Route related events.
|
IS-IS Route related events.
|
||||||
|
|
||||||
.. index:: {Command} {debug isis snp-packets} {}
|
.. index:: debug isis snp-packets
|
||||||
|
.. clicmd:: debug isis snp-packets
|
||||||
|
|
||||||
{Command} {debug isis snp-packets} {}
|
.. index:: no debug isis snp-packets
|
||||||
.. index:: {Command} {no debug isis snp-packets} {}
|
.. clicmd:: no debug isis snp-packets
|
||||||
|
|
||||||
{Command} {no debug isis snp-packets} {}
|
|
||||||
IS-IS CSNP/PSNP packets.
|
IS-IS CSNP/PSNP packets.
|
||||||
|
|
||||||
.. index:: {Command} {debug isis spf-events} {}
|
.. index:: debug isis spf-events
|
||||||
|
.. clicmd:: debug isis spf-events
|
||||||
|
|
||||||
{Command} {debug isis spf-events} {}
|
.. index:: debug isis spf-statistics
|
||||||
.. index:: {Command} {debug isis spf-statistics} {}
|
.. clicmd:: debug isis spf-statistics
|
||||||
|
|
||||||
{Command} {debug isis spf-statistics} {}
|
.. index:: debug isis spf-triggers
|
||||||
.. index:: {Command} {debug isis spf-triggers} {}
|
.. clicmd:: debug isis spf-triggers
|
||||||
|
|
||||||
{Command} {debug isis spf-triggers} {}
|
.. index:: no debug isis spf-events
|
||||||
.. index:: {Command} {no debug isis spf-events} {}
|
.. clicmd:: no debug isis spf-events
|
||||||
|
|
||||||
{Command} {no debug isis spf-events} {}
|
.. index:: no debug isis spf-statistics
|
||||||
.. index:: {Command} {no debug isis spf-statistics} {}
|
.. clicmd:: no debug isis spf-statistics
|
||||||
|
|
||||||
{Command} {no debug isis spf-statistics} {}
|
.. index:: no debug isis spf-triggers
|
||||||
.. index:: {Command} {no debug isis spf-triggers} {}
|
.. clicmd:: no debug isis spf-triggers
|
||||||
|
|
||||||
{Command} {no debug isis spf-triggers} {}
|
IS-IS Shortest Path First Events, Timing and Statistic Data and triggering
|
||||||
IS-IS Shortest Path First Events, Timing and Statistic Data
|
events.
|
||||||
and triggering events.
|
|
||||||
|
|
||||||
.. index:: {Command} {debug isis update-packets} {}
|
.. index:: debug isis update-packets
|
||||||
|
.. clicmd:: debug isis update-packets
|
||||||
|
|
||||||
{Command} {debug isis update-packets} {}
|
.. index:: no debug isis update-packets
|
||||||
.. index:: {Command} {no debug isis update-packets} {}
|
.. clicmd:: no debug isis update-packets
|
||||||
|
|
||||||
{Command} {no debug isis update-packets} {}
|
|
||||||
Update related packets.
|
Update related packets.
|
||||||
|
|
||||||
.. index:: {Command} {show debugging isis} {}
|
.. index:: show debugging isis
|
||||||
|
.. clicmd:: show debugging isis
|
||||||
|
|
||||||
{Command} {show debugging isis} {}
|
|
||||||
Print which ISIS debug level is activate.
|
Print which ISIS debug level is activate.
|
||||||
|
|
||||||
ISIS Configuration Examples
|
ISIS Configuration Examples
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
A simple example, with MD5 authentication enabled:
|
A simple example, with MD5 authentication enabled:::
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
!
|
!
|
||||||
interface eth0
|
interface eth0
|
||||||
@ -567,9 +566,7 @@ A simple example, with MD5 authentication enabled:
|
|||||||
|
|
||||||
A Traffic Engineering configuration, with Inter-ASv2 support.
|
A Traffic Engineering configuration, with Inter-ASv2 support.
|
||||||
|
|
||||||
- First, the 'zebra.conf' part:
|
First, the 'zebra.conf' part:::
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
hostname HOSTNAME
|
hostname HOSTNAME
|
||||||
password PASSWORD
|
password PASSWORD
|
||||||
@ -609,9 +606,7 @@ A Traffic Engineering configuration, with Inter-ASv2 support.
|
|||||||
mpls-te neighbor 10.1.1.2 as 65000
|
mpls-te neighbor 10.1.1.2 as 65000
|
||||||
|
|
||||||
|
|
||||||
- Then the 'isisd.conf' itself:
|
Then the 'isisd.conf' itself:::
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
hostname HOSTNAME
|
hostname HOSTNAME
|
||||||
password PASSWORD
|
password PASSWORD
|
||||||
@ -631,5 +626,3 @@ A Traffic Engineering configuration, with Inter-ASv2 support.
|
|||||||
mpls-te router-address 10.1.1.1
|
mpls-te router-address 10.1.1.1
|
||||||
!
|
!
|
||||||
line vty
|
line vty
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,18 +4,17 @@
|
|||||||
NHRP
|
NHRP
|
||||||
****
|
****
|
||||||
|
|
||||||
*nhrpd* is a daemon to support Next Hop Routing Protocol (NHRP).
|
*nhrpd* is an implementation of the :abbr:NHRP `(Next Hop Routing Protocol)`.
|
||||||
NHRP is described in RFC2332.
|
NHRP is described in :rfc`2332`.
|
||||||
|
|
||||||
NHRP is used to improve the efficiency of routing computer network
|
NHRP is used to improve the efficiency of routing computer network traffic over
|
||||||
traffic over Non-Broadcast, Multiple Access (NBMA) Networks. NHRP provides
|
:abbr:`NBMA (Non-Broadcast, Multiple Access)` networks. NHRP provides an
|
||||||
an ARP-like solution that allows a system to dynamically learn the NBMA
|
ARP-like solution that allows a system to dynamically learn the NBMA address of
|
||||||
address of the other systems that are part of that network, allowing
|
the other systems that are part of that network, allowing these systems to
|
||||||
these systems to directly communicate without requiring traffic to use
|
directly communicate without requiring traffic to use an intermediate hop.
|
||||||
an intermediate hop.
|
|
||||||
|
|
||||||
Cisco Dynamic Multipoint VPN (DMVPN) is based on NHRP, and
|
Cisco Dynamic Multipoint VPN (DMVPN) is based on NHRP, and |PACKAGE_NAME| nhrpd
|
||||||
|PACKAGE_NAME| nhrpd implements this scenario.
|
implements this scenario.
|
||||||
|
|
||||||
.. _Routing_Design:
|
.. _Routing_Design:
|
||||||
|
|
||||||
@ -31,9 +30,8 @@ nhrpd does route NHRP domain addresses individually using per-host prefixes.
|
|||||||
This is similar to Cisco FlexVPN; but in contrast to opennhrp which uses
|
This is similar to Cisco FlexVPN; but in contrast to opennhrp which uses
|
||||||
a generic subnet route.
|
a generic subnet route.
|
||||||
|
|
||||||
To create NBMA GRE tunnel you might use the following (linux terminal
|
To create NBMA GRE tunnel you might use the following (Linux terminal
|
||||||
commands):
|
commands):::
|
||||||
::
|
|
||||||
|
|
||||||
ip tunnel add gre1 mode gre key 42 ttl 64
|
ip tunnel add gre1 mode gre key 42 ttl 64
|
||||||
ip addr add 10.255.255.2/32 dev gre1
|
ip addr add 10.255.255.2/32 dev gre1
|
||||||
@ -54,8 +52,7 @@ hub nodes, these routes should be internally redistributed using some
|
|||||||
routing protocol (e.g. iBGP) to allow hubs to be able to relay all traffic.
|
routing protocol (e.g. iBGP) to allow hubs to be able to relay all traffic.
|
||||||
|
|
||||||
This can be achieved in hubs with the following bgp configuration (network
|
This can be achieved in hubs with the following bgp configuration (network
|
||||||
command defines the GRE subnet):
|
command defines the GRE subnet):::
|
||||||
::
|
|
||||||
|
|
||||||
router bgp 65555
|
router bgp 65555
|
||||||
address-family ipv4 unicast
|
address-family ipv4 unicast
|
||||||
@ -98,20 +95,16 @@ announce internal, add additional IP range matches, or rate limitation
|
|||||||
if needed. However, the above should be good in most cases.
|
if needed. However, the above should be good in most cases.
|
||||||
|
|
||||||
This kernel NFLOG target's nflog-group is configured in global nhrp config
|
This kernel NFLOG target's nflog-group is configured in global nhrp config
|
||||||
with:
|
with:::
|
||||||
::
|
|
||||||
|
|
||||||
nhrp nflog-group 1
|
nhrp nflog-group 1
|
||||||
|
|
||||||
|
|
||||||
To start sending these traffic notices out from hubs, use the nhrp
|
To start sending these traffic notices out from hubs, use the nhrp
|
||||||
per-interface directive:
|
per-interface directive:::
|
||||||
::
|
|
||||||
|
|
||||||
interface gre1
|
interface gre1
|
||||||
ip nhrp redirect
|
ip nhrp redirect
|
||||||
|
|
||||||
|
|
||||||
.. _Integration_with_IKE:
|
.. _Integration_with_IKE:
|
||||||
|
|
||||||
Integration with IKE
|
Integration with IKE
|
||||||
|
@ -4,35 +4,34 @@
|
|||||||
OSPFv3
|
OSPFv3
|
||||||
******
|
******
|
||||||
|
|
||||||
*ospf6d* is a daemon support OSPF version 3 for IPv6 network.
|
*ospf6d* is a daemon support OSPF version 3 for IPv6 network. OSPF for IPv6 is
|
||||||
OSPF for IPv6 is described in RFC2740.
|
described in :rfc:`2740`.
|
||||||
|
|
||||||
.. _OSPF6_router:
|
.. _OSPF6_router:
|
||||||
|
|
||||||
OSPF6 router
|
OSPF6 router
|
||||||
============
|
============
|
||||||
|
|
||||||
.. index:: {Command} {router ospf6} {}
|
.. index:: router ospf6
|
||||||
|
.. clicmd:: router ospf6
|
||||||
|
|
||||||
{Command} {router ospf6} {}
|
.. index:: router-id A.B.C.D
|
||||||
|
.. clicmd:: router-id A.B.C.D
|
||||||
|
|
||||||
.. index:: {OSPF6 Command} {router-id `a.b.c.d`} {}
|
|
||||||
|
|
||||||
{OSPF6 Command} {router-id `a.b.c.d`} {}
|
|
||||||
Set router's Router-ID.
|
Set router's Router-ID.
|
||||||
|
|
||||||
.. index:: {OSPF6 Command} {interface `ifname` area `area`} {}
|
.. index:: interface IFNAME area AREA
|
||||||
|
.. clicmd:: interface IFNAME area AREA
|
||||||
|
|
||||||
{OSPF6 Command} {interface `ifname` area `area`} {}
|
|
||||||
Bind interface to specified area, and start sending OSPF packets. `area` can
|
Bind interface to specified area, and start sending OSPF packets. `area` can
|
||||||
be specified as 0.
|
be specified as 0.
|
||||||
|
|
||||||
.. index:: {OSPF6 Command} {timers throttle spf `delay` `initial-holdtime` `max-holdtime`} {}
|
.. index:: timers throttle spf DELAY INITIAL-HOLDTIME MAX-HOLDTIME
|
||||||
|
.. clicmd:: timers throttle spf DELAY INITIAL-HOLDTIME MAX-HOLDTIME
|
||||||
|
|
||||||
{OSPF6 Command} {timers throttle spf `delay` `initial-holdtime` `max-holdtime`} {}
|
.. index:: no timers throttle spf
|
||||||
.. index:: {OSPF6 Command} {no timers throttle spf} {}
|
.. clicmd:: no timers throttle spf
|
||||||
|
|
||||||
{OSPF6 Command} {no timers throttle spf} {}
|
|
||||||
This command sets the initial `delay`, the `initial-holdtime`
|
This command sets the initial `delay`, the `initial-holdtime`
|
||||||
and the `maximum-holdtime` between when SPF is calculated and the
|
and the `maximum-holdtime` between when SPF is calculated and the
|
||||||
event which triggered the calculation. The times are specified in
|
event which triggered the calculation. The times are specified in
|
||||||
@ -50,28 +49,26 @@ OSPF6 router
|
|||||||
will cause the holdtime to be increased by `initial-holdtime`, bounded
|
will cause the holdtime to be increased by `initial-holdtime`, bounded
|
||||||
by the `maximum-holdtime` configured with this command. If the adaptive
|
by the `maximum-holdtime` configured with this command. If the adaptive
|
||||||
hold-time elapses without any SPF-triggering event occuring then
|
hold-time elapses without any SPF-triggering event occuring then
|
||||||
the current holdtime is reset to the `initial-holdtime`.
|
the current holdtime is reset to the `initial-holdtime`.::
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
router ospf6
|
router ospf6
|
||||||
timers throttle spf 200 400 10000
|
timers throttle spf 200 400 10000
|
||||||
|
|
||||||
|
|
||||||
In this example, the `delay` is set to 200ms, the @var{initial
|
In this example, the `delay` is set to 200ms, the initial holdtime is set
|
||||||
holdtime} is set to 400ms and the `maximum holdtime` to 10s. Hence
|
to 400ms and the `maximum holdtime` to 10s. Hence there will always be at
|
||||||
there will always be at least 200ms between an event which requires SPF
|
least 200ms between an event which requires SPF calculation and the actual
|
||||||
calculation and the actual SPF calculation. Further consecutive SPF
|
SPF calculation. Further consecutive SPF calculations will always be
|
||||||
calculations will always be seperated by between 400ms to 10s, the
|
seperated by between 400ms to 10s, the hold-time increasing by 400ms each
|
||||||
hold-time increasing by 400ms each time an SPF-triggering event occurs
|
time an SPF-triggering event occurs within the hold-time of the previous
|
||||||
within the hold-time of the previous SPF calculation.
|
SPF calculation.
|
||||||
|
|
||||||
.. index:: {OSPF6 Command} {auto-cost reference-bandwidth `cost`} {}
|
.. index:: auto-cost reference-bandwidth COST
|
||||||
|
.. clicmd:: auto-cost reference-bandwidth COST
|
||||||
|
|
||||||
{OSPF6 Command} {auto-cost reference-bandwidth `cost`} {}
|
.. index:: no auto-cost reference-bandwidth
|
||||||
.. index:: {OSPF6 Command} {no auto-cost reference-bandwidth} {}
|
.. clicmd:: no auto-cost reference-bandwidth
|
||||||
|
|
||||||
{OSPF6 Command} {no auto-cost reference-bandwidth} {}
|
|
||||||
This sets the reference bandwidth for cost calculations, where this
|
This sets the reference bandwidth for cost calculations, where this
|
||||||
bandwidth is considered equivalent to an OSPF cost of 1, specified in
|
bandwidth is considered equivalent to an OSPF cost of 1, specified in
|
||||||
Mbits/s. The default is 100Mbit/s (i.e. a link of bandwidth 100Mbit/s
|
Mbits/s. The default is 100Mbit/s (i.e. a link of bandwidth 100Mbit/s
|
||||||
@ -93,40 +90,40 @@ Area support for OSPFv3 is not yet implemented.
|
|||||||
OSPF6 interface
|
OSPF6 interface
|
||||||
===============
|
===============
|
||||||
|
|
||||||
.. index:: {Interface Command} {ipv6 ospf6 cost COST} {}
|
.. index:: ipv6 ospf6 cost COST
|
||||||
|
.. clicmd:: ipv6 ospf6 cost COST
|
||||||
|
|
||||||
{Interface Command} {ipv6 ospf6 cost COST} {}
|
|
||||||
Sets interface's output cost. Default value depends on the interface
|
Sets interface's output cost. Default value depends on the interface
|
||||||
bandwidth and on the auto-cost reference bandwidth.
|
bandwidth and on the auto-cost reference bandwidth.
|
||||||
|
|
||||||
.. index:: {Interface Command} {ipv6 ospf6 hello-interval HELLOINTERVAL} {}
|
.. index:: ipv6 ospf6 hello-interval HELLOINTERVAL
|
||||||
|
.. clicmd:: ipv6 ospf6 hello-interval HELLOINTERVAL
|
||||||
|
|
||||||
{Interface Command} {ipv6 ospf6 hello-interval HELLOINTERVAL} {}
|
|
||||||
Sets interface's Hello Interval. Default 40
|
Sets interface's Hello Interval. Default 40
|
||||||
|
|
||||||
.. index:: {Interface Command} {ipv6 ospf6 dead-interval DEADINTERVAL} {}
|
.. index:: ipv6 ospf6 dead-interval DEADINTERVAL
|
||||||
|
.. clicmd:: ipv6 ospf6 dead-interval DEADINTERVAL
|
||||||
|
|
||||||
{Interface Command} {ipv6 ospf6 dead-interval DEADINTERVAL} {}
|
|
||||||
Sets interface's Router Dead Interval. Default value is 40.
|
Sets interface's Router Dead Interval. Default value is 40.
|
||||||
|
|
||||||
.. index:: {Interface Command} {ipv6 ospf6 retransmit-interval RETRANSMITINTERVAL} {}
|
.. index:: ipv6 ospf6 retransmit-interval RETRANSMITINTERVAL
|
||||||
|
.. clicmd:: ipv6 ospf6 retransmit-interval RETRANSMITINTERVAL
|
||||||
|
|
||||||
{Interface Command} {ipv6 ospf6 retransmit-interval RETRANSMITINTERVAL} {}
|
|
||||||
Sets interface's Rxmt Interval. Default value is 5.
|
Sets interface's Rxmt Interval. Default value is 5.
|
||||||
|
|
||||||
.. index:: {Interface Command} {ipv6 ospf6 priority PRIORITY} {}
|
.. index:: ipv6 ospf6 priority PRIORITY
|
||||||
|
.. clicmd:: ipv6 ospf6 priority PRIORITY
|
||||||
|
|
||||||
{Interface Command} {ipv6 ospf6 priority PRIORITY} {}
|
|
||||||
Sets interface's Router Priority. Default value is 1.
|
Sets interface's Router Priority. Default value is 1.
|
||||||
|
|
||||||
.. index:: {Interface Command} {ipv6 ospf6 transmit-delay TRANSMITDELAY} {}
|
.. index:: ipv6 ospf6 transmit-delay TRANSMITDELAY
|
||||||
|
.. clicmd:: ipv6 ospf6 transmit-delay TRANSMITDELAY
|
||||||
|
|
||||||
{Interface Command} {ipv6 ospf6 transmit-delay TRANSMITDELAY} {}
|
|
||||||
Sets interface's Inf-Trans-Delay. Default value is 1.
|
Sets interface's Inf-Trans-Delay. Default value is 1.
|
||||||
|
|
||||||
.. index:: {Interface Command} {ipv6 ospf6 network (broadcast|point-to-point)} {}
|
.. index:: ipv6 ospf6 network (broadcast|point-to-point)
|
||||||
|
.. clicmd:: ipv6 ospf6 network (broadcast|point-to-point)
|
||||||
|
|
||||||
{Interface Command} {ipv6 ospf6 network (broadcast|point-to-point)} {}
|
|
||||||
Set explicitly network type for specifed interface.
|
Set explicitly network type for specifed interface.
|
||||||
|
|
||||||
.. _Redistribute_routes_to_OSPF6:
|
.. _Redistribute_routes_to_OSPF6:
|
||||||
@ -134,55 +131,55 @@ OSPF6 interface
|
|||||||
Redistribute routes to OSPF6
|
Redistribute routes to OSPF6
|
||||||
============================
|
============================
|
||||||
|
|
||||||
.. index:: {OSPF6 Command} {redistribute static} {}
|
.. index:: redistribute static
|
||||||
|
.. clicmd:: redistribute static
|
||||||
|
|
||||||
{OSPF6 Command} {redistribute static} {}
|
.. index:: redistribute connected
|
||||||
.. index:: {OSPF6 Command} {redistribute connected} {}
|
.. clicmd:: redistribute connected
|
||||||
|
|
||||||
{OSPF6 Command} {redistribute connected} {}
|
.. index:: redistribute ripng
|
||||||
.. index:: {OSPF6 Command} {redistribute ripng} {}
|
.. clicmd:: redistribute ripng
|
||||||
|
|
||||||
{OSPF6 Command} {redistribute ripng} {}
|
|
||||||
|
|
||||||
.. _Showing_OSPF6_information:
|
.. _Showing_OSPF6_information:
|
||||||
|
|
||||||
Showing OSPF6 information
|
Showing OSPF6 information
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
.. index:: {Command} {show ipv6 ospf6 [INSTANCE_ID]} {}
|
.. index:: show ipv6 ospf6 [INSTANCE_ID]
|
||||||
|
.. clicmd:: show ipv6 ospf6 [INSTANCE_ID]
|
||||||
|
|
||||||
{Command} {show ipv6 ospf6 [INSTANCE_ID]} {}
|
|
||||||
INSTANCE_ID is an optional OSPF instance ID. To see router ID and OSPF
|
INSTANCE_ID is an optional OSPF instance ID. To see router ID and OSPF
|
||||||
instance ID, simply type "show ipv6 ospf6 <cr>".
|
instance ID, simply type "show ipv6 ospf6 <cr>".
|
||||||
|
|
||||||
.. index:: {Command} {show ipv6 ospf6 database} {}
|
.. index:: show ipv6 ospf6 database
|
||||||
|
.. clicmd:: show ipv6 ospf6 database
|
||||||
|
|
||||||
{Command} {show ipv6 ospf6 database} {}
|
|
||||||
This command shows LSA database summary. You can specify the type of LSA.
|
This command shows LSA database summary. You can specify the type of LSA.
|
||||||
|
|
||||||
.. index:: {Command} {show ipv6 ospf6 interface} {}
|
.. index:: show ipv6 ospf6 interface
|
||||||
|
.. clicmd:: show ipv6 ospf6 interface
|
||||||
|
|
||||||
{Command} {show ipv6 ospf6 interface} {}
|
|
||||||
To see OSPF interface configuration like costs.
|
To see OSPF interface configuration like costs.
|
||||||
|
|
||||||
.. index:: {Command} {show ipv6 ospf6 neighbor} {}
|
.. index:: show ipv6 ospf6 neighbor
|
||||||
|
.. clicmd:: show ipv6 ospf6 neighbor
|
||||||
|
|
||||||
{Command} {show ipv6 ospf6 neighbor} {}
|
|
||||||
Shows state and chosen (Backup) DR of neighbor.
|
Shows state and chosen (Backup) DR of neighbor.
|
||||||
|
|
||||||
.. index:: {Command} {show ipv6 ospf6 request-list A.B.C.D} {}
|
.. index:: show ipv6 ospf6 request-list A.B.C.D
|
||||||
|
.. clicmd:: show ipv6 ospf6 request-list A.B.C.D
|
||||||
|
|
||||||
{Command} {show ipv6 ospf6 request-list A.B.C.D} {}
|
|
||||||
Shows requestlist of neighbor.
|
Shows requestlist of neighbor.
|
||||||
|
|
||||||
.. index:: {Command} {show ipv6 route ospf6} {}
|
.. index:: show ipv6 route ospf6
|
||||||
|
.. clicmd:: show ipv6 route ospf6
|
||||||
|
|
||||||
{Command} {show ipv6 route ospf6} {}
|
|
||||||
This command shows internal routing table.
|
This command shows internal routing table.
|
||||||
|
|
||||||
.. index:: {Command} {show ipv6 ospf6 zebra} {}
|
.. index:: show ipv6 ospf6 zebra
|
||||||
|
.. clicmd:: show ipv6 ospf6 zebra
|
||||||
|
|
||||||
{Command} {show ipv6 ospf6 zebra} {}
|
|
||||||
Shows state about what is being redistributed between zebra and OSPF6
|
Shows state about what is being redistributed between zebra and OSPF6
|
||||||
|
|
||||||
OSPF6 Configuration Examples
|
OSPF6 Configuration Examples
|
||||||
@ -200,5 +197,3 @@ Example of ospf6d configured on one interface and area:
|
|||||||
area 0.0.0.0 range 2001:770:105:2::/64
|
area 0.0.0.0 range 2001:770:105:2::/64
|
||||||
interface eth0 area 0.0.0.0
|
interface eth0 area 0.0.0.0
|
||||||
!
|
!
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,7 +4,6 @@ OSPF Fundamentals
|
|||||||
=================
|
=================
|
||||||
|
|
||||||
.. index:: Link-state routing protocol
|
.. index:: Link-state routing protocol
|
||||||
|
|
||||||
.. index:: Distance-vector routing protocol
|
.. index:: Distance-vector routing protocol
|
||||||
|
|
||||||
:abbr:`OSPF` is, mostly, a link-state routing protocol. In contrast
|
:abbr:`OSPF` is, mostly, a link-state routing protocol. In contrast
|
||||||
@ -15,12 +14,9 @@ describe the state of their links to their immediate neighbouring
|
|||||||
routers.
|
routers.
|
||||||
|
|
||||||
.. index:: Link State Announcement
|
.. index:: Link State Announcement
|
||||||
|
|
||||||
.. index:: Link State Advertisement
|
.. index:: Link State Advertisement
|
||||||
|
|
||||||
.. index:: LSA flooding
|
.. index:: LSA flooding
|
||||||
|
.. index:: Link State Database
|
||||||
.. index:: Link State DataBase
|
|
||||||
|
|
||||||
Each router describes their link-state information in a message known
|
Each router describes their link-state information in a message known
|
||||||
as an :abbr:`LSA (Link State Advertisement)`, which is then propogated
|
as an :abbr:`LSA (Link State Advertisement)`, which is then propogated
|
||||||
@ -69,128 +65,118 @@ will nearly all be covered in greater detail further on. They may be
|
|||||||
broadly classed as:
|
broadly classed as:
|
||||||
|
|
||||||
|
|
||||||
.. index:: OSPF Hello Protocol overview
|
.. index:: OSPF Hello Protocol
|
||||||
|
|
||||||
|
The Hello Protocol
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
*The Hello Protocol*
|
The OSPF Hello protocol allows OSPF to quickly detect changes in two-way
|
||||||
.. index:: OSPF Hello Protocol
|
reachability between routers on a link. OSPF can additionally avail of other
|
||||||
|
sources of reachability information, such as link-state information provided by
|
||||||
|
hardware, or through dedicated reachability protocols such as :abbr:`BFD
|
||||||
|
(Bidirectional Forwarding Detection)`.
|
||||||
|
|
||||||
The OSPF Hello protocol allows OSPF to quickly detect changes in
|
OSPF also uses the Hello protocol to propagate certain state between routers
|
||||||
two-way reachability between routers on a link. OSPF can additionally
|
sharing a link, for example:
|
||||||
avail of other sources of reachability information, such as link-state
|
|
||||||
information provided by hardware, or through dedicated reachability
|
|
||||||
protocols such as :abbr:`BFD (Bi-directional Forwarding Detection)`.
|
|
||||||
|
|
||||||
OSPF also uses the Hello protocol to propagate certain state between
|
- Hello protocol configured state, such as the dead-interval.
|
||||||
routers sharing a link, for example:
|
- Router priority, for DR/BDR election.
|
||||||
|
- DR/BDR election results.
|
||||||
|
- Any optional capabilities supported by each router.
|
||||||
|
|
||||||
|
The Hello protocol is comparatively trivial and will not be explored in greater
|
||||||
|
detail than here.
|
||||||
|
|
||||||
*Hello protocol configured state, such as the dead-interval.*
|
.. index:: OSPF LSA overview
|
||||||
|
.. _ospf-lsas:
|
||||||
|
|
||||||
*Router priority, for DR/BDR election.*
|
LSAs
|
||||||
|
^^^^
|
||||||
|
|
||||||
*DR/BDR election results.*
|
At the heart of :abbr:`OSPF` are :abbr:`LSA (Link State Advertisement)`
|
||||||
|
messages. Despite the name, some :abbr:`LSA` s do not, strictly speaking,
|
||||||
|
describe link-state information. Common :abbr:`LSA` s describe information
|
||||||
|
such as:
|
||||||
|
|
||||||
*Any optional capabilities supported by each router.*
|
- Routers, in terms of their links.
|
||||||
|
- Networks, in terms of attached routers.
|
||||||
|
- Routes, external to a link-state domain:
|
||||||
|
|
||||||
The Hello protocol is comparatively trivial and will not be explored in
|
External Routes
|
||||||
greater detail than here.
|
|
||||||
|
|
||||||
.. index:: OSPF LSA overview
|
|
||||||
|
|
||||||
|
|
||||||
*LSAs*
|
|
||||||
At the heart of :abbr:`OSPF` are :abbr:`LSA (Link State Advertisement)`
|
|
||||||
messages. Despite the name, some :abbr:`LSA`s do not, strictly speaking,
|
|
||||||
describe link-state information. Common :abbr:`LSA`s describe information
|
|
||||||
such as:
|
|
||||||
|
|
||||||
|
|
||||||
**
|
|
||||||
Routers, in terms of their links.
|
|
||||||
|
|
||||||
**
|
|
||||||
Networks, in terms of attached routers.
|
|
||||||
|
|
||||||
**
|
|
||||||
Routes, external to a link-state domain:
|
|
||||||
|
|
||||||
|
|
||||||
*External Routes*
|
|
||||||
Routes entirely external to :abbr:`OSPF`. Routers originating such
|
Routes entirely external to :abbr:`OSPF`. Routers originating such
|
||||||
routes are known as :abbr:`ASBR (Autonomous-System Border Router)`
|
routes are known as :abbr:`ASBR (Autonomous-System Border Router)`
|
||||||
routers.
|
routers.
|
||||||
|
|
||||||
|
Summary Routes
|
||||||
*Summary Routes*
|
|
||||||
Routes which summarise routing information relating to OSPF areas
|
Routes which summarise routing information relating to OSPF areas
|
||||||
external to the OSPF link-state area at hand, originated by
|
external to the OSPF link-state area at hand, originated by
|
||||||
:abbr:`ABR (Area Boundary Router)` routers.
|
:abbr:`ABR (Area Boundary Router)` routers.
|
||||||
|
|
||||||
|
.. _ospf-lsa-flooding:
|
||||||
|
|
||||||
*LSA Flooding*
|
LSA Flooding
|
||||||
OSPF defines several related mechanisms, used to manage synchronisation of
|
""""""""""""
|
||||||
:abbr:`LSDB`s between neighbours as neighbours form adjacencies and
|
|
||||||
the propogation, or :term:`flooding` of new or updated :abbr:`LSA`s.
|
|
||||||
|
|
||||||
:ref:`OSPF_Flooding`.
|
OSPF defines several related mechanisms, used to manage synchronisation of
|
||||||
|
:abbr:`LSDB`s between neighbours as neighbours form adjacencies and the
|
||||||
|
propogation, or :term:`flooding` of new or updated :abbr:`LSA` s.
|
||||||
|
|
||||||
.. index:: OSPF Areas overview
|
:ref:`OSPF_Flooding`.
|
||||||
|
|
||||||
|
|
||||||
*Areas*
|
.. index:: OSPF Areas overview
|
||||||
OSPF provides for the protocol to be broken up into multiple smaller
|
.. _ospf-areas:
|
||||||
and independent link-state areas. Each area must be connected to a
|
|
||||||
common backbone area by an :abbr:`ABR (Area Boundary Router)`. These
|
|
||||||
:abbr:`ABR` routers are responsible for summarising the link-state
|
|
||||||
routing information of an area into :term:`Summary LSAs`, possibly in a
|
|
||||||
condensed (i.e. aggregated) form, and then originating these summaries
|
|
||||||
into all other areas the :abbr:`ABR` is connected to.
|
|
||||||
|
|
||||||
Note that only summaries and external routes are passed between areas.
|
Areas
|
||||||
As these describe *paths*, rather than any router link-states,
|
^^^^^
|
||||||
routing between areas hence is by :term:`distance-vector`, **not**
|
|
||||||
link-state.
|
|
||||||
|
|
||||||
:ref:`OSPF_Areas`.
|
OSPF provides for the protocol to be broken up into multiple smaller and
|
||||||
|
independent link-state areas. Each area must be connected to a common backbone
|
||||||
|
area by an :abbr:`ABR (Area Boundary Router)`. These :abbr:`ABR` routers are
|
||||||
|
responsible for summarising the link-state routing information of an area into
|
||||||
|
:term:`Summary LSAs`, possibly in a condensed (i.e. aggregated) form, and then
|
||||||
|
originating these summaries into all other areas the :abbr:`ABR` is connected
|
||||||
|
to.
|
||||||
|
|
||||||
|
Note that only summaries and external routes are passed between areas. As
|
||||||
|
these describe *paths*, rather than any router link-states, routing between
|
||||||
|
areas hence is by :term:`distance-vector`, **not** link-state.
|
||||||
|
|
||||||
OSPF LSAs
|
OSPF LSAs
|
||||||
---------
|
---------
|
||||||
|
|
||||||
:abbr:`LSA`s are the core object in OSPF. Everything else in OSPF
|
The core objects in OSPF are :abbr:`LSA` s. Everything else in OSPF revolves
|
||||||
revolves around detecting what to describe in LSAs, when to update
|
around detecting what to describe in LSAs, when to update them, how to flood
|
||||||
them, how to flood them throughout a network and how to calculate
|
them throughout a network and how to calculate routes from them.
|
||||||
routes from them.
|
|
||||||
|
|
||||||
There are a variety of different :abbr:`LSA`s, for purposes such
|
There are a variety of different :abbr:`LSA` s, for purposes such as describing
|
||||||
as describing actual link-state information, describing paths (i.e.
|
actual link-state information, describing paths (i.e. routes), describing
|
||||||
routes), describing bandwidth usage of links for
|
bandwidth usage of links for :abbr:`TE (Traffic Engineering)` purposes, and
|
||||||
:abbr:`TE (Traffic Engineering)` purposes, and even arbitrary data
|
even arbitrary data by way of *Opaque* :abbr:`LSA` s.
|
||||||
by way of *Opaque* :abbr:`LSA`s.
|
|
||||||
|
|
||||||
LSA Header
|
LSA Header
|
||||||
^^^^^^^^^^
|
^^^^^^^^^^
|
||||||
|
|
||||||
All LSAs share a common header with the following information:
|
All LSAs share a common header with the following information:
|
||||||
|
|
||||||
* Type
|
- Type
|
||||||
|
|
||||||
Different types of :abbr:`LSA`s describe different things in
|
Different types of :abbr:`LSA` s describe different things in
|
||||||
:abbr:`OSPF`. Types include:
|
:abbr:`OSPF`. Types include:
|
||||||
|
|
||||||
* Router LSA
|
- Router LSA
|
||||||
* Network LSA
|
- Network LSA
|
||||||
* Network Summary LSA
|
- Network Summary LSA
|
||||||
* Router Summary LSA
|
- Router Summary LSA
|
||||||
* AS-External LSA
|
- AS-External LSA
|
||||||
|
|
||||||
The specifics of the different types of LSA are examined below.
|
The specifics of the different types of LSA are examined below.
|
||||||
|
|
||||||
* Advertising Router
|
- Advertising Router
|
||||||
|
|
||||||
The Router ID of the router originating the LSA, see :ref:`ospf_router-id`.
|
The Router ID of the router originating the LSA, see :ref:`ospf_router-id`.
|
||||||
|
|
||||||
* LSA ID
|
- LSA ID
|
||||||
|
|
||||||
The ID of the LSA, which is typically derived in some way from the
|
The ID of the LSA, which is typically derived in some way from the
|
||||||
information the LSA describes, e.g. a Router LSA uses the Router ID as
|
information the LSA describes, e.g. a Router LSA uses the Router ID as
|
||||||
@ -202,9 +188,9 @@ All LSAs share a common header with the following information:
|
|||||||
an LSA with the same Type, LSA ID and Advertising Router ID, see
|
an LSA with the same Type, LSA ID and Advertising Router ID, see
|
||||||
:ref:`OSPF_LSA_sequence_number,,LSA_Sequence_Number`.
|
:ref:`OSPF_LSA_sequence_number,,LSA_Sequence_Number`.
|
||||||
|
|
||||||
* Age
|
- Age
|
||||||
|
|
||||||
A number to allow stale :abbr:`LSA`s to, eventually, be purged by routers
|
A number to allow stale :abbr:`LSA` s to, eventually, be purged by routers
|
||||||
from their :abbr:`LSDB`s.
|
from their :abbr:`LSDB`s.
|
||||||
|
|
||||||
The value nominally is one of seconds. An age of 3600, i.e. 1 hour, is
|
The value nominally is one of seconds. An age of 3600, i.e. 1 hour, is
|
||||||
@ -222,51 +208,47 @@ All LSAs share a common header with the following information:
|
|||||||
|
|
||||||
.. _OSPF_LSA_sequence_number:
|
.. _OSPF_LSA_sequence_number:
|
||||||
|
|
||||||
* Sequence Number
|
- Sequence Number
|
||||||
|
|
||||||
A number used to distinguish newer instances of an LSA from older instances.
|
A number used to distinguish newer instances of an LSA from older instances.
|
||||||
|
|
||||||
Link-State LSAs
|
Link-State LSAs
|
||||||
^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Of all the various kinds of :abbr:`LSA`s, just two types comprise the
|
Of all the various kinds of :abbr:`LSA` s, just two types comprise the
|
||||||
actual link-state part of :abbr:`OSPF`, Router :abbr:`LSA`s and
|
actual link-state part of :abbr:`OSPF`, Router :abbr:`LSA` s and
|
||||||
Network :abbr:`LSA`s. These LSA types are absolutely core to the
|
Network :abbr:`LSA` s. These LSA types are absolutely core to the
|
||||||
protocol.
|
protocol.
|
||||||
|
|
||||||
Instances of these LSAs are specific to the link-state area in which
|
Instances of these LSAs are specific to the link-state area in which
|
||||||
they are originated. Routes calculated from these two LSA types are
|
they are originated. Routes calculated from these two LSA types are
|
||||||
called :term:`intra-area routes`.
|
called :term:`intra-area routes`.
|
||||||
|
|
||||||
* Router LSA
|
- Router LSA
|
||||||
|
|
||||||
Each OSPF Router must originate a router :abbr:`LSA` to describe
|
Each OSPF Router must originate a router :abbr:`LSA` to describe
|
||||||
itself. In it, the router lists each of its :abbr:`OSPF` enabled
|
itself. In it, the router lists each of its :abbr:`OSPF` enabled
|
||||||
interfaces, for the given link-state area, in terms of:
|
interfaces, for the given link-state area, in terms of:
|
||||||
|
|
||||||
* Cost
|
Cost
|
||||||
|
|
||||||
The output cost of that interface, scaled inversely to some commonly known
|
The output cost of that interface, scaled inversely to some commonly known
|
||||||
reference value, :ref:`OSPF_auto-cost_reference-bandwidth,,auto-cost_reference-bandwidth`.
|
reference value, :ref:`OSPF_auto-cost_reference-bandwidth,,auto-cost_reference-bandwidth`.
|
||||||
|
|
||||||
* Link Type
|
Link Type
|
||||||
|
Transit Network
|
||||||
* Transit Network
|
|
||||||
|
|
||||||
A link to a multi-access network, on which the router has at least one
|
A link to a multi-access network, on which the router has at least one
|
||||||
Full adjacency with another router.
|
Full adjacency with another router.
|
||||||
|
|
||||||
* :abbr:`PtP (Point-to-Point)`
|
:abbr:`PtP (Point-to-Point)`
|
||||||
|
|
||||||
A link to a single remote router, with a Full adjacency. No
|
A link to a single remote router, with a Full adjacency. No
|
||||||
:abbr:`DR (Designated Router)` is elected on such links; no network
|
:abbr:`DR (Designated Router)` is elected on such links; no network
|
||||||
LSA is originated for such a link.
|
LSA is originated for such a link.
|
||||||
|
|
||||||
* Stub
|
Stub
|
||||||
|
|
||||||
A link with no adjacent neighbours, or a host route.
|
A link with no adjacent neighbours, or a host route.
|
||||||
|
|
||||||
* Link ID and Data
|
- Link ID and Data
|
||||||
|
|
||||||
These values depend on the Link Type:
|
These values depend on the Link Type:
|
||||||
|
|
||||||
@ -282,36 +264,37 @@ called :term:`intra-area routes`.
|
|||||||
| Stub | IP address | Subnet Mask |
|
| Stub | IP address | Subnet Mask |
|
||||||
+----------------+-----------------------------------+------------------------------------------+
|
+----------------+-----------------------------------+------------------------------------------+
|
||||||
|
|
||||||
Links on a router may be listed multiple times in the Router LSA, e.g.
|
Links on a router may be listed multiple times in the Router LSA, e.g. a
|
||||||
a :abbr:`PtP` interface on which OSPF is enabled must *always*
|
:abbr:`PtP` interface on which OSPF is enabled must *always* be described
|
||||||
be described by a Stub link in the Router :abbr:`LSA`, in addition to
|
by a Stub link in the Router :abbr:`LSA`, in addition to being listed as
|
||||||
being listed as PtP link in the Router :abbr:`LSA` if the adjacency
|
PtP link in the Router :abbr:`LSA` if the adjacency with the remote router
|
||||||
with the remote router is Full.
|
is Full.
|
||||||
|
|
||||||
Stub links may also be used as a way to describe links on which OSPF is
|
Stub links may also be used as a way to describe links on which OSPF is
|
||||||
*not* spoken, known as :term:`passive interfaces`, see :ref:`OSPF_passive-interface,,passive-interface`.
|
*not* spoken, known as :term:`passive interfaces`, see
|
||||||
|
:ref:`OSPF_passive-interface,,passive-interface`.
|
||||||
|
|
||||||
* Network LSA
|
- Network LSA
|
||||||
|
|
||||||
On multi-access links (e.g. ethernets, certain kinds of ATM and X.25
|
On multi-access links (e.g. ethernets, certain kinds of ATM and X.25
|
||||||
configurations), routers elect a :abbr:`DR`. The :abbr:`DR` is
|
configurations), routers elect a :abbr:`DR`. The :abbr:`DR` is
|
||||||
responsible for originating a Network :abbr:`LSA`, which helps reduce
|
responsible for originating a Network :abbr:`LSA`, which helps reduce
|
||||||
the information needed to describe multi-access networks with multiple
|
the information needed to describe multi-access networks with multiple
|
||||||
routers attached. The :abbr:`DR` also acts as a hub for the flooding of
|
routers attached. The :abbr:`DR` also acts as a hub for the flooding of
|
||||||
:abbr:`LSA`s on that link, thus reducing flooding overheads.
|
:abbr:`LSA` s on that link, thus reducing flooding overheads.
|
||||||
|
|
||||||
The contents of the Network LSA describes the:
|
The contents of the Network LSA describes the:
|
||||||
|
|
||||||
* Subnet Mask
|
- Subnet Mask
|
||||||
|
|
||||||
As the :abbr:`LSA` ID of a Network LSA must be the IP address of the
|
As the :abbr:`LSA` ID of a Network LSA must be the IP address of the
|
||||||
:abbr:`DR`, the Subnet Mask together with the :abbr:`LSA` ID gives
|
:abbr:`DR`, the Subnet Mask together with the :abbr:`LSA` ID gives
|
||||||
you the network address.
|
you the network address.
|
||||||
|
|
||||||
* Attached Routers
|
- Attached Routers
|
||||||
|
|
||||||
Each router fully-adjacent with the :abbr:`DR` is listed in the LSA,
|
Each router fully-adjacent with the :abbr:`DR` is listed in the LSA,
|
||||||
by their Router-ID. This allows the corresponding Router :abbr:`LSA`s to be
|
by their Router-ID. This allows the corresponding Router :abbr:`LSA` s to be
|
||||||
easily retrieved from the :abbr:`LSDB`.
|
easily retrieved from the :abbr:`LSDB`.
|
||||||
|
|
||||||
Summary of Link State LSAs:
|
Summary of Link State LSAs:
|
||||||
@ -333,13 +316,14 @@ surprisingly, when OSPF routers build updated routing tables, the first
|
|||||||
stage of :abbr:`SPF` calculation concerns itself only with these two
|
stage of :abbr:`SPF` calculation concerns itself only with these two
|
||||||
LSA types.
|
LSA types.
|
||||||
|
|
||||||
|
.. _ospf-link-state-lsa-examples:
|
||||||
|
|
||||||
Link-State LSA Examples
|
Link-State LSA Examples
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
The example below (:ref:`OSPF_Link-State_LSA_Example`) shows two
|
The example below shows two :abbr:`LSA` s, both originated by the same router
|
||||||
:abbr:`LSA`s, both originated by the same router (Router ID
|
(Router ID 192.168.0.49) and with the same :abbr:`LSA` ID (192.168.0.49), but
|
||||||
192.168.0.49) and with the same :abbr:`LSA` ID (192.168.0.49), but of
|
of different LSA types.
|
||||||
different LSA types.
|
|
||||||
|
|
||||||
The first LSA being the router LSA describing 192.168.0.49's links: 2 links
|
The first LSA being the router LSA describing 192.168.0.49's links: 2 links
|
||||||
to multi-access networks with fully-adjacent neighbours (i.e. Transit
|
to multi-access networks with fully-adjacent neighbours (i.e. Transit
|
||||||
@ -349,8 +333,6 @@ The second LSA being a Network LSA, for which 192.168.0.49 is the
|
|||||||
:abbr:`DR`, listing the Router IDs of 4 routers on that network which
|
:abbr:`DR`, listing the Router IDs of 4 routers on that network which
|
||||||
are fully adjacent with 192.168.0.49.
|
are fully adjacent with 192.168.0.49.
|
||||||
|
|
||||||
.. _OSPF_Link-State_LSA_Example:
|
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
# show ip ospf database router 192.168.0.49
|
# show ip ospf database router 192.168.0.49
|
||||||
@ -424,7 +406,7 @@ as their LSA ID, so you can then look up that Network LSA and from that
|
|||||||
find all the attached routers on that link, leading potentially to more
|
find all the attached routers on that link, leading potentially to more
|
||||||
links and Network and Router LSAs, etc. etc.
|
links and Network and Router LSAs, etc. etc.
|
||||||
|
|
||||||
From just the above two :abbr:`LSA`s, one can already see the
|
From just the above two :abbr:`LSA` s, one can already see the
|
||||||
following partial topology:
|
following partial topology:
|
||||||
|
|
||||||
::
|
::
|
||||||
@ -458,66 +440,57 @@ reachable addresses (though, OSPF will calculate routes to Router IDs).
|
|||||||
External LSAs
|
External LSAs
|
||||||
^^^^^^^^^^^^^
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
External, or "Type 5", :abbr:`LSA`s describe routing information which is
|
External, or "Type 5", :abbr:`LSA` s describe routing information which is
|
||||||
entirely external to :abbr:`OSPF`, and is "injected" into
|
entirely external to :abbr:`OSPF`, and is "injected" into
|
||||||
:abbr:`OSPF`. Such routing information may have come from another
|
:abbr:`OSPF`. Such routing information may have come from another
|
||||||
routing protocol, such as RIP or BGP, they may represent static routes
|
routing protocol, such as RIP or BGP, they may represent static routes
|
||||||
or they may represent a default route.
|
or they may represent a default route.
|
||||||
|
|
||||||
An :abbr:`OSPF` router which originates External :abbr:`LSA`s is known as an
|
An :abbr:`OSPF` router which originates External :abbr:`LSA` s is known as an
|
||||||
:abbr:`ASBR (AS Boundary Router)`. Unlike the link-state :abbr:`LSA`s, and
|
:abbr:`ASBR (AS Boundary Router)`. Unlike the link-state :abbr:`LSA` s, and
|
||||||
most other :abbr:`LSA`s, which are flooded only within the area in
|
most other :abbr:`LSA` s, which are flooded only within the area in
|
||||||
which they originate, External :abbr:`LSA`s are flooded through-out
|
which they originate, External :abbr:`LSA` s are flooded through-out
|
||||||
the :abbr:`OSPF` network to all areas capable of carrying External
|
the :abbr:`OSPF` network to all areas capable of carrying External
|
||||||
:abbr:`LSA`s (:ref:`OSPF_Areas`).
|
:abbr:`LSA` s (:ref:`OSPF_Areas`).
|
||||||
|
|
||||||
Routes internal to OSPF (intra-area or inter-area) are always preferred
|
Routes internal to OSPF (intra-area or inter-area) are always preferred
|
||||||
over external routes.
|
over external routes.
|
||||||
|
|
||||||
The External :abbr:`LSA` describes the following:
|
The External :abbr:`LSA` describes the following:
|
||||||
|
|
||||||
* IP Network number
|
IP Network number
|
||||||
|
The IP Network number of the route is described by the :abbr:`LSA` ID field.
|
||||||
|
|
||||||
The IP Network number of the route is described by the :abbr:`LSA` ID
|
IP Network Mask
|
||||||
field.
|
The body of the External LSA describes the IP Network Mask of the route.
|
||||||
|
This, together with the :abbr:`LSA` ID, describes the prefix of the IP route
|
||||||
|
concerned.
|
||||||
|
|
||||||
* IP Network Mask
|
Metric
|
||||||
|
The cost of the External Route. This cost may be an OSPF cost (also known as
|
||||||
|
a "Type 1" metric), i.e. equivalent to the normal OSPF costs, or an
|
||||||
|
externally derived cost ("Type 2" metric) which is not comparable to OSPF
|
||||||
|
costs and always considered larger than any OSPF cost. Where there are both
|
||||||
|
Type 1 and 2 External routes for a route, the Type 1 is always preferred.
|
||||||
|
|
||||||
The body of the External LSA describes the IP Network Mask of the
|
Forwarding Address
|
||||||
route. This, together with the :abbr:`LSA` ID, describes the prefix
|
The address of the router to forward packets to for the route. This may be,
|
||||||
of the IP route concerned.
|
and usually is, left as 0 to specify that the ASBR originating the External
|
||||||
|
:abbr:`LSA` should be used. There must be an internal OSPF route to the
|
||||||
|
forwarding address, for the forwarding address to be useable.
|
||||||
|
|
||||||
* Metric
|
Tag
|
||||||
|
An arbitrary 4-bytes of data, not interpreted by OSPF, which may carry
|
||||||
The cost of the External Route. This cost may be an OSPF cost (also
|
whatever information about the route which OSPF speakers desire.
|
||||||
known as a "Type 1" metric), i.e. equivalent to the normal OSPF costs,
|
|
||||||
or an externally derived cost ("Type 2" metric) which is not comparable
|
|
||||||
to OSPF costs and always considered larger than any OSPF cost. Where
|
|
||||||
there are both Type 1 and 2 External routes for a route, the Type 1 is
|
|
||||||
always preferred.
|
|
||||||
|
|
||||||
* Forwarding Address
|
|
||||||
|
|
||||||
The address of the router to forward packets to for the route. This may
|
|
||||||
be, and usually is, left as 0 to specify that the ASBR originating the
|
|
||||||
External :abbr:`LSA` should be used. There must be an internal OSPF
|
|
||||||
route to the forwarding address, for the forwarding address to be
|
|
||||||
useable.
|
|
||||||
|
|
||||||
* Tag
|
|
||||||
|
|
||||||
An arbitrary 4-bytes of data, not interpreted by OSPF, which may
|
|
||||||
carry whatever information about the route which OSPF speakers desire.
|
|
||||||
|
|
||||||
AS External LSA Example
|
AS External LSA Example
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
To illustrate, below is an example of an External :abbr:`LSA` in the
|
To illustrate, below is an example of an External :abbr:`LSA` in the
|
||||||
:abbr:`LSDB` of an OSPF router. It describes a route to the IP prefix
|
:abbr:`LSDB` of an OSPF router. It describes a route to the IP prefix of
|
||||||
of 192.168.165.0/24, originated by the ASBR with Router-ID
|
192.168.165.0/24, originated by the ASBR with Router-ID 192.168.0.49. The
|
||||||
192.168.0.49. The metric of 20 is external to OSPF. The forwarding
|
metric of 20 is external to OSPF. The forwarding address is 0, so the route
|
||||||
address is 0, so the route should forward to the originating ASBR if
|
should forward to the originating ASBR if selected.
|
||||||
selected.
|
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -540,8 +513,7 @@ selected.
|
|||||||
|
|
||||||
|
|
||||||
We can add this to our partial topology from above, which now looks
|
We can add this to our partial topology from above, which now looks
|
||||||
like:
|
like:::
|
||||||
::
|
|
||||||
|
|
||||||
--------------------- Network: ......
|
--------------------- Network: ......
|
||||||
| Designated Router IP: 192.168.1.3
|
| Designated Router IP: 192.168.1.3
|
||||||
@ -568,16 +540,6 @@ like:
|
|||||||
Summary LSAs
|
Summary LSAs
|
||||||
^^^^^^^^^^^^
|
^^^^^^^^^^^^
|
||||||
|
|
||||||
Summary LSAs are created by :abbr:`ABR`s to summarise the destinations available within one area to other areas. These LSAs may describe IP networks, potentially in aggregated form, or :abbr:`ASBR` routers.
|
Summary LSAs are created by :abbr:`ABR`s to summarise the destinations
|
||||||
|
available within one area to other areas. These LSAs may describe IP networks,
|
||||||
.. _OSPF_Flooding:
|
potentially in aggregated form, or :abbr:`ASBR` routers.
|
||||||
|
|
||||||
OSPF Flooding
|
|
||||||
-------------
|
|
||||||
|
|
||||||
.. _OSPF_Areas:
|
|
||||||
|
|
||||||
OSPF Areas
|
|
||||||
----------
|
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -7,34 +7,30 @@ Zebra Protocol
|
|||||||
Overview of the Zebra Protocol
|
Overview of the Zebra Protocol
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
Zebra Protocol is used by protocol daemons to communicate with the
|
Zebra Protocol is used by protocol daemons to communicate with the zebra
|
||||||
zebra daemon.
|
daemon.
|
||||||
|
|
||||||
Each protocol daemon may request and send information to and from the
|
Each protocol daemon may request and send information to and from the zebra
|
||||||
zebra daemon such as interface states, routing state,
|
daemon such as interface states, routing state, nexthop-validation, and so on.
|
||||||
nexthop-validation, and so on. Protocol daemons may also install routes
|
Protocol daemons may also install routes with zebra. The zebra daemon manages
|
||||||
with zebra. The zebra daemon manages which route is installed into the
|
which route is installed into the forwarding table with the kernel.
|
||||||
forwarding table with the kernel.
|
|
||||||
|
|
||||||
Zebra Protocol is a streaming protocol, with a common header. Two
|
Zebra Protocol is a streaming protocol, with a common header. Two versions of
|
||||||
versions of the header are in use. Version 0 is implicitely versioned.
|
the header are in use. Version 0 is implicitely versioned. Version 1 has an
|
||||||
Version 1 has an explicit version field. Version 0 can be distinguished
|
explicit version field. Version 0 can be distinguished from all other versions
|
||||||
from all other versions by examining the 3rd byte of the header, which
|
by examining the 3rd byte of the header, which contains a marker value for all
|
||||||
contains a marker value for all versions bar version 0. The marker byte
|
versions bar version 0. The marker byte corresponds to the command field in
|
||||||
corresponds to the command field in version 0, and the marker value is
|
version 0, and the marker value is a reserved command in version 0.
|
||||||
a reserved command in version 0.
|
|
||||||
|
|
||||||
We do not anticipate there will be further versions of the header for
|
We do not anticipate there will be further versions of the header for the
|
||||||
the foreseeable future, as the command field in version 1 is wide
|
foreseeable future, as the command field in version 1 is wide enough to allow
|
||||||
enough to allow for future extensions to done compatibly through
|
for future extensions to done compatibly through seperate commands.
|
||||||
seperate commands.
|
|
||||||
|
|
||||||
Version 0 is used by all versions of GNU Zebra as of this writing, and
|
Version 0 is used by all versions of GNU Zebra as of this writing, and versions
|
||||||
versions of Quagga up to and including Quagga 0.98. Version 2 was created
|
of Quagga up to and including Quagga 0.98. Version 2 was created for 0.99.21 of
|
||||||
for 0.99.21 of Quagga. Version 3 designates VRF compatibility and was
|
Quagga. Version 3 designates VRF compatibility and was released in 1.0.
|
||||||
released in 1.0. Version 4 will be used as of FRR 2.0 to indicate that
|
Version 4 will be used as of FRR 2.0 to indicate that we are a different
|
||||||
we are a different Routing Suite now and to hopefully prevent accidental
|
Routing Suite now and to hopefully prevent accidental Quagga <-> FRR issues.
|
||||||
Quagga <-> FRR issues.
|
|
||||||
|
|
||||||
Zebra Protocol Definition
|
Zebra Protocol Definition
|
||||||
=========================
|
=========================
|
||||||
@ -68,61 +64,59 @@ Zebra Protocol Common Header (version 1)
|
|||||||
Zebra Protocol Header Field Definitions
|
Zebra Protocol Header Field Definitions
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
@table @samp
|
Length
|
||||||
@item Length
|
Total packet length including this header. The minimum length is 3 bytes for
|
||||||
Total packet length including this header. The minimum length is 3
|
version 0 messages and 6 bytes for version 1 messages.
|
||||||
bytes for version 0 messages and 6 bytes for version 1 messages.
|
|
||||||
|
|
||||||
@item Marker
|
Marker
|
||||||
Static marker with a value of 255 always. This is to allow version 0
|
Static marker with a value of 255 always. This is to allow version 0 Zserv
|
||||||
Zserv headers (which do not include version explicitely) to be
|
headers (which do not include version explicitly) to be distinguished from
|
||||||
distinguished from versioned headers. Not present in version 0
|
versioned headers. Not present in version 0 messages.
|
||||||
messages.
|
|
||||||
|
|
||||||
@item Version
|
Version
|
||||||
Version number of the Zserv message. Clients should not continue
|
Version number of the Zserv message. Clients should not continue processing
|
||||||
processing messages past the version field for versions they do not
|
messages past the version field for versions they do not recognise. Not
|
||||||
recognise. Not present in version 0 messages.
|
present in version 0 messages.
|
||||||
|
|
||||||
|
Command
|
||||||
|
The Zebra Protocol command.
|
||||||
|
|
||||||
@item Command
|
|
||||||
The Zebra Protocol command.
|
|
||||||
@end table
|
|
||||||
|
|
||||||
Zebra Protocol Commands
|
Zebra Protocol Commands
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
@multitable {ZEBRA_REDISTRIBUTE_DEFAULT_DELETE_WHATEVER} {99999}
|
+-----------------------------------+-------+
|
||||||
@headitem Command @tab Value
|
| Command | Value |
|
||||||
@item ZEBRA_INTERFACE_ADD
|
+===================================+=======+
|
||||||
@tab 1
|
| ZEBRA_INTERFACE_ADD | 1 |
|
||||||
@item ZEBRA_INTERFACE_DELETE
|
+-----------------------------------+-------+
|
||||||
@tab 2
|
| ZEBRA_INTERFACE_DELETE | 2 |
|
||||||
@item ZEBRA_INTERFACE_ADDRESS_ADD
|
+-----------------------------------+-------+
|
||||||
@tab 3
|
| ZEBRA_INTERFACE_ADDRESS_ADD | 3 |
|
||||||
@item ZEBRA_INTERFACE_ADDRESS_DELETE
|
+-----------------------------------+-------+
|
||||||
@tab 4
|
| ZEBRA_INTERFACE_ADDRESS_DELETE | 4 |
|
||||||
@item ZEBRA_INTERFACE_UP
|
+-----------------------------------+-------+
|
||||||
@tab 5
|
| ZEBRA_INTERFACE_UP | 5 |
|
||||||
@item ZEBRA_INTERFACE_DOWN
|
+-----------------------------------+-------+
|
||||||
@tab 6
|
| ZEBRA_INTERFACE_DOWN | 6 |
|
||||||
@item ZEBRA_IPV4_ROUTE_ADD
|
+-----------------------------------+-------+
|
||||||
@tab 7
|
| ZEBRA_IPV4_ROUTE_ADD | 7 |
|
||||||
@item ZEBRA_IPV4_ROUTE_DELETE
|
+-----------------------------------+-------+
|
||||||
@tab 8
|
| ZEBRA_IPV4_ROUTE_DELETE | 8 |
|
||||||
@item ZEBRA_IPV6_ROUTE_ADD
|
+-----------------------------------+-------+
|
||||||
@tab 9
|
| ZEBRA_IPV6_ROUTE_ADD | 9 |
|
||||||
@item ZEBRA_IPV6_ROUTE_DELETE
|
+-----------------------------------+-------+
|
||||||
@tab 10
|
| ZEBRA_IPV6_ROUTE_DELETE | 10 |
|
||||||
@item ZEBRA_REDISTRIBUTE_ADD
|
+-----------------------------------+-------+
|
||||||
@tab 11
|
| ZEBRA_REDISTRIBUTE_ADD | 11 |
|
||||||
@item ZEBRA_REDISTRIBUTE_DELETE
|
+-----------------------------------+-------+
|
||||||
@tab 12
|
| ZEBRA_REDISTRIBUTE_DELETE | 12 |
|
||||||
@item ZEBRA_REDISTRIBUTE_DEFAULT_ADD
|
+-----------------------------------+-------+
|
||||||
@tab 13
|
| ZEBRA_REDISTRIBUTE_DEFAULT_ADD | 13 |
|
||||||
@item ZEBRA_REDISTRIBUTE_DEFAULT_DELETE
|
+-----------------------------------+-------+
|
||||||
@tab 14
|
| ZEBRA_REDISTRIBUTE_DEFAULT_DELETE | 14 |
|
||||||
@item ZEBRA_IPV4_NEXTHOP_LOOKUP
|
+-----------------------------------+-------+
|
||||||
@tab 15
|
| ZEBRA_IPV4_NEXTHOP_LOOKUP | 15 |
|
||||||
@item ZEBRA_IPV6_NEXTHOP_LOOKUP
|
+-----------------------------------+-------+
|
||||||
@tab 16
|
| ZEBRA_IPV6_NEXTHOP_LOOKUP | 16 |
|
||||||
@end multitable
|
+-----------------------------------+-------+
|
||||||
|
@ -21,17 +21,15 @@ version 1 as described in RFC1058.
|
|||||||
Starting and Stopping ripd
|
Starting and Stopping ripd
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
The default configuration file name of *ripd*'s is
|
The default configuration file name of *ripd*'s is :file:`ripd.conf`. When
|
||||||
:file:`ripd.conf`. When invocation *ripd* searches directory
|
invocation *ripd* searches directory |INSTALL_PREFIX_ETC|. If :file:`ripd.conf`
|
||||||
|INSTALL_PREFIX_ETC|. If :file:`ripd.conf` is not there next
|
is not there next search current directory.
|
||||||
search current directory.
|
|
||||||
|
|
||||||
RIP uses UDP port 520 to send and receive RIP packets. So the user must have
|
RIP uses UDP port 520 to send and receive RIP packets. So the user must have
|
||||||
the capability to bind the port, generally this means that the user must
|
the capability to bind the port, generally this means that the user must have
|
||||||
have superuser privileges. RIP protocol requires interface information
|
superuser privileges. RIP protocol requires interface information maintained by
|
||||||
maintained by *zebra* daemon. So running *zebra*
|
*zebra* daemon. So running *zebra* is mandatory to run *ripd*. Thus minimum
|
||||||
is mandatory to run *ripd*. Thus minimum sequence for running
|
sequence for running RIP is like below:
|
||||||
RIP is like below:
|
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -41,8 +39,10 @@ RIP is like below:
|
|||||||
|
|
||||||
Please note that *zebra* must be invoked before *ripd*.
|
Please note that *zebra* must be invoked before *ripd*.
|
||||||
|
|
||||||
To stop *ripd*. Please use @command{kill `cat
|
To stop *ripd*. Please use::
|
||||||
/var/run/ripd.pid`}. Certain signals have special meaningss to *ripd*.
|
kill `cat /var/run/ripd.pid`
|
||||||
|
|
||||||
|
Certain signals have special meaningss to *ripd*.
|
||||||
|
|
||||||
+-------------+------------------------------------------------------+
|
+-------------+------------------------------------------------------+
|
||||||
| Signal | Action |
|
| Signal | Action |
|
||||||
@ -70,83 +70,84 @@ To stop *ripd*. Please use @command{kill `cat
|
|||||||
RIP netmask
|
RIP netmask
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
The netmask features of *ripd* support both version 1 and version 2 of
|
The netmask features of *ripd* support both version 1 and version 2 of RIP.
|
||||||
RIP. Version 1 of RIP originally contained no netmask information. In
|
Version 1 of RIP originally contained no netmask information. In RIP version 1,
|
||||||
RIP version 1, network classes were originally used to determine the
|
network classes were originally used to determine the size of the netmask.
|
||||||
size of the netmask. Class A networks use 8 bits of mask, Class B
|
Class A networks use 8 bits of mask, Class B networks use 16 bits of masks,
|
||||||
networks use 16 bits of masks, while Class C networks use 24 bits of
|
while Class C networks use 24 bits of mask. Today, the most widely used method
|
||||||
mask. Today, the most widely used method of a network mask is assigned
|
of a network mask is assigned to the packet on the basis of the interface that
|
||||||
to the packet on the basis of the interface that received the packet.
|
received the packet. Version 2 of RIP supports a variable length subnet mask
|
||||||
Version 2 of RIP supports a variable length subnet mask (VLSM). By
|
(VLSM). By extending the subnet mask, the mask can be divided and reused. Each
|
||||||
extending the subnet mask, the mask can be divided and reused. Each
|
subnet can be used for different purposes such as large to middle size LANs and
|
||||||
subnet can be used for different purposes such as large to middle size
|
WAN links. FRR *ripd* does not support the non-sequential netmasks that are
|
||||||
LANs and WAN links. FRR *ripd* does not support the non-sequential
|
included in RIP Version 2.
|
||||||
netmasks that are included in RIP Version 2.
|
|
||||||
|
|
||||||
In a case of similar information with the same prefix and metric, the
|
In a case of similar information with the same prefix and metric, the old
|
||||||
old information will be suppressed. Ripd does not currently support
|
information will be suppressed. Ripd does not currently support equal cost
|
||||||
equal cost multipath routing.
|
multipath routing.
|
||||||
|
|
||||||
.. _RIP_Configuration:
|
.. _RIP_Configuration:
|
||||||
|
|
||||||
RIP Configuration
|
RIP Configuration
|
||||||
=================
|
=================
|
||||||
|
|
||||||
.. index:: Command {router rip} {}
|
.. index:: router rip
|
||||||
|
.. clicmd:: router rip
|
||||||
|
|
||||||
Command {router rip} {}
|
The `router rip` command is necessary to enable RIP. To disable RIP, use the
|
||||||
The `router rip` command is necessary to enable RIP. To disable
|
`no router rip` command. RIP must be enabled before carrying out any of the
|
||||||
RIP, use the `no router rip` command. RIP must be enabled before
|
RIP commands.
|
||||||
carrying out any of the RIP commands.
|
|
||||||
|
|
||||||
.. index:: Command {no router rip} {}
|
.. index:: no router rip
|
||||||
|
.. clicmd:: no router rip
|
||||||
|
|
||||||
Command {no router rip} {}
|
|
||||||
Disable RIP.
|
Disable RIP.
|
||||||
|
|
||||||
.. index:: {RIP Command} {network `network`} {}
|
.. index:: network NETWORK
|
||||||
|
.. clicmd:: network NETWORK
|
||||||
|
|
||||||
{RIP Command} {network `network`} {}
|
.. index:: no network NETWORK
|
||||||
.. index:: {RIP Command} {no network `network`} {}
|
.. clicmd:: no network NETWORK
|
||||||
|
|
||||||
{RIP Command} {no network `network`} {}
|
Set the RIP enable interface by NETWORK. The interfaces which have addresses
|
||||||
Set the RIP enable interface by `network`. The interfaces which
|
matching with NETWORK are enabled.
|
||||||
have addresses matching with `network` are enabled.
|
|
||||||
|
|
||||||
This group of commands either enables or disables RIP interfaces between
|
This group of commands either enables or disables RIP interfaces between
|
||||||
certain numbers of a specified network address. For example, if the
|
certain numbers of a specified network address. For example, if the network
|
||||||
network for 10.0.0.0/24 is RIP enabled, this would result in all the
|
for 10.0.0.0/24 is RIP enabled, this would result in all the addresses from
|
||||||
addresses from 10.0.0.0 to 10.0.0.255 being enabled for RIP. The `no network` command will disable RIP for the specified network.
|
10.0.0.0 to 10.0.0.255 being enabled for RIP. The `no network` command will
|
||||||
|
disable RIP for the specified network.
|
||||||
|
|
||||||
.. index:: {RIP Command} {network `ifname`} {}
|
.. index:: network IFNAME
|
||||||
|
.. clicmd:: network IFNAME
|
||||||
|
|
||||||
{RIP Command} {network `ifname`} {}
|
.. index:: no network IFNAME
|
||||||
.. index:: {RIP Command} {no network `ifname`} {}
|
.. clicmd:: no network IFNAME
|
||||||
|
|
||||||
{RIP Command} {no network `ifname`} {}
|
Set a RIP enabled interface by IFNAME. Both the sending and
|
||||||
Set a RIP enabled interface by `ifname`. Both the sending and
|
|
||||||
receiving of RIP packets will be enabled on the port specified in the
|
receiving of RIP packets will be enabled on the port specified in the
|
||||||
`network ifname` command. The `no network ifname` command will disable
|
`network ifname` command. The `no network ifname` command will disable
|
||||||
RIP on the specified interface.
|
RIP on the specified interface.
|
||||||
|
|
||||||
.. index:: {RIP Command} {neighbor `a.b.c.d`} {}
|
.. index:: neighbor A.B.C.D
|
||||||
|
.. clicmd:: neighbor A.B.C.D
|
||||||
|
|
||||||
{RIP Command} {neighbor `a.b.c.d`} {}
|
.. index:: no neighbor A.B.C.D
|
||||||
.. index:: {RIP Command} {no neighbor `a.b.c.d`} {}
|
.. clicmd:: no neighbor A.B.C.D
|
||||||
|
|
||||||
{RIP Command} {no neighbor `a.b.c.d`} {}
|
Specify RIP neighbor. When a neighbor doesn't understand multicast, this
|
||||||
Specify RIP neighbor. When a neighbor doesn't understand multicast,
|
command is used to specify neighbors. In some cases, not all routers will be
|
||||||
this command is used to specify neighbors. In some cases, not all
|
able to understand multicasting, where packets are sent to a network or a
|
||||||
routers will be able to understand multicasting, where packets are sent
|
group of addresses. In a situation where a neighbor cannot process multicast
|
||||||
to a network or a group of addresses. In a situation where a neighbor
|
packets, it is necessary to establish a direct link between routers. The
|
||||||
cannot process multicast packets, it is necessary to establish a direct
|
neighbor command allows the network administrator to specify a router as a
|
||||||
link between routers. The neighbor command allows the network
|
RIP neighbor. The `no neighbor a.b.c.d` command will disable the RIP
|
||||||
administrator to specify a router as a RIP neighbor. The `no neighbor a.b.c.d` command will disable the RIP neighbor.
|
neighbor.
|
||||||
|
|
||||||
Below is very simple RIP configuration. Interface `eth0` and
|
Below is very simple RIP configuration. Interface `eth0` and interface which
|
||||||
interface which address match to `10.0.0.0/8` are RIP enabled.
|
address match to `10.0.0.0/8` are RIP enabled.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
!
|
!
|
||||||
router rip
|
router rip
|
||||||
@ -155,89 +156,83 @@ Command {no router rip} {}
|
|||||||
!
|
!
|
||||||
|
|
||||||
|
|
||||||
Passive interface
|
.. index:: passive-interface (IFNAME|default)
|
||||||
|
.. clicmd:: passive-interface (IFNAME|default)
|
||||||
|
|
||||||
.. index:: {RIP command} {passive-interface (`IFNAME`|default)} {}
|
.. index:: no passive-interface IFNAME
|
||||||
|
.. clicmd:: no passive-interface IFNAME
|
||||||
|
|
||||||
{RIP command} {passive-interface (`IFNAME`|default)} {}
|
|
||||||
.. index:: {RIP command} {no passive-interface `IFNAME`} {}
|
|
||||||
|
|
||||||
{RIP command} {no passive-interface `IFNAME`} {}
|
|
||||||
This command sets the specified interface to passive mode. On passive mode
|
This command sets the specified interface to passive mode. On passive mode
|
||||||
interface, all receiving packets are processed as normal and ripd does
|
interface, all receiving packets are processed as normal and ripd does not
|
||||||
not send either multicast or unicast RIP packets except to RIP neighbors
|
send either multicast or unicast RIP packets except to RIP neighbors
|
||||||
specified with `neighbor` command. The interface may be specified
|
specified with `neighbor` command. The interface may be specified as
|
||||||
as `default` to make ripd default to passive on all interfaces.
|
`default` to make ripd default to passive on all interfaces.
|
||||||
|
|
||||||
The default is to be passive on all interfaces.
|
The default is to be passive on all interfaces.
|
||||||
|
|
||||||
RIP split-horizon
|
.. index:: ip split-horizon
|
||||||
|
.. clicmd:: ip split-horizon
|
||||||
|
|
||||||
.. index:: {Interface command} {ip split-horizon} {}
|
.. index:: no ip split-horizon
|
||||||
|
.. clicmd:: no ip split-horizon
|
||||||
|
|
||||||
{Interface command} {ip split-horizon} {}
|
Control split-horizon on the interface. Default is `ip split-horizon`. If
|
||||||
.. index:: {Interface command} {no ip split-horizon} {}
|
you don't perform split-horizon on the interface, please specify `no ip
|
||||||
|
split-horizon`.
|
||||||
{Interface command} {no ip split-horizon} {}
|
|
||||||
Control split-horizon on the interface. Default is `ip split-horizon`. If you don't perform split-horizon on the interface,
|
|
||||||
please specify `no ip split-horizon`.
|
|
||||||
|
|
||||||
.. _RIP_Version_Control:
|
.. _RIP_Version_Control:
|
||||||
|
|
||||||
RIP Version Control
|
RIP Version Control
|
||||||
===================
|
===================
|
||||||
|
|
||||||
RIP can be configured to send either Version 1 or Version 2 packets.
|
RIP can be configured to send either Version 1 or Version 2 packets. The
|
||||||
The default is to send RIPv2 while accepting both RIPv1 and RIPv2 (and
|
default is to send RIPv2 while accepting both RIPv1 and RIPv2 (and replying
|
||||||
replying with packets of the appropriate version for REQUESTS /
|
with packets of the appropriate version for REQUESTS / triggered updates). The
|
||||||
triggered updates). The version to receive and send can be specified
|
version to receive and send can be specified globally, and further overriden on
|
||||||
globally, and further overriden on a per-interface basis if needs be
|
a per-interface basis if needs be for send and receive seperately (see below).
|
||||||
for send and receive seperately (see below).
|
|
||||||
|
|
||||||
It is important to note that RIPv1 can not be authenticated. Further,
|
It is important to note that RIPv1 cannot be authenticated. Further, if RIPv1
|
||||||
if RIPv1 is enabled then RIP will reply to REQUEST packets, sending the
|
is enabled then RIP will reply to REQUEST packets, sending the state of its RIP
|
||||||
state of its RIP routing table to any remote routers that ask on
|
routing table to any remote routers that ask on demand. For a more detailed
|
||||||
demand. For a more detailed discussion on the security implications of
|
discussion on the security implications of RIPv1 see :ref:`RIP_Authentication`.
|
||||||
RIPv1 see :ref:`RIP_Authentication`.
|
|
||||||
|
|
||||||
.. index:: {RIP Command} {version `version`} {}
|
.. index:: version VERSION
|
||||||
|
.. clicmd:: version VERSION
|
||||||
|
|
||||||
{RIP Command} {version `version`} {}
|
Set RIP version to accept for reads and send. ``VERSION`` can be either 1 or
|
||||||
Set RIP version to accept for reads and send. `version`
|
1.
|
||||||
can be either `1'' or `2''.
|
|
||||||
|
|
||||||
Disabling RIPv1 by specifying version 2 is STRONGLY encouraged,
|
Disabling RIPv1 by specifying version 2 is STRONGLY encouraged,
|
||||||
:ref:`RIP_Authentication`. This may become the default in a future
|
:ref:`RIP_Authentication`. This may become the default in a future release.
|
||||||
release.
|
|
||||||
|
|
||||||
Default: Send Version 2, and accept either version.
|
Default: Send Version 2, and accept either version.
|
||||||
|
|
||||||
.. index:: {RIP Command} {no version} {}
|
.. index:: no version
|
||||||
|
.. clicmd:: no version
|
||||||
|
|
||||||
{RIP Command} {no version} {}
|
|
||||||
Reset the global version setting back to the default.
|
Reset the global version setting back to the default.
|
||||||
|
|
||||||
.. index:: {Interface command} {ip rip send version `version`} {}
|
.. index:: ip rip send version VERSION
|
||||||
|
.. clicmd:: ip rip send version VERSION
|
||||||
|
|
||||||
{Interface command} {ip rip send version `version`} {}
|
VERSION can be ``1``, ``2``, or ``1 2``.
|
||||||
`version` can be `1', `2' or `1 2'.
|
|
||||||
|
|
||||||
This interface command overrides the global rip version setting, and
|
This interface command overrides the global rip version setting, and selects
|
||||||
selects which version of RIP to send packets with, for this interface
|
which version of RIP to send packets with, for this interface specifically.
|
||||||
specifically. Choice of RIP Version 1, RIP Version 2, or both versions.
|
Choice of RIP Version 1, RIP Version 2, or both versions. In the latter
|
||||||
In the latter case, where `1 2' is specified, packets will be both
|
case, where ``1 2`` is specified, packets will be both broadcast and
|
||||||
broadcast and multicast.
|
multicast.
|
||||||
|
|
||||||
Default: Send packets according to the global version (version 2)
|
Default: Send packets according to the global version (version 2)
|
||||||
|
|
||||||
.. index:: {Interface command} {ip rip receive version `version`} {}
|
.. index:: ip rip receive version VERSION
|
||||||
|
.. clicmd:: ip rip receive version VERSION
|
||||||
|
|
||||||
{Interface command} {ip rip receive version `version`} {}
|
VERSION can be ``1``, ``2``, or ``1 2``.
|
||||||
`version` can be `1', `2' or `1 2'.
|
|
||||||
|
|
||||||
This interface command overrides the global rip version setting, and
|
This interface command overrides the global rip version setting, and selects
|
||||||
selects which versions of RIP packets will be accepted on this
|
which versions of RIP packets will be accepted on this interface. Choice of
|
||||||
interface. Choice of RIP Version 1, RIP Version 2, or both.
|
RIP Version 1, RIP Version 2, or both.
|
||||||
|
|
||||||
Default: Accept packets according to the global setting (both 1 and 2).
|
Default: Accept packets according to the global setting (both 1 and 2).
|
||||||
|
|
||||||
@ -246,102 +241,99 @@ RIPv1 see :ref:`RIP_Authentication`.
|
|||||||
How to Announce RIP route
|
How to Announce RIP route
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
.. index:: {RIP command} {redistribute kernel} {}
|
.. index:: redistribute kernel
|
||||||
|
.. clicmd:: redistribute kernel
|
||||||
|
|
||||||
{RIP command} {redistribute kernel} {}
|
.. index:: redistribute kernel metric (0-16)
|
||||||
.. index:: {RIP command} {redistribute kernel metric (0-16)} {}
|
.. clicmd:: redistribute kernel metric (0-16)
|
||||||
|
|
||||||
{RIP command} {redistribute kernel metric (0-16)} {}
|
.. index:: redistribute kernel route-map ROUTE-MAP
|
||||||
.. index:: {RIP command} {redistribute kernel route-map `route-map`} {}
|
.. clicmd:: redistribute kernel route-map ROUTE-MAP
|
||||||
|
|
||||||
{RIP command} {redistribute kernel route-map `route-map`} {}
|
.. index:: no redistribute kernel
|
||||||
.. index:: {RIP command} {no redistribute kernel} {}
|
.. clicmd:: no redistribute kernel
|
||||||
|
|
||||||
{RIP command} {no redistribute kernel} {}
|
`redistribute kernel` redistributes routing information from kernel route
|
||||||
`redistribute kernel` redistributes routing information from
|
entries into the RIP tables. `no redistribute kernel` disables the routes.
|
||||||
kernel route entries into the RIP tables. `no redistribute kernel`
|
|
||||||
disables the routes.
|
|
||||||
|
|
||||||
.. index:: {RIP command} {redistribute static} {}
|
.. index:: redistribute static
|
||||||
|
.. clicmd:: redistribute static
|
||||||
|
|
||||||
{RIP command} {redistribute static} {}
|
.. index:: redistribute static metric (0-16)
|
||||||
.. index:: {RIP command} {redistribute static metric (0-16)} {}
|
.. clicmd:: redistribute static metric (0-16)
|
||||||
|
|
||||||
{RIP command} {redistribute static metric (0-16)} {}
|
.. index:: redistribute static route-map ROUTE-MAP
|
||||||
.. index:: {RIP command} {redistribute static route-map `route-map`} {}
|
.. clicmd:: redistribute static route-map ROUTE-MAP
|
||||||
|
|
||||||
{RIP command} {redistribute static route-map `route-map`} {}
|
.. index:: no redistribute static
|
||||||
.. index:: {RIP command} {no redistribute static} {}
|
.. clicmd:: no redistribute static
|
||||||
|
|
||||||
{RIP command} {no redistribute static} {}
|
`redistribute static` redistributes routing information from static route
|
||||||
`redistribute static` redistributes routing information from
|
entries into the RIP tables. `no redistribute static` disables the routes.
|
||||||
static route entries into the RIP tables. `no redistribute static`
|
|
||||||
disables the routes.
|
|
||||||
|
|
||||||
.. index:: {RIP command} {redistribute connected} {}
|
.. index:: redistribute connected
|
||||||
|
.. clicmd:: redistribute connected
|
||||||
|
|
||||||
{RIP command} {redistribute connected} {}
|
.. index:: redistribute connected metric (0-16)
|
||||||
.. index:: {RIP command} {redistribute connected metric (0-16)} {}
|
.. clicmd:: redistribute connected metric (0-16)
|
||||||
|
|
||||||
{RIP command} {redistribute connected metric (0-16)} {}
|
.. index:: redistribute connected route-map ROUTE-MAP
|
||||||
.. index:: {RIP command} {redistribute connected route-map `route-map`} {}
|
.. clicmd:: redistribute connected route-map ROUTE-MAP
|
||||||
|
|
||||||
{RIP command} {redistribute connected route-map `route-map`} {}
|
.. index:: no redistribute connected
|
||||||
.. index:: {RIP command} {no redistribute connected} {}
|
.. clicmd:: no redistribute connected
|
||||||
|
|
||||||
{RIP command} {no redistribute connected} {}
|
Redistribute connected routes into the RIP tables. `no redistribute
|
||||||
Redistribute connected routes into the RIP tables. `no redistribute connected` disables the connected routes in the RIP tables.
|
connected` disables the connected routes in the RIP tables. This command
|
||||||
This command redistribute connected of the interface which RIP disabled.
|
redistribute connected of the interface which RIP disabled. The connected
|
||||||
The connected route on RIP enabled interface is announced by default.
|
route on RIP enabled interface is announced by default.
|
||||||
|
|
||||||
.. index:: {RIP command} {redistribute ospf} {}
|
.. index:: redistribute ospf
|
||||||
|
.. clicmd:: redistribute ospf
|
||||||
|
|
||||||
{RIP command} {redistribute ospf} {}
|
.. index:: redistribute ospf metric (0-16)
|
||||||
.. index:: {RIP command} {redistribute ospf metric (0-16)} {}
|
.. clicmd:: redistribute ospf metric (0-16)
|
||||||
|
|
||||||
{RIP command} {redistribute ospf metric (0-16)} {}
|
.. index:: redistribute ospf route-map ROUTE-MAP
|
||||||
.. index:: {RIP command} {redistribute ospf route-map `route-map`} {}
|
.. clicmd:: redistribute ospf route-map ROUTE-MAP
|
||||||
|
|
||||||
{RIP command} {redistribute ospf route-map `route-map`} {}
|
.. index:: no redistribute ospf
|
||||||
.. index:: {RIP command} {no redistribute ospf} {}
|
.. clicmd:: no redistribute ospf
|
||||||
|
|
||||||
{RIP command} {no redistribute ospf} {}
|
`redistribute ospf` redistributes routing information from ospf route
|
||||||
`redistribute ospf` redistributes routing information from
|
entries into the RIP tables. `no redistribute ospf` disables the routes.
|
||||||
ospf route entries into the RIP tables. `no redistribute ospf`
|
|
||||||
disables the routes.
|
|
||||||
|
|
||||||
.. index:: {RIP command} {redistribute bgp} {}
|
.. index:: redistribute bgp
|
||||||
|
.. clicmd:: redistribute bgp
|
||||||
|
|
||||||
{RIP command} {redistribute bgp} {}
|
.. index:: redistribute bgp metric (0-16)
|
||||||
.. index:: {RIP command} {redistribute bgp metric (0-16)} {}
|
.. clicmd:: redistribute bgp metric (0-16)
|
||||||
|
|
||||||
{RIP command} {redistribute bgp metric (0-16)} {}
|
.. index:: redistribute bgp route-map ROUTE-MAP
|
||||||
.. index:: {RIP command} {redistribute bgp route-map `route-map`} {}
|
.. clicmd:: redistribute bgp route-map ROUTE-MAP
|
||||||
|
|
||||||
{RIP command} {redistribute bgp route-map `route-map`} {}
|
.. index:: no redistribute bgp
|
||||||
.. index:: {RIP command} {no redistribute bgp} {}
|
.. clicmd:: no redistribute bgp
|
||||||
|
|
||||||
{RIP command} {no redistribute bgp} {}
|
`redistribute bgp` redistributes routing information from bgp route entries
|
||||||
`redistribute bgp` redistributes routing information from
|
into the RIP tables. `no redistribute bgp` disables the routes.
|
||||||
bgp route entries into the RIP tables. `no redistribute bgp`
|
|
||||||
disables the routes.
|
|
||||||
|
|
||||||
If you want to specify RIP only static routes:
|
If you want to specify RIP only static routes:
|
||||||
|
|
||||||
.. index:: {RIP command} {default-information originate} {}
|
.. index:: default-information originate
|
||||||
|
.. clicmd:: default-information originate
|
||||||
|
|
||||||
{RIP command} {default-information originate} {}
|
.. index:: route A.B.C.D/M
|
||||||
.. index:: {RIP command} {route `a.b.c.d/m`} {}
|
.. clicmd:: route A.B.C.D/M
|
||||||
|
|
||||||
{RIP command} {route `a.b.c.d/m`} {}
|
.. index:: no route A.B.C.D/M
|
||||||
.. index:: {RIP command} {no route `a.b.c.d/m`} {}
|
.. clicmd:: no route A.B.C.D/M
|
||||||
|
|
||||||
{RIP command} {no route `a.b.c.d/m`} {}
|
This command is specific to FRR. The `route` command makes a static route
|
||||||
This command is specific to FRR. The `route` command makes a static
|
only inside RIP. This command should be used only by advanced users who are
|
||||||
route only inside RIP. This command should be used only by advanced
|
particularly knowledgeable about the RIP protocol. In most cases, we
|
||||||
users who are particularly knowledgeable about the RIP protocol. In
|
recommend creating a static route in FRR and redistributing it in RIP using
|
||||||
most cases, we recommend creating a static route in FRR and
|
`redistribute static`.
|
||||||
redistributing it in RIP using `redistribute static`.
|
|
||||||
|
|
||||||
.. _Filtering_RIP_Routes:
|
.. _Filtering_RIP_Routes:
|
||||||
|
|
||||||
@ -350,22 +342,20 @@ Filtering RIP Routes
|
|||||||
|
|
||||||
RIP routes can be filtered by a distribute-list.
|
RIP routes can be filtered by a distribute-list.
|
||||||
|
|
||||||
.. index:: Command {distribute-list `access_list` `direct` `ifname`} {}
|
.. index:: distribute-list ACCESS_LIST DIRECT IFNAME
|
||||||
|
.. clicmd:: distribute-list ACCESS_LIST DIRECT IFNAME
|
||||||
|
|
||||||
Command {distribute-list `access_list` `direct` `ifname`} {}
|
You can apply access lists to the interface with a `distribute-list` command.
|
||||||
You can apply access lists to the interface with a `distribute-list`
|
ACCESS_LIST is the access list name. DIRECT is ``in`` or ``out``. If DIRECT
|
||||||
command. `access_list` is the access list name. `direct` is
|
is ``in`` the access list is applied to input packets.
|
||||||
``in`` or ``out``. If `direct` is ``in`` the access list
|
|
||||||
is applied to input packets.
|
|
||||||
|
|
||||||
The `distribute-list` command can be used to filter the RIP path.
|
The `distribute-list` command can be used to filter the RIP path.
|
||||||
`distribute-list` can apply access-lists to a chosen interface.
|
`distribute-list` can apply access-lists to a chosen interface. First, one
|
||||||
First, one should specify the access-list. Next, the name of the
|
should specify the access-list. Next, the name of the access-list is used in
|
||||||
access-list is used in the distribute-list command. For example, in the
|
the distribute-list command. For example, in the following configuration
|
||||||
following configuration ``eth0`` will permit only the paths that
|
``eth0`` will permit only the paths that match the route 10.0.0.0/8
|
||||||
match the route 10.0.0.0/8
|
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
!
|
!
|
||||||
router rip
|
router rip
|
||||||
@ -376,15 +366,15 @@ Command {distribute-list `access_list` `direct` `ifname`} {}
|
|||||||
!
|
!
|
||||||
|
|
||||||
|
|
||||||
`distribute-list` can be applied to both incoming and outgoing data.
|
`distribute-list` can be applied to both incoming and outgoing data.
|
||||||
|
|
||||||
.. index:: Command {distribute-list prefix `prefix_list` (in|out) `ifname`} {}
|
.. index:: distribute-list prefix PREFIX_LIST (in|out) IFNAME
|
||||||
|
.. clicmd:: distribute-list prefix PREFIX_LIST (in|out) IFNAME
|
||||||
|
|
||||||
Command {distribute-list prefix `prefix_list` (in|out) `ifname`} {}
|
You can apply prefix lists to the interface with a `distribute-list`
|
||||||
You can apply prefix lists to the interface with a
|
command. PREFIX_LIST is the prefix list name. Next is the direction of
|
||||||
`distribute-list` command. `prefix_list` is the prefix list
|
``in`` or ``out``. If DIRECT is ``in`` the access list is applied to input
|
||||||
name. Next is the direction of ``in`` or ``out``. If
|
packets.
|
||||||
`direct` is ``in`` the access list is applied to input packets.
|
|
||||||
|
|
||||||
.. _RIP_Metric_Manipulation:
|
.. _RIP_Metric_Manipulation:
|
||||||
|
|
||||||
@ -395,25 +385,24 @@ RIP metric is a value for distance for the network. Usually
|
|||||||
*ripd* increment the metric when the network information is
|
*ripd* increment the metric when the network information is
|
||||||
received. Redistributed routes' metric is set to 1.
|
received. Redistributed routes' metric is set to 1.
|
||||||
|
|
||||||
.. index:: {RIP command} {default-metric (1-16)} {}
|
.. index:: default-metric (1-16)
|
||||||
|
.. clicmd:: default-metric (1-16)
|
||||||
|
|
||||||
{RIP command} {default-metric (1-16)} {}
|
.. index:: no default-metric (1-16)
|
||||||
.. index:: {RIP command} {no default-metric (1-16)} {}
|
.. clicmd:: no default-metric (1-16)
|
||||||
|
|
||||||
{RIP command} {no default-metric (1-16)} {}
|
This command modifies the default metric value for redistributed routes.
|
||||||
This command modifies the default metric value for redistributed routes. The
|
The default value is 1. This command does not affect connected route even if
|
||||||
default value is 1. This command does not affect connected route
|
it is redistributed by *redistribute connected*. To modify connected route's
|
||||||
even if it is redistributed by *redistribute connected*. To modify
|
metric value, please use ``redistribute connected metric`` or *route-map*.
|
||||||
connected route's metric value, please use @command{redistribute
|
*offset-list* also affects connected routes.
|
||||||
connected metric} or *route-map*. *offset-list* also
|
|
||||||
affects connected routes.
|
|
||||||
|
|
||||||
.. index:: {RIP command} {offset-list `access-list` (in|out)} {}
|
.. index:: offset-list ACCESS-LIST (in|out)
|
||||||
|
.. clicmd:: offset-list ACCESS-LIST (in|out)
|
||||||
|
|
||||||
{RIP command} {offset-list `access-list` (in|out)} {}
|
.. index:: offset-list ACCESS-LIST (in|out) IFNAME
|
||||||
.. index:: {RIP command} {offset-list `access-list` (in|out) `ifname`} {}
|
.. clicmd:: offset-list ACCESS-LIST (in|out) IFNAME
|
||||||
|
|
||||||
{RIP command} {offset-list `access-list` (in|out) `ifname`} {}
|
|
||||||
|
|
||||||
.. _RIP_distance:
|
.. _RIP_distance:
|
||||||
|
|
||||||
@ -422,29 +411,29 @@ RIP distance
|
|||||||
|
|
||||||
Distance value is used in zebra daemon. Default RIP distance is 120.
|
Distance value is used in zebra daemon. Default RIP distance is 120.
|
||||||
|
|
||||||
.. index:: {RIP command} {distance (1-255)} {}
|
.. index:: distance (1-255)
|
||||||
|
.. clicmd:: distance (1-255)
|
||||||
|
|
||||||
{RIP command} {distance (1-255)} {}
|
.. index:: no distance (1-255)
|
||||||
.. index:: {RIP command} {no distance (1-255)} {}
|
.. clicmd:: no distance (1-255)
|
||||||
|
|
||||||
{RIP command} {no distance (1-255)} {}
|
|
||||||
Set default RIP distance to specified value.
|
Set default RIP distance to specified value.
|
||||||
|
|
||||||
.. index:: {RIP command} {distance (1-255) `A.B.C.D/M`} {}
|
.. index:: distance (1-255) A.B.C.D/M
|
||||||
|
.. clicmd:: distance (1-255) A.B.C.D/M
|
||||||
|
|
||||||
{RIP command} {distance (1-255) `A.B.C.D/M`} {}
|
.. index:: no distance (1-255) A.B.C.D/M
|
||||||
.. index:: {RIP command} {no distance (1-255) `A.B.C.D/M`} {}
|
.. clicmd:: no distance (1-255) A.B.C.D/M
|
||||||
|
|
||||||
{RIP command} {no distance (1-255) `A.B.C.D/M`} {}
|
|
||||||
Set default RIP distance to specified value when the route's source IP
|
Set default RIP distance to specified value when the route's source IP
|
||||||
address matches the specified prefix.
|
address matches the specified prefix.
|
||||||
|
|
||||||
.. index:: {RIP command} {distance (1-255) `A.B.C.D/M` `access-list`} {}
|
.. index:: distance (1-255) A.B.C.D/M ACCESS-LIST
|
||||||
|
.. clicmd:: distance (1-255) A.B.C.D/M ACCESS-LIST
|
||||||
|
|
||||||
{RIP command} {distance (1-255) `A.B.C.D/M` `access-list`} {}
|
.. index:: no distance (1-255) A.B.C.D/M ACCESS-LIST
|
||||||
.. index:: {RIP command} {no distance (1-255) `A.B.C.D/M` `access-list`} {}
|
.. clicmd:: no distance (1-255) A.B.C.D/M ACCESS-LIST
|
||||||
|
|
||||||
{RIP command} {no distance (1-255) `A.B.C.D/M` `access-list`} {}
|
|
||||||
Set default RIP distance to specified value when the route's source IP
|
Set default RIP distance to specified value when the route's source IP
|
||||||
address matches the specified prefix and the specified access-list.
|
address matches the specified prefix and the specified access-list.
|
||||||
|
|
||||||
@ -465,64 +454,63 @@ statement.
|
|||||||
.....
|
.....
|
||||||
|
|
||||||
|
|
||||||
Cisco applies route-map _before_ routes will exported to rip route table.
|
Cisco applies route-map _before_ routes will exported to rip route table. In
|
||||||
In current FRR's test implementation, *ripd* applies route-map
|
current FRR's test implementation, *ripd* applies route-map after routes are
|
||||||
after routes are listed in the route table and before routes will be
|
listed in the route table and before routes will be announced to an interface
|
||||||
announced to an interface (something like output filter). I think it is not
|
(something like output filter). I think it is not so clear, but it is draft and
|
||||||
so clear, but it is draft and it may be changed at future.
|
it may be changed at future.
|
||||||
|
|
||||||
Route-map statement (:ref:`Route_Map`) is needed to use route-map
|
Route-map statement (:ref:`Route_Map`) is needed to use route-map
|
||||||
functionality.
|
functionality.
|
||||||
|
|
||||||
.. index:: {Route Map} {match interface `word`} {}
|
.. index:: match interface WORD
|
||||||
|
.. clicmd:: match interface WORD
|
||||||
|
|
||||||
{Route Map} {match interface `word`} {}
|
|
||||||
This command match to incoming interface. Notation of this match is
|
This command match to incoming interface. Notation of this match is
|
||||||
different from Cisco. Cisco uses a list of interfaces - NAME1 NAME2
|
different from Cisco. Cisco uses a list of interfaces - NAME1 NAME2 ...
|
||||||
... NAMEN. Ripd allows only one name (maybe will change in the
|
NAMEN. Ripd allows only one name (maybe will change in the future). Next -
|
||||||
future). Next - Cisco means interface which includes next-hop of
|
Cisco means interface which includes next-hop of routes (it is somewhat
|
||||||
routes (it is somewhat similar to "ip next-hop" statement). Ripd
|
similar to "ip next-hop" statement). Ripd means interface where this route
|
||||||
means interface where this route will be sent. This difference is
|
will be sent. This difference is because "next-hop" of same routes which
|
||||||
because "next-hop" of same routes which sends to different interfaces
|
sends to different interfaces must be different. Maybe it'd be better to
|
||||||
must be different. Maybe it'd be better to made new matches - say
|
made new matches - say "match interface-out NAME" or something like that.
|
||||||
"match interface-out NAME" or something like that.
|
|
||||||
|
|
||||||
.. index:: {Route Map} {match ip address `word`} {}
|
.. index:: match ip address WORD
|
||||||
|
.. clicmd:: match ip address WORD
|
||||||
|
|
||||||
{Route Map} {match ip address `word`} {}
|
.. index:: match ip address prefix-list WORD
|
||||||
.. index:: {Route Map} {match ip address prefix-list `word`} {}
|
.. clicmd:: match ip address prefix-list WORD
|
||||||
|
|
||||||
{Route Map} {match ip address prefix-list `word`} {}
|
|
||||||
Match if route destination is permitted by access-list.
|
Match if route destination is permitted by access-list.
|
||||||
|
|
||||||
.. index:: {Route Map} {match ip next-hop `word`} {}
|
.. index:: match ip next-hop WORD
|
||||||
|
.. clicmd:: match ip next-hop WORD
|
||||||
|
|
||||||
{Route Map} {match ip next-hop `word`} {}
|
.. index:: match ip next-hop prefix-list WORD
|
||||||
.. index:: {Route Map} {match ip next-hop prefix-list `word`} {}
|
.. clicmd:: match ip next-hop prefix-list WORD
|
||||||
|
|
||||||
{Route Map} {match ip next-hop prefix-list `word`} {}
|
Match if route next-hop (meaning next-hop listed in the rip route-table as
|
||||||
Match if route next-hop (meaning next-hop listed in the rip route-table
|
displayed by "show ip rip") is permitted by access-list.
|
||||||
as displayed by "show ip rip") is permitted by access-list.
|
|
||||||
|
|
||||||
.. index:: {Route Map} {match metric (0-4294967295)} {}
|
.. index:: match metric (0-4294967295)
|
||||||
|
.. clicmd:: match metric (0-4294967295)
|
||||||
|
|
||||||
{Route Map} {match metric (0-4294967295)} {}
|
This command match to the metric value of RIP updates. For other protocol
|
||||||
This command match to the metric value of RIP updates. For other
|
compatibility metric range is shown as (0-4294967295). But for RIP protocol
|
||||||
protocol compatibility metric range is shown as (0-4294967295). But
|
only the value range (0-16) make sense.
|
||||||
for RIP protocol only the value range (0-16) make sense.
|
|
||||||
|
|
||||||
.. index:: {Route Map} {set ip next-hop A.B.C.D} {}
|
.. index:: set ip next-hop A.B.C.D
|
||||||
|
.. clicmd:: set ip next-hop A.B.C.D
|
||||||
|
|
||||||
{Route Map} {set ip next-hop A.B.C.D} {}
|
This command set next hop value in RIPv2 protocol. This command does not
|
||||||
This command set next hop value in RIPv2 protocol. This command does
|
affect RIPv1 because there is no next hop field in the packet.
|
||||||
not affect RIPv1 because there is no next hop field in the packet.
|
|
||||||
|
|
||||||
.. index:: {Route Map} {set metric (0-4294967295)} {}
|
.. index:: set metric (0-4294967295)
|
||||||
|
.. clicmd:: set metric (0-4294967295)
|
||||||
|
|
||||||
{Route Map} {set metric (0-4294967295)} {}
|
Set a metric for matched route when sending announcement. The metric value
|
||||||
Set a metric for matched route when sending announcement. The metric
|
range is very large for compatibility with other protocols. For RIP, valid
|
||||||
value range is very large for compatibility with other protocols. For
|
metric values are from 1 to 16.
|
||||||
RIP, valid metric values are from 1 to 16.
|
|
||||||
|
|
||||||
.. _RIP_Authentication:
|
.. _RIP_Authentication:
|
||||||
|
|
||||||
@ -552,37 +540,37 @@ on the internet, via RIPv1.
|
|||||||
To prevent such unauthenticated querying of routes disable RIPv1,
|
To prevent such unauthenticated querying of routes disable RIPv1,
|
||||||
:ref:`RIP_Version_Control`.
|
:ref:`RIP_Version_Control`.
|
||||||
|
|
||||||
.. index:: {Interface command} {ip rip authentication mode md5} {}
|
.. index:: ip rip authentication mode md5
|
||||||
|
.. clicmd:: ip rip authentication mode md5
|
||||||
|
|
||||||
{Interface command} {ip rip authentication mode md5} {}
|
.. index:: no ip rip authentication mode md5
|
||||||
.. index:: {Interface command} {no ip rip authentication mode md5} {}
|
.. clicmd:: no ip rip authentication mode md5
|
||||||
|
|
||||||
{Interface command} {no ip rip authentication mode md5} {}
|
|
||||||
Set the interface with RIPv2 MD5 authentication.
|
Set the interface with RIPv2 MD5 authentication.
|
||||||
|
|
||||||
.. index:: {Interface command} {ip rip authentication mode text} {}
|
.. index:: ip rip authentication mode text
|
||||||
|
.. clicmd:: ip rip authentication mode text
|
||||||
|
|
||||||
{Interface command} {ip rip authentication mode text} {}
|
.. index:: no ip rip authentication mode text
|
||||||
.. index:: {Interface command} {no ip rip authentication mode text} {}
|
.. clicmd:: no ip rip authentication mode text
|
||||||
|
|
||||||
{Interface command} {no ip rip authentication mode text} {}
|
|
||||||
Set the interface with RIPv2 simple password authentication.
|
Set the interface with RIPv2 simple password authentication.
|
||||||
|
|
||||||
.. index:: {Interface command} {ip rip authentication string `string`} {}
|
.. index:: ip rip authentication string STRING
|
||||||
|
.. clicmd:: ip rip authentication string STRING
|
||||||
|
|
||||||
{Interface command} {ip rip authentication string `string`} {}
|
.. index:: no ip rip authentication string STRING
|
||||||
.. index:: {Interface command} {no ip rip authentication string `string`} {}
|
.. clicmd:: no ip rip authentication string STRING
|
||||||
|
|
||||||
{Interface command} {no ip rip authentication string `string`} {}
|
|
||||||
RIP version 2 has simple text authentication. This command sets
|
RIP version 2 has simple text authentication. This command sets
|
||||||
authentication string. The string must be shorter than 16 characters.
|
authentication string. The string must be shorter than 16 characters.
|
||||||
|
|
||||||
.. index:: {Interface command} {ip rip authentication key-chain `key-chain`} {}
|
.. index:: ip rip authentication key-chain KEY-CHAIN
|
||||||
|
.. clicmd:: ip rip authentication key-chain KEY-CHAIN
|
||||||
|
|
||||||
{Interface command} {ip rip authentication key-chain `key-chain`} {}
|
.. index:: no ip rip authentication key-chain KEY-CHAIN
|
||||||
.. index:: {Interface command} {no ip rip authentication key-chain `key-chain`} {}
|
.. clicmd:: no ip rip authentication key-chain KEY-CHAIN
|
||||||
|
|
||||||
{Interface command} {no ip rip authentication key-chain `key-chain`} {}
|
|
||||||
Specifiy Keyed MD5 chain.
|
Specifiy Keyed MD5 chain.
|
||||||
|
|
||||||
::
|
::
|
||||||
@ -603,43 +591,34 @@ To prevent such unauthenticated querying of routes disable RIPv1,
|
|||||||
RIP Timers
|
RIP Timers
|
||||||
==========
|
==========
|
||||||
|
|
||||||
.. index:: {RIP command} {timers basic `update` `timeout` `garbage`} {}
|
.. index:: timers basic UPDATE TIMEOUT GARBAGE
|
||||||
|
.. clicmd:: timers basic UPDATE TIMEOUT GARBAGE
|
||||||
|
|
||||||
{RIP command} {timers basic `update` `timeout` `garbage`} {}
|
|
||||||
|
|
||||||
RIP protocol has several timers. User can configure those timers' values
|
RIP protocol has several timers. User can configure those timers' values
|
||||||
by `timers basic` command.
|
by `timers basic` command.
|
||||||
|
|
||||||
The default settings for the timers are as follows:
|
The default settings for the timers are as follows:
|
||||||
|
|
||||||
|
- The update timer is 30 seconds. Every update timer seconds, the RIP
|
||||||
``
|
|
||||||
The update timer is 30 seconds. Every update timer seconds, the RIP
|
|
||||||
process is awakened to send an unsolicited Response message containing
|
process is awakened to send an unsolicited Response message containing
|
||||||
the complete routing table to all neighboring RIP routers.
|
the complete routing table to all neighboring RIP routers.
|
||||||
|
- The timeout timer is 180 seconds. Upon expiration of the timeout, the
|
||||||
|
|
||||||
``
|
|
||||||
The timeout timer is 180 seconds. Upon expiration of the timeout, the
|
|
||||||
route is no longer valid; however, it is retained in the routing table
|
route is no longer valid; however, it is retained in the routing table
|
||||||
for a short time so that neighbors can be notified that the route has
|
for a short time so that neighbors can be notified that the route has
|
||||||
been dropped.
|
been dropped.
|
||||||
|
- The garbage collect timer is 120 seconds. Upon expiration of the
|
||||||
|
|
||||||
``
|
|
||||||
The garbage collect timer is 120 seconds. Upon expiration of the
|
|
||||||
garbage-collection timer, the route is finally removed from the routing
|
garbage-collection timer, the route is finally removed from the routing
|
||||||
table.
|
table.
|
||||||
|
|
||||||
|
The ``timers basic`` command allows the the default values of the timers
|
||||||
The `timers basic` command allows the the default values of the timers
|
|
||||||
listed above to be changed.
|
listed above to be changed.
|
||||||
|
|
||||||
.. index:: {RIP command} {no timers basic} {}
|
.. index:: no timers basic
|
||||||
|
.. clicmd:: no timers basic
|
||||||
|
|
||||||
{RIP command} {no timers basic} {}
|
The `no timers basic` command will reset the timers to the default settings
|
||||||
The `no timers basic` command will reset the timers to the default
|
listed above.
|
||||||
settings listed above.
|
|
||||||
|
|
||||||
.. _Show_RIP_Information:
|
.. _Show_RIP_Information:
|
||||||
|
|
||||||
@ -648,9 +627,9 @@ Show RIP Information
|
|||||||
|
|
||||||
To display RIP routes.
|
To display RIP routes.
|
||||||
|
|
||||||
.. index:: Command {show ip rip} {}
|
.. index:: show ip rip
|
||||||
|
.. clicmd:: show ip rip
|
||||||
|
|
||||||
Command {show ip rip} {}
|
|
||||||
Show RIP routes.
|
Show RIP routes.
|
||||||
|
|
||||||
The command displays all RIP routes. For routes that are received
|
The command displays all RIP routes. For routes that are received
|
||||||
@ -658,9 +637,9 @@ through RIP, this command will display the time the packet was sent and
|
|||||||
the tag information. This command will also display this information
|
the tag information. This command will also display this information
|
||||||
for routes redistributed into RIP.
|
for routes redistributed into RIP.
|
||||||
|
|
||||||
.. index:: Command {show ip rip status} {}
|
.. index:: show ip rip status
|
||||||
|
.. clicmd:: show ip rip status
|
||||||
|
|
||||||
Command {show ip rip status} {}
|
|
||||||
The command displays current RIP status. It includes RIP timer,
|
The command displays current RIP status. It includes RIP timer,
|
||||||
filtering, version, RIP enabled interface and RIP peer inforation.
|
filtering, version, RIP enabled interface and RIP peer inforation.
|
||||||
|
|
||||||
@ -690,37 +669,27 @@ RIP Debug Commands
|
|||||||
|
|
||||||
Debug for RIP protocol.
|
Debug for RIP protocol.
|
||||||
|
|
||||||
.. index:: Command {debug rip events} {}
|
.. index:: debug rip events
|
||||||
|
.. clicmd:: debug rip events
|
||||||
|
|
||||||
Command {debug rip events} {}
|
Shows RIP events. Sending and receiving packets, timers, and changes in
|
||||||
Debug rip events.
|
interfaces are events shown with *ripd*.
|
||||||
|
|
||||||
`debug rip` will show RIP events. Sending and receiving
|
.. index:: debug rip packet
|
||||||
packets, timers, and changes in interfaces are events shown with *ripd*.
|
.. clicmd:: debug rip packet
|
||||||
|
|
||||||
.. index:: Command {debug rip packet} {}
|
Shows display detailed information about the RIP packets. The origin and
|
||||||
|
port number of the packet as well as a packet dump is shown.
|
||||||
|
|
||||||
Command {debug rip packet} {}
|
.. index:: debug rip zebra
|
||||||
Debug rip packet.
|
.. clicmd:: debug rip zebra
|
||||||
|
|
||||||
`debug rip packet` will display detailed information about the RIP
|
This command will show the communication between *ripd* and *zebra*. The
|
||||||
packets. The origin and port number of the packet as well as a packet
|
main information will include addition and deletion of paths to the kernel
|
||||||
dump is shown.
|
and the sending and receiving of interface information.
|
||||||
|
|
||||||
.. index:: Command {debug rip zebra} {}
|
.. index:: show debugging rip
|
||||||
|
.. clicmd:: show debugging rip
|
||||||
|
|
||||||
Command {debug rip zebra} {}
|
Shows all information currently set for ripd debug.
|
||||||
Debug rip between zebra communication.
|
|
||||||
|
|
||||||
This command will show the communication between *ripd* and
|
|
||||||
*zebra*. The main information will include addition and deletion of
|
|
||||||
paths to the kernel and the sending and receiving of interface information.
|
|
||||||
|
|
||||||
.. index:: Command {show debugging rip} {}
|
|
||||||
|
|
||||||
Command {show debugging rip} {}
|
|
||||||
Display *ripd*'s debugging option.
|
|
||||||
|
|
||||||
`show debugging rip` will show all information currently set for ripd
|
|
||||||
debug.
|
|
||||||
|
|
||||||
|
@ -4,16 +4,16 @@
|
|||||||
RIPng
|
RIPng
|
||||||
*****
|
*****
|
||||||
|
|
||||||
*ripngd* supports the RIPng protocol as described in RFC2080. It's an
|
*ripngd* supports the RIPng protocol as described in :rfc:`2080`. It's an IPv6
|
||||||
IPv6 reincarnation of the RIP protocol.
|
reincarnation of the RIP protocol.
|
||||||
|
|
||||||
.. _Invoking_ripngd:
|
.. _Invoking_ripngd:
|
||||||
|
|
||||||
Invoking ripngd
|
Invoking ripngd
|
||||||
===============
|
===============
|
||||||
|
|
||||||
There are no `ripngd` specific invocation options. Common options
|
There are no `ripngd` specific invocation options. Common options can be
|
||||||
can be specified (:ref:`Common_Invocation_Options`).
|
specified (:ref:`Common_Invocation_Options`).
|
||||||
|
|
||||||
.. _ripngd_Configuration:
|
.. _ripngd_Configuration:
|
||||||
|
|
||||||
@ -22,72 +22,68 @@ ripngd Configuration
|
|||||||
|
|
||||||
Currently ripngd supports the following commands:
|
Currently ripngd supports the following commands:
|
||||||
|
|
||||||
.. index:: Command {router ripng} {}
|
.. index:: router ripng
|
||||||
|
.. clicmd:: router ripng
|
||||||
|
|
||||||
Command {router ripng} {}
|
|
||||||
Enable RIPng.
|
Enable RIPng.
|
||||||
|
|
||||||
.. index:: {RIPng Command} {flush_timer `time`} {}
|
.. index:: flush_timer TIME
|
||||||
|
.. clicmd:: flush_timer TIME
|
||||||
|
|
||||||
{RIPng Command} {flush_timer `time`} {}
|
|
||||||
Set flush timer.
|
Set flush timer.
|
||||||
|
|
||||||
.. index:: {RIPng Command} {network `network`} {}
|
.. index:: network NETWORK
|
||||||
|
.. clicmd:: network NETWORK
|
||||||
|
|
||||||
{RIPng Command} {network `network`} {}
|
Set RIPng enabled interface by NETWORK.
|
||||||
Set RIPng enabled interface by `network`
|
|
||||||
|
|
||||||
.. index:: {RIPng Command} {network `ifname`} {}
|
.. index:: network IFNAME
|
||||||
|
.. clicmd:: network IFNAME
|
||||||
|
|
||||||
{RIPng Command} {network `ifname`} {}
|
Set RIPng enabled interface by IFNAME.
|
||||||
Set RIPng enabled interface by `ifname`
|
|
||||||
|
|
||||||
.. index:: {RIPng Command} {route `network`} {}
|
.. index:: route NETWORK
|
||||||
|
.. clicmd:: route NETWORK
|
||||||
|
|
||||||
{RIPng Command} {route `network`} {}
|
Set RIPng static routing announcement of NETWORK.
|
||||||
Set RIPng static routing announcement of `network`.
|
|
||||||
|
|
||||||
.. index:: Command {router zebra} {}
|
.. index:: router zebra
|
||||||
|
.. clicmd:: router zebra
|
||||||
|
|
||||||
Command {router zebra} {}
|
This command is the default and does not appear in the configuration. With
|
||||||
This command is the default and does not appear in the configuration.
|
this statement, RIPng routes go to the *zebra* daemon.
|
||||||
With this statement, RIPng routes go to the *zebra* daemon.
|
|
||||||
|
|
||||||
.. _ripngd_Terminal_Mode_Commands:
|
.. _ripngd_Terminal_Mode_Commands:
|
||||||
|
|
||||||
ripngd Terminal Mode Commands
|
ripngd Terminal Mode Commands
|
||||||
=============================
|
=============================
|
||||||
|
|
||||||
.. index:: Command {show ip ripng} {}
|
.. index:: show ip ripng
|
||||||
|
.. clicmd:: show ip ripng
|
||||||
|
|
||||||
Command {show ip ripng} {}
|
.. index:: show debugging ripng
|
||||||
|
.. clicmd:: show debugging ripng
|
||||||
|
|
||||||
.. index:: Command {show debugging ripng} {}
|
.. index:: debug ripng events
|
||||||
|
.. clicmd:: debug ripng events
|
||||||
|
|
||||||
Command {show debugging ripng} {}
|
.. index:: debug ripng packet
|
||||||
.. index:: Command {debug ripng events} {}
|
.. clicmd:: debug ripng packet
|
||||||
|
|
||||||
Command {debug ripng events} {}
|
.. index:: debug ripng zebra
|
||||||
.. index:: Command {debug ripng packet} {}
|
.. clicmd:: debug ripng zebra
|
||||||
|
|
||||||
Command {debug ripng packet} {}
|
|
||||||
.. index:: Command {debug ripng zebra} {}
|
|
||||||
|
|
||||||
Command {debug ripng zebra} {}
|
|
||||||
|
|
||||||
ripngd Filtering Commands
|
ripngd Filtering Commands
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
.. index:: Command {distribute-list `access_list` (in|out) `ifname`} {}
|
.. index:: distribute-list ACCESS_LIST (in|out) IFNAME
|
||||||
|
.. clicmd:: distribute-list ACCESS_LIST (in|out) IFNAME
|
||||||
|
|
||||||
Command {distribute-list `access_list` (in|out) `ifname`} {}
|
You can apply an access-list to the interface using the `distribute-list`
|
||||||
You can apply an access-list to the interface using the
|
command. ACCESS_LIST is an access-list name. `direct` is ``in`` or
|
||||||
`distribute-list` command. `access_list` is an access-list
|
``out``. If `direct` is ``in``, the access-list is applied only to incoming
|
||||||
name. `direct` is ``in`` or ``out``. If `direct` is
|
packets.::
|
||||||
``in``, the access-list is applied only to incoming packets.
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
distribute-list local-only out sit1
|
distribute-list local-only out sit1
|
||||||
|
|
||||||
|
|
||||||
|
@ -269,6 +269,6 @@ A simple example of a route-map:
|
|||||||
This means that if a route matches ip access-list number 10 it's
|
This means that if a route matches ip access-list number 10 it's
|
||||||
local-preference value is set to 200.
|
local-preference value is set to 200.
|
||||||
|
|
||||||
See :ref:`BGP_Configuration_Examples` for examples of more sophisticated
|
See :ref:`bgp-configuration-examples` for examples of more sophisticated
|
||||||
useage of route-maps, including of the ``call`` action.
|
useage of route-maps, including of the ``call`` action.
|
||||||
|
|
||||||
|
@ -3,33 +3,26 @@
|
|||||||
Prefix Origin Validation Using RPKI
|
Prefix Origin Validation Using RPKI
|
||||||
===================================
|
===================================
|
||||||
|
|
||||||
Prefix Origin Validation allows BGP routers to verify if the origin AS of
|
Prefix Origin Validation allows BGP routers to verify if the origin AS of an IP
|
||||||
an IP prefix is legitimate to announce this IP prefix. The required
|
prefix is legitimate to announce this IP prefix. The required attestation
|
||||||
attestation objects are stored in the Resource Public Key Infrastructure
|
objects are stored in the Resource Public Key Infrastructure (:abbr:`RPKI`).
|
||||||
(:abbr:`RPKI`). However, RPKI-enabled routers do not store cryptographic
|
However, RPKI-enabled routers do not store cryptographic data itself but only
|
||||||
data itself but only validation information. The validation of the
|
validation information. The validation of the cryptographic data (so called
|
||||||
cryptographic data (so called Route Origin Authorization, or short
|
Route Origin Authorization, or short :abbr:`ROA`, objects) will be performed by
|
||||||
:abbr:`ROA`, objects) will be performed by trusted cache servers. The
|
trusted cache servers. The RPKI/RTR protocol defines a standard mechanism to
|
||||||
RPKI/RTR protocol defines a standard mechanism to maintain the exchange of
|
maintain the exchange of the prefix/origin AS mapping between the cache server
|
||||||
the prefix/origin AS mapping between the cache server and routers.
|
and routers. In combination with a BGP Prefix Origin Validation scheme a
|
||||||
In combination with a BGP Prefix Origin Validation scheme a router is able
|
router is able to verify received BGP updates without suffering from
|
||||||
to verify received BGP updates without suffering from cryptographic
|
cryptographic complexity.
|
||||||
complexity.
|
|
||||||
|
|
||||||
The RPKI/RTR protocol is defined in :rfc:`6810` and the validation scheme in
|
The RPKI/RTR protocol is defined in :rfc:`6810` and the validation scheme in
|
||||||
:rfc:`6811`. The current version of Prefix Origin Validation in FRR implements
|
:rfc:`6811`. The current version of Prefix Origin Validation in FRR implements
|
||||||
both RFCs.
|
both RFCs.
|
||||||
|
|
||||||
For a more detailed but still easy-to-read background, we suggest the
|
For a more detailed but still easy-to-read background, we suggest:
|
||||||
following two articles:
|
|
||||||
|
|
||||||
* @cite{Geoff Huston, Randy Bush: Securing BGP, In: The Internet
|
- [Securing-BGP]_
|
||||||
Protocol Journal, Volume 14, No. 2, 2011.}
|
- [Resource-Certification]_
|
||||||
`http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_14-2/142_bgp.html <http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_14-2/142_bgp.html>`_
|
|
||||||
|
|
||||||
* @cite{Geoff Huston: Resource Certification, In: The Internet Protocol
|
|
||||||
Journal, Volume 12, No.1, 2009.}
|
|
||||||
`http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_12-1/121_resource.html <http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_12-1/121_resource.html>`_
|
|
||||||
|
|
||||||
.. _Features_of_the_Current_Implementation:
|
.. _Features_of_the_Current_Implementation:
|
||||||
|
|
||||||
@ -38,24 +31,19 @@ Features of the Current Implementation
|
|||||||
|
|
||||||
In a nutshell, the current implementation provides the following features
|
In a nutshell, the current implementation provides the following features
|
||||||
|
|
||||||
* The BGP router can connect to one or more RPKI cache servers to
|
- The BGP router can connect to one or more RPKI cache servers to receive
|
||||||
receive validated prefix to origin AS mappings.
|
validated prefix to origin AS mappings. Advanced failover can be implemented
|
||||||
Advanced failover can be implemented by server sockets with different
|
by server sockets with different preference values.
|
||||||
preference values.
|
- If no connection to an RPKI cache server can be established after a
|
||||||
|
|
||||||
* If no connection to an RPKI cache server can be established after a
|
|
||||||
pre-defined timeout, the router will process routes without prefix origin
|
pre-defined timeout, the router will process routes without prefix origin
|
||||||
validation. It still will try to establish a connection to an RPKI cache
|
validation. It still will try to establish a connection to an RPKI cache
|
||||||
server in the background.
|
server in the background.
|
||||||
|
- By default, enabling RPKI does not change best path selection. In particular,
|
||||||
* By default, enabling RPKI does not change best path selection. In
|
invalid prefixes will still be considered during best path selection.
|
||||||
particular, invalid prefixes will still be considered during best path
|
However, the router can be configured to ignore all invalid prefixes.
|
||||||
selection. However, the router can be configured to ignore all invalid
|
- Route maps can be configured to match a specific RPKI validation state. This
|
||||||
prefixes.
|
allows the creation of local policies, which handle BGP routes based on the
|
||||||
|
outcome of the Prefix Origin Validation.
|
||||||
* Route maps can be configured to match a specific RPKI validation
|
|
||||||
state. This allows the creation of local policies, which handle BGP routes
|
|
||||||
based on the outcome of the Prefix Origin Validation.
|
|
||||||
|
|
||||||
|
|
||||||
.. _Enabling_RPKI:
|
.. _Enabling_RPKI:
|
||||||
@ -63,100 +51,95 @@ In a nutshell, the current implementation provides the following features
|
|||||||
Enabling RPKI
|
Enabling RPKI
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
.. index:: {Command} {rpki} {}
|
.. index:: rpki
|
||||||
|
.. clicmd:: rpki
|
||||||
|
|
||||||
{Command} {rpki} {}
|
|
||||||
This command enables the RPKI configuration mode. Most commands that start
|
This command enables the RPKI configuration mode. Most commands that start
|
||||||
with *rpki* can only be used in this mode.
|
with *rpki* can only be used in this mode.
|
||||||
|
|
||||||
When it is used in a telnet session, leaving of this mode cause rpki to be initialized.
|
When it is used in a telnet session, leaving of this mode cause rpki to be initialized.
|
||||||
|
|
||||||
Executing this command alone does not activate prefix
|
Executing this command alone does not activate prefix validation. You need
|
||||||
validation. You need to configure at least one reachable cache server. See section
|
to configure at least one reachable cache server. See section
|
||||||
:ref:`Configuring_RPKI/RTR_Cache_Servers` for configuring a cache server.
|
:ref:`configuring-rpki-rtr-cache-servers` for configuring a cache server.
|
||||||
|
|
||||||
.. _Configuring_RPKI/RTR_Cache_Servers:
|
.. _configuring-rpki-rtr-cache-servers:
|
||||||
|
|
||||||
Configuring RPKI/RTR Cache Servers
|
Configuring RPKI/RTR Cache Servers
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
The following commands are independent of a specific cache server.
|
The following commands are independent of a specific cache server.
|
||||||
|
|
||||||
.. index:: {RPKI Command} {rpki polling_period (1-3600)} {}
|
.. index:: rpki polling_period (1-3600)
|
||||||
|
.. clicmd:: rpki polling_period (1-3600)
|
||||||
|
|
||||||
{RPKI Command} {rpki polling_period (1-3600)} {}
|
.. index:: no rpki polling_period
|
||||||
.. index:: {RPKI Command} {no rpki polling_period} {}
|
.. clicmd:: no rpki polling_period
|
||||||
|
|
||||||
{RPKI Command} {no rpki polling_period} {}
|
Set the number of seconds the router waits until the router asks the cache
|
||||||
Set the number of seconds the router waits until the router asks the cache again
|
again for updated data.
|
||||||
for updated data.
|
|
||||||
|
|
||||||
The default value is 300 seconds.
|
The default value is 300 seconds.
|
||||||
|
|
||||||
.. index:: {RPKI Command} {rpki timeout <1-4,294,967,296>} {}
|
.. index:: rpki timeout <1-4,294,967,296>
|
||||||
|
.. clicmd:: rpki timeout <1-4,294,967,296>
|
||||||
|
|
||||||
{RPKI Command} {rpki timeout <1-4,294,967,296>} {}
|
.. index:: no rpki timeout
|
||||||
.. index:: {RPKI Command} {no rpki timeout} {}
|
.. clicmd:: no rpki timeout
|
||||||
|
|
||||||
{RPKI Command} {no rpki timeout} {}
|
Set the number of seconds the router waits for the cache reply. If the cache
|
||||||
Set the number of seconds the router waits for the cache reply. If the
|
server is not replying within this time period, the router deletes all
|
||||||
cache server is not replying within this time period, the router deletes
|
received prefix records from the prefix table.
|
||||||
all received prefix records from the prefix table.
|
|
||||||
|
|
||||||
The default value is 600 seconds.
|
The default value is 600 seconds.
|
||||||
|
|
||||||
.. index:: {RPKI Command} {rpki initial-synchronisation-timeout <1-4,294,967,296>} {}
|
.. index:: rpki initial-synchronisation-timeout <1-4,294,967,296>
|
||||||
|
.. clicmd:: rpki initial-synchronisation-timeout <1-4,294,967,296>
|
||||||
|
|
||||||
{RPKI Command} {rpki initial-synchronisation-timeout <1-4,294,967,296>} {}
|
.. index:: no rpki initial-synchronisation-timeout
|
||||||
.. index:: {RPKI Command} {no rpki initial-synchronisation-timeout} {}
|
.. clicmd:: no rpki initial-synchronisation-timeout
|
||||||
|
|
||||||
{RPKI Command} {no rpki initial-synchronisation-timeout} {}
|
|
||||||
Set the number of seconds until the first synchronization with the cache
|
Set the number of seconds until the first synchronization with the cache
|
||||||
server needs to be completed. If the timeout expires, BGP routing is
|
server needs to be completed. If the timeout expires, BGP routing is started
|
||||||
started without RPKI. The router will try to establish the cache server
|
without RPKI. The router will try to establish the cache server connection in
|
||||||
connection in the background.
|
the background.
|
||||||
|
|
||||||
The default value is 30 seconds.
|
The default value is 30 seconds.
|
||||||
|
|
||||||
The following commands configure one or multiple cache servers.
|
The following commands configure one or multiple cache servers.
|
||||||
|
|
||||||
.. index:: {RPKI Socket Command} {rpki cache (`A.B.C.D`|`WORD`) `PORT` [`SSH_USERNAME`] [`SSH_PRIVKEY_PATH`] [`SSH_PUBKEY_PATH`] [`KNOWN_HOSTS_PATH`] `PREFERENCE`} {}
|
.. index:: rpki cache (A.B.C.D|WORD) PORT [SSH_USERNAME] [SSH_PRIVKEY_PATH] [SSH_PUBKEY_PATH] [KNOWN_HOSTS_PATH] PREFERENCE
|
||||||
|
.. clicmd:: rpki cache (A.B.C.D|WORD) PORT [SSH_USERNAME] [SSH_PRIVKEY_PATH] [SSH_PUBKEY_PATH] [KNOWN_HOSTS_PATH] PREFERENCE
|
||||||
|
|
||||||
{RPKI Socket Command} {rpki cache (`A.B.C.D`|`WORD`) `PORT` [`SSH_USERNAME`] [`SSH_PRIVKEY_PATH`] [`SSH_PUBKEY_PATH`] [`KNOWN_HOSTS_PATH`] `PREFERENCE`} {}
|
.. index:: no rpki cache (A.B.C.D|WORD) [PORT] PREFERENCE
|
||||||
.. index:: {RPKI Socket Command} {no rpki cache (`A.B.C.D`|`WORD`) [`PORT`] `PREFERENCE`} {}
|
.. clicmd:: no rpki cache (A.B.C.D|WORD) [PORT] PREFERENCE
|
||||||
|
|
||||||
{RPKI Socket Command} {no rpki cache (`A.B.C.D`|`WORD`) [`PORT`] `PREFERENCE`} {}
|
Add a cache server to the socket. By default, the connection between router
|
||||||
Add a cache server to the socket. By default, the connection between
|
and cache server is based on plain TCP. Protecting the connection between
|
||||||
router and cache server is based on plain TCP. Protecting the connection
|
router and cache server by SSH is optional. Deleting a socket removes the
|
||||||
between router and cache server by SSH is optional.
|
associated cache server and terminates the existing connection.
|
||||||
Deleting a socket removes the associated cache server and
|
|
||||||
terminates the existing connection.
|
|
||||||
|
|
||||||
|
A.B.C.D|WORD
|
||||||
|
|
||||||
*`A.B.C.D`|`WORD`*
|
|
||||||
Address of the cache server.
|
Address of the cache server.
|
||||||
|
|
||||||
|
PORT
|
||||||
*`PORT`*
|
|
||||||
Port number to connect to the cache server
|
Port number to connect to the cache server
|
||||||
|
|
||||||
|
SSH_USERNAME
|
||||||
*`SSH_USERNAME`*
|
|
||||||
SSH username to establish an SSH connection to the cache server.
|
SSH username to establish an SSH connection to the cache server.
|
||||||
|
|
||||||
|
|
||||||
*`SSH_PRIVKEY_PATH`*
|
SSH_PRIVKEY_PATH
|
||||||
Local path that includes the private key file of the router.
|
Local path that includes the private key file of the router.
|
||||||
|
|
||||||
|
|
||||||
*`SSH_PUBKEY_PATH`*
|
SSH_PUBKEY_PATH
|
||||||
Local path that includes the public key file of the router.
|
Local path that includes the public key file of the router.
|
||||||
|
|
||||||
|
|
||||||
*`KNOWN_HOSTS_PATH`*
|
KNOWN_HOSTS_PATH
|
||||||
Local path that includes the known hosts file. The default value depends on the
|
Local path that includes the known hosts file. The default value depends
|
||||||
configuration of the operating system environment, usually
|
on the configuration of the operating system environment, usually
|
||||||
:file:`~/.ssh/known_hosts`.
|
:file:`~/.ssh/known_hosts`.
|
||||||
|
|
||||||
|
|
||||||
@ -165,21 +148,23 @@ The following commands are independent of a specific cache server.
|
|||||||
Validating BGP Updates
|
Validating BGP Updates
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
.. index:: {Route Map Command} {match rpki {notfound|invalid|valid}} {}
|
.. index:: match rpki notfound|invalid|valid
|
||||||
|
.. clicmd:: match rpki notfound|invalid|valid
|
||||||
|
|
||||||
{Route Map Command} {match rpki {notfound|invalid|valid}} {}
|
.. index:: no match rpki notfound|invalid|valid
|
||||||
.. index:: {Route Map Command} {no match rpki {notfound|invalid|valid}} {}
|
.. clicmd:: no match rpki notfound|invalid|valid
|
||||||
|
|
||||||
{Route Map Command} {no match rpki {notfound|invalid|valid}} {}
|
Create a clause for a route map to match prefixes with the specified RPKI
|
||||||
Create a clause for a route map to match prefixes with the specified RPKI state.
|
state.
|
||||||
|
|
||||||
**Note** that the matching of invalid prefixes requires that invalid
|
**Note** that the matching of invalid prefixes requires that invalid
|
||||||
prefixes are considered for best path selection, i.e., @command{bgp
|
prefixes are considered for best path selection, i.e.,
|
||||||
bestpath prefix-validate disallow-invalid} is not enabled.
|
``bgp bestpath prefix-validate disallow-invalid`` is not enabled.
|
||||||
|
|
||||||
In the following example, the router prefers valid routes over invalid
|
In the following example, the router prefers valid routes over invalid
|
||||||
prefixes because invalid routes have a lower local preference.
|
prefixes because invalid routes have a lower local preference.
|
||||||
::
|
|
||||||
|
::
|
||||||
|
|
||||||
! Allow for invalid routes in route selection process
|
! Allow for invalid routes in route selection process
|
||||||
route bgp 60001
|
route bgp 60001
|
||||||
@ -195,18 +180,17 @@ Validating BGP Updates
|
|||||||
set local-preference 500
|
set local-preference 500
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. _Debugging:
|
.. _Debugging:
|
||||||
|
|
||||||
Debugging
|
Debugging
|
||||||
---------
|
---------
|
||||||
|
|
||||||
.. index:: {Command} {debug rpki} {}
|
.. index:: debug rpki
|
||||||
|
.. clicmd:: debug rpki
|
||||||
|
|
||||||
{Command} {debug rpki} {}
|
.. index:: no debug rpki
|
||||||
.. index:: {Command} {no debug rpki} {}
|
.. clicmd:: no debug rpki
|
||||||
|
|
||||||
{Command} {no debug rpki} {}
|
|
||||||
Enable or disable debugging output for RPKI.
|
Enable or disable debugging output for RPKI.
|
||||||
|
|
||||||
.. _Displaying_RPKI:
|
.. _Displaying_RPKI:
|
||||||
@ -214,16 +198,16 @@ Debugging
|
|||||||
Displaying RPKI
|
Displaying RPKI
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
.. index:: {Command} {show rpki prefix-table} {}
|
.. index:: show rpki prefix-table
|
||||||
|
.. clicmd:: show rpki prefix-table
|
||||||
|
|
||||||
{Command} {show rpki prefix-table} {}
|
|
||||||
Display all validated prefix to origin AS mappings/records which have been
|
Display all validated prefix to origin AS mappings/records which have been
|
||||||
received from the cache servers and stored in the router. Based on this data,
|
received from the cache servers and stored in the router. Based on this data,
|
||||||
the router validates BGP Updates.
|
the router validates BGP Updates.
|
||||||
|
|
||||||
.. index:: {Command} {show rpki cache-connection} {}
|
.. index:: show rpki cache-connection
|
||||||
|
.. clicmd:: show rpki cache-connection
|
||||||
|
|
||||||
{Command} {show rpki cache-connection} {}
|
|
||||||
Display all configured cache servers, whether active or not.
|
Display all configured cache servers, whether active or not.
|
||||||
|
|
||||||
RPKI Configuration Example
|
RPKI Configuration Example
|
||||||
@ -273,4 +257,5 @@ RPKI Configuration Example
|
|||||||
route-map rpki permit 40
|
route-map rpki permit 40
|
||||||
!
|
!
|
||||||
|
|
||||||
|
.. [Securing-BGP] `Geoff Huston, Randy Bush: Securing BGP, In: The Internet Protocol Journal, Volume 14, No. 2, 2011. <http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_14-2/142_bgp.html>`_
|
||||||
|
.. [Resource-Certification] `Geoff Huston: Resource Certification, In: The Internet Protocol Journal, Volume 12, No.1, 2009. <http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_12-1/121_resource.html>`_
|
||||||
|
@ -4,44 +4,43 @@
|
|||||||
SNMP Support
|
SNMP Support
|
||||||
************
|
************
|
||||||
|
|
||||||
:abbr:`SNMP (Simple Network Managing Protocol)` is a widely implemented
|
:abbr:`SNMP (Simple Network Managing Protocol)` is a widely implemented feature
|
||||||
feature for collecting network information from router and/or host.
|
for collecting network information from router and/or host. FRR itself does
|
||||||
FRR itself does not support SNMP agent (server daemon) functionality
|
not support SNMP agent (server daemon) functionality but is able to connect to
|
||||||
but is able to connect to a SNMP agent using the SMUX protocol
|
a SNMP agent using the SMUX protocol (:rfc:`1227`) or the AgentX protocol
|
||||||
(:rfc:`1227`) or the AgentX protocol (:rfc:`2741`) and make the
|
(:rfc:`2741`) and make the routing protocol MIBs available through it.
|
||||||
routing protocol MIBs available through it.
|
|
||||||
|
|
||||||
Note that SNMP Support needs to be enabled at compile-time and loaded as
|
Note that SNMP Support needs to be enabled at compile-time and loaded as module
|
||||||
module on daemon startup. Refer to :ref:`Loadable_Module_Support` on
|
on daemon startup. Refer to :ref:`Loadable_Module_Support` on the latter.
|
||||||
the latter.
|
|
||||||
|
|
||||||
.. _Getting_and_installing_an_SNMP_agent:
|
.. _Getting_and_installing_an_SNMP_agent:
|
||||||
|
|
||||||
Getting and installing an SNMP agent
|
Getting and installing an SNMP agent
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
There are several SNMP agent which support SMUX or AgentX. We recommend to use the latest
|
There are several SNMP agent which support SMUX or AgentX. We recommend to use
|
||||||
version of `net-snmp` which was formerly known as `ucd-snmp`.
|
the latest version of `net-snmp` which was formerly known as `ucd-snmp`. It is
|
||||||
It is free and open software and available at `http://www.net-snmp.org/ <http://www.net-snmp.org/>`_
|
free and open software and available at `http://www.net-snmp.org/ <http://www.net-snmp.org/>`_
|
||||||
and as binary package for most Linux distributions.
|
and as binary package for most Linux distributions. `net-snmp` has to be
|
||||||
`net-snmp` has to be compiled with `--with-mib-modules=agentx` to
|
compiled with `--with-mib-modules=agentx` to be able to accept connections from
|
||||||
be able to accept connections from FRR using AgentX protocol or with
|
FRR using AgentX protocol or with `--with-mib-modules=smux` to use SMUX
|
||||||
`--with-mib-modules=smux` to use SMUX protocol.
|
protocol.
|
||||||
|
|
||||||
Nowadays, SMUX is a legacy protocol. The AgentX protocol should be
|
Nowadays, SMUX is a legacy protocol. The AgentX protocol should be preferred
|
||||||
preferred for any new deployment. Both protocols have the same coverage.
|
for any new deployment. Both protocols have the same coverage.
|
||||||
|
|
||||||
.. _AgentX_configuration:
|
.. _AgentX_configuration:
|
||||||
|
|
||||||
AgentX configuration
|
AgentX configuration
|
||||||
====================
|
====================
|
||||||
|
|
||||||
|
.. program:: configure
|
||||||
|
|
||||||
To enable AgentX protocol support, FRR must have been build with the
|
To enable AgentX protocol support, FRR must have been build with the
|
||||||
`--enable-snmp` or `--enable-snmp=agentx` option. Both the
|
:option:`--enable-snmp` or `--enable-snmp=agentx` option. Both the
|
||||||
master SNMP agent (snmpd) and each of the FRR daemons must be
|
master SNMP agent (snmpd) and each of the FRR daemons must be configured. In
|
||||||
configured. In `/etc/snmp/snmpd.conf`, `master agentx`
|
:file:`/etc/snmp/snmpd.conf`, the ``master agentx`` directive should be added.
|
||||||
directive should be added. In each of the FRR daemons, `agentx`
|
In each of the FRR daemons, ``agentx`` command will enable AgentX support.
|
||||||
command will enable AgentX support.
|
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -65,8 +64,8 @@ command will enable AgentX support.
|
|||||||
!
|
!
|
||||||
|
|
||||||
|
|
||||||
Upon successful connection, you should get something like this in the
|
Upon successful connection, you should get something like this in the log of
|
||||||
log of each FRR daemons:
|
each FRR daemons:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -82,10 +81,10 @@ Then, you can use the following command to check everything works as expected:
|
|||||||
[...]
|
[...]
|
||||||
|
|
||||||
|
|
||||||
The AgentX protocol can be transported over a Unix socket or using TCP
|
The AgentX protocol can be transported over a Unix socket or using TCP or UDP.
|
||||||
or UDP. It usually defaults to a Unix socket and depends on how NetSNMP
|
It usually defaults to a Unix socket and depends on how NetSNMP was built. If
|
||||||
was built. If need to configure FRR to use another transport, you can
|
need to configure FRR to use another transport, you can configure it through
|
||||||
configure it through `/etc/snmp/frr.conf`:
|
:file:`/etc/snmp/frr.conf`:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -101,18 +100,17 @@ SMUX configuration
|
|||||||
==================
|
==================
|
||||||
|
|
||||||
To enable SMUX protocol support, FRR must have been build with the
|
To enable SMUX protocol support, FRR must have been build with the
|
||||||
`--enable-snmp=smux` option.
|
:option:`--enable-snmp` option.
|
||||||
|
|
||||||
A separate connection has then to be established between the
|
A separate connection has then to be established between the SNMP agent (snmpd)
|
||||||
SNMP agent (snmpd) and each of the FRR daemons. This connections
|
and each of the FRR daemons. This connections each use different OID numbers
|
||||||
each use different OID numbers and passwords. Be aware that this OID
|
and passwords. Be aware that this OID number is not the one that is used in
|
||||||
number is not the one that is used in queries by clients, it is solely
|
queries by clients, it is solely used for the intercommunication of the
|
||||||
used for the intercommunication of the daemons.
|
daemons.
|
||||||
|
|
||||||
In the following example the ospfd daemon will be connected to the
|
In the following example the ospfd daemon will be connected to the snmpd daemon
|
||||||
snmpd daemon using the password "frr_ospfd". For testing it is
|
using the password "frr_ospfd". For testing it is recommending to take exactly
|
||||||
recommending to take exactly the below snmpd.conf as wrong access
|
the below snmpd.conf as wrong access restrictions can be hard to debug.
|
||||||
restrictions can be hard to debug.
|
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -136,8 +134,8 @@ restrictions can be hard to debug.
|
|||||||
!
|
!
|
||||||
|
|
||||||
|
|
||||||
After restarting snmpd and frr, a successful connection can be verified in
|
After restarting snmpd and frr, a successful connection can be verified in the
|
||||||
the syslog and by querying the SNMP daemon:
|
syslog and by querying the SNMP daemon:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -152,17 +150,16 @@ the syslog and by querying the SNMP daemon:
|
|||||||
Be warned that the current version (5.1.1) of the Net-SNMP daemon writes a line
|
Be warned that the current version (5.1.1) of the Net-SNMP daemon writes a line
|
||||||
for every SNMP connect to the syslog which can lead to enormous log file sizes.
|
for every SNMP connect to the syslog which can lead to enormous log file sizes.
|
||||||
If that is a problem you should consider to patch snmpd and comment out the
|
If that is a problem you should consider to patch snmpd and comment out the
|
||||||
troublesome `snmp_log()` line in the function
|
troublesome `snmp_log()` line in the function `netsnmp_agent_check_packet()` in
|
||||||
`netsnmp_agent_check_packet()` in `agent/snmp_agent.c`.
|
`agent/snmp_agent.c`.
|
||||||
|
|
||||||
MIB and command reference
|
MIB and command reference
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
The following OID numbers are used for the interprocess communication of snmpd and
|
The following OID numbers are used for the interprocess communication of snmpd and
|
||||||
the FRR daemons with SMUX only.
|
the FRR daemons with SMUX only.::
|
||||||
::
|
|
||||||
|
|
||||||
(OIDs below .iso.org.dod.internet.private.enterprises)
|
. (OIDs below .iso.org.dod.internet.private.enterprises)
|
||||||
zebra .1.3.6.1.4.1.3317.1.2.1 .gnome.gnomeProducts.zebra.zserv
|
zebra .1.3.6.1.4.1.3317.1.2.1 .gnome.gnomeProducts.zebra.zserv
|
||||||
bgpd .1.3.6.1.4.1.3317.1.2.2 .gnome.gnomeProducts.zebra.bgpd
|
bgpd .1.3.6.1.4.1.3317.1.2.2 .gnome.gnomeProducts.zebra.bgpd
|
||||||
ripd .1.3.6.1.4.1.3317.1.2.3 .gnome.gnomeProducts.zebra.ripd
|
ripd .1.3.6.1.4.1.3317.1.2.3 .gnome.gnomeProducts.zebra.ripd
|
||||||
@ -171,8 +168,7 @@ the FRR daemons with SMUX only.
|
|||||||
|
|
||||||
|
|
||||||
Sadly, SNMP has not been implemented in all daemons yet. The following
|
Sadly, SNMP has not been implemented in all daemons yet. The following
|
||||||
OID numbers are used for querying the SNMP daemon by a client:
|
OID numbers are used for querying the SNMP daemon by a client:::
|
||||||
::
|
|
||||||
|
|
||||||
zebra .1.3.6.1.2.1.4.24 .iso.org.dot.internet.mgmt.mib-2.ip.ipForward
|
zebra .1.3.6.1.2.1.4.24 .iso.org.dot.internet.mgmt.mib-2.ip.ipForward
|
||||||
ospfd .1.3.6.1.2.1.14 .iso.org.dot.internet.mgmt.mib-2.ospf
|
ospfd .1.3.6.1.2.1.14 .iso.org.dot.internet.mgmt.mib-2.ospf
|
||||||
@ -181,26 +177,24 @@ OID numbers are used for querying the SNMP daemon by a client:
|
|||||||
ospf6d .1.3.6.1.3.102 .iso.org.dod.internet.experimental.ospfv3
|
ospf6d .1.3.6.1.3.102 .iso.org.dod.internet.experimental.ospfv3
|
||||||
|
|
||||||
|
|
||||||
The following syntax is understood by the FRR daemons for configuring SNMP using SMUX:
|
The following syntax is understood by the FRR daemons for configuring SNMP
|
||||||
.. index:: {Command} {smux peer `oid`} {}
|
using SMUX:
|
||||||
|
|
||||||
{Command} {smux peer `oid`} {}
|
.. index:: smux peer OID
|
||||||
.. index:: {Command} {no smux peer `oid`} {}
|
.. clicmd:: smux peer OID
|
||||||
|
.. index:: no smux peer OID
|
||||||
|
.. clicmd:: no smux peer OID
|
||||||
|
.. index:: smux peer OID PASSWORD
|
||||||
|
.. clicmd:: smux peer OID PASSWORD
|
||||||
|
.. index:: no smux peer OID PASSWORD
|
||||||
|
.. clicmd:: no smux peer OID PASSWORD
|
||||||
|
|
||||||
{Command} {no smux peer `oid`} {}
|
Here is the syntax for using AgentX:
|
||||||
|
|
||||||
.. index:: {Command} {smux peer `oid` `password`} {}
|
.. index:: agentx
|
||||||
|
.. clicmd:: agentx
|
||||||
|
.. index:: no agentx
|
||||||
|
.. clicmd:: no agentx
|
||||||
|
|
||||||
{Command} {smux peer `oid` `password`} {}
|
|
||||||
.. index:: {Command} {no smux peer `oid` `password`} {}
|
|
||||||
|
|
||||||
{Command} {no smux peer `oid` `password`} {}
|
|
||||||
Here is the syntax for using AgentX:
|
|
||||||
.. index:: {Command} {agentx} {}
|
|
||||||
|
|
||||||
{Command} {agentx} {}
|
|
||||||
.. index:: {Command} {no agentx} {}
|
|
||||||
|
|
||||||
{Command} {no agentx} {}
|
|
||||||
|
|
||||||
.. include:: snmptrap.rst
|
.. include:: snmptrap.rst
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
Handling SNMP Traps
|
Handling SNMP Traps
|
||||||
===================
|
===================
|
||||||
|
|
||||||
To handle snmp traps make sure your snmp setup of frr works
|
To handle snmp traps make sure your snmp setup of frr works correctly as
|
||||||
correctly as described in the frr documentation in :ref:`SNMP_Support`.
|
described in the frr documentation in :ref:`SNMP_Support`.
|
||||||
|
|
||||||
The BGP4 mib will send traps on peer up/down events. These should be
|
The BGP4 mib will send traps on peer up/down events. These should be visible in
|
||||||
visible in your snmp logs with a message similar to:
|
your snmp logs with a message similar to:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
snmpd[13733]: Got trap from peer on fd 14
|
snmpd[13733]: Got trap from peer on fd 14
|
||||||
|
|
||||||
To react on these traps they should be handled by a trapsink. Configure
|
To react on these traps they should be handled by a trapsink. Configure your
|
||||||
your trapsink by adding the following lines to :file:`/etc/snmpd/snmpd.conf`:
|
trapsink by adding the following lines to :file:`/etc/snmpd/snmpd.conf`:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -20,9 +20,9 @@ your trapsink by adding the following lines to :file:`/etc/snmpd/snmpd.conf`:
|
|||||||
trapsink localhost
|
trapsink localhost
|
||||||
|
|
||||||
|
|
||||||
This will send all traps to an snmptrapd running on localhost. You can
|
This will send all traps to an snmptrapd running on localhost. You can of
|
||||||
of course also use a dedicated management station to catch traps.
|
course also use a dedicated management station to catch traps. Configure the
|
||||||
Configure the snmptrapd daemon by adding the following line to
|
snmptrapd daemon by adding the following line to
|
||||||
:file:`/etc/snmpd/snmptrapd.conf`:
|
:file:`/etc/snmpd/snmptrapd.conf`:
|
||||||
|
|
||||||
::
|
::
|
||||||
@ -32,15 +32,15 @@ Configure the snmptrapd daemon by adding the following line to
|
|||||||
|
|
||||||
This will use the bash script :file:`/etc/snmp/snmptrap_handle.sh` to handle
|
This will use the bash script :file:`/etc/snmp/snmptrap_handle.sh` to handle
|
||||||
the BGP4 traps. To add traps for other protocol daemons, lookup their
|
the BGP4 traps. To add traps for other protocol daemons, lookup their
|
||||||
appropriate OID from their mib. (For additional information about which
|
appropriate OID from their mib. (For additional information about which traps
|
||||||
traps are supported by your mib, lookup the mib on
|
are supported by your mib, lookup the mib on
|
||||||
`http://www.oidview.com/mibs/detail.html <http://www.oidview.com/mibs/detail.html>`_).
|
`http://www.oidview.com/mibs/detail.html <http://www.oidview.com/mibs/detail.html>`_).
|
||||||
|
|
||||||
Make sure snmptrapd is started.
|
Make sure *snmptrapd* is started.
|
||||||
|
|
||||||
The snmptrap_handle.sh script I personally use for handling BGP4 traps
|
The snmptrap_handle.sh script I personally use for handling BGP4 traps is
|
||||||
is below. You can of course do all sorts of things when handling traps,
|
below. You can of course do all sorts of things when handling traps, like sound
|
||||||
like sound a siren, have your display flash, etc., be creative ;).
|
a siren, have your display flash, etc., be creative ;).
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
|
1131
doc/user/vnc.rst
1131
doc/user/vnc.rst
File diff suppressed because it is too large
Load Diff
@ -4,54 +4,56 @@
|
|||||||
VTY shell
|
VTY shell
|
||||||
*********
|
*********
|
||||||
|
|
||||||
*vtysh* provides a combined frontend to all FRR daemons in a
|
.. program:: configure
|
||||||
single combined session. It is enabled by default at build time, but can
|
|
||||||
be disabled through the *--disable-vtysh* option to
|
|
||||||
*./configure*.
|
|
||||||
|
|
||||||
*vtysh* has a configuration file, :file:`vtysh.conf`. The location
|
*vtysh* provides a combined frontend to all FRR daemons in a single combined
|
||||||
of that file cannot be changed from :file:`|INSTALL_PREFIX_ETC|` since
|
session. It is enabled by default at build time, but can be disabled through
|
||||||
it contains options controlling authentication behavior. This file will
|
the :option:`--disable-vtysh` option to the configure script.
|
||||||
also not be written by configuration-save commands, it is intended to be
|
|
||||||
updated manually by an administrator with an external editor.
|
*vtysh* has a configuration file, :file:`vtysh.conf`. The location of that
|
||||||
|
file cannot be changed from |INSTALL_PREFIX_ETC| since it contains options
|
||||||
|
controlling authentication behavior. This file will also not be written by
|
||||||
|
configuration-save commands, it is intended to be updated manually by an
|
||||||
|
administrator with an external editor.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
This also means the ``hostname`` and ``banner motd`` commands (which both do
|
||||||
|
have effect for vtysh) need to be manually updated in :file:`vtysh.conf`.
|
||||||
|
|
||||||
@quotation Warning
|
|
||||||
This also means the *hostname* and *banner motd* commands
|
|
||||||
(which both do have effect for vtysh) need to be manually updated in
|
|
||||||
:file:`vtysh.conf`.
|
|
||||||
@end quotation
|
|
||||||
|
|
||||||
Permissions and setup requirements
|
Permissions and setup requirements
|
||||||
==================================
|
==================================
|
||||||
|
|
||||||
*vtysh* connects to running daemons through Unix sockets located in
|
*vtysh* connects to running daemons through Unix sockets located in
|
||||||
:file:`|INSTALL_PREFIX_STATE|`. Running vtysh thus requires access to
|
|INSTALL_PREFIX_STATE|. Running vtysh thus requires access to that directory,
|
||||||
that directory, plus membership in the *|INSTALL_VTY_GROUP|*
|
plus membership in the |INSTALL_VTY_GROUP| group (which is the group that the
|
||||||
group (which is the group that the daemons will change ownership of their
|
daemons will change ownership of their sockets to).
|
||||||
sockets to).
|
|
||||||
|
|
||||||
To restrict access to FRR configuration, make sure no unauthorized users
|
To restrict access to FRR configuration, make sure no unauthorized users are
|
||||||
are members of the *|INSTALL_VTY_GROUP|* group.
|
members of the |INSTALL_VTY_GROUP| group.
|
||||||
|
|
||||||
PAM support (experimental)
|
PAM support (experimental)
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
vtysh has working (but rather useless) PAM support. It will perform
|
vtysh has working (but rather useless) PAM support. It will perform an
|
||||||
an "authenticate" PAM call using *|PACKAGE_NAME|* as service
|
"authenticate" PAM call using |PACKAGE_NAME| as service name. No other
|
||||||
name. No other (accounting, session, password change) calls will be
|
(accounting, session, password change) calls will be performed by vtysh.
|
||||||
performed by vtysh.
|
|
||||||
|
|
||||||
Users using vtysh still need to have appropriate access to the daemons'
|
Users using vtysh still need to have appropriate access to the daemons' VTY
|
||||||
VTY sockets, usually by being member of the *|INSTALL_VTY_GROUP|*
|
sockets, usually by being member of the |INSTALL_VTY_GROUP| group. If they
|
||||||
group. If they have this membership, PAM support is useless since they can
|
have this membership, PAM support is useless since they can connect to daemons
|
||||||
connect to daemons and issue commands using some other tool. Alternatively,
|
and issue commands using some other tool. Alternatively, the *vtysh* binary
|
||||||
the *vtysh* binary could be made SGID (set group ID) to the
|
could be made SGID (set group ID) to the |INSTALL_VTY_GROUP| group.
|
||||||
*|INSTALL_VTY_GROUP|* group. @strong{No security guarantees are
|
|
||||||
made for this configuration}.
|
|
||||||
|
|
||||||
.. index:: {Command} {username `username` nopassword} {}
|
.. warning::
|
||||||
|
|
||||||
|
No security guarantees are made for this configuration.
|
||||||
|
|
||||||
|
|
||||||
|
.. index:: username USERNAME nopassword
|
||||||
|
.. clicmd:: username USERNAME nopassword
|
||||||
|
|
||||||
{Command} {username `username` nopassword} {}
|
|
||||||
If PAM support is enabled at build-time, this command allows disabling the
|
If PAM support is enabled at build-time, this command allows disabling the
|
||||||
use of PAM on a per-user basis. If vtysh finds that an user is trying to
|
use of PAM on a per-user basis. If vtysh finds that an user is trying to
|
||||||
use vtysh and a "nopassword" entry is found, no calls to PAM will be made
|
use vtysh and a "nopassword" entry is found, no calls to PAM will be made
|
||||||
@ -67,56 +69,56 @@ Integrated configuration mode uses a single configuration file,
|
|||||||
:file:`frr.conf`, for all daemons. This replaces the individual files like
|
:file:`frr.conf`, for all daemons. This replaces the individual files like
|
||||||
:file:`zebra.conf` or :file:`bgpd.conf`.
|
:file:`zebra.conf` or :file:`bgpd.conf`.
|
||||||
|
|
||||||
:file:`frr.conf` is located in :file:`|INSTALL_PREFIX_ETC|`. All
|
:file:`frr.conf` is located in |INSTALL_PREFIX_ETC|. All daemons check for the
|
||||||
daemons check for the existence of this file at startup, and if it exists
|
existence of this file at startup, and if it exists will not load their
|
||||||
will not load their individual configuration files. Instead,
|
individual configuration files. Instead, ``vtysh -b`` must be invoked to
|
||||||
*vtysh -b* must be invoked to process :file:`frr.conf` and apply
|
process :file:`frr.conf` and apply its settings to the individual daemons.
|
||||||
its settings to the individual daemons.
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
*vtysh -b* must also be executed after restarting any daemon.
|
||||||
|
|
||||||
@quotation Warning
|
|
||||||
*vtysh -b* must also be executed after restarting any daemon.
|
|
||||||
@end quotation
|
|
||||||
|
|
||||||
Configuration saving, file ownership and permissions
|
Configuration saving, file ownership and permissions
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
|
|
||||||
The :file:`frr.conf` file is not written by any of the daemons; instead
|
The :file:`frr.conf` file is not written by any of the daemons; instead *vtysh*
|
||||||
*vtysh* contains the neccessary logic to collect configuration from
|
contains the neccessary logic to collect configuration from all of the daemons,
|
||||||
all of the daemons, combine it and write it out.
|
combine it and write it out.
|
||||||
|
|
||||||
@quotation Warning
|
.. warning::
|
||||||
Daemons must be running for *vtysh* to be able to collect their
|
|
||||||
configuration. Any configuration from non-running daemons is permanently
|
|
||||||
lost after doing a configuration save.
|
|
||||||
@end quotation
|
|
||||||
|
|
||||||
Since the *vtysh* command may be running as ordinary user on the
|
Daemons must be running for *vtysh* to be able to collect their
|
||||||
system, configuration writes will be tried through *watchfrr*,
|
configuration. Any configuration from non-running daemons is permanently
|
||||||
using the *write integrated* command internally. Since
|
lost after doing a configuration save.
|
||||||
*watchfrr* is running as superuser, *vtysh* is able to
|
|
||||||
ensure correct ownership and permissions on :file:`frr.conf`.
|
|
||||||
|
|
||||||
If *watchfrr* is not running or the configuration write fails,
|
Since the *vtysh* command may be running as ordinary user on the system,
|
||||||
*vtysh* will attempt to directly write to the file. This is likely
|
configuration writes will be tried through *watchfrr*, using the ``write
|
||||||
to fail if running as unprivileged user; alternatively it may leave the
|
integrated`` command internally. Since *watchfrr* is running as superuser,
|
||||||
file with incorrect owner or permissions.
|
*vtysh* is able to ensure correct ownership and permissions on
|
||||||
|
:file:`frr.conf`.
|
||||||
|
|
||||||
Writing the configuration can be triggered directly by invoking
|
If *watchfrr* is not running or the configuration write fails, *vtysh* will
|
||||||
*vtysh -w*. This may be useful for scripting. Note this command
|
attempt to directly write to the file. This is likely to fail if running as
|
||||||
should be run as either the superuser or the FRR user.
|
unprivileged user; alternatively it may leave the file with incorrect owner or
|
||||||
|
permissions.
|
||||||
|
|
||||||
We recommend you do not mix the use of the two types of files. Further, it
|
Writing the configuration can be triggered directly by invoking *vtysh -w*.
|
||||||
is better not to use the integrated frr.conf file, as any syntax error in
|
This may be useful for scripting. Note this command should be run as either the
|
||||||
it can lead to /all/ of your daemons being unable to start up. Per daemon
|
superuser or the FRR user.
|
||||||
files are more robust as impact of errors in configuration are limited to
|
|
||||||
the daemon in whose file the error is made.
|
|
||||||
|
|
||||||
.. index:: {Command} {service integrated-vtysh-config} {}
|
We recommend you do not mix the use of the two types of files. Further, it is
|
||||||
|
better not to use the integrated :file:`frr.conf` file, as any syntax error in
|
||||||
|
it can lead to /all/ of your daemons being unable to start up. Per daemon files
|
||||||
|
are more robust as impact of errors in configuration are limited to the daemon
|
||||||
|
in whose file the error is made.
|
||||||
|
|
||||||
{Command} {service integrated-vtysh-config} {}
|
.. index:: service integrated-vtysh-config
|
||||||
.. index:: {Command} {no service integrated-vtysh-config} {}
|
.. clicmd:: service integrated-vtysh-config
|
||||||
|
|
||||||
|
.. index:: no service integrated-vtysh-config
|
||||||
|
.. clicmd:: no service integrated-vtysh-config
|
||||||
|
|
||||||
{Command} {no service integrated-vtysh-config} {}
|
|
||||||
Control whether integrated :file:`frr.conf` file is written when
|
Control whether integrated :file:`frr.conf` file is written when
|
||||||
'write file' is issued.
|
'write file' is issued.
|
||||||
|
|
||||||
@ -127,22 +129,15 @@ the daemon in whose file the error is made.
|
|||||||
This command has 3 states:
|
This command has 3 states:
|
||||||
|
|
||||||
|
|
||||||
``
|
service integrated-vtysh-config
|
||||||
*service integrated-vtysh-config*
|
|
||||||
|
|
||||||
*vtysh* will always write :file:`frr.conf`.
|
*vtysh* will always write :file:`frr.conf`.
|
||||||
|
|
||||||
|
|
||||||
``
|
no service integrated-vtysh-config
|
||||||
*no service integrated-vtysh-config*
|
|
||||||
|
|
||||||
*vtysh* will never write :file:`frr.conf`; instead it will ask
|
*vtysh* will never write :file:`frr.conf`; instead it will ask
|
||||||
daemons to write their individual configuration files.
|
daemons to write their individual configuration files.
|
||||||
|
|
||||||
|
|
||||||
``
|
|
||||||
Neither option present (default)
|
Neither option present (default)
|
||||||
|
|
||||||
*vtysh* will check whether :file:`frr.conf` exists. If it does,
|
*vtysh* will check whether :file:`frr.conf` exists. If it does,
|
||||||
configuration writes will update that file. Otherwise, writes are performed
|
configuration writes will update that file. Otherwise, writes are performed
|
||||||
through the individual daemons.
|
through the individual daemons.
|
||||||
@ -151,21 +146,18 @@ the daemon in whose file the error is made.
|
|||||||
preset one of the two operating modes and ensure consistent operation across
|
preset one of the two operating modes and ensure consistent operation across
|
||||||
installations.
|
installations.
|
||||||
|
|
||||||
.. index:: {Command} {write integrated} {}
|
.. index:: write integrated
|
||||||
|
.. clicmd:: write integrated
|
||||||
|
|
||||||
{Command} {write integrated} {}
|
Unconditionally (regardless of ``service integrated-vtysh-config`` setting)
|
||||||
Unconditionally (regardless of *service integrated-vtysh-config*
|
write out integrated :file:`frr.conf` file through *watchfrr*. If *watchfrr*
|
||||||
setting) write out integrated :file:`frr.conf` file through
|
is not running, this command is unavailable.
|
||||||
*watchfrr*. If *watchfrr* is not running, this command
|
|
||||||
is unavailable.
|
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
Caveats
|
Configuration changes made while some daemon is not running will be
|
||||||
=======
|
invisible to that daemon. The daemon will start up with its saved
|
||||||
|
configuration (either in its individual configuration file, or in
|
||||||
Configuration changes made while some daemon is not running will be invisible
|
:file:`frr.conf`). This is particularly troublesome for route-maps and
|
||||||
to that daemon. The daemon will start up with its saved configuration
|
prefix lists, which would otherwise be synchronized between daemons.
|
||||||
(either in its individual configuration file, or in :file:`frr.conf`).
|
|
||||||
This is particularly troublesome for route-maps and prefix lists, which would
|
|
||||||
otherwise be synchronized between daemons.
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user