OcNOS-SP : Segment Routing Guide : Segment Routing Configuration Guide : BGP On-Demand Next Hop and Auto Steering
BGP On-Demand Next Hop and Auto Steering
This chapter contains configurations of BGP on-demand next hop (ODN) and auto steering with segment routing.
SR Policy is identified by three main components which are: Headend, Endpoint and Color.
When redistributing routing information across domains, provisioning of multi-domain services (Layer 2 VPN and Layer 3 VPN) has its own complexity and scalability issues.
Segment Routing On-Demand Next Hop (ODN) or SR TE auto steering triggers delegation of computation of an end-to-end LSP using dynamic computation (isis/ospf/pcep) including constraints and policies without doing any redistribution. It then installs the reapplied multi-domain LSP for the duration of the service into the local forwarding information base (FIB).
Coloring plays very important role in automated steering solution. Color information is exchanged by BGP extended community attribute (sub tlv) and BGP tunnel encapsulation attribute in the VPN route UPDATE messages. Egress PE node colors the service routes (VPN routes), advertises to ingress PE with colors that signifies SRTE SLA requirement. Ingress node uses this color to match SR policy, once node identifies SR policy by matching color, it automatically steers traffic onto the SR policy. This is called Automated Steering.
Topology
BGP On-Demand Next Hop (ODN) and Auto Steering
Configuring
Configuring and bring up BGP On-demand next hop and auto steering with Segment-routing on PE1 (Ingress) and PE2 (Egress) nodes.
Note: Segment routing ODN template must be configured before receiving FTN update in NSM.
Ingress PE1
Create VRF
P1#configure terminal
Enter configure mode
P1(config)#interface ce51
Enter interface mode
P1(config-if)# ipv6 address 5001::2/64
Configure the IPv6 address of the interface
P1(config-if)# ipv6 router isis 1
Make the interface part of the router ISIS 1 instance
P1(config)#interface ce50
Enter interface mode
P1(config-if)# ipv6 address 3001::1/64
Configure the IP address of the interface
P1(config-if)# ipv6 router isis 1
Make the interface part of the router ISIS 1 instance
P1(config-if)#exit
Exit interface mode
 
Access Interface Configuration
PE1(config)# interface eth1
Enter the interface mode for eth1
PE1(config-if)# ip vrf forwarding vrf1
Bind the VRF instance to the interface
PE1(config-if)# ip address 101.1.1.1/24
Configure IPv4 address
PE1(config-if)# label-switching
Commit interface configurations
PE1(config-if)# exit
Exit interface mode
Configuring Segment-Routing ODN Template
PE1#configure terminal
Enter configure mode
PE1(config)#segment-routing
Enter the Segment Routing mode
PE1(config-sr)#traffic-engineering
Enter traffic-engineering mode
PE1(config-sr-te)#on-demand-nexthop 1001
Configure SRODN template
PE1(config-sr-odn)#candidate-path 1
Enter candidate path mode
PE1(config-sr-odn-cp)#dynamic-path ospf 100
Configure dynamic path OSPF
PE1(config-sr-odn-cp)#exit-odn-cp
Exit candidate-path mode
PE1(config-sr-odn)#exit-sr-odn
Exit ODN template mode
PE1(config-sr-te)#exit-te
Exit from traffic-engineering mode
PE1(config-sr)#commit
Commit SR configuration
PE1(config-sr)#exit
Exit from Segment-routing mode
Configuring BGP and Redistribute Connected VRF
PE1(config)#router bgp 100
Enter Router BGP mode
PE1(config-router)#bgp router-id 1.1.1.1
Configure BGP router-id
PE1(config-router)#neighbor 4.4.4.4 remote-as 100
Configuring PE2 as iBGP neighbor using it's loopback ip
PE1(config-router)# neighbor 4.4.4.4 update-source lo
Source of routing updates as loopback
PE1(config-router)#address-family vpnv4 unicast
Enter VPNv4 Address family mod
PE1(config-router-af)# neighbor 4.4.4.4 activate
Enabling VPNv4 Address family for neighbor
PE1(config-router-af)# exit-address-family
Exit Address-family mode
PE1(config-router)#address-family ipv4 vrf vrf1
Configure VRF address family
PE1(config-router-af)# redistribute connected
Redistribute connected router
PE1(config-router-af)# exit-address-family
Exit VRF address family
PE1(config-router)# commit
Commit BGP configurations
PE1(config-router)# exit
Exit form Router BGP mode and return to config mode
 
Egress PE2
Configure VRF
P2#configure terminal
Enter configure mode
PE2(config)#ip vrf vrf1
Create new vrf name vrf1
PE2(config-vrf)#rd 100:100
Assign the route distinguisher (RD) value as 100:100
PE2(config-vrf)#route-target both 101:101
Import routes between route target (RT) ext-communities 101 and 101
PE2(config-vrf)#commit
Commit vrf configuration
PE2(config)#exit
Exit form vrf mode
Access Interface Configuration
PE2(config)# interface eth1
Enter the interface mode for eth1
PE2(config-if)# ip vrf forwarding vrf1
Bind the VRF instance to the interface
PE2(config-if)# ip address 101.1.1.1/24
Configure IPv4 address
PE2(config-if)# label-switching
Commit interface configurations
PE2(config-if)# exit
Exit interface mode
Configuring Set Extcommunity Color Under Route-Map
PE2#configure terminal
Enter configure mode
PE2(config)#route-map pfp1 permit 10
Create route-map
PE2(config-route-map)# set extcommunity color 1001
Configure set extcommunity color to route-map
PE2(config-route-map)# commit
Commit the route-map configurations
PE2(config-route-map)# exit
Exit from route-map and return to configuration mode
Configuring BGP and Redistribute Connected VRF
PE2(config)#router bgp 100
Enter Router BGP mode
PE2(config-router)#bgp router-id 4.4.4.4
Configure BGP router-id
PE2(config-router)#neighbor 1.1.1.1 remote-as 100
Configuring PE2 as iBGP neighbor using it's loopback ip
PE2(config-router)# neighbor 1.1..1.1 update-source lo
Source of routing updates as loopback
PE2(config-router)#address-family vpnv4 unicast
Enter VPNv4 Address family mod
PE2(config-router-af)# neighbor 1.1.1.1 activate
Enabling VPNv4 Address family for neighbor
PE2(config-router-af)# exit-address-family
Exit Address-family mode
PE2(config-router)#address-family ipv4 vrf vrf1
Configure VRF address family
PE2(config-router-af)# redistribute connected route-map pfp1
Redistribute connected router
PE2(config-router-af)# exit-address-family
Exit VRF address family
PE2(config-router)# commit
Commit BGP configurations
PE2(config-router)# exit
Exit form Router BGP mode and return to config mode
 
Validation 1
PE1#show segment-routing policy
Policy-Name Color End-point State Forwarding-Info
policy_odn_1_1001_1.1.1.1 1001 1.1.1.1 UP 18001/po36
PE1#show segment-routing policy detail
Policy-Name: policy_odn_1_1001_1.1.1.1 Color 1001 End-point 1.1.1.1 Tunnel-ID: 1
Admin-Status: UP Oper-Status: UP for 00:01:53
State Transition Count: 1
CSPF Retry Limit: 100 CSPF Retry Interval: 10
ODN-Policy: True
Binding SID :
BSID: 0
Alloc mode: Dynamic
Oper State: Programmed
 
CP ID: 1, Active
Preference: 100 Path Type: Dynamic(ospf) CP Origin: Local
CP state: Valid
Segment List:
Total no. of segments: 1
Segment0[LABEL]: Label :18001
Out-if: po36 Out-label-stack: 18001
Attributes:
Configured:
Affinity:
Metric-type: TE
IP Constraints:
PE1#show mpls vrf-forwarding-table
Codes: > - installed FTN, * - selected FTN, p - stale FTN, ! - using backup, B - BGP FTN
(m) - Service mapped over multipath transport
(e) - Service mapped over LDP ECMP
Code FEC FTN-ID Nhlfe-ID Pri LSP-Type Out-Label Out-Intf Nexthop
B> 101.1.1.0/24 1 111 Yes LSP_DEFAULT 29504 - 1.1.1.1
PE1#show mpls vrf-table
Output for IPv4 VRF table with id: 2
Primary FTN entry with FEC: 101.1.1.0/24, id: 1, row status: Active, Tunnel-Policy: N/A
Owner: BGP, distance: 0, Action-type: Redirect to Tunnel, Exp-bits: 0x0, Incoming DSCP: none
Transport Tunnel id: 1, Protected LSP id: 0, QoS Resource id: 0, Description: N/A, BGP Color: 1001, Color: 1001
Cross connect ix: 42, in intf: - in label: 0 out-segment ix: 111
Owner: BGP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 111, owner: BGP, Stale: NO, BGP out intf: po36, transport out intf: po36, out label: 29504
Nexthop addr: 1.1.1.1 cross connect ix: 42, op code: Push and Lookup
PE1#show ip bgp vpnv4 all summary
BGP router identifier 65.1.1.1, local AS number 100
BGP table version is 2
1 BGP AS-PATH entries
0 BGP community entries
 
Neighbor V AS MsgRcv MsgSen TblVer InQ OutQ Up/Down State/PfxRcd
1.1.1.1 4 100 321 318 2 0 0 00:02:20 1
Total number of neighbors 1
Total number of Established sessions 1
PE1#show ip bgp vpnv4 all
Status codes: s suppressed, d damped, h history, a add-path, * valid, > best, i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 101:101 (Default for VRF vrf1)
*>i 101.1.1.0/24 1.1.1.1 0 100 0 ?
*> l 201.1.1.0 0.0.0.0 0 100 32768 ?
Announced routes count = 1
Accepted routes count = 1
Route Distinguisher: 101:101
*>i 101.1.1.0/24 1.1.1.1 0 100 0 ?
Announced routes count = 0
Accepted routes count = 1
PE1#
Validation 2
PE2#show mpls vrf-forwarding-table
Codes: > - installed FTN, * - selected FTN, p - stale FTN, ! - using backup, B - BGP FTN
(m) - Service mapped over multipath transport
(e) - Service mapped over LDP ECMP
Code FEC FTN-ID Nhlfe-ID Pri LSP-Type Out-Label Out-Intf Nexthop
B> 201.1.1.0/24 1 217 Yes LSP_DEFAULT 29440 - 6.6.6.6
PE2#show mpls vrf-table
Output for IPv4 VRF table with id: 2
Primary FTN entry with FEC: 201.1.1.0/24, id: 1, row status: Active, Tunnel-Policy: N/A
Owner: BGP, distance: 0, Action-type: Redirect to Tunnel, Exp-bits: 0x0, Incoming DSCP: none
Transport Tunnel id: 0, Protected LSP id: 0, QoS Resource id: 0, Description: N/A, BGP Color: 0, Color: 0
Cross connect ix: 51, in intf: - in label: 0 out-segment ix: 217
Owner: BGP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 217, owner: BGP, Stale: NO, BGP out intf: po12, transport out intf: po12, out label: 29440
Nexthop addr: 6.6.6.6 cross connect ix: 51, op code: Push and Lookup
PE2#show ip bgp vpnv4 all
Status codes: s suppressed, d damped, h history, a add-path, * valid, > best, i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 101:101 (Default for VRF vrf1)
*> l 101.1.1.0/24 0.0.0.0 0 100 32768 ?
*>i 201.1.1.0 6.6.6.6 0 100 0 ?
Announced routes count = 1
Accepted routes count = 1
Route Distinguisher: 101:101
*>i 201.1.1.0 6.6.6.6 0 100 0 ?
Announced routes count = 0
Accepted routes count = 1
PE2#show ip bgp vpnv4 all summary
BGP router identifier 1.1.1.1, local AS number 100
BGP table version is 4
1 BGP AS-PATH entries
0 BGP community entries
Neighbor V AS MsgRcv MsgSen TblVer InQ OutQ Up/Down State/PfxRcd
6.6.6.6 4 100 313 312 4 0 0 00:05:04 1
Total number of neighbors 1
Total number of Established sessions 1
PE2#