BGP peering segments/SIDs are part of the Segment Routing Centralized BGP Egress Peer Engineering solution (BGP-EPE), as described
in IETF RFC 9087. A BGP-EPE-enabled border router allocates and programs BGP peering SIDs (EPE labels) to steer traffic over a specific external
interface/BGP neighbor to reach a particular destination.
This feature provides an alternate BGP-EPE solution leveraging BGP peering segments. It allows a BGP-EPE-enabled border router
to use BGP Labeled Unicast (BGP-LU) to advertise the IP address of a neighbor with an LU label equal to the EPE label assigned
to that neighbor.
Use Case:
This section provides the router configuration and show command outputs of the scenario described in the overview above
Egress Border Router R3 Configuration
Configure the SRGB:
RP/0/RP0/CPU0:R3(config)# segment-routing
RP/0/RP0/CPU0:R3(config-sr)# global-block 16000 23999
RP/0/RP0/CPU0:R3(config-sr)# exit
Configure the Loopback address:
RP/0/RP0/CPU0:R3(config)# interface Loopback0
RP/0/RP0/CPU0:R3(config-if)# ipv4 address 1.1.1.3 255.255.255.255
RP/0/RP0/CPU0:R3(config-if)# exit
Configure MPLS Static on the egress interface connecting to the eBGP peer:
RP/0/RP0/CPU0:R3(config)# mpls static
RP/0/RP0/CPU0:R3(config-mpls-static)# interface HundredGigE0/0/0/0
RP/0/RP0/CPU0:R3(config-mpls-static)# exit
Enable SR MPLS under IS-IS:
RP/0/RP0/CPU0:R3(config)# router isis 1
RP/0/RP0/CPU0:R3(config-isis)# address-family ipv4 unicast
RP/0/RP0/CPU0:R3(config-isis-af)# segment-routing mpls
RP/0/RP0/CPU0:R3(config-isis-af)# metric-style wide
RP/0/RP0/CPU0:R3(config-isis-af)# exit
Configure prefix segment identifier (SID) value on the IS-IS enabled Loopback interface:
RP/0/RP0/CPU0:R3(config-isis)# interface Loopback0
RP/0/RP0/CPU0:R3(config-isis-if)# address-family ipv4 unicast
RP/0/RP0/CPU0:R3(config-isis-if-af)# prefix-sid absolute 16003
RP/0/RP0/CPU0:R3(config-isis-if-af)# exit
RP/0/RP0/CPU0:R3(config-isis-if)# exit
Enable IS-IS in core-facing interface:
RP/0/RP0/CPU0:R3(config-isis)# interface HundredGigE0/0/0/0
RP/0/RP0/CPU0:R3(config-isis-if)# point-to-point
RP/0/RP0/CPU0:R3(config-isis-if)# address-family ipv4 unicast
RP/0/RP0/CPU0:R3(config-isis-if-af)# exit
RP/0/RP0/CPU0:R3(config-isis-if)# exit
RP/0/RP0/CPU0:R3(config-isis)# exit
RP/0/RP0/CPU0:R3(config)#
Configure a route policy to advertise all BGP paths:
RP/0/RP0/CPU0:R3(config)# route-policy rpl_advertise_all_paths
RP/0/RP0/CPU0:R3(config-rpl)# set path-selection all advertise
RP/0/RP0/CPU0:R3(config-rpl)# set path-selection backup 1 install multipath-protect
RP/0/RP0/CPU0:R3(config-rpl)# end-policy
Enable advertisement of EPE-enabled BGP neighbors via BGP-LU:
RP/0/RP0/CPU0:R3(config)# router bgp 100
RP/0/RP0/CPU0:R3(config-bgp)# bgp router-id 1.1.1.3
RP/0/RP0/CPU0:R3(config-bgp)# ibgp policy out enforce-modifications
RP/0/RP0/CPU0:R3(config-bgp)# address-family ipv4 unicast
RP/0/RP0/CPU0:R3(config-bgp-af)# advertise epe-bgp labeled-unicast
RP/0/RP0/CPU0:R3(config-bgp-af)# additional-paths receive
RP/0/RP0/CPU0:R3(config-bgp-af)# additional-paths send
RP/0/RP0/CPU0:R3(config-bgp-af)# additional-paths selection route-policy rpl_advertise_all_paths
RP/0/RP0/CPU0:R3(config-bgp-af)# allocate-label all
RP/0/RP0/CPU0:R3(config-bgp-af)# exit
Enable IPv4 unicast and IPv4 labeled unicast address families on iBGP peer:
RP/0/RP0/CPU0:R3(config-bgp)# neighbor 1.1.1.1
RP/0/RP0/CPU0:R3(config-bgp-nbr)# remote-as 100
RP/0/RP0/CPU0:R3(config-bgp-nbr)# update-source Loopback0
RP/0/RP0/CPU0:R3(config-bgp-nbr)# address-family ipv4 unicast
RP/0/RP0/CPU0:R3(config-bgp-nbr-af)# advertise local-labeled-route disable
RP/0/RP0/CPU0:R3(config-bgp-nbr-af)# exit
RP/0/RP0/CPU0:R3(config-bgp-nbr)# address-family ipv4 labeled-unicast
RP/0/RP0/CPU0:R3(config-bgp-nbr-af)# exit
RP/0/RP0/CPU0:R3(config-bgp-nbr)# exit
Enable EPE for the eBGP peers:
RP/0/RP0/CPU0:R3(config-bgp)# neighbor 10.3.40.40
RP/0/RP0/CPU0:R3(config-bgp-nbr)# remote-as 40
RP/0/RP0/CPU0:R3(config-bgp-nbr)# egress-engineering
RP/0/RP0/CPU0:R3(config-bgp-nbr)# address-family ipv4 unicast
RP/0/RP0/CPU0:R3(config-bgp-nbr-af)# route-policy pass_all in
RP/0/RP0/CPU0:R3(config-bgp-nbr-af)# route-policy pass_all out
RP/0/RP0/CPU0:R3(config-bgp-nbr-af)# exit
RP/0/RP0/CPU0:R3(config-bgp-nbr)# exit
RP/0/RP0/CPU0:R3(config-bgp)# neighbor 10.3.50.50
RP/0/RP0/CPU0:R3(config-bgp-nbr)# remote-as 50
RP/0/RP0/CPU0:R3(config-bgp-nbr)# egress-engineering
RP/0/RP0/CPU0:R3(config-bgp-nbr)# address-family ipv4 unicast
RP/0/RP0/CPU0:R3(config-bgp-nbr-af)# route-policy pass_all in
RP/0/RP0/CPU0:R3(config-bgp-nbr-af)# route-policy pass_all out
RP/0/RP0/CPU0:R3(config-bgp-nbr-af)# exit
RP/0/RP0/CPU0:R3(config-bgp-nbr)# exit
RP/0/RP0/CPU0:R3(config-bgp)# exit
RP/0/RP0/CPU0:R3(config)# commit
Egress Border Router R3 Running Configuration
segment-routing
global-block 16000 23999
!
interface Loopback0
ipv4 address 1.1.1.3 255.255.255.255
mpls static
interface GigabitEthernet0/0/0/0
!
router isis 1
is-type level-2-only
net 47.0000.0000.0003.00
address-family ipv4 unicast
metric-style wide
segment-routing mpls
!
interface Loopback0
address-family ipv4 unicast
prefix-sid absolute 16003
!
!
interface HundredGigE0/0/0/0
point-to-point
address-family ipv4 unicast
!
!
!
route-policy rpl_advertise_all_paths
set path-selection all advertise
set path-selection backup 1 install multipath-protect
end-policy
!
router bgp 100
bgp router-id 1.1.1.3
ibgp policy out enforce-modifications
address-family ipv4 unicast
advertise epe-bgp labeled-unicast
additional-paths receive
additional-paths send
additional-paths selection route-policy rpl_advertise_all_paths
allocate-label all
!
neighbor 1.1.1.1
remote-as 100
update-source Loopback0
address-family ipv4 unicast
advertise local-labeled-route disable
!
address-family ipv4 labeled-unicast
!
!
neighbor 10.3.40.40
remote-as 40
egress-engineering
address-family ipv4 unicast
route-policy pass_all in
route-policy pass_all out
!
!
neighbor 10.3.50.50
remote-as 50
egress-engineering
address-family ipv4 unicast
route-policy pass_all in
route-policy pass_all out
!
!
!
Egress Border Router R4 Configuration
The configuration of egress border router R4 follows the configuration of R3:
RP/0/RP0/CPU0:R4(config)# segment-routing
RP/0/RP0/CPU0:R4(config-sr)# global-block 16000 23999
RP/0/RP0/CPU0:R4(config-sr)# exit
RP/0/RP0/CPU0:R4(config)# interface Loopback0
RP/0/RP0/CPU0:R4(config-if)# ipv4 address 1.1.1.4 255.255.255.255
RP/0/RP0/CPU0:R4(config-if)# exit
RP/0/RP0/CPU0:R4(config)# mpls static
RP/0/RP0/CPU0:R4(config-mpls-static)# interface HundredGigE0/0/0/0
RP/0/RP0/CPU0:R4(config-mpls-static)# exit
RP/0/RP0/CPU0:R4(config)# router isis 1
RP/0/RP0/CPU0:R4(config-isis)# address-family ipv4 unicast
RP/0/RP0/CPU0:R4(config-isis-af)# segment-routing mpls
RP/0/RP0/CPU0:R4(config-isis-af)# metric-style wide
RP/0/RP0/CPU0:R4(config-isis-af)# exit
RP/0/RP0/CPU0:R4(config-isis)# interface Loopback0
RP/0/RP0/CPU0:R4(config-isis-if)# address-family ipv4 unicast
RP/0/RP0/CPU0:R4(config-isis-if-af)# prefix-sid absolute 16004
RP/0/RP0/CPU0:R4(config-isis-if-af)# exit
RP/0/RP0/CPU0:R4(config-isis-if)# exit
RP/0/RP0/CPU0:R4(config-isis)# interface HundredGigE0/0/0/0
RP/0/RP0/CPU0:R4(config-isis-if)# point-to-point
RP/0/RP0/CPU0:R4(config-isis-if)# address-family ipv4 unicast
RP/0/RP0/CPU0:R4(config-isis-if-af)# exit
RP/0/RP0/CPU0:R4(config-isis-if)# exit
RP/0/RP0/CPU0:R4(config-isis)# exit
RP/0/RP0/CPU0:R4(config)# route-policy rpl_advertise_all_paths
RP/0/RP0/CPU0:R4(config-rpl)# set path-selection all advertise
RP/0/RP0/CPU0:R4(config-rpl)# set path-selection backup 1 install multipath-protect
RP/0/RP0/CPU0:R4(config-rpl)# end-policy
RP/0/RP0/CPU0:R4(config)# router bgp 100
RP/0/RP0/CPU0:R4(config-bgp)# bgp router-id 1.1.1.4
RP/0/RP0/CPU0:R4(config-bgp)# ibgp policy out enforce-modifications
RP/0/RP0/CPU0:R4(config-bgp)# address-family ipv4 unicast
RP/0/RP0/CPU0:R4(config-bgp-af)# advertise epe-bgp labeled-unicast
RP/0/RP0/CPU0:R4(config-bgp-af)# additional-paths receive
RP/0/RP0/CPU0:R4(config-bgp-af)# additional-paths send
RP/0/RP0/CPU0:R4(config-bgp-af)# additional-paths selection route-policy rpl_advertise_all_paths
RP/0/RP0/CPU0:R4(config-bgp-af)# allocate-label all
RP/0/RP0/CPU0:R4(config-bgp-af)# exit
RP/0/RP0/CPU0:R4(config-bgp)# neighbor 1.1.1.1
RP/0/RP0/CPU0:R4(config-bgp-nbr)# remote-as 100
RP/0/RP0/CPU0:R4(config-bgp-nbr)# update-source Loopback0
RP/0/RP0/CPU0:R4(config-bgp-nbr)# address-family ipv4 unicast
RP/0/RP0/CPU0:R4(config-bgp-nbr-af)# advertise local-labeled-route disable
RP/0/RP0/CPU0:R4(config-bgp-nbr-af)# exit
RP/0/RP0/CPU0:R4(config-bgp-nbr)# address-family ipv4 labeled-unicast
RP/0/RP0/CPU0:R4(config-bgp-nbr-af)# exit
RP/0/RP0/CPU0:R4(config-bgp-nbr)# exit
RP/0/RP0/CPU0:R4(config-bgp)# neighbor 10.4.40.40
RP/0/RP0/CPU0:R4(config-bgp-nbr)# remote-as 40
RP/0/RP0/CPU0:R4(config-bgp-nbr)# egress-engineering
RP/0/RP0/CPU0:R4(config-bgp-nbr)# address-family ipv4 unicast
RP/0/RP0/CPU0:R4(config-bgp-nbr-af)# route-policy pass_all in
RP/0/RP0/CPU0:R4(config-bgp-nbr-af)# route-policy pass_all out
RP/0/RP0/CPU0:R4(config-bgp-nbr-af)# exit
RP/0/RP0/CPU0:R4(config-bgp-nbr)# exit
RP/0/RP0/CPU0:R4(config-bgp)# neighbor 10.4.50.50
RP/0/RP0/CPU0:R4(config-bgp-nbr)# remote-as 50
RP/0/RP0/CPU0:R4(config-bgp-nbr)# egress-engineering
RP/0/RP0/CPU0:R4(config-bgp-nbr)# address-family ipv4 unicast
RP/0/RP0/CPU0:R4(config-bgp-nbr-af)# route-policy pass_all in
RP/0/RP0/CPU0:R4(config-bgp-nbr-af)# route-policy pass_all out
RP/0/RP0/CPU0:R4(config-bgp-nbr-af)# exit
RP/0/RP0/CPU0:R4(config-bgp-nbr)# exit
RP/0/RP0/CPU0:R4(config-bgp)# exit
RP/0/RP0/CPU0:R4(config)# commit
Egress Border Router R4 Running Configuration
segment-routing
global-block 16000 23999
interface Loopback0
ipv4 address 1.1.1.4 255.255.255.255
mpls static
interface GigabitEthernet0/0/0/0
!
router isis 1
is-type level-2-only
net 47.0000.0000.0004.00
address-family ipv4 unicast
metric-style wide
segment-routing mpls
!
interface Loopback0
address-family ipv4 unicast
prefix-sid absolute 16004
!
!
interface HundredGigE0/0/0/0
point-to-point
address-family ipv4 unicast
!
!
route-policy rpl_advertise_all_paths
set path-selection all advertise
set path-selection backup 1 install multipath-protect
end-policy
!
router bgp 100
bgp router-id 1.1.1.4
ibgp policy out enforce-modifications
address-family ipv4 unicast
advertise epe-bgp labeled-unicast
additional-paths receive
additional-paths send
additional-paths selection route-policy rpl_advertise_all_paths
allocate-label all
!
neighbor 1.1.1.1
remote-as 100
update-source Loopback0
address-family ipv4 unicast
advertise local-labeled-route disable
!
address-family ipv4 labeled-unicast
!
!
neighbor 10.4.40.40
remote-as 40
egress-engineering
address-family ipv4 unicast
route-policy pass_all in
route-policy pass_all out
!
!
neighbor 10.4.50.50
remote-as 50
egress-engineering
address-family ipv4 unicast
route-policy pass_all in
route-policy pass_all out
!
!
!
Ingress Border Router R1 Configuration
Configure the SRGB:
RP/0/RP0/CPU0:R1(config)# segment-routing
RP/0/RP0/CPU0:R1(config-sr)# global-block 16000 23999
RP/0/RP0/CPU0:R1(config-sr)# exit
RP/0/RP0/CPU0:R1(config)#
Configure the Loopback addresses. Lo0 is advertised in IS-IS and used a BGP next-hop. Lo100 is advertised in BGP as an overlay
prefix:
RP/0/RP0/CPU0:R1(config)# interface Loopback0
RP/0/RP0/CPU0:R1(config-if)# ipv4 address 1.1.1.1 255.255.255.255
RP/0/RP0/CPU0:R1(config-if)# exit
RP/0/RP0/CPU0:R1(config)# interface Loopback100
RP/0/RP0/CPU0:R1(config-if)# ipv4 address 151.1.1.1 255.255.255.255
RP/0/RP0/CPU0:R1(config-if)# exit
Enable SR MPLS under IS-IS:
RP/0/RP0/CPU0:R1(config)# router isis 1
RP/0/RP0/CPU0:R1(config-isis)# address-family ipv4 unicast
RP/0/RP0/CPU0:R1(config-isis-af)# metric-style wide
RP/0/RP0/CPU0:R1(config-isis-af)# segment-routing mpls
RP/0/RP0/CPU0:R1(config-isis-af)# exit
Configure prefix segment identifier (SID) value on the IS-IS enabled Loopback interface:
RP/0/RP0/CPU0:R1(config-isis)# interface Loopback0 address-family ipv4 unicast
RP/0/RP0/CPU0:R1(config-isis-if-af)# prefix-sid absolute 16001
RP/0/RP0/CPU0:R1(config-isis-if-af)# exit
RP/0/RP0/CPU0:R1(config-isis-if)# exit
Enable IS-IS in core-facing interface:
RP/0/RP0/CPU0:R1(config-isis)# interface HundredGigE0/0/0/0
RP/0/RP0/CPU0:R1(config-isis-if)# point-to-point
RP/0/RP0/CPU0:R1(config-isis-if)# address-family ipv4 unicast
RP/0/RP0/CPU0:R1(config-isis-if-af)# exit
RP/0/RP0/CPU0:R1(config-isis-if)# exit
RP/0/RP0/CPU0:R1(config-isis)# exit
Configure an RPL policy to prevent allocation of local label to overlay prefixes; such as Lo100 151.1.1.1/32:
RP/0/RP0/CPU0:R1(config)# prefix-set unlabelled_prefixes
RP/0/RP0/CPU0:R1(config-pfx)# 151.1.1.1/32
RP/0/RP0/CPU0:R1(config-pfx)# end-set
RP/0/RP0/CPU0:R1(config)# route-policy rpl_allocate_label
RP/0/RP0/CPU0:R1(config-rpl)# if destination in unlabelled_prefixes then
RP/0/RP0/CPU0:R1(config-rpl-if)# drop
RP/0/RP0/CPU0:R1(config-rpl-if)# else
RP/0/RP0/CPU0:R1(config-rpl-else)# pass
RP/0/RP0/CPU0:R1(config-rpl-else)# endif
RP/0/RP0/CPU0:R1(config-rpl)# end-policy
RP/0/RP0/CPU0:R1(config)#
Configure an RPL policy to influence the best-path selection by assigning a higher BGP local preference to the desired path.
In this example, the desired egress exit path for prefix 161.1.1.0/28 is via R4 and then AS 50, and for prefix 161.1.1.1/32
is via R4 and then AS 40. Otherwise, the uninfluenced exit path for these prefixes is via R3:
RP/0/RP0/CPU0:R1(config)# route-policy rpl_epe
RP/0/RP0/CPU0:R1(config-rpl)# if destination in (161.1.1.0/28) and next-hop in (10.4.50.50) then
RP/0/RP0/CPU0:R1(config-rpl-if)# set local-preference 1000
RP/0/RP0/CPU0:R1(config-rpl-if)# elseif destination in (161.1.1.1/32) and next-hop in (10.4.40.40) then
RP/0/RP0/CPU0:R1(config-rpl-elseif)# set local-preference 1000
RP/0/RP0/CPU0:R1(config-rpl-elseif)# endif
RP/0/RP0/CPU0:R1(config-rpl)# pass
RP/0/RP0/CPU0:R1(config-rpl)# end-policy
RP/0/RP0/CPU0:R1(config)#
Configure an RPL policy to advertise all candidate paths:
RP/0/RP0/CPU0:R1(config)# route-policy rpl_advertise_all_paths
RP/0/RP0/CPU0:R1(config-rpl)# set path-selection all advertise
RP/0/RP0/CPU0:R1(config-rpl)# end-policy
RP/0/RP0/CPU0:R1(config)# router bgp 100
RP/0/RP0/CPU0:R1(config-bgp)# bgp router-id 1.1.1.1
RP/0/RP0/CPU0:R1(config-bgp)# address-family ipv4 unicast
RP/0/RP0/CPU0:R1(config-bgp-af)# additional-paths receive
RP/0/RP0/CPU0:R1(config-bgp-af)# additional-paths send
RP/0/RP0/CPU0:R1(config-bgp-af)# additional-paths selection route-policy rpl_advertise_all_paths
RP/0/RP0/CPU0:R1(config-bgp-af)# exit
RP/0/RP0/CPU0:R1(config-bgp)# neighbor 1.1.1.3
RP/0/RP0/CPU0:R1(config-bgp-nbr)# remote-as 100
RP/0/RP0/CPU0:R1(config-bgp-nbr)# update-source Loopback0
RP/0/RP0/CPU0:R1(config-bgp-nbr)# address-family ipv4 unicast
RP/0/RP0/CPU0:R1(config-bgp-nbr-af)# advertise local-labeled-route disable
RP/0/RP0/CPU0:R1(config-bgp-nbr-af)# exit
RP/0/RP0/CPU0:R1(config-bgp-nbr)# address-family ipv4 labeled-unicast
RP/0/RP0/CPU0:R1(config-bgp-nbr-af)# exit
RP/0/RP0/CPU0:R1(config-bgp-nbr)# exit
RP/0/RP0/CPU0:R1(config-bgp)# neighbor 1.1.1.4
RP/0/RP0/CPU0:R1(config-bgp-nbr)# remote-as 100
RP/0/RP0/CPU0:R1(config-bgp-nbr)# update-source Loopback0
RP/0/RP0/CPU0:R1(config-bgp-nbr)# address-family ipv4 unicast
RP/0/RP0/CPU0:R1(config-bgp-nbr-af)# advertise local-labeled-route disable
RP/0/RP0/CPU0:R1(config-bgp-nbr-af)# exit
RP/0/RP0/CPU0:R1(config-bgp-nbr)# address-family ipv4 labeled-unicast
RP/0/RP0/CPU0:R1(config-bgp-nbr-af)# exit
RP/0/RP0/CPU0:R1(config-bgp-nbr)# exit
RP/0/RP0/CPU0:R1(config-bgp)# exit
RP/0/RP0/CPU0:R1(config)# commit
Ingress Border Router R1 Running Configuration
segment-routing
global-block 16000 23999
interface Loopback0
ipv4 address 1.1.1.1 255.255.255.255
!
interface Loopback100
ipv4 address 151.1.1.1 255.255.255.255
router isis 1
is-type level-2-only
net 47.0000.0000.0001.00
address-family ipv4 unicast
metric-style wide
segment-routing mpls
!
interface Loopback0
address-family ipv4 unicast
prefix-sid absolute 16001
!
!
interface HundredGigE0/0/0/0
point-to-point
address-family ipv4 unicast
!
!
!
prefix-set unlabelled_prefixes
151.1.1.1/32
end-set
!
route-policy rpl_allocate_label
if destination in unlabelled_prefixes then
drop
else
pass
endif
end-policy
!
route-policy rpl_epe
if destination in (161.1.1.0/28) and next-hop in (10.4.50.50) then
set local-preference 1000
elseif destination in (161.1.1.1/32) and next-hop in (10.4.40.40) then
set local-preference 1000
endif
pass
end-policy
!
route-policy rpl_advertise_all_paths
set path-selection all advertise
end-policy
!
router bgp 100
bgp router-id 1.1.1.1
ibgp policy out enforce-modifications
address-family ipv4 unicast
additional-paths receive
additional-paths send
additional-paths selection route-policy rpl_advertise_all_paths
network 151.1.1.1/32
allocate-label route-policy rpl_allocate_label
!
neighbor 1.1.1.3
remote-as 100
update-source Loopback0
address-family ipv4 unicast
advertise local-labeled-route disable
!
address-family ipv4 labeled-unicast
!
!
neighbor 1.1.1.4
remote-as 100
update-source Loopback0
address-family ipv4 unicast
advertise local-labeled-route disable
!
address-family ipv4 labeled-unicast
!
!
!
The following sections depict the show command outputs associated with the Egress Border routers (R3, R4) and Ingress PE router (R1):
Egress Border Router R3 Output
The following commands show the BGP EPE labels allocated for eBGP neighbors 10.3.40.40 and 10.3.50.50 alongside their corresponding
entries in the FIB:
RP/0/RP0/CPU0:R3# show bgp egress-engineering
Egress Engineering Object: 10.3.40.40/32 (0x7fc163c62e80)
EPE Type: Peer
Nexthop: 10.3.40.40
Version: 2, rn_version: 2
Flags: 0x00000006
Local ASN: 100
Remote ASN: 40
Local RID: 1.1.1.3
Remote RID: 1.1.1.40
Local Address: 10.3.40.3
First Hop: 10.3.40.40
NHID: 0
IFH: 0x198
Label: 24004, Refcount: 4
rpc_set: 0x7fc14410ff18, ID: 1
Egress Engineering Object: 10.3.50.50/32 (0x7fc163c62d88)
EPE Type: Peer
Nexthop: 10.3.50.50
Version: 3, rn_version: 3
Flags: 0x00000006
Local ASN: 100
Remote ASN: 50
Local RID: 1.1.1.3
Remote RID: 1.1.1.50
Local Address: 10.3.50.3
First Hop: 10.3.50.50
NHID: 0
IFH: 0x1a0
Label: 24005, Refcount: 4
rpc_set: 0x7fc144110088, ID: 2
RP/0/RP0/CPU0:R3# show mpls forwarding labels 24004
Thu Feb 3 22:11:18.459 UTC
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
24004 Pop No ID Hu0/0/0/1 10.3.40.40 0
RP/0/RP0/CPU0:R3# show mpls forwarding labels 24005
Thu Feb 3 22:11:35.399 UTC
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
24005 Pop No ID Hu0/0/0/2 10.3.50.50 0
The following output displays the BGP-LU prefixes used to advertise the EPE-enabled eBGP neighbors 10.3.40.40 and 10.3.50.50:
RP/0/RP0/CPU0:R3# show bgp ipv4 labeled-unicast
Thu Feb 3 22:11:57.865 UTC
BGP router identifier 1.1.1.3, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 4
BGP main routing table version 4
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.3.40.40/32 0.0.0.0 0 i
*> 10.3.50.50/32 0.0.0.0 0 i
Processed 2 prefixes, 2 paths
The details of the BGP-LU prefixes can be found below. Note that the EPE label is advertised in BGP-LU.
RP/0/RP0/CPU0:R3# show bgp ipv4 labeled-unicast 10.3.40.40/32
Thu Feb 3 22:12:18.210 UTC
BGP routing table entry for 10.3.40.40/32
Versions:
Process bRIB/RIB SendTblVer
Speaker 3 3
Local Label: 24004
Last Modified: Feb 3 19:13:07.039 for 02:59:11
Paths: (1 available, best #1)
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.4
Path #1: Received by speaker 0
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.4
Local
0.0.0.0 from 0.0.0.0 (1.1.1.3)
Origin IGP, localpref 100, valid, extranet, best, group-best
Received Path ID 0, Local Path ID 1, version 3
Origin-AS validity: not-found
RP/0/RP0/CPU0:R3# show bgp ipv4 labeled-unicast 10.3.50.50/32
Thu Feb 3 22:12:27.282 UTC
BGP routing table entry for 10.3.50.50/32
Versions:
Process bRIB/RIB SendTblVer
Speaker 4 4
Local Label: 24005
Last Modified: Feb 3 19:13:07.039 for 02:59:20
Paths: (1 available, best #1)
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.4
Path #1: Received by speaker 0
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.4
Local
0.0.0.0 from 0.0.0.0 (1.1.1.3)
Origin IGP, localpref 100, valid, extranet, best, group-best
Received Path ID 0, Local Path ID 1, version 4
Origin-AS validity: not-found
The output below depicts the BGP route and CEF details for an overlay prefix (161.1.1.0/28) learned via the EPE-enabled BGP
neighbors:
RP/0/RP0/CPU0:R3# show bgp ipv4 unicast
Thu Feb 3 22:58:01.736 UTC
BGP router identifier 1.1.1.3, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 14
BGP main routing table version 14
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.3.40.40/32 0.0.0.0 0 i
*> 10.3.50.50/32 0.0.0.0 0 i
*>i151.1.1.1/32 1.1.1.1 0 100 0 i
*> 161.1.1.0/28 10.3.40.40 0 40 60 i
* 10.3.50.50 0 50 60 i
Processed 4 prefixes, 5 paths
RP/0/RP0/CPU0:R3# show bgp ipv4 unicast 161.1.1.0/28
Thu Feb 3 22:31:52.893 UTC
BGP routing table entry for 161.1.1.0/28
Versions:
Process bRIB/RIB SendTblVer
Speaker 6 6
Last Modified: Feb 3 22:28:56.039 for 00:02:56
Paths: (2 available, best #1)
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.4
Advertised IPv4 Unicast paths to peers (in unique update groups):
1.1.1.1
Path #1: Received by speaker 0
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.4
Advertised IPv4 Unicast paths to peers (in unique update groups):
1.1.1.1
40 60
10.3.40.40 from 10.3.40.40 (1.1.1.40)
Origin IGP, localpref 100, valid, external, best, group-best
Received Path ID 0, Local Path ID 1, version 5
Origin-AS validity: (disabled)
Path #2: Received by speaker 0
Advertised IPv4 Unicast paths to peers (in unique update groups):
1.1.1.1
50 60
10.3.50.50 from 10.3.50.50 (1.1.1.50)
Origin IGP, localpref 100, valid, external, group-best, backup, add-path
Received Path ID 0, Local Path ID 2, version 6
Origin-AS validity: (disabled)
RP/0/RP0/CPU0:R3# show cef ipv4 161.1.1.0/28
Thu Feb 10 20:17:29.240 UTC
161.1.1.0/28, version 24, internal 0x5000001 0x40 (ptr 0x90684920) [1], 0x0 (0x0), 0x0 (0x0)
Updated Feb 10 17:37:16.609
Prefix Len 28, traffic index 0, precedence n/a, priority 4
via 10.3.40.40/32, 5 dependencies, recursive, bgp-ext [flags 0x6020]
path-idx 0 NHID 0x0 [0x90684c08 0x0], Internal 0x90211730
next hop 10.3.40.40/32 via 10.3.40.40/32
via 10.3.50.50/32, 4 dependencies, recursive, bgp-ext, backup [flags 0x6120]
path-idx 1 NHID 0x0 [0x90685040 0x0]
next hop 10.3.50.50/32 via 10.3.50.50/32
Egress Border Router R4 Output
The following outputs correspond to egress border router R4. They follow the same sequence shown for router R3.
RP/0/RP0/CPU0:R4# show bgp egress-engineering
Egress Engineering Object: 10.4.40.40/32 (0x7f84d2a4ae80)
EPE Type: Peer
Nexthop: 10.4.40.40
Version: 2, rn_version: 2
Flags: 0x00000006
Local ASN: 100
Remote ASN: 40
Local RID: 1.1.1.4
Remote RID: 1.1.1.40
Local Address: 10.4.40.4
First Hop: 10.4.40.40
NHID: 0
IFH: 0x198
Label: 24004, Refcount: 4
rpc_set: 0x7f84b010fdb8, ID: 1
Egress Engineering Object: 10.4.50.50/32 (0x7f84d2a4ad88)
EPE Type: Peer
Nexthop: 10.4.50.50
Version: 3, rn_version: 3
Flags: 0x00000006
Local ASN: 100
Remote ASN: 50
Local RID: 1.1.1.4
Remote RID: 1.1.1.50
Local Address: 10.4.50.4
First Hop: 10.4.50.50
NHID: 0
IFH: 0x1a0
Label: 24005, Refcount: 4
rpc_set: 0x7f84b010ff28, ID: 2
RP/0/RP0/CPU0:R4# show mpls forwarding labels 24004
Thu Feb 3 22:34:55.059 UTC
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
24004 Pop No ID Hu0/0/0/1 10.4.40.40 0
RP/0/RP0/CPU0:R4# show mpls forwarding labels 24005
Thu Feb 3 22:35:07.252 UTC
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
24005 Pop No ID Hu0/0/0/2 10.4.50.50 0
RP/0/RP0/CPU0:R4# show bgp ipv4 labeled-unicast
Thu Feb 3 22:59:37.978 UTC
BGP router identifier 1.1.1.4, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 14
BGP main routing table version 14
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.4.40.40/32 0.0.0.0 0 i
*> 10.4.50.50/32 0.0.0.0 0 i
Processed 2 prefixes, 2 paths
RP/0/RP0/CPU0:R4# show bgp ipv4 labeled-unicast 10.4.40.40/32
Thu Feb 3 22:35:41.275 UTC
BGP routing table entry for 10.4.40.40/32
Versions:
Process bRIB/RIB SendTblVer
Speaker 3 3
Local Label: 24004
Last Modified: Feb 3 19:13:08.143 for 03:22:33
Paths: (1 available, best #1)
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.4
Advertised IPv4 Labeled-unicast paths to peers (in unique update groups):
1.1.1.1
Path #1: Received by speaker 0
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.4
Advertised IPv4 Labeled-unicast paths to peers (in unique update groups):
1.1.1.1
Local
0.0.0.0 from 0.0.0.0 (1.1.1.4)
Origin IGP, localpref 100, valid, extranet, best, group-best
Received Path ID 0, Local Path ID 1, version 3
Origin-AS validity: not-found
RP/0/RP0/CPU0:R4# show bgp ipv4 labeled-unicast 10.4.50.50/32
Thu Feb 3 22:35:53.259 UTC
BGP routing table entry for 10.4.50.50/32
Versions:
Process bRIB/RIB SendTblVer
Speaker 4 4
Local Label: 24005
Last Modified: Feb 3 19:13:08.143 for 03:22:45
Paths: (1 available, best #1)
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.4
Advertised IPv4 Labeled-unicast paths to peers (in unique update groups):
1.1.1.1
Path #1: Received by speaker 0
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.4
Advertised IPv4 Labeled-unicast paths to peers (in unique update groups):
1.1.1.1
Local
0.0.0.0 from 0.0.0.0 (1.1.1.4)
Origin IGP, localpref 100, valid, extranet, best, group-best
Received Path ID 0, Local Path ID 1, version 4
Origin-AS validity: not-found
RP/0/RP0/CPU0:R4# show bgp ipv4 unicast
Thu Feb 3 23:00:32.470 UTC
BGP router identifier 1.1.1.4, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 14
BGP main routing table version 14
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.4.40.40/32 0.0.0.0 0 i
*> 10.4.50.50/32 0.0.0.0 0 i
*>i151.1.1.1/32 1.1.1.1 0 100 0 i
*> 161.1.1.0/28 10.4.40.40 0 40 60 i
* 10.4.50.50 0 50 60 i
Processed 4 prefixes, 5 paths
RP/0/RP0/CPU0:R4# show bgp ipv4 unicast 161.1.1.0/28
Thu Feb 3 22:36:09.266 UTC
BGP routing table entry for 161.1.1.0/28
Versions:
Process bRIB/RIB SendTblVer
Speaker 6 6
Last Modified: Feb 3 22:28:56.143 for 00:07:13
Paths: (2 available, best #1)
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.4
Advertised IPv4 Unicast paths to peers (in unique update groups):
1.1.1.1
Path #1: Received by speaker 0
Advertised IPv4 Unicast paths to update-groups (with more than one peer):
0.4
Advertised IPv4 Unicast paths to peers (in unique update groups):
1.1.1.1
40 60
10.4.40.40 from 10.4.40.40 (1.1.1.40)
Origin IGP, localpref 100, valid, external, best, group-best
Received Path ID 0, Local Path ID 1, version 5
Origin-AS validity: (disabled)
Path #2: Received by speaker 0
Advertised IPv4 Unicast paths to peers (in unique update groups):
1.1.1.1
50 60
10.4.50.50 from 10.4.50.50 (1.1.1.50)
Origin IGP, localpref 100, valid, external, group-best, backup, add-path
Received Path ID 0, Local Path ID 2, version 6
Origin-AS validity: (disabled)
Ingress Border Router R1 Output
This section includes the outputs corresponding to ingress border router R1.
R1 learns the eBGP neighbor IP addresses via BGP-LU. In the details for each neighbor prefix, observe that the advertised
BGP-LU label corresponds to the EPE label at the egress border router (R3 or R4).
RP/0/RP0/CPU0:R1# show bgp ipv4 labeled-unicast
Thu Feb 10 20:18:59.645 UTC
BGP router identifier 1.1.1.1, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 8
BGP main routing table version 8
BGP NSR Initial initsync version 5 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i10.3.40.40/32 1.1.1.3 100 0 i
*>i10.3.50.50/32 1.1.1.3 100 0 i
*>i10.4.40.40/32 1.1.1.4 100 0 i
*>i10.4.50.50/32 1.1.1.4 100 0 i
Processed 4 prefixes, 4 paths
RP/0/RP0/CPU0:R1# show bgp ipv4 labeled-unicast 10.3.40.40/32
Thu Feb 3 23:01:57.912 UTC
BGP routing table entry for 10.3.40.40/32
Versions:
Process bRIB/RIB SendTblVer
Speaker 15 15
Local Label: 24004
Last Modified: Feb 3 22:47:43.539 for 00:14:14
Paths: (1 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
Local
1.1.1.3 (metric 30) from 1.1.1.3 (1.1.1.3)
Received Label 24004
Origin IGP, localpref 100, valid, internal, best, group-best, labeled-unicast
Received Path ID 1, Local Path ID 1, version 15
RP/0/RP0/CPU0:R1# show bgp ipv4 labeled-unicast 10.3.50.50/32
Thu Feb 3 23:02:09.173 UTC
BGP routing table entry for 10.3.50.50/32
Versions:
Process bRIB/RIB SendTblVer
Speaker 16 16
Local Label: 24005
Last Modified: Feb 3 22:47:43.539 for 00:14:25
Paths: (1 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
Local
1.1.1.3 (metric 30) from 1.1.1.3 (1.1.1.3)
Received Label 24005
Origin IGP, localpref 100, valid, internal, best, group-best, labeled-unicast
Received Path ID 1, Local Path ID 1, version 16
RP/0/RP0/CPU0:R1# show bgp ipv4 labeled-unicast 10.4.40.40/32
Thu Feb 3 23:02:18.843 UTC
BGP routing table entry for 10.4.40.40/32
Versions:
Process bRIB/RIB SendTblVer
Speaker 17 17
Local Label: 24006
Last Modified: Feb 3 22:47:43.539 for 00:14:35
Paths: (1 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
Local
1.1.1.4 (metric 30) from 1.1.1.4 (1.1.1.4)
Received Label 24004
Origin IGP, localpref 100, valid, internal, best, group-best, labeled-unicast
Received Path ID 1, Local Path ID 1, version 17
RP/0/RP0/CPU0:R1# show bgp ipv4 labeled-unicast 10.4.50.50/32
Thu Feb 3 23:02:27.622 UTC
BGP routing table entry for 10.4.50.50/32
Versions:
Process bRIB/RIB SendTblVer
Speaker 18 18
Local Label: 24007
Last Modified: Feb 3 22:47:43.539 for 00:14:44
Paths: (1 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
Local
1.1.1.4 (metric 30) from 1.1.1.4 (1.1.1.4)
Received Label 24005
Origin IGP, localpref 100, valid, internal, best, group-best, labeled-unicast
Received Path ID 1, Local Path ID 1, version 18
RP/0/RP0/CPU0:R1# show isis segment-routing label table
IS-IS 1 IS Label Table
Label Prefix Interface
---------- ---------------- ---------
16001 1.1.1.1/32 Loopback0
16002 1.1.1.2/32
16003 1.1.1.3/32
16004 1.1.1.4/32
The following show commands depict the RIB and CEF outputs for the loopbacks of R3 and R4 learned vis ISIS-SR:
RP/0/RP0/CPU0:R1# show route 1.1.1.3/32
Routing entry for 1.1.1.3/32
Known via "isis 1", distance 115, metric 30, labeled SR, type level-2
Installed Feb 10 17:36:12.497 for 02:43:40
Routing Descriptor Blocks
10.1.2.2, from 1.1.1.3, via HundredGigE0/0/0/0
Route metric is 30
No advertising protos.
RP/0/RP0/CPU0:R1# show route 1.1.1.4/32
Routing entry for 1.1.1.4/32
Known via "isis 1", distance 115, metric 30, labeled SR, type level-2
Installed Feb 10 17:37:02.171 for 02:42:59
Routing Descriptor Blocks
10.1.2.2, from 1.1.1.4, via HundredGigE0/0/0/0
Route metric is 30
No advertising protos.
RP/0/RP0/CPU0:R1# show cef 1.1.1.3/32
1.1.1.3/32, version 18, labeled SR, internal 0x1000001 0x8110 (ptr 0x90cd33a0) [1], 0x0 (0x90c3eb10), 0xa28 (0x91a18378)
Updated Feb 10 17:36:12.506
local adjacency to HundredGigE0/0/0/0
Prefix Len 32, traffic index 0, precedence n/a, priority 1
via 10.1.2.2/32, HundredGigE0/0/0/0, 7 dependencies, weight 0, class 0 [flags 0x0]
path-idx 0 NHID 0x0 [0x91de84d8 0x0]
next hop 10.1.2.2/32
local adjacency
local label 16003 labels imposed {16003}
RP/0/RP0/CPU0:R1# show cef 1.1.1.4/32
1.1.1.4/32, version 20, labeled SR, internal 0x1000001 0x8110 (ptr 0x90cd32c8) [1], 0x0 (0x90c3eb58), 0xa28 (0x91a18408)
Updated Feb 10 17:37:02.176
local adjacency to HundredGigE0/0/0/0
Prefix Len 32, traffic index 0, precedence n/a, priority 1
via 10.1.2.2/32, HundredGigE0/0/0/0, 7 dependencies, weight 0, class 0 [flags 0x0]
path-idx 0 NHID 0x0 [0x91de84d8 0x0]
next hop 10.1.2.2/32
local adjacency
local label 16004 labels imposed {16004}
Next, we observe the BGP table for overlay prefixes at R1. In this usecase, we use prefix 161.1.1.0/28 as an overlay prefix
learned from AS 40 and AS 50. Note that all BGP paths are present at R1 with a BGP next-hop unchanged. By default and without
any BGP policy applied, the BGP best-path is the path from NH 10.3.40.40 (AS 40 via R3).
RP/0/RP0/CPU0:R1# show bgp
BGP router identifier 1.1.1.1, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 21
BGP main routing table version 21
BGP NSR Initial initsync version 7 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i10.3.40.40/32 1.1.1.3 100 0 i
*>i10.3.50.50/32 1.1.1.3 100 0 i
*>i10.4.40.40/32 1.1.1.4 100 0 i
*>i10.4.50.50/32 1.1.1.4 100 0 i
*> 151.1.1.1/32 0.0.0.0 0 32768 i
*>i161.1.1.0/28 10.3.40.40 100 0 40 60 i
* i 10.3.50.50 100 0 50 60 i
* i 10.4.40.40 100 0 40 60 i
* i 10.4.50.50 100 0 50 60 i
Processed 6 prefixes, 9 paths
RP/0/RP0/CPU0:R1# show bgp ipv4 unicast 161.1.1.0/28
BGP routing table entry for 161.1.1.0/28
Versions:
Process bRIB/RIB SendTblVer
Speaker 8 8
Last Modified: Feb 10 17:38:09.280 for 02:42:57
Paths: (4 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
40 60
10.3.40.40 (metric 30) from 1.1.1.3 (1.1.1.3)
Origin IGP, localpref 100, valid, internal, best, group-best
Received Path ID 1, Local Path ID 1, version 8
Path #2: Received by speaker 0
Not advertised to any peer
50 60
10.3.50.50 (metric 30) from 1.1.1.3 (1.1.1.3)
Origin IGP, localpref 100, valid, internal, group-best, add-path
Received Path ID 2, Local Path ID 4, version 8
Path #3: Received by speaker 0
Not advertised to any peer
40 60
10.4.40.40 (metric 30) from 1.1.1.4 (1.1.1.4)
Origin IGP, localpref 100, valid, internal, add-path
Received Path ID 1, Local Path ID 2, version 8
Path #4: Received by speaker 0
Not advertised to any peer
50 60
10.4.50.50 (metric 30) from 1.1.1.4 (1.1.1.4)
Origin IGP, localpref 100, valid, internal, add-path
Received Path ID 2, Local Path ID 3, version 8
A ping and traceroute to the overlay prefix confirms that the traffic is directed to R3 (prefix SID 16003) and then to AS
40 (EPE label 24004 for the eBGP neighbor to AS 40 at R3).
RP/0/RP0/CPU0:R1# ping 161.1.1.1 source 151.1.1.1 count 10
Thu Feb 3 23:20:48.911 UTC
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 161.1.1.1, timeout is 2 seconds:
!!!!!!!!!!
Success rate is 100 percent (10/10), round-trip min/avg/max = 30/36/54 ms
RP/0/RP0/CPU0:R1# traceroute 161.1.1.1 source 151.1.1.1
Thu Feb 3 23:20:53.630 UTC
Type escape sequence to abort.
Tracing the route to 161.1.1.1
1 10.1.2.2 [MPLS: Labels 16003/24004 Exp 0] 49 msec 45 msec 42 msec
2 10.2.3.3 [MPLS: Label 24004 Exp 0] 42 msec 37 msec 37 msec
3 10.3.40.40 44 msec 37 msec 41 msec
4 10.40.60.60 47 msec * 55 msec
Now, we proceed to apply a BGP route-policy that would modify BGP best-path selection and choose instead the path from NH
10.4.50.50 (AS 50 via R4).
RP/0/RP0/CPU0:R1(config)# route-policy rpl_epe
RP/0/RP0/CPU0:R1(config-rpl)# if destination in (161.1.1.0/28) and next-hop in (10.4.50.50) then
RP/0/RP0/CPU0:R1(config-rpl-if)# set local-preference 1000
RP/0/RP0/CPU0:R1(config-rpl-if)# elseif destination in (161.1.1.1/32) and next-hop in (10.4.40.40) then
RP/0/RP0/CPU0:R1(config-rpl-elseif)# set local-preference 1000
RP/0/RP0/CPU0:R1(config-rpl-elseif)# endif
RP/0/RP0/CPU0:R1(config-rpl)# pass
RP/0/RP0/CPU0:R1(config-rpl)# end-policy
RP/0/RP0/CPU0:R1(config)#
RP/0/RP0/CPU0:R1(config)# router bgp 100
RP/0/RP0/CPU0:R1(config-bgp)# neighbor 1.1.1.3
RP/0/RP0/CPU0:R1(config-bgp-nbr)# address-family ipv4 unicast
RP/0/RP0/CPU0:R1(config-bgp-nbr-af)# route-policy rpl_epe in
RP/0/RP0/CPU0:R1(config-bgp-nbr-af)# exit
RP/0/RP0/CPU0:R1(config-bgp-nbr)# exit
RP/0/RP0/CPU0:R1(config-bgp)# neighbor 1.1.1.4
RP/0/RP0/CPU0:R1(config-bgp-nbr)# address-family ipv4 unicast
RP/0/RP0/CPU0:R1(config-bgp-nbr-af)# route-policy rpl_epe in
RP/0/RP0/CPU0:R1(config-bgp-nbr-af)#
Observe the new BGP best-path selected for the overlay prefix via NH 10.4.50.50:
RP/0/RP0/CPU0:R1# show bgp
BGP router identifier 1.1.1.1, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 20
BGP main routing table version 20
BGP NSR Initial initsync version 7 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i10.3.40.40/32 1.1.1.3 100 0 i
*>i10.3.50.50/32 1.1.1.3 100 0 i
*>i10.4.40.40/32 1.1.1.4 100 0 i
*>i10.4.50.50/32 1.1.1.4 100 0 i
*> 151.1.1.1/32 0.0.0.0 0 32768 i
* i161.1.1.0/28 10.3.40.40 100 0 40 60 i
* i 10.3.50.50 100 0 50 60 i
* i 10.4.40.40 100 0 40 60 i
*>i 10.4.50.50 1000 0 50 60 i
Processed 6 prefixes, 9 paths
RP/0/RP0/CPU0:R1# show bgp ipv4 unicast 161.1.1.0/28
BGP routing table entry for 161.1.1.0/28
Versions:
Process bRIB/RIB SendTblVer
Speaker 20 20
Last Modified: Feb 3 23:13:30.539 for 00:01:33
Paths: (4 available, best #4)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
40 60
10.3.40.40 (metric 30) from 1.1.1.3 (1.1.1.3)
Origin IGP, localpref 100, valid, internal, group-best, add-path
Received Path ID 1, Local Path ID 4, version 20
Path #2: Received by speaker 0
Not advertised to any peer
50 60
10.3.50.50 (metric 30) from 1.1.1.3 (1.1.1.3)
Origin IGP, localpref 100, valid, internal, add-path
Received Path ID 2, Local Path ID 3, version 8
Path #3: Received by speaker 0
Not advertised to any peer
40 60
10.4.40.40 (metric 30) from 1.1.1.4 (1.1.1.4)
Origin IGP, localpref 100, valid, internal, add-path
Received Path ID 1, Local Path ID 2, version 8
Path #4: Received by speaker 0
Not advertised to any peer
50 60
10.4.50.50 (metric 30) from 1.1.1.4 (1.1.1.4)
Origin IGP, localpref 1000, valid, internal, best, group-best
Received Path ID 2, Local Path ID 1, version 20
A ping and traceroute to the overlay prefix confirms that after the RPL policy is applied, the traffic is directed instead
to R4 (prefix SID 16004) and then to AS 50 (EPE label 24005 for the eBGP neighbor to AS 50 at R4).
RP/0/RP0/CPU0:R1# ping 161.1.1.1 source 151.1.1.1 count 10
Thu Feb 3 23:17:43.812 UTC
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 161.1.1.1, timeout is 2 seconds:
!!!!!!!!!!
Success rate is 100 percent (10/10), round-trip min/avg/max = 30/35/50 ms
RP/0/RP0/CPU0:R1# traceroute 161.1.1.1 source 151.1.1.1
Thu Feb 3 23:18:01.656 UTC
Type escape sequence to abort.
Tracing the route to 161.1.1.1
1 10.1.2.2 [MPLS: Labels 16004/24005 Exp 0] 50 msec 42 msec 45 msec
2 10.2.4.4 [MPLS: Label 24005 Exp 0] 50 msec 42 msec 42 msec
3 10.4.50.50 46 msec 44 msec 44 msec
4 10.50.60.60 51 msec * 54 msec