CCIE SPv5.1 Labs
  • Intro
    • Setup
  • Purpose
  • Video Demonstration
  • Containerlab Tips
  • Labs
    • ISIS
      • Start
      • Topology
      • Prefix Suppression
      • Hello padding
      • Overload Bit
      • LSP size
      • Default metric
      • Hello/Hold Timer
      • Mesh groups
      • Prefix Summarization
      • Default Route Preference
      • ISIS Timers
      • Log Neighbor Changes
      • Troubleshooting 1 - No routes
      • Troubleshooting 2 - Adjacency
      • IPv6 Single Topology
      • IPv6 Single Topology Challenge
      • IPv6 Multi Topology
      • IPv6 Single to Multi Topology
      • Wide Metrics Explained
      • Route Filtering
      • Backdoor Link
      • Non-Optimal Intra-Area routing
      • Multi Area
      • Authentication
      • Conditional ATT Bit
      • Troubleshooting iBGP
      • Troubleshooting TE Tunnel
    • LDP
      • Start
      • Topology
      • LDP and ECMP
      • LDP and Static Routes
      • LDP Timers
      • LDP Authentication
      • LDP Session Protection
      • LDP/IGP Sync (OSPF)
      • LDP/IGP Sync (ISIS)
      • LDP Local Allocation Filtering
      • LDP Conditional Label Advertisement
      • LDP Inbound Label Advertisement Filtering
      • LDP Label Advertisement Filtering Challenge
      • LDP Implicit Withdraw
      • LDP Transport Address Troubleshooting
      • LDP Static Labels
    • MPLS-TE
      • Start
      • Topology
      • Basic TE Tunnel w/ OSPF
      • Basic TE Tunnel w/ ISIS
      • TE Tunnel using Admin Weight
      • TE Tunnel using Link Affinity
      • TE Tunnel with Explicit-Null
      • TE Tunnel with Conditional Attributes
      • RSVP message pacing
      • Reoptimization timer
      • IGP TE Flooding Thresholds
      • CSPF Tiebreakers
      • TE Tunnel Preemption
      • TE Tunnel Soft Preemption
      • Tunneling LDP inside RSVP
      • PE to P TE Tunnel
      • Autoroute Announce Metric (XE)
      • Autoroute Announce Metric (XR)
      • Autoroute Announce Absolute Metric
      • Autoroute Announce Backup Path
      • Forwarding Adjacency
      • Forwarding Adjacency with OSPF
      • TE Tunnels with UCMP
      • Auto-Bandwidth
      • FRR Link Protection (XE, BFD)
      • FRR Link Protection (XE, RSVP Hellos)
      • FRR Node Protection (XR)
      • FRR Path Protection
      • FRR Multiple Backup Tunnels (Node Protection)
      • FRR Multiple Backup Tunnels (Link Protection)
      • FRR Multiple Backup Tunnels (Backwidth/Link Protection)
      • FRR Backup Auto-Tunnels
      • FRR Backup Auto-Tunnels with SRLG
      • Full Mesh Auto-Tunnels
      • Full Mesh Dynamic Auto-Tunnels
      • One-Hop Auto-Tunnels
      • CBTS/PBTS
      • Traditional DS-TE
      • IETF DS-TE with MAM
      • IETF DS-TE with RDM
      • RDM w/ FRR Troubleshooting
      • Per-VRF TE Tunnels
      • Tactical TE Issues
      • Multicast and MPLS-TE
    • SR
      • Start
      • Topology
      • Basic SR with ISIS
      • Basic SR with OSPF
      • SRGB Modifcation
      • SR with ExpNull
      • SR Anycast SID
      • SR Adjacency SID
      • SR LAN Adjacency SID (Walkthrough)
      • SR and RSVP-TE interaction
      • SR Basic Inter-area with ISIS
      • SR Basic Inter-area with OSPF
      • SR Basic Inter-IGP (redistribution)
      • SR Basic Inter-AS using BGP
      • SR BGP Data Center (eBGP)
      • SR BGP Data Center (iBGP)
      • LFA
      • LFA Tiebreakers (ISIS)
      • LFA Tiebreakers (OSPF)
      • Remote LFA
      • RLFA Tiebreakers?
      • TI-LFA
      • Remote LFA or TILFA?
      • TI-LFA Node Protection
      • TI-LFA SRLG Protection
      • TI-LFA Protection Priorities (ISIS)
      • TI-LFA Protection Priorities (OSPF)
      • Microloop Avoidance
      • SR/LDP Interworking
      • SR/LDP SRMS OSPF Inter-Area
      • SR/LDP Design Challenge #1
      • SR/LDP Design Challenge #2
      • Migrate LDP to SR (ISIS)
      • OAM with SR
      • SR-MPLS using IPv6
      • Basic SR-TE with AS
      • Basic SR-TE with AS and ODN
      • SR-TE with AS Primary/Secondary Paths
      • SR-TE Dynamic Policies
      • SR-TE Dynamic Policy with Margin
      • SR-TE Explicit Paths
      • SR-TE Disjoint Planes using Anycast SIDs
      • SR-TE Flex-Algo w/ Latency
      • SR-TE Flex-Algo w/ Affinity
      • SR-TE Disjoint Planes using Flex-Algo
      • SR-TE BSIDs
      • SR-TE RSVP-TE Stitching
      • SR-TE Autoroute Include
      • SR Inter-IGP using PCE
      • SR-TE PCC Features
      • SR-TE PCE Instantiated Policy
      • SR-TE PCE Redundancy
      • SR-TE PCE Redundancy w/ Sync
      • SR-TE Basic BGP EPE
      • SR-TE BGP EPE for Unified MPLS
      • SR-TE Disjoint Paths
      • SR Converged SDN Transport Challenge
      • SR OAM DPM
      • SR OAM Tools
      • Performance-Measurement (Interface Delay)
    • SRv6
      • Start
      • Topology
      • Basic SRv6
      • SRv6 uSID
      • SRv6 uSID w/ EVPN-VPWS and BGP IPv4/IPv6
      • SRv6 uSID w/ SR-TE
      • SRv6 uSID w/ SR-TE Explicit Paths
      • SRv6 uSID w/ L3 IGW
      • SRv6 uSID w/ Dual-Connected PE
      • SRv6 uSID w/ Flex Algo
      • SRv6 uSID - Scale (Pt. 1)
      • SRv6 uSID - Scale (Pt. 2)
      • SRv6 uSID - Scale (Pt. 3) (UPA Walkthrough)
      • SRv6 uSID - Scale (Pt. 4) (Flex Algo)
      • SRv6 uSID w/ TI-LFA
    • Multicast
      • Start
      • Topology
      • Basic PIM-SSM
      • PIM-SSM Static Mapping
      • Basic PIM-SM
      • PIM-SM with Anycast RP
      • PIM-SM with Auto-RP
      • PIM-SM with BSR
      • PIM-SM with BSR for IPv6
      • PIM-BiDir
      • PIM-BiDir for IPv6
      • PIM-BiDir with Phantom RP
      • PIM Security
      • PIM Boundaries with AutoRP
      • PIM Boundaries with BSR
      • PIM-SM IPv6 using Embedded RP
      • PIM SSM Range Note
      • PIM RPF Troubleshooting #1
      • PIM RPF Troubleshooting #2
      • PIM RP Troubleshooting
      • PIM Duplicate Traffic Troubleshooting
      • Using IOS-XR as a Sender/Receiver
      • PIM-SM without Receiver IGMP Joins
      • RP Discovery Methods
      • Basic Interdomain Multicast w/o MSDP
      • Basic Interdomain Multicast w/ MSDP
      • MSDP Filtering
      • MSDP Flood Reduction
      • MSDP Default Peer
      • MSDP RPF Check (IOS-XR)
      • MSDP RPF Check (IOS-XE)
      • Interdomain MBGP Policies
      • PIM Boundaries using MSDP
    • MVPN
      • Start
      • Topology
      • Profile 0
      • Profile 0 with data MDTs
      • Profile 1
      • Profile 1 w/ Redundant Roots
      • Profile 1 with data MDTs
      • Profile 6
      • Profile 7
      • Profile 3
      • Profile 3 with S-PMSI
      • Profile 11
      • Profile 11 with S-PMSI
      • Profile 11 w/ Receiver-only Sites
      • Profile 9 with S-PMSI
      • Profile 12
      • Profile 13
      • UMH (Upstream Multicast Hop) Challenge
      • Profile 13 w/ Configuration Knobs
      • Profile 13 w/ PE RP
      • Profile 12 w/ PE Anycast RP
      • Profile 14 (Partitioned MDT)
      • Profile 14 with Extranet option #1
      • Profile 14 with Extranet option #2
      • Profile 14 w/ IPv6
      • Profile 17
      • Profile 19
      • Profile 21
    • MVPN SR
      • Start
      • Topology
      • Profile 27
      • Profile 27 w/ Constraints
      • Profile 27 w/ FRR
      • Profile 28
      • Profile 28 w/ Constraints and FRR
      • Profile 28 w/ Data MDTs
      • Profile 29
    • VPWS
      • Start
      • Topology
      • Basic VPWS
      • VPWS with Tag Manipulation
      • Redundant VPWS
      • Redundant VPWS (IOS-XR)
      • VPWS with PW interfaces
      • Manual VPWS
      • VPWS with Sequencing
      • Pseudowire Logging
      • VPWS with FAT-PW
      • MS-PS (Pseudowire stitching)
      • VPWS with BGP AD
    • VPLS
      • Start
      • Topology
      • Basic VPLS with LDP
      • VPLS with LDP and BGP
      • VPLS with BGP only
      • Hub and Spoke VPLS
      • Tunnel L2 Protocols over VPLS
      • Basic H-VPLS
      • H-VPLS with BGP
      • H-VPLS with QinQ
      • H-VPLS with Redundancy
      • VPLS with Routing
      • VPLS MAC Protection
      • Basic E-TREE
      • VPLS with LDP/BGP-AD and XRv RR
      • VPLS with BGP and XRv RR
      • VPLS with Storm Control
    • EVPN
      • Start
      • Topology
      • EVPN VPWS
      • EVPN VPWS Multihomed
      • EVPN VPWS Multihomed Single-Active
      • Basic Single-homed EVPN E-LAN
      • EVPN E-LAN Service Label Allocation
      • EVPN E-LAN Ethernet Tag
      • EVPN E-LAN Multihomed
      • EVPN E-LAN on XRv
      • EVPN IRB
      • EVPN-VPWS Multihomed IOS-XR (All-Active)
      • EVPN-VPWS Multihomed IOS-XR (Port-Active)
      • EVPN-VPWS Multihomed IOS-XR (Single-Active)
      • EVPN-VPWS Multihomed IOS-XR (Non-Bundle)
      • PBB-EVPN (Informational)
    • BGP Multi-Homing (XE)
      • Start
      • Topology
      • Lab1 ECMP
      • Lab2 UCMP
      • Lab3 Backup Path
      • Lab4 Shadow Session
      • Lab5 Shadow RR
      • Lab6 RR with Add-Path
      • Lab7 MPLS + Add Path ECMP
      • Lab8 MPLS + Shadow RR
      • Lab9 MPLS + RDs + UCMP
    • BGP Multi-Homing (XR)
      • Start
      • Topology
      • Lab1 ECMP
      • Lab2 UCMP
      • Lab3 Backup Path
      • Lab4 “Shadow Session”
      • Lab5 “Shadow RR”
      • Lab6 RR with Add-Path
      • Lab7 MPLS + Add Path ECMP
      • Lab8 MPLS + “Shadow RR”
      • Lab9 MPLS + RDs + UCMP
      • Lab10 MPLS + Same RD + Add-Path + UCMP
      • Lab11 MPLS + Same RD + Add-Path + Repair Path
    • BGP
      • Start
      • Conditional Advertisement
      • Aggregation and Deaggregation
      • Local AS
      • BGP QoS Policy Propagation
      • Non-Optimal eBGP Routing
      • Multihomed Enterprise Challenge
      • Provider Communities
      • Destination-Based RTBH
      • Destination-Based RTBH (Community-Based)
      • Source-Based RTBH
      • Source-Based RTBH (Community-Based)
      • Multihomed Enterprise Challenge (XRv)
      • Provider Communities (XRv)
      • DMZ Link BW Lab1
      • DMZ Link BW Lab2
      • PIC Edge in the Global Table
      • PIC Edge Troubleshooting
      • PIC Edge for VPNv4
      • AIGP
      • AIGP Translation
      • Cost-Community (iBGP)
      • Cost-Community (confed eBGP)
      • Destination-Based RTBH (VRF Provider-triggered)
      • Destination-Based RTBH (VRF CE-triggered)
      • Source-Based RTBH (VRF Provider-triggered)
      • Flowspec (Global IPv4/6PE)
      • Flowspec (VRF)
      • Flowspec (Global IPv4/6PE w/ Redirect)
      • Flowspec (Global IPv4/6PE w/ Redirect) T-Shoot
      • Flowspec (VRF w/ Redirect)
      • Flowspec (Global IPv4/6PE w/ CE Advertisement)
    • Intra-AS L3VPN
      • Start
      • Partitioned RRs
      • Partitioned RRs with IOS-XR
      • RT Filter
      • Non-Optimal Multi-Homed Routing
      • Troubleshoot #1 (BGP)
      • Troubleshoot #2 (OSPF)
      • Troubleshoot #3 (OSPF)
      • Troubleshoot #4 (OSPF Inter-AS)
      • VRF to Global Internet Access (IOS-XE)
      • VRF to Global Internet Access (IOS-XR)
    • Inter-AS L3VPN
      • Start
      • Inter-AS Option A
      • Inter-AS Option B
      • Inter-AS Option C
      • Inter-AS Option AB (D)
      • CSC
      • CSC with Option AB (D)
      • Inter-AS Option C - iBGP LU
      • Inter-AS Option B w/ RT Rewrite
      • Inter-AS Option C w/ RT Rewrite
      • Inter-AS Option A Multi-Homed
      • Inter-AS Option B Multi-Homed
      • Inter-AS Option C Multi-Homed
    • Russo Inter-AS
      • Start
      • Topology
      • Option A L3NNI
      • Option A L2NNI
      • Option A mVPN
      • Option B L3NNI
      • Option B mVPN
      • Option C L3NNI
      • Option C L3NNI w/ L2VPN
      • Option C mVPN
    • BGP RPKI
      • Start
      • RPKI on IOS-XE (Enabling the feature)
      • RPKI on IOS-XE (Validation)
      • RPKI on IOS-XR (Enabling the feature)
      • Enable SSH in Routinator
      • RPKI on IOS-XR (Validation)
      • RPKI on IOS-XR (RPKI Routes)
      • RPKI on IOS-XR (VRF)
      • RPKI iBGP Mesh (No Signaling)
      • RPKI iBGP Mesh (iBGP Signaling)
    • NAT
      • Start
      • Egress PE NAT44
      • NAT44 within an INET VRF
      • Internet Reachability between VRFs
      • CGNAT
      • NAT64 Stateful
      • NAT64 Stateful w/ Static NAT
      • NAT64 Stateless
      • MAP-T BR
    • BFD
      • Start
      • Topology
      • OSPF Hellos
      • ISIS Hellos
      • BGP Keepalives
      • PIM Hellos
      • Basic BFD for all protocols
      • BFD Asymmetric Timers
      • BFD Templates
      • BFD Tshoot #1
      • BFD for Static Routes
      • BFD Multi-Hop
      • BFD for VPNv4 Static Routes
      • BFD for VPNv6 Static Routes
      • BFD for Pseudowires
    • QoS
      • Start
      • QoS on IOS-XE
      • Advanced QoS on IOS-XE Pt. 1
      • Advanced QoS on IOS-XE Pt. 2
      • MPLS QoS Design
      • Notes - QoS on IOS-XR
    • NSO
      • Start
      • Basic NSO Usage
      • Basic NSO Template Service
      • Advanced NSO Template Service
      • Advanced NSO Template Service #2
      • NSO Template vs. Template Service
      • NSO API using Python
      • NSO API using Python #2
      • NSO API using Python #3
      • Using a NETCONF NED
      • Python Service
      • Nano Services
    • MDT
      • Start
      • MDT Server Setup
      • Basic Dial-Out
      • Filtering Data using XPATH
      • Finding the correct YANG model
      • Finding the correct YANG model #2
      • Event-Driven MDT
      • Basic Dial-In using gNMI
      • Dial-Out with TLS
      • Dial-In with TLS
      • Dial-In with two-way TLS
    • App-Hosting
      • Start
      • Lab - iperf3 Docker Container
      • Notes - LXC Container
      • Notes - Native Applications
      • Notes - Process Scripts
    • ZTP
      • Notes - Classic ZTP
      • Notes - Secure ZTP
    • L2 Connectivity Notes
      • 802.1ad (Q-in-Q)
      • MST-AG
      • MC-LAG
      • G.8032
    • Ethernet OAM
      • Start
      • Topology
      • CFM
      • y1731
      • Notes - y1564
    • Security
      • Start
      • Notes - Security ACLs
      • Notes - Hybrid ACLs
      • Notes - MPP (IOS-XR)
      • Notes - MPP (IOS-XE)
      • Notes - CoPP (IOS-XE)
      • Notes - LPTS (IOS-XR)
      • Notes - WAN MACsec White Paper
      • Notes - WAN MACsec Config Guide
      • Notes - AAA
      • Notes - uRPF
      • Notes - VTY lines (IOS-XR)
      • Lab - uRPF
      • Lab - MPP
      • Lab - AAA (IOS-XE)
      • Lab - AAA (IOS-XR)
      • Lab - CoPP and LPTS
    • Assurance
      • Start
      • Notes - Syslog on IOS-XE
      • Notes - Syslog on IOS-XR
      • Notes - SNMP Traps
      • Syslog (IOS-XR)
      • RMON
      • Netflow (IOS-XE)
      • Netflow (IOS-XR)
Powered by GitBook
On this page
  • Answer
  • Explanation
  • Verification
  • Summary
  1. Labs
  2. Russo Inter-AS

Option C L3NNI

Load russo.pl.course.inter-as.opt.c.init.cfg

#IOS-XE
config replace flash:russo.pl.course.inter-as.opt.c.init.cfg
 
#IOS-XR
configure
load bootflash:russo.pl.course.inter-as.opt.c.init.cfg
commit replace
y

Configure inter-AS option C using the following guidelines:

  • Globomantics is AS65001 and Wired Brain is AS65002

  • Globomantics has two ASBRs. Configure MED on XR11 and R2 so that R2 is used for ingress. R3 has bgp bestpath med missing-as-worst configured. Do not change this.

  • In AS65001, redistribute the BGP-LU routes into the IGP, and IGP routes into BGP-LU. Set the metric so that XR11 is the preferred egress point for remote loopbacks. Ensure that routing loops cannot occur.

  • In AS65002, use iBGP-LU for advertisement of transport labels for the remote PEs/RR

All IGP/BGP peerings are already setup (except for the ASBR-ASBR peerings for option C).

Answer

#R2
ip prefix-list HOST_ROUTES permit 10.0.0.0/8 ge 32
!
route-map ISIS_TO_BGP deny 10
 match tag 20
route-map ISIS_TO_BGP permit 20
 match ip addr prefix HOST_ROUTES
!
route-map BGP_TO_ISIS permit 10
 set tag 20
!
route-map SET_MED
 set metric 10
 set mpls-label
!
router isis 65001
 redistribute bgp 65001 metric 200 route-map BGP_TO_ISIS
!
router bgp 65001
 neighbor 10.2.3.3 remote-as 65002
 add ipv4
  redistribute isis 65001 route-map ISIS_TO_BGP
  neighbor 10.2.3.3 activate
  neighbor 10.2.3.3 route-map SET_MED out
  neighbor 10.2.3.3 send-label
 
#XR11
router static add ipv4 uni
 10.3.11.3/32 GigabitEthernet0/0/0/0.3113888
!
route-policy ISIS_TO_BGP
 if tag eq 20 then
  drop
 endif
 if destination in ( 0.0.0.0/0 ge 32 ) then
  pass
 endif
end-policy
!
route-policy BGP_TO_ISIS
 set tag 20
end-policy
!
route-policy SET_MED($MED)
 set med $MED
end-policy
!
route-policy PASS
 pass
end-policy
!
router isis 65001
 add ipv4
  redistribute bgp 65001 metric 100 route-policy BGP_TO_ISIS
!
router bgp 65001
 add ipv4 unicast
  redistribute isis 65001 route-policy ISIS_TO_BGP
  allocate-label all
 !
 neighbor 10.3.11.3
  remote-as 65002
  add ipv4 labeled-uni
   route-policy SET_MED(20) out
   route-policy PASS in

#R7
router bgp 65001
 neighbor 10.0.0.14 remote-as 65002
 neighbor 10.0.0.14 update-so lo0
 neighbor 10.0.0.14 ebgp-multihop
 !
 add vpnv4
  neighbor 10.0.0.14 activate
  neighbor 10.0.0.14 next-hop-unchanged
 add vpnv6
  neighbor 10.0.0.14 activate
  neighbor 10.0.0.14 next-hop-unchanged



#R3
router bgp 65002
 neighbor 10.2.3.2 remote-as 65001
 neighbor 10.3.11.11 remote-as 65001
 add ipv4
  neighbor 10.0.0.14 act
  neighbor 10.0.0.14 send-label
  neighbor 10.0.0.14 next-hop-self
  neighbor 10.2.3.2 act
  neighbor 10.2.3.2 send-label
  neighbor 10.3.11.11 act
  neighbor 10.3.11.11 send-label

#R8
router bgp 65002
 add ipv4
  network 10.0.0.8 mask 255.255.255.255
  neighbor 10.0.0.14 act
  neighbor 10.0.0.14 send-label

#R10
router bgp 65002
 add ipv4
  network 10.0.0.10 mask 255.255.255.255
  neighbor 10.0.0.14 act
  neighbor 10.0.0.14 send-label

#XR14
route-policy PASS
 pass
end-policy
!
router bgp 65002
 add ipv4 uni
  network 10.0.0.14/32
  allocate-label all
 !
 neighbor-group IBGP_RRC
  add ipv4 labeled-unicast
   route-reflector-client
 !
 neighbor 10.0.0.7
  remote-as 65001
  update-so lo0
  ebgp-multihop
  !
  add vpnv4 uni
   route-policy PASS in
   route-policy PASS out
   next-hop-unchanged
  add vpnv6 uni
   route-policy PASS in
   route-policy PASS out
   next-hop-unchanged

Explanation

Inter-AS option C provides even more scalability by removing the VPN tables on the ASBRs. Instead, the ASBRs simply share loopbacks of their PEs and RRs. This is used to extend BGP services between the ASs. The RRs form a BGP session to reflect service routes, and the PEs will have remote PEs loopbacks in their RIB in order to form end-to-end LSPs.

AS65002 is simpler, so we will start there. There is only one ASBR, which is R3. The AS will run iBGP-LU instead of having the ASBR redistribute the routes into the IGP. This is more scalable than poluting the IGP with external routes. Plus, AS65002 is using SR, so this would not work anyways, as the routers would not allocate a label for these redistributed prefixes.

#R3
router bgp 65002
 neighbor 10.2.3.2 remote-as 65001
 neighbor 10.3.11.11 remote-as 65001
 add ipv4
  neighbor 10.0.0.14 act
  neighbor 10.0.0.14 send-label
  neighbor 10.0.0.14 next-hop-self
  neighbor 10.2.3.2 act
  neighbor 10.2.3.2 send-label
  neighbor 10.3.11.11 act
  neighbor 10.3.11.11 send-label

Within AS65002, each PE and RR simply advertises its own loopback into BGP-LU. A label is allocated, but by default imp-null will be allocated, as the PE itself owns the prefix. However, this allows R3 to then allocate its own label for the prefix, as it is setting next-hop-self to the ASBRs on the NNI.

#R8
router bgp 65002
 add ipv4
  network 10.0.0.8 mask 255.255.255.255
  neighbor 10.0.0.14 act
  neighbor 10.0.0.14 send-label

XR14 does the same, and enables IPv4/LU for the iBGP RR peers.

#XR14
router bgp 65002
 add ipv4 uni
  network 10.0.0.14/32
  allocate-label all
 !
 neighbor-group IBGP_RRC
  add ipv4 labeled-unicast
   route-reflector-client

Next, AS65001 runs BGP-LU on the NNI as well. R2 sets the MED outbound to a lower number than XR11. This is done to demonstrate the need for the set mpls-label command on IOS-XE. When you use an outbound route-map on a BGP IPv4/LU peer, you must include this command. Otherwise, the MPLS label is stripped. You can however not use an outbound route-map without any issues. But if you do use an outbound route-map, you must include this set statement.

R2 and XR11 also redistribute loopbacks from the IGP into BGP. They deny tag 20 to prevent route redistribution loops.

#R2
ip prefix-list HOST_ROUTES permit 10.0.0.0/8 ge 32
!
route-map ISIS_TO_BGP deny 10
 match tag 20
route-map ISIS_TO_BGP permit 20
 match ip addr prefix HOST_ROUTES
!
route-map SET_MED
 set metric 10
 set mpls-label
!
router bgp 65001
 neighbor 10.2.3.3 remote-as 65002
 add ipv4
  redistribute isis 65001 route-map ISIS_TO_BGP
  neighbor 10.2.3.3 activate
  neighbor 10.2.3.3 route-map SET_MED out
  neighbor 10.2.3.3 send-label
 
#XR11
router static add ipv4 uni
 10.3.11.3/32 GigabitEthernet0/0/0/0.3113888
!
route-policy ISIS_TO_BGP
 if tag eq 20 then
  drop
 endif
 if destination in ( 0.0.0.0/0 ge 32 ) then
  pass
 endif
end-policy
!
route-policy SET_MED($MED)
 set med $MED
end-policy
!
route-policy PASS
 pass
end-policy
!
!
router bgp 65001
 add ipv4 unicast
  redistribute isis 65001 route-policy ISIS_TO_BGP
  allocate-label all
 !
 neighbor 10.3.11.3
  remote-as 65002
  add ipv4 labeled-uni
   route-policy SET_MED(20) out
   route-policy PASS in

Additionally, R2 and XR11 redistribute the BGP routes into the IGP directly. They set the tag which prevents route feedback when ISIS routes are advertised back into BGP. XR11 sets the metric lower so that egress traffic uses XR11 instead of R2.

#R2
route-map BGP_TO_ISIS permit 10
 set tag 20
!
router isis 65001
 redistribute bgp 65001 metric 200 route-map BGP_TO_ISIS

#XR11
route-policy BGP_TO_ISIS
 set tag 20
end-policy
!
router isis 65001
 add ipv4
  redistribute bgp 65001 metric 100 route-policy BGP_TO_ISIS

Now that both ASs have each other’s loopbacks, the RRs can form an eBGP session and exchange any needed VPN service routes. Remember to use next-hop-unchanged so that the RRs are not inserted into the data path, and also do not allocate their own VPN labels.

#R7
router bgp 65001
 neighbor 10.0.0.14 remote-as 65002
 neighbor 10.0.0.14 update-so lo0
 neighbor 10.0.0.14 ebgp-multihop
 !
 add vpnv4
  neighbor 10.0.0.14 activate
  neighbor 10.0.0.14 next-hop-unchanged
 add vpnv6
  neighbor 10.0.0.14 activate
  neighbor 10.0.0.14 next-hop-unchanged

#XR14
route-policy PASS
 pass
end-policy
!
router bgp 65002
 neighbor 10.0.0.7
  remote-as 65001
  update-so lo0
  ebgp-multihop
  !
  add vpnv4 uni
   route-policy PASS in
   route-policy PASS out
   next-hop-unchanged
  add vpnv6 uni
   route-policy PASS in
   route-policy PASS out
   next-hop-unchanged

Verification

Within AS65001, we see routes for the remote loopbacks via the IGP. XR11 is preferred as egress:

Within AS65002, the PEs and RRs know the remote loopbacks via BGP-LU.

The result is that traffic from AS65002 will be transported to R3 with a top label of 16003, and a bottom label of the BGP label that R3 allocated for each prefix.

However, traffic from AS65001 to AS65002 only needs a single transport label, as the loopbacks are redistributed directly into IGP, where LDP allocates labels. In AS65002, BGP-LU is essentially another service, so R8 needs to tunnel traffic to R3, as the AS65002 core is “BGP-LU free.”

Let’s now look at BGP services. R6 has VPNv4 and VPNv6 routes that have nexthops of R8 and R10. This is because the RR is doing next-hop-unchanged. This gives the “feel” of all PEs being within the same AS. Once you accomplish inter-AS loopback transport, VPN services simply resolve to the real PE loopbacks.

Similarly, R8 and R10 have routes pointing to XR12 (which is the bestpath due to lower MED advertised by R1 in L3A) and R6.

A traceroute from L3A to L3B reveals at most two labels. This is because AS65001 does not need to use an extra transport label in the core due to redistributing BGP-LU routes directly into the IGP.

A traceroute in the other direction produces a three-label stack within AS65002 due to the extra transport label.

Summary

Inter-AS option C is somewhat more simplistic than option B. The ASBRs are simply used to advertise PE/RR loopback reachability. This must have a label associated with it so that the LSP can work end-to-end. BGP-LU is used to allocate a label for each prefix. Just like option B, we must be careful to enable MPLS on the NNI. This involves a static route on IOS-XR, and ensuring the mpls bgp forwarding command exists on the NNI on IOS-XE.

Once the loopback reachability is established, the RRs run an eBGP session with the nexthop unchanged to propagate service routes between the ASs. From there, the PEs will preform normal VPN service operations, finding the service label from the BGP route, and transporting the traffic to the remote PE using either the IGP or BGP-LU to find the transport label.

As a summary:

  • Option A uses a per-VRF subinterface on the NNI. The ASBRs treat each other as CEs.

    • This is characterized by an unlabeled hop at the NNI.

  • Option B uses VPNv4/v6 sessions between the ASRBs. The ASBRs must allocate a local label for every VPN route advertised to the remote ASBR over the NNI.

    • This is characterized by a single-labeled hop at the NNI.

    • There are either two or three VPN labels in the end-to-end path. If the ASBR sets next-hop-self on the iBGP session to the RR, there are three VPN labels.

  • Option C uses BGP-LU sessions between the ASRBs. The ASBRs only need to allocate a local label per PE/RR which is very scalable. The RRs run an eBGP session with next-hop-unchanged. The PEs can then form a complete end-to-end LSP.

    • This is characterized by a double-labeled hop at the NNI.

    • The AS has the option to redistribute the remote BGP-LU prefixes into IGP, using LDP to bind labels, or extend iBGP-LU to all PEs. If extending iBGP-LU, you will see a three-label stack in that AS. Top label is transport to the ASBR. Middle label is service label for the iBGP-LU prefix representing the remote PE. Bottom label is the final VPN label learned from the remote PE.

PreviousOption B mVPNNextOption C L3NNI w/ L2VPN

Last updated 2 months ago