BGP LS
BGP LS
Vinit Jain
CCIE# 22854
Twitter - @vinugenie
ATE-CL037
Agenda
• Introduction
• BGP Link-State (BGP-LS) Overview
• How BGP-LS Works
• Use Cases for BGP-LS
• Demo
BGP-LS Overview
BGP-LS Overview
Background
• There is a growing interest in getting an abstracted view of the entire network so
that higher level applications can provide useful functionalities to businesses
• Applications like ALTO and PCE use such network abstractions on a real time
basis to enable users the ability to plan and optimize the network usage
• It is possible for ALTO/PCE to form a peering with one of the nodes in an area
and get the full link-state data for that area only – this will not be for the entire
network
• Also, providers are not keen on allowing IGP access to an external application
where they will not be able to control what information is available to the
application
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
BGP-LS Overview
PCE & ALTO Servers
• Path Computation Elements (PCE)
• Defined in RFC 4655
• Used for calculating optimal paths for TE in an Inter-Area TE deployment
• Requires complete topology and resource information database
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 5
BGP-LS Overview
Why BGP?
• BGP scales well where millions of prefixes and paths needs to be transported
which will make it possible to not have to impact the IGP scale
• BGP is widely deployed and already part of the service provider infrastructure
and hence deploying a new feature will not be a major hurdle
• As is becoming the common practice, BGP will be used to transport the link-
state information and make is accessible to the external applications
• A hierarchical RR can collect all the link-state information from the various areas
so that the external information can access that information from single point of
contact
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 6
BGP-LS Overview
Overview
• Defined in RFC 7752
• Used to distribute IGP topology information to other BGP speakers using a BGP
NLRI
• PCE or ALTO servers peer with BGP to collect both IGP and BGP topology
information
• In order to implement new link-state AFI is defined
• BGP Uses AFI 16388 and SAFI 71 for non-VPN links, node and prefix
information
• Uses AFI 16388 and SAFI 72 for VPN based links, node and prefix information
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 7
BGP-LS Overview
Architecture Example
PCE
RR IGP area
IGP area
BGP
BGP
BGP
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 8
How BGP-LS Works
How BGP-LS Works
NLRI Information
• Type 1 – Node NLRI
• Type 2 – Link NLRI
• Type 3 – IPv4 Topology prefix NLRI
• Type 4 – IPv6 Topology prefix NLRI
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
How BGP-LS Works
Node NLRI
• Consists of Node Identifier and Node Descriptor fields.
• Typically the OSPF Router ID or IS-IS System ID are carried in the Node
Description field.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
| Protocol-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier |
| (64 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Local Node Descriptors (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 11
How BGP-LS Works
Link NLRI
• Link NLRI is used to uniquely identify a link in the network
• The Link Descriptor field – TLV format
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
| Protocol-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier |
| (64 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Local Node Descriptors (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Remote Node Descriptors (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Link Descriptors (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
How BGP-LS Works
IPv4/IPv6 Prefix NLRI
• Prefix Descriptor used to uniquely identify a prefix originated by a node
• Both IPv4 and IPv6 have the same prefix NLRI format
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
| Protocol-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier |
| (64 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Local Node Descriptors (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Prefix Descriptors (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 13
How BGP-LS Works
BGP-LS Path Attributes
• Node Attribute • Link Attributes
• Multi-Topology Id • IPv4 / IPv6 Router-Id (local & Remote)
• Node Flag Bits • IGP metric
• Opaque Node Attribute • Administrative group
• Node Name • Max. link bandwidth
• IS-IS Area Id • Max. reservable bandwidth
• IPv4 Router-Id (local node) • Unreserved bandwidth
• IPv6 Router-Id (local node) • TE default metric
• Link protection type
• MPLS protocol mask
• Shared risk link group
• Opaque link attribute
• Link name
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 14
How BGP-LS Works
System Flow
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 15
How BGP-LS Works
Configuration
BGP
router bgp <asn>
address-family link-state unicast
neighbor <addr>
remote-as <remote_asn>
address-family link-state unicast
OSPF
router ospf <id>
distribute bgp-ls [throttle-time <interval>]
area 0
ISIS
router isis <id>
distribute bgp-ls <level> [throttle-time <interval>]
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 16
How BGP-LS Works
Link-State BGP Prefixes
• Node Descriptor Prefix
*> [V][L2][I0x0][N[c100][b192.168.2.2][s0000.0000.0002.00]]/328
0.0.0.0 0 i
• Link Descriptor Prefix
*>
[E][L2][I0x0][N[c100][b192.168.2.2][s0000.0000.0001.00]][R[c100][b192.168.2.
2][s0000.0000.0004.01]][L[i10.1.14.1][n10.1.14.4]]/704
0.0.0.0 0 i
• Prefix Descriptor Prefix
*>
[T][L2][I0x0][N[c100][b192.168.2.2][s0000.0000.0003.00]][P[p10.1.23.0/24]]/392
0.0.0.0 0 i
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 17
How BGP-LS Works
Node Descriptor Prefix
*> [V][L2][I0x0][N[c100][b192.168.2.2][s0000.0000.0002.00]]/328
0.0.0.0 0 i
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 18
How BGP-LS Works
Link Descriptor Prefix
*>
[E][L2][I0x0][N[c100][b192.168.2.2][s0000.0000.0001.00]][R[c100][b1
92.168.2.2][s0000.0000.0004.01]][L[i10.1.14.1][n10.1.14.4]]/704
0.0.0.0 0 i
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 19
How BGP-LS Works
Prefix Descriptor Prefix
*>
[T][L2][I0x0][N[c100][b192.168.2.2][s0000.0000.0003.00]][P[p10.1.23.0
/24]]/392
0.0.0.0 0 i
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 20
Demo
BGP-LS Demo
Topology
SDN
R1 Controller
R11 R12
ATE-CL037 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
ATE-CL037