diff options
Diffstat (limited to 'doc/user')
| -rw-r--r-- | doc/user/bgp-linkstate.rst | 146 | ||||
| -rw-r--r-- | doc/user/bgp.rst | 16 | ||||
| -rw-r--r-- | doc/user/conf.py | 1 | ||||
| -rw-r--r-- | doc/user/mgmtd.rst | 2 | ||||
| -rw-r--r-- | doc/user/ospfd.rst | 8 | ||||
| -rw-r--r-- | doc/user/pbr.rst | 4 |
6 files changed, 166 insertions, 11 deletions
diff --git a/doc/user/bgp-linkstate.rst b/doc/user/bgp-linkstate.rst new file mode 100644 index 0000000000..59e37b19f7 --- /dev/null +++ b/doc/user/bgp-linkstate.rst @@ -0,0 +1,146 @@ +.. _bgp-link-state: + +BGP Link-State +============== + +Overview +-------- + +BGP Link-State (BGP-LS) is an extension of the BGP protocol designed to +redistribute information from an IGP database to a remote controller (most +likely a Path Computation Element - PCE). BGP-LS does nothing more than +transport IGP information. Therefore, it cannot be used to replace a Link State +routing protocol like OSPF and IS-IS. + +Historically, the only way to get a network controller to collect an IGP +database was to have it participate in the IGP itself as if it were a standard +router. Since the controllers were usually located far from the IGP area, +tunnels such as GRE were used to connect the controllers to the IGP area. This +method was so impractical that an alternative solution was imagined: using the +already deployed inter-domain BGP protocol to redistribute the various IGP +databases. + +BGP Link-State as defined in `RFC7752 +<https://www.rfc-editor.org/rfc/rfc7752.html>`_ uses the AFI 16388 and SAFI 71. +The BGP Link-State pseudo-prefixes distributed by the `NLRI (Network Layer +Reachability Information)` uniquely define the following +IGP information: + +- Nodes +- Link +- IPv4 Prefix +- IPv6 Prefix + +They are called descriptors. In addition, a new type of BGP Attributes called +"BGP-LS attributes" carries the other information related to a descriptor. + +NLRI and attribute information for BGP-LS is organized using the TLV format +already used by IS-IS LSPs and OSPF opaque LSAs. The `list of TLV code points +<https://www.iana.org/assignments/bgp-ls-parameters/bgp-ls-parameters.xhtml#node-descriptor-link-descriptor-prefix-descriptor-attribute-tlv>`_ +is maintained by IANA. + +Current implementation +---------------------- + +The current version can participate in BGP Link-State AFI / SAFI with +third-party routers and forward the BGP Link-State descriptors and attributes to +other routers. However, it can not generate BGP Link-State data from OSPF and +IS-IS. + +IANA maintains a `registry of BGP-LS NRLI descriptor types +<https://www.iana.org/assignments/bgp-ls-parameters/bgp-ls-parameters.xhtml#nlri-types>`_. +Only the following RFC7752 NRLI types are supported by the current version: + +- Nodes +- Link +- IPv4 Prefix +- IPv6 Prefix + +The BGP-LS attribute TLVs for these NLRI types are transmitted as is to other +routers which means that all the current and future version are already +supported. + +Show commands +------------- + +The following configuration enables the negotiation of the link-state AFI / SAFI +with the 192.0.2.2 eBGP peer. + +.. code-block:: frr + + router bgp 65003 + neighbor 192.0.2.2 remote-as 65002 + neighbor 192.0.2.2 update-source 192.0.2.3 + ! + address-family link-state link-state + neighbor 192.0.2.2 activate + neighbor 192.0.2.2 route-map PERMIT-ALL in + neighbor 192.0.2.2 route-map PERMIT-ALL out + exit-address-family + exit + ! + route-map PERMIT-ALL permit 1 + +The BGP-LS table can be displayed. + +.. code-block:: frr + + frr# show bgp link-state link-state + BGP table version is 8, local router ID is 192.0.2.3, vrf id 0 + Default local pref 100, local AS 65003 + Network Next Hop Metric LocPrf Weight Path + *> Node OSPFv2 ID:0x20 Local{AS:65001 ID:0 Area:0 Rtr:10.10.10.10:1.1.1.1}/48 + 0 65002 65001 i + *> IPv4-Prefix OSPFv2 ID:0x20 Local{AS:65001 ID:0 Area:0 Rtr:10.10.10.10:1.1.1.1} Prefix{IPv4:89.10.11.0/24}/64 + 0 65002 65001 i + *> IPv6-Prefix ISIS-L2 ID:0x20 Local{AS:65001 ID:0 Rtr:0000.0000.1003.00} Prefix{IPv6:12:12::12:12/128 MT:2}/74 + 0 65002 65001 i + *> IPv6-Prefix OSPFv3 ID:0x20 Local{AS:65001 ID:0 Area:0 Rtr:10.10.10.10} Prefix{OSPF-Route-Type:1 IPv6:12:12::12:12/128 MT:2}/74 + 0 65002 65001 i + *> Node OSPFv2 ID:0x20 Local{AS:65001 ID:0 Area:0 Rtr:10.10.10.10}/48 + 0 65002 65001 i + *> Node ISIS-L1 ID:0x20 Local{AS:65001 ID:0 Rtr:0000.0000.1003.00}/48 + 0 65002 65001 i + *> Link ISIS-L1 ID:0x20 Local{AS:65001 ID:0 Rtr:0000.0000.1001} Remote{AS:65001 ID:0 Rtr:0000.0000.1000} Link{IPv4:10.1.0.1 Neigh-IPv4:10.1.0.2 IPv6:2001::1 Neigh-IPv6:2001::2 MT:0,2}/132 + 0 65002 65001 i + +The "detail-routes" allows displaying the BGP-LS attributes as well. + +.. code-block:: frr + + frr# show bgp link-state link-state detail-routes + (...) + BGP routing table entry for Link ISIS-L1 ID:0x20 Local{AS:65001 ID:0 Rtr:0000.0000.1001} Remote{AS:65001 ID:0 Rtr:0000.0000.1000} Link{IPv4:10.1.0.1 Neigh-IPv4:10.1.0.2 IPv6:2001::1 Neigh-IPv6:2001::2 MT:0,2}/116, version 1 + Paths: (1 available, best #1) + Advertised to non peer-group peers: + 192.0.2.1 192.0.2.3 + 65001 + :: from 192.0.2.1 (192.0.2.1) + Origin IGP, valid, external, best (First path received) + Last update: Mon Apr 17 15:45:42 2023 + BGP-LS attributes: + IPv4 Router-ID of Local Node: 1.1.1.1 + IPv4 Router-ID of Remote Node: 10.10.10.10 + Maximum link bandwidth: 1410.07 Mbps + Max. reservable link bandwidth: 1410.07 Mbps + Unreserved bandwidth: + [0]: 1410.07 Mbps [1]: 1410.07 Mbps + [2]: 1410.07 Mbps [3]: 1410.07 Mbps + [4]: 1410.07 Mbps [5]: 1410.07 Mbps + [6]: 1410.07 Mbps [7]: 1410.07 Mbps + TE Default Metric: 100 + IGP Metric: 10 + Adjacency SID: + Flags: 0b00110000 + Weight: 0 + SID: 15000 + Unidirectional Link Delay: 8500 microseconds + Min/Max Unidirectional Link Delay: 8000/9000 microseconds + Application-Specific Link Attributes: + SABM Flags : 0b00010000 00000000 00000000 00000000 + UDABM Flags: 0b00000000 00000000 00000000 00000000 + Administrative group: 0x00000001 + TE Default Metric: 100 + Min/Max Unidirectional Link Delay: 8000/9000 microseconds + Extended Administrative Group: 0x00000001 + diff --git a/doc/user/bgp.rst b/doc/user/bgp.rst index ba6c160560..1431cbdd28 100644 --- a/doc/user/bgp.rst +++ b/doc/user/bgp.rst @@ -818,6 +818,10 @@ from eBGP peers, :ref:`bgp-route-selection`. MED as an intra-AS metric to steer equal-length AS_PATH routes to, e.g., desired exit points. +.. [#med-transitivity-rant] For some set of objects to have an order, there *must* be some binary ordering relation that is defined for *every* combination of those objects, and that relation *must* be transitive. I.e.:, if the relation operator is <, and if a < b and b < c then that relation must carry over and it *must* be that a < c for the objects to have an order. The ordering relation may allow for equality, i.e. a < b and b < a may both be true and imply that a and b are equal in the order and not distinguished by it, in which case the set has a partial order. Otherwise, if there is an order, all the objects have a distinct place in the order and the set has a total order) +.. [bgp-route-osci-cond] McPherson, D. and Gill, V. and Walton, D., "Border Gateway Protocol (BGP) Persistent Route Oscillation Condition", IETF RFC3345 +.. [stable-flexible-ibgp] Flavel, A. and M. Roughan, "Stable and flexible iBGP", ACM SIGCOMM 2009 +.. [ibgp-correctness] Griffin, T. and G. Wilfong, "On the correctness of IBGP configuration", ACM SIGCOMM 2002 .. _bgp-graceful-restart: @@ -1814,6 +1818,13 @@ Configuring Peers and is not displayed. The `bgp default l2vpn-evpn` form of the command is displayed. +.. clicmd:: bgp default link-state + + This command allows the user to specify that the link-state link-state + address family is turned on by default or not. This command defaults to off + and is not displayed. + The `bgp default link-state` form of the command is displayed. + .. clicmd:: bgp default show-hostname This command shows the hostname of the peer in certain BGP commands @@ -5213,10 +5224,7 @@ Show command json output: .. include:: flowspec.rst -.. [#med-transitivity-rant] For some set of objects to have an order, there *must* be some binary ordering relation that is defined for *every* combination of those objects, and that relation *must* be transitive. I.e.:, if the relation operator is <, and if a < b and b < c then that relation must carry over and it *must* be that a < c for the objects to have an order. The ordering relation may allow for equality, i.e. a < b and b < a may both be true and imply that a and b are equal in the order and not distinguished by it, in which case the set has a partial order. Otherwise, if there is an order, all the objects have a distinct place in the order and the set has a total order) -.. [bgp-route-osci-cond] McPherson, D. and Gill, V. and Walton, D., "Border Gateway Protocol (BGP) Persistent Route Oscillation Condition", IETF RFC3345 -.. [stable-flexible-ibgp] Flavel, A. and M. Roughan, "Stable and flexible iBGP", ACM SIGCOMM 2009 -.. [ibgp-correctness] Griffin, T. and G. Wilfong, "On the correctness of IBGP configuration", ACM SIGCOMM 2002 +.. include:: bgp-linkstate.rst .. _bgp-fast-convergence: diff --git a/doc/user/conf.py b/doc/user/conf.py index 728f9c9364..40accc1bd2 100644 --- a/doc/user/conf.py +++ b/doc/user/conf.py @@ -130,6 +130,7 @@ exclude_patterns = [ "rpki.rst", "routeserver.rst", "ospf_fundamentals.rst", + "bgp-linkstate.rst", "flowspec.rst", "snmptrap.rst", "wecmp_linkbw.rst", diff --git a/doc/user/mgmtd.rst b/doc/user/mgmtd.rst index 737eb57c85..42bc860b72 100644 --- a/doc/user/mgmtd.rst +++ b/doc/user/mgmtd.rst @@ -356,7 +356,7 @@ MGMT Show commands Currenlty supported values for 'candidate' and 'running' only ('operational' shall be supported in future soon). -.. clicmd:: show mgmt database-contents [candidate|operation|running] [xpath WORD] [file WORD] json|xml +.. clicmd:: show mgmt datastore-contents [candidate|operation|running] [xpath WORD] [file WORD] json|xml This command dumps the subtree pointed by the xpath in JSON or XML format. If filepath is not present then the tree will be printed on the shell. diff --git a/doc/user/ospfd.rst b/doc/user/ospfd.rst index 26b2b43971..d61522b051 100644 --- a/doc/user/ospfd.rst +++ b/doc/user/ospfd.rst @@ -314,7 +314,7 @@ To start OSPF process you have to specify the OSPF router. This command controls the ospf instance's socket buffer sizes. The 'no' form resets one or both values to the default. - + .. clicmd:: no socket-per-interface Ordinarily, ospfd uses a socket per interface for sending @@ -603,9 +603,9 @@ Interfaces Specify that HMAC cryptographic authentication must be used on this interface using a key chain. Overrides any authentication enabled on a per-area basis - (:clicmd:`area A.B.C.D authentication message-digest`) + (:clicmd:`area A.B.C.D authentication message-digest`). - * ``KEYCHAIN``: Specifies the name of the key chain that contains the authentication + ``KEYCHAIN``: Specifies the name of the key chain that contains the authentication key(s) and cryptographic algorithms to be used for OSPF authentication. The key chain is a logical container that holds one or more authentication keys, allowing for key rotation and management. @@ -621,7 +621,7 @@ Interfaces Example: - .. code:: frr + .. code:: sh r1(config)#key chain temp r1(config-keychain)#key 13 diff --git a/doc/user/pbr.rst b/doc/user/pbr.rst index d0513018e3..83abfa220e 100644 --- a/doc/user/pbr.rst +++ b/doc/user/pbr.rst @@ -28,8 +28,8 @@ documented elsewhere. .. _nexthop-groups: -Nexthop Groups -============== +PBR Nexthop Groups +================== A nexthop group is a list of ECMP nexthops used to forward packets when a pbr-map is matched. |
