OcNOS SP : Segment Routing Guide : Path Computation Element Communication Protocol Configuration : BGP Link-State and PCEP Configuration
BGP Link-State and PCEP Configuration
This chapter contains configurations for Path Computation Element Protocol (PCEP) and the BGP Link-State capability.
BGP-LS
BGP-LS describes a mechanism by which Link-State (LS) and Traffic Engineering (TE) information from IGPs can be collected from networks and shared with external components using BGP. This is achieved using a new BGP Network Layer Reachability Information (NLRI) encoding format. The mechanism is applicable to physical and virtual links. Applications of this technique include Application-Layer Traffic Optimization (ALTO) servers and Path Computation Elements (PCEs). These components, while external to the network, require network state information on a real time basis. Specifically, they require link-state database information of each IGP node (OSPF) from the entire network. The BGP protocol is used to collect the necessary information and to share with the external components – this is achieved using a NLRI encoding format.
BGP-LS Architecture
BGP uses AFI (16388) and SAFI (71) for distributing the Link state and Traffic engineering information.
It uses Link State NLRI that describes links, nodes, and prefixes comprised of IGP link-state information. A new BGP path attribute called BGP-LS attribute is defined to carry the link, node, prefix properties, and attributes like link and prefix metric or auxiliary Router-IDs of nodes
PCEP
A Path Computation Element (PCE) is an entity (component, application, or network node) that is capable of computing a network path or route based on a network graph and applying computational constraints. A Path Computation Client (PCC) is any client application requesting a path computation to be performed by a PCE. A Path Computation Element supports requests for path computation issued by a Path Computation Client.
The PCE operates on a network graph in order to compute paths based on the path computation request(s) issued by the PCC(s). The path computation request will include the source and destination of the paths to be computed and a set of constraints to be applied during the computation, and it may also include an objective function. The PCE response includes the computed paths or the reason for a failed computation.
 
PCEP Architecture
Topology
PCEP and BGP configuration topology
Configuration for PCEP AND BGP-LS
R1
 
R1#configure terminal
Enter configure mode.
R1(config)#interface lo
Enter interface mode.
R1(config-if)#ip address 1.1.1.1/32 secondary
Configure the IP address of the interface.
R1(config-if)#ip router isis 1
Make the interface part of the router ISIS 1 instance.
R1(config-if)# prefix-sid absolute 16001 no-php
Configure prefix SID absolute value.
R1(config-if)#exit
Exit interface mode.
R1(config)#interface eth1
Enter interface mode.
R1(config-if)#ip address 11.1.1.1/24
Configure the IP address of the interface.
R1(config-if)#ip router isis 1
Make the interface part of the router ISIS 1 instance.
R1(config-if)#isis network point-to-point
ISIS network type as point-to-point
R1(config-if)#label-switching
Enable label switching.
R1(config)#interface eth2
Enter interface mode.
R1(config-if)#ip address 12.1.1.1/24
Configure the IP address of the interface.
R1(config-if)#ip router isis 1
Make the interface part of the router ISIS 1 instance.
R1(config-if)#label-switching
Enable label switching.
R1(config-if)#isis network point-to-point
ISIS network type as point-to-point
R1(config-if)#exit
Exit interface mode.
R1(config)#interface eth3
Enter interface mode.
R1(config-if)#ip address 20.1.1.1/24
Configure the IP address of the interface towards PCE
R1(config-if)#ip router isis 1
Make the interface part of the router ISIS 1 instance.
R1(config-if)#label-switching
Enable label switching.
R1(config-if)#isis network point-to-point
Network type as point-to-point
R1(config-if)#exit
Exit interface mode.
R1(config)#router isis 1
Set the routing process ID .
R1(config-router)#is-type level-1
Configure is-type.
R1(config-router)#distribute bgp-ls
Link State distribution to BGP
R1(config-router)#metric-style wide level-1
Configure metric style as wide.
R1(config-router)# net 49.0001.0000.0000.0011.00
Configure Network entity title (NET).
R1(config-router)#mpls traffic-eng router-id 1.1.1.1
Enable MPLS Traffic Engineering under router process.
R1(config-router)#mpls traffic-eng level-1
Enable MPLS Traffic Engineering as level-1.
R1(config-router)# capability cspf
Enable CSPF capability under ISIS 1 process.
R1(config-router)# isis segment-routing global block 16000 19999
SRGB Starting and End Range
R1(config-router)#segment-routing mpls
Enable segment routing under router process.
R1(config-router)#exit
Exit router mode.
R1(config)# router bgp 100
Configure router BGP in AS 100
R1(config-router)# bgp router-id 1.1.1.1
Router identifier for BGP
R1(config-router)# neighbor 33.33.33.33 remote-as 100
Configure neighbor in remote-as 100
R1(config-router)# neighbor 33.33.33.33 update-source lo
Configure neighbor with update-source loopback
R1(config-router)# address-family link-state link-state
Enter link-state Address family mode
R1(config-router-af)# neighbor 33.33.33.33 activate
Activate PCE neighbor
R1(config-router-af)# exit-address-family
Exit from Address Family configuration mode
R1(config-router)#exit
Exit router mode.
R1(config)# pce configuration 1
Configure Path Computation Client with entity 1
R1(config-pcep)#capability
Enter capabilities submode
R1(config-pcep-cap)#segment-routing pcep
Segment routing capability for PCE
R1(config-pcep-cap)# pce instantiation
PCE Initiated LSP Instantiation
R1(config-pcep-cap)# exit-capability
Exit from PCEP Entity Capability mode
R1(config-pcep)# update-source 1.1.1.1
Source of routing updates
R1(config-pcep)# peer-address ipv4 33.33.33.33
Configure peer address
R1(config-pcep)# exit
Exit PCEP mode.
R2
 
R2#configure terminal
Enter configure mode.
R2(config)#interface lo
Enter interface mode.
R2(config-if)#ip address 2.2.2.2/32 secondary
Configure the IP address of the interface.
R2(config-if)#ip router isis 1
Make the interface part of the router ISIS 1 instance.
R2(config-if)# prefix-sid absolute 16002 no-php
Configure prefix SID absolute value.
R2(config-if)#exit
Exit interface mode.
R2(config)#interface eth1
Enter interface mode.
R2(config-if)#ip address 11.1.1.2/24
Configure the IP address of the interface.
R2(config-if)#ip router isis 1
Make the interface part of the router ISIS 1 instance.
R2(config-if)#isis network point-to-point
ISIS network type as point-to-point
R2(config-if)#label-switching
Enable label switching.
R2(config)#interface eth2
Enter interface mode.
R2(config-if)#ip address 6.1.1.1/24
Configure the IP address of the interface.
R2(config-if)#ip router isis 1
Make the interface part of the router ISIS 1 instance.
R2(config-if)#label-switching
Enable label switching.
R2(config-if)#isis network point-to-point
ISIS network type as point-to-point
R2(config-if)#exit
Exit interface mode.
R2(config)#router isis 1
Set the routing process ID .
R2(config-router)#is-type level-1
Configure is-type.
R2(config-router)#metric-style wide level-1
Configure metric style as wide.
R2(config-router)# net 49.0001.0000.0000.0022.00
Configure Network entity title (NET).
R2(config-router)#mpls traffic-eng router-id 2.2.2.2
Enable MPLS Traffic Engineering under router process.
R2(config-router)#mpls traffic-eng level-1
Enable MPLS Traffic Engineering as level-1.
R2(config-router)# capability cspf
Enable CSPF capability under ISIS 1 process.
R2(config-router)# isis segment-routing global block 16000 19999
SRGB Starting and End Range
R2(config-router)#segment-routing mpls
Enable segment routing under router process.
R2(config-router)#exit
Exit router mode.
R3
 
R3#configure terminal
Enter configure mode.
R3(config)#interface lo
Enter interface mode.
R3(config-if)#ip address 3.3.3.3/32 secondary
Configure the IP address of the interface.
R3(config-if)#ip router isis 1
Make the interface part of the router ISIS 1 instance.
R3(config-if)# prefix-sid absolute 16003 no-php
Configure prefix SID absolute value.
R3(config-if)#exit
Exit interface mode.
R3(config)#interface eth1
Enter interface mode.
R3(config-if)#ip address 9.1.1.2/24
Configure the IP address of the interface.
R3(config-if)#ip router isis 1
Make the interface part of the router ISIS 1 instance.
R3(config-if)#isis network point-to-point
ISIS network type as point-to-point
R3(config-if)#label-switching
Enable label switching.
R3(config)#interface eth2
Enter interface mode.
R3(config-if)#ip address 6.1.1.2/24
Configure the IP address of the interface.
R3(config-if)#ip router isis 1
Make the interface part of the router ISIS 1 instance.
R3(config-if)#label-switching
Enable label switching.
R3(config-if)#isis network point-to-point
ISIS network type as point-to-point
R3(config-if)#exit
Exit interface mode.
R3(config)#router isis 1
Set the routing process ID .
R3(config-router)#is-type level-1
Configure is-type.
R3(config-router)#distribute bgp-ls
Link State distribution to BGP
R3(config-router)#metric-style wide level-1
Configure metric style as wide.
R3(config-router)# net 49.0001.0000.0000.0033.00
Configure Network entity title (NET).
R3(config-router)#mpls traffic-eng router-id 3.3.3.3
Enable MPLS Traffic Engineering under router process.
R3(config-router)#mpls traffic-eng level-1
Enable MPLS Traffic Engineering as level-1.
R3(config-router)# capability cspf
Enable CSPF capability under ISIS 1 process.
R3(config-router)# isis segment-routing global block 16000 19999
SRGB Starting and End Range
R3(config-router)#segment-routing mpls
Enable segment routing under router process.
R3(config-router)#exit
Exit router mode.
R3(config)# pce configuration 1
Configure Path Computation Client
R3(config-pcep)#capability
Specify capabilities of entity
R3(config-pcep-cap)#segment-routing pcep
Segment routing for PCE
R3(config-pcep-cap)# pce instantiation
PCE Initiated LSP Instantiation
R3(config-pcep-cap)# exit-capability
Exit from PCEP Entity Capability mode
R3(config-pcep)# update-source 3.3.3.3
Source of routing updates
R3(config-pcep)# peer-address ipv4 33.33.33.33
Configure peer address
R3(config-pcep)# exit
Exit PCEP mode.
R4
 
R4#configure terminal
Enter configure mode.
R4(config)#interface lo
Enter interface mode.
R4(config-if)#ip address 4.4.4.4/32 secondary
Configure the IP address of the interface.
R4(config-if)#ip router isis 1
Make the interface part of the router ISIS 1 instance.
R4(config-if)# prefix-sid absolute 16004 no-php
Configure prefix SID absolute value.
R4(config-if)#exit
Exit interface mode.
R4(config)#interface eth1
Enter interface mode.
R4(config-if)#ip address 9.1.1.1/24
Configure the IP address of the interface.
R4(config-if)#ip router isis 1
Make the interface part of the router ISIS 1 instance.
R4(config-if)#isis network point-to-point
ISIS network type as point-to-point
R4(config-if)#label-switching
Enable label switching.
R4(config)#interface eth2
Enter interface mode.
R4(config-if)#ip address 12.1.1.2/24
Configure the IP address of the interface.
R4(config-if)#ip router isis 1
Make the interface part of the router ISIS 1 instance.
R4(config-if)#label-switching
Enable label switching.
R4(config-if)#isis network point-to-point
ISIS network type as point-to-point
R4(config-if)#exit
Exit interface mode.
R4(config)#router isis 1
Set the routing process ID .
R4(config-router)#is-type level-1
Configure is-type.
R4(config-router)#metric-style wide level-1
Configure metric style as wide.
R4(config-router)# net 49.0001.0000.0000.0044.00
Configure Network entity title (NET).
R4(config-router)#mpls traffic-eng router-id 4.4.4.4
Enable MPLS Traffic Engineering under router process.
R4(config-router)#mpls traffic-eng level-1
Enable MPLS Traffic Engineering as level-1.
R4(config-router)# capability cspf
Enable CSPF capability under ISIS 1 process.
R4(config-router)# isis segment-routing global block 16000 19999
SRGB Starting and End Range
R4(config-router)#segment-routing mpls
Enable segment routing under router process.
R4(config-router)#exit
Exit router mode.
Validation
For PCEP Peer:
R1#show pcep peer
 
===========================================
Path Computation Client Connection Details :
===========================================
 
PCEP entity id : 1
================================================
Peer Info
---------------------------------------------
PCE Server IP : 33.33.33.33
PCEP Source IP : 1.1.1.1
PCEP Local session-id : 2
PCEP Remote session-id : 0
Session Connect Retry : 0
Session Connect due in : 0 sec
OpenRetry : 0
Open wait due in : 0 sec
Keep wait due in : 0 sec
Keep alive timer due in : 3 sec
Peer Keep-alive value : 30 sec
Peer Dead timer value : 120 sec
Peer Dead timer due in : 93 sec
Peer Overloaded : No
Peer Overload due in : 0 sec
LocalOK : 1
RemoteOK : 1
Max unknown messages : 0
FSM State : Up
Total FSM State changes : 4
Peer Up time : 00:02:26
Flap Limit Timer value : 300 Sec
Local Capabilities :
Stateful PCE Capability : Yes
LSP Instantiation : Yes
SR PCE Capability : Yes
Remote Capabilities :
Stateful PCE Capability : Yes
LSP Update Capability : Yes
LSP Instantiation : Yes
SR PCE Capability : Yes
 
R1# show pcep statistics
 
===========================================
Path Computation Client Statistics Details :
===========================================
 
Entity Index : 1
PCE Server IP : 33.33.33.33
Open sent : 2
Open recv : 2
Path request sent : 0
Path response recv : 0
Path report sent : 2
Path update recv : 0
Path initiate recv : 0
Error Sent : 0
Error received : 0
Notification Sent : 0
Notification received: 0
Keepalive Sent : 23
Keepalive received : 20
Unknown recv : 0
Corrupt recv : 0
Request cancelled : 0
Request rejected : 0
Request Timed out : 0
Request comp failed : 0
Request with reply : 0
 
R3#show pcep peer
 
===========================================
Path Computation Client Connection Details :
===========================================
 
PCEP entity id : 1
================================================
Peer Info
---------------------------------------------
PCE Server IP : 33.33.33.33
PCEP Source IP : 3.3.3.3
PCEP Local session-id : 3
PCEP Remote session-id : 0
Session Connect Retry : 0
Session Connect due in : 0 sec
OpenRetry : 0
Open wait due in : 0 sec
Keep wait due in : 0 sec
Keep alive timer due in : 26 sec
Peer Keep-alive value : 30 sec
Peer Dead timer value : 120 sec
Peer Dead timer due in : 116 sec
Peer Overloaded : No
Peer Overload due in : 0 sec
LocalOK : 1
RemoteOK : 1
Max unknown messages : 0
FSM State : Up
Total FSM State changes : 5
Peer Up time : 00:03:03
Flap Limit Timer value : 300 Sec
Local Capabilities :
Stateful PCE Capability : Yes
LSP Instantiation : Yes
SR PCE Capability : Yes
Remote Capabilities :
Stateful PCE Capability : Yes
LSP Update Capability : Yes
LSP Instantiation : Yes
SR PCE Capability : Yes
For BGP-LS:
R1#show bgp link-state link-state summary
BGP router identifier 1.1.1.1, local AS number 100
BGP table version is 28
0 BGP AS-PATH entries
0 BGP community entries
 
Neighbor V AS MsgRcv MsgSen TblVer InQ OutQ Up/Dow
n State/PfxRcd
33.33.33.33 4 100 39 177 28 0 0 00:07:20
0
 
Total number of neighbors 1
 
Total number of Established sessions 1
R1#
R1#show bgp link-state link-state
BGP router identifier 1.1.1.1, local AS number 100
Origin codes: i - IGP, e - EGP
Prefix codes: E link, V node, T IP reacheable route, I Identifier
N local node, R remote node, L link, P prefix
L1/L2 ISIS level-1/level-2, O OSPF, a area-ID,
c confed-ID/ASN, b bgp-identifier, r router-ID,
i if-address, n nbr-address, o OSPF Route-type,
p IP-prefix, d designated router address, s ISO-ID
[V][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0011.00]]/208
[V][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0022.00]]/208
[V][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0022.01]]/208
[V][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0033.00]]/208
[V][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0044.00]]/208
[V][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.2222.00]]/208
[E][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0011.00]][R[c100][b1.1.1.1][s0000.000
0.0022.00]][L[i11.1.1.1][n11.1.1.2]]/328
[E][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0011.00]][R[c100][b1.1.1.1][s0000.000
0.0044.00]][L[i12.1.1.1][n12.1.1.2]]/328
[E][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0011.00]][R[c100][b1.1.1.1][s0000.000
0.2222.00]][L[i20.1.1.1][n20.1.1.2]]/328
[E][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0022.00]][R[c100][b1.1.1.1][s0000.000
0.0011.00]][L[i11.1.1.2][n11.1.1.1]]/328
[E][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0022.01]][R[c100][b1.1.1.1][s0000.000
0.0011.00]]/264
[E][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0022.01]][R[c100][b1.1.1.1][s0000.000
0.0022.00]]/264
[E][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0033.00]][R[c100][b1.1.1.1][s0000.000
0.0044.00]][L[i9.1.1.2][n9.1.1.1]]/328
[E][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0044.00]][R[c100][b1.1.1.1][s0000.000
0.0011.00]][L[i12.1.1.2][n12.1.1.1]]/328
[E][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0044.00]][R[c100][b1.1.1.1][s0000.000
0.0033.00]][L[i9.1.1.1][n9.1.1.2]]/328
[E][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.2222.00]][R[c100][b1.1.1.1][s0000.000
0.0011.00]][L[i20.1.1.2][n20.1.1.1]]/328
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0011.00]][P[p11.1.1.0/24]]/240
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0011.00]][P[p12.1.1.0/24]]/240
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0011.00]][P[p20.1.1.0/24]]/240
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0011.00]][P[p1.1.1.1/32]]/248
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0022.00]][P[p6.1.1.0/24]]/240
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0022.00]][P[p11.1.1.0/24]]/240
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0022.00]][P[p2.2.2.2/32]]/248
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0033.00]][P[p6.1.1.0/24]]/240
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0033.00]][P[p9.1.1.0/24]]/240
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0033.00]][P[p3.3.3.3/32]]/248
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0044.00]][P[p9.1.1.0/24]]/240
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0044.00]][P[p12.1.1.0/24]]/240
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.0044.00]][P[p4.4.4.4/32]]/248
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.2222.00]][P[p20.1.1.0/30]]/248
[T][L1][I0x1][N[c100][b1.1.1.1][s0000.0000.2222.00]][P[p33.33.33.33/32]]/248
NLRIs, Total: 31, Node: 6, Link: 10, Prefix: 15
R1#
R1#show bgp neighbors
BGP neighbor is 33.33.33.33, remote AS 100, local AS 100, internal link
BGP version 4, local router ID 1.1.1.1, remote router ID 33.33.33.33
BGP state = Established, up for 00:07:43
Last read 00:00:08, hold time is 90, keepalive interval is 30 seconds
Neighbor capabilities:
Route refresh: advertised and received (old and new)
4-Octet ASN Capability: received
Address family IPv4 Unicast: advertised
Address family Link-State Link-State: advertised and received
Received 40 messages, 0 notifications, 0 in queue
Sent 177 messages, 1 notifications, 0 in queue
Route refresh request: received 0, sent 0
Minimum time between advertisement runs is 5 seconds
Update source is lo
For address family: IPv4 Unicast
BGP table version 1, neighbor version 1
Index 1, Offset 0, Mask 0x2
Community attribute sent to this neighbor (both)
0 accepted prefixes
0 announced prefixes
 
For address family: Link-State Link-State
BGP table version 28, neighbor version 28
Index 1, Offset 0, Mask 0x2
Community attribute sent to this neighbor (both)
0 accepted prefixes
31 announced prefixes
 
Connections established 2; dropped 1
Local host: 1.1.1.1, Local port: 35177
Foreign host: 33.33.33.33, Foreign port: 179
Nexthop: 1.1.1.1
Nexthop global: ::
Nexthop local: ::
BGP connection: non shared network
Last Reset: 00:49:08, due to Hold Timer Expired (Notification sent)
Notification Error Message: (Hold Timer Expired/No sub-error code)