BGP provides various extension useful for SDN such as : L3VPN, L2VPN, IP multicast, linkstate, etc.
BGP-LS is an extension of BGP which provides a mecahnism by wich link-state and TE information can be collected. It uses a new BGP Network Layer Reachability Information (NLRI) encoding format.
Link-State Database (LSDB) and IGP's Traffic Engineering (TED) describe only the links and nodes with an IGP area. Some applications need visibility outside one area or Autonomous System AS.
IETF defined :
They both require to gather informations about the topologies and capabilities of the network.
To build an optimal path, PCE needs a database with topology information to run path computation. This database is the TED (Traffic Engineering Database). It needs link brandwidth, IGP metrics, etc.
In BGP-LS, BGP speaker can retrieve information from IGP LSDB and send it to a controller.
A router maintains databases of link-state informations about nodes and link-state information:
BGP-LS works only for the following IGP protocols: IS-IS Level 1, IS-IS Level 2, OSPFv2, Direct, Static Configuration, OSPFv3.
The Direct and Static Configuration are used when sourcing local information. “If BGP-LS has direct access to interface information and wants to advertise a local link, then the Protocol-ID 'Direct' SHOULD be used.” [1] “For modeling virtual links, the Protocol-ID 'Static configuration' SHOULD be used”
BGP-LS introduces a new NLRI and a new Path attribute:
What is BGP NLRI (Network Layer Reachability Information) ? It is information exchanged between BGP speaker with a BGP UPDATE message, it usually contains the network mask in bit, and the prefix (address of subnet).
The new NLRI is based on the TLV format (Type/Length/Value):
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // Value (variable) // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
BGP-LS introduces new NLRI types composed of 4 objects:
Type | NLRI Type |
---|---|
1 | Node NLRI |
2 | Link NLRI |
3 | IPv4 Topology Prefix NLRI |
4 | IPv6 Topology Prefix NLRI |
+-+-+-+-+-+-+-+-+ | Protocol-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | | (64 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // Local Node Descriptors (variable) // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
exemple of info included : Node Name, Router-ID, Multi-Topology identifier
+-+-+-+-+-+-+-+-+ | Protocol-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | | (64 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // Local Node Descriptors (variable) // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // Remote Node Descriptors (variable) // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // Link Descriptors (variable) // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
exemple of info included: Metric, Max Bandwidth, unreserved Bandwidth, available Bandwidth
What is BGP Path Attribute ? BGP Path Attributes are the characteristics of BGP routes.
Path attributes are used to carry necessary attributes to characterize the objects described above i.e. Node, Link or Prefix NLRI.
Which AS number can I choose for my BGP-SL peers ? “IANA has reserved, for Private Use, a contiguous block of 1023 Autonomous System numbers from the “16-bit Autonomous System Numbers” registry, namely 64512 - 65534 inclusive.” [4],
— sowarks 2018/03/12 14:43