IOS-XR
This section contains notes on IOS-XR router configs and network design.
Segment Routing
-
SRGB: we use a custom label block in our lab. The default is 16000 - 23999.
segment-routing global-block 100000 163999
-
Enable SR in ISIS
router isis 100 is-type level-2-only net 49.0901.0000.0000.0006.00 address-family ipv4 unicast metric-style wide advertise link attributes mpls traffic-eng level-2-only mpls traffic-eng router-id Loopback0 maximum-paths 32 segment-routing mpls ! interface Loopback0 passive address-family ipv4 unicast prefix-sid absolute 100006 #(1)! !
- This can also be an SRGB index value
-
Enable distribution of SR Prefix-SID information in BGP-LU (Optional, but very valuable for multi-domain networks)
route-policy SID($SID) set label-index $SID end-policy ! router bgp 100000 ! address-family ipv4 unicast network 10.0.0.1/32 route-policy SID(1) #(1)! allocate-label all ! neighbor 10.1.1.0 #(2)! remote-as 65000 ! address-family ipv4 labeled-unicast route-policy pass in route-policy pass out !
- BGP Prefix-SID index 1, results in SR label value 100001 based on our SRGB
- ASBR
Setting up BMP and BGP-LS
Diagram
BGP-LS
-
Setup route-reflectors to receive LS messages from clients, but to not pass LS messages back out:
BGP-LS specific information shown: router bgp 100000 ! address-family link-state link-state ! neighbor <neighbor IP> address-family link-state link-state route-policy pass in route-policy drop out
Note
The RR's technically only need a copy of BGP-LS/LSDB from one router.
-
Configure one or more RR clients to pass LS messages to the RR's.
BGP-LS specific information shown:
router isis 100 distribute link-state level 2 #(1)! ! address-family ipv4 unicast advertise link attributes #(2)! ! router bgp 100000 ! address-family link-state link-state ! neighbor 192.0.2.50 #(3)! ! address-family link-state link-state route-policy drop in route-policy pass out
- Distribute my LSDB into local BGP-LS
- All ISIS nodes should have this line as it adds their SR TLVs into the domain's LSDB
- Route Reflector
-
Add Egress Peer Engineering data to BGP-LS feed (Optional)
On an ASBR node, or Internet peering node add the following (it is assumed v4/v6 AFIs are already enabled):
router bgp 100000 ! address-family link-state link-state ! neighbor 192.0.2.50 #(1)! ! address-family link-state link-state route-policy pass out ! ! neighbor 203.0.113.50 #(2)! remote-as 64496 egress-engineering !
- Route Reflector
- External Peer
BMP (BGP Monitoring Protocol)
We collect topology data with BMP as it provides data from multiple AFI/SAFI combinations (not just BGP-LS) While we anticipate most operators to run a BGP-free core, we'll generally want to collect BMP messages from route-reflectors and all BGP speakers with external facing peering sessions (ASBRs, Peering, etc.):
-
Configure BMP Server on RR's and on ASBRs and peering routers:
bmp server 1 host 10.0.250.2 port 30511 description Jalapeno GoBMP update-source Loopback0 #(1)! flapping-delay 60 initial-delay 5 stats-reporting-period 60 initial-refresh delay 30 spread 2
- Alternatively,
update-source MgmtEth0/RP0/CPU0/0
- Alternatively,
-
Configure export of BMP data for BGP messages/advertisements from specific peers:
-
Route reflector
router bgp 100000 neighbor <neighbor IP> #(1)! bmp-activate server 1
- Assuming clients are VPNv4/v6 PE's, this also captures VPNv4/6 messages
-
ASBR/Peering
router bgp 100000 ! neighbor 192.0.2.100 remote-as 64500 description External Peer 72 egress-engineering bmp-activate server 1
-
Streaming Telemetry (Model Driven Telemetry)
The following configuration snippet provides a reference for sending streaming telemetry to Jalapeno.
telemetry model-driven
destination-group jalapeno
vrf <name> // optional
address-family ipv4 192.0.2.10 port 32400
encoding self-describing-gpb
protocol grpc no-tls
!
!
sensor-group cisco_models
sensor-path Cisco-IOS-XR-pfi-im-cmd-oper:interfaces/interface-xr/interface #(1)!
sensor-path Cisco-IOS-XR-infra-tc-oper:traffic-collector/afs/af/counters/prefixes/prefix #(2)!
sensor-path Cisco-IOS-XR-fib-common-oper:mpls-forwarding/nodes/node/label-fib/forwarding-details/forwarding-detail #(3)!
!
sensor-group openconfig_interfaces
sensor-path openconfig-interfaces:interfaces/interface #(4)!
!
subscription base_metrics
sensor-group-id cisco_models sample-interval 10000
sensor-group-id openconfig_interfaces sample-interval 10000
destination-id jalapeno
source-interface MgmtEth0/RP0/CPU0/0
!
- Interface statistics
- SR traffic collector statistics
- Per-MPLS label forwarding statistics
- Openconfig interface statistics