Seamless MPLS: Isolated IGP/LDP Domains and Labeled BGP
This chapter provides information about Seamless MPLS: Isolated IGP/LDP domains and Labeled BGP.
Topics in this chapter include:
Applicability
This chapter is applicable to SR OS routers and was initially written for SR OS Release 13.0.R7. The CLI in the current edition is based on SR OS Release 23.3.R1.
Overview
Seamless Multi-Protocol Label Switching (MPLS) is a network architecture that extends MPLS networks to integrate access and aggregation networks into a single MPLS domain, to solve the scaling problems in flat MPLS-based deployments. The Seamless MPLS transport concept described in this chapter partitions the core, aggregation, and access networks into isolated IGP/LDP domains. Seamless MPLS does not define any new protocols or technologies and is based on existing and well-known ones. Seamless MPLS provides end-to-end service-independent transport, separating the service and transport plane. Therefore, it removes the need for service-specific configurations in network transport nodes. Service provisioning is restricted only at the points of the network where it is required.
When BGP is used to distribute a route, it can also distribute an MPLS label that is mapped to that route. The label mapping information is appended to the BGP update message that is used to distribute the route. This is described in RFC 3107, Carrying Label Information in BGP-4.
Seamless MPLS - network topology, control and data plane shows a network with a core area and regional areas. Seamless MPLS - network topology, control and data plane also shows the control plane used in this Seamless MPLS implementation. For simplification, the control plane is displayed from right to left and the data plane from left to right. In this example, LDP is used as the underlying transport inside each IGP domain. Alternatively, RSVP-TE could be used.
In typical Seamless MPLS solutions, multiple ABRs are in place that result in some specific BGP configurations to send/receive multiple paths, such as the add-path feature. Because of this, ANs and ABRs have several next hops for the same prefix, allowing the use of redundancy mechanisms such as BGP Prefix Independent Convergence (PIC) edge, also known as BGP Fast ReRoute (FRR). These mechanisms are beyond the scope of this chapter.
AN routers in a regional area learn the reachability of AN routers in other regional areas through BGP labeled routes redistributed by the local ABRs (RFC 3107).
The label stack contains three labels for packets sent in a VPN service between the access nodes:
The ANs push a service label to the packets sent in the VPN service. The service label remains unchanged end-to-end between ANs. The service label is popped by the remote AN and is the inner label of the label stack.
The BGP label is the middle label of the label stack and should be regarded as a transport label. The transport label stack is increased to two labels: BGP and LDP transport labels. The BGP label is pushed by the iLER AN and is swapped at the BGP next hop, which can be one of the two local ABRs. Both ABRs are configured with next-hop-self. The BGP label is also swapped by the remote ABR.
The iLER AN pushes an LDP transport label to the packets sent to the remote AN to reach the BGP next hop. At the local ABR, the LDP transport label is popped and a new LDP transport label is pushed to reach the BGP next hop (remote ABR). The LDP transport label is swapped in every label switching router (LSR) and popped by the ABR nearest to the remote AN. That ABR pops the LDP transport label, swaps the BGP label, and pushes an LDP transport label to reach the remote eLER AN.
Configuration
Seamless MPLS - IGP/LDP domains shows the example topology that is used in this chapter. An Epipe and VPRN are established between the access nodes AN-1 and AN-5. In the regional areas, and in the core area, IS-IS L2 capability is used.
Initial configuration
All nodes have the following initial configuration:
Cards, media dependent adapters (MDAs), ports
Router interfaces:
# on ABR-2: configure exclusive router "Base" { interface "int-ABR-2-AN-1" { port 1/1/c1/2 ipv4 { primary { address 192.168.12.2 prefix-length 30 } } } interface "int-ABR-2-P-3" { port 1/1/c1/1 ipv4 { primary { address 192.168.23.1 prefix-length 30 } } } interface "system" { ipv4 { primary { address 192.0.2.2 prefix-length 32 } } }
IS-IS (alternatively, OSPF could be used). Core area and regional areas run an isolated IS-IS instance. ABRs run two IS-IS instances: instance 0 belongs to the core and instance 1 belongs to the access network.
Core instance. All ABRs and Ps have level 2 (L2) capability, as follows:
# on ABR-2: configure exclusive router "Base" { isis 0 { admin-state enable level-capability 2 area-address [49.0001] interface "int-ABR-2-P-3" { interface-type point-to-point } interface "system" { } }
Access instance. All ABRs and ANs have L2 capability, as follows:
# on ABR-2: configure exclusive router "Base" { isis 1 { admin-state enable level-capability 2 interface "int-ABR-2-AN-1" { interface-type point-to-point } interface "system" { } }
LDP
Link LDP is enabled on all router interfaces on all nodes, as follows:
# on ABR-2: configure exclusive router "Base" { ldp { interface-parameters { interface "int-ABR-2-AN-1" { ipv4 { } } interface "int-ABR-2-P-3" { ipv4 { } } } }
Configure BGP
BGP is configured on all ABRs and all ANs. P-3 acts as a core Route Reflector (RR). To allow for separation of core/access IGP domains, the ABRs become RRs inline and implement next-hop-self on labeled IPv4 BGP prefixes. Seamless MPLS - BGP shows the exchange of iBGP Labeled Unicast (LU) routes.
BGP configuration on ABRs
There are two BGP groups on the ABRs: one group toward the core RR and another group toward the AN, as follows:
# on ABR-2:
configure exclusive
router "Base" {
autonomous-system 64496
bgp {
ebgp-default-reject-policy {
import false
export false
}
group "core" {
peer-as 64496
advertise-inactive true
family {
vpn-ipv4 true
label-ipv4 true
}
}
neighbor "192.0.2.3" {
description "coreRR_P-3"
group "core"
next-hop-self true
}
Advertise-inactive must be enabled on the BGP group toward the core. The /32 system IP addresses, learned in labeled BGP, are also learned in IS-IS. Because IS-IS has a lower preference compared to iBGP, the IS-IS routes are installed in the routing table. BGP default behavior only advertises those prefixes that were elected by RTM and used. The VPN IPv4 address family is also included, along with labeled IPv4, to allow setting up L3 VPN services, as shown in next sections. The next-hop attribute of VPN IPv4 prefixes remains unchanged.
# on ABR-2:
configure exclusive
router "Base" {
bgp {
group "ANs_Label_IPv4+VPN_IPv4" {
peer-as 64496
family {
vpn-ipv4 true
label-ipv4 true
}
cluster {
cluster-id 2.2.2.2
}
}
neighbor "192.0.2.1" {
description "AN-1"
group "ANs_Label_IPv4+VPN_IPv4"
next-hop-self true
}
BGP configuration on the core RR
# on P-3:
configure exclusive
router "Base" {
autonomous-system 64496
bgp {
ebgp-default-reject-policy {
import false
export false
}
group "core" {
peer-as 64496
advertise-inactive true
family {
vpn-ipv4 true
label-ipv4 true
}
cluster {
cluster-id 3.3.3.3
}
}
neighbor "192.0.2.2" {
description "ABR-2"
group "core"
}
neighbor "192.0.2.4" {
description "ABR-4"
group "core"
}
BGP configuration on ANs toward ABRs
# on AN-1:
configure exclusive
router "Base" {
autonomous-system 64496
bgp {
ebgp-default-reject-policy {
import false
export false
}
group "ABRs_Label_IPv4+VPN_IPv4" {
peer-as 64496
family {
vpn-ipv4 true
label-ipv4 true
}
}
neighbor "192.0.2.2" {
group "ABRs_Label_IPv4+VPN_IPv4"
}
Configuring address family label-ipv4 implies that all advertised IPv4 prefixes are sent to the remote BGP peer as an RFC 3107 formatted label. The next-hop-self command only applies to labeled IPv4 prefixes, not to VPN-IPv4.
The BGP sessions can be shown with the following command:
[/]
A:admin@P-3# show router bgp summary all
===============================================================================
BGP Summary
===============================================================================
Legend : D - Dynamic Neighbor
===============================================================================
Neighbor
Description
ServiceId AS PktRcvd InQ Up/Down State|Rcv/Act/Sent (Addr Family)
PktSent OutQ
-------------------------------------------------------------------------------
192.0.2.2
ABR-2
Def. Inst 64496 6 0 00h00m32s 0/0/0 (VpnIPv4)
4 0 0/0/0 (Lbl-IPv4)
192.0.2.4
ABR-4
Def. Inst 64496 3 0 00h00m23s 0/0/0 (VpnIPv4)
3 0 0/0/0 (Lbl-IPv4)
-------------------------------------------------------------------------------
[/]
A:admin@AN-1# show router bgp summary all
===============================================================================
BGP Summary
===============================================================================
Legend : D - Dynamic Neighbor
===============================================================================
Neighbor
Description
ServiceId AS PktRcvd InQ Up/Down State|Rcv/Act/Sent (Addr Family)
PktSent OutQ
-------------------------------------------------------------------------------
192.0.2.2
Def. Inst 64496 6 0 00h00m38s 0/0/0 (VpnIPv4)
6 0 0/0/0 (Lbl-IPv4)
-------------------------------------------------------------------------------
Export policies for BGP
A policy is required on the ANs to advertise the system IP address in labeled BGP toward the ABRs. The same policy is required on the ABRs to advertise their system IP address in labeled BGP toward the core and the AN.
Policy configuration on ANs and ABRs
# on AN-1 and ABR-2:
configure exclusive
policy-options {
prefix-list "system" {
prefix 192.0.2.1/32 type exact {
}
}
policy-statement "export-system" {
entry 10 {
from {
prefix-list ["system"]
protocol {
name [direct]
}
}
action {
action-type accept
}
}
}
This export policy must be applied in the bgp context on AN-1: either in the general settings or per group or per neighbor, as follows:
# on AN-1:
configure exclusive
router "Base" {
bgp {
group "ABRs_Label_IPv4+VPN_IPv4" {
export {
policy ["export-system"]
}
}
The same export policy is applied in the group "core" on ABR-2, as follows:
# on ABR-2:
configure exclusive
router "Base" {
bgp {
group "core" {
export {
policy ["export-system"]
}
}
A similar export policy is defined to export prefix 192.0.2.5 from AN-5 to ABR-4 and from ABR-4 to the RR in the core network, P-3.
The prefix of the remote AN is added to the routing table in AN-1 and services can be configured in the ANs. No service configuration is required in the transit nodes.
[/]
A:admin@AN-1# show router route-table
===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.2.1/32 Local Local 00h05m09s 0
system 0
192.0.2.2/32 Remote ISIS(1) 00h04m57s 18
192.168.12.2 10
192.0.2.5/32 Remote BGP_LABEL 00h00m25s 170
192.0.2.2 (tunneled) 10
192.168.12.0/30 Local Local 00h05m09s 0
int-AN-1-ABR-2 0
-------------------------------------------------------------------------------
No. of Routes: 4
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
Configure SDP and Epipe
An end-to-end Epipe service is established between AN-1 and AN-5, as shown in End-to-End Epipe service.
The SDP is configured on AN-1 and AN-5, as follows:
# on AN-1:
configure exclusive
service {
sdp 15 {
admin-state enable
delivery-type mpls
bgp-tunnel true
far-end {
ip-address 192.0.2.5
}
}
# on AN-5:
configure exclusive
service {
sdp 51 {
admin-state enable
delivery-type mpls
bgp-tunnel true
far-end {
ip-address 192.0.2.1
}
}
Epipe 1 is configured on AN-1 and AN-5, as follows:
# on AN-1:
configure exclusive
service {
epipe "Epipe 1" {
admin-state enable
service-id 1
customer "1"
spoke-sdp 15:1 {
}
sap 1/1/c1/3:1 {
}
}
# on AN-5:
configure exclusive
service {
epipe "Epipe 1" {
admin-state enable
service-id 1
customer "1"
spoke-sdp 51:1 {
}
sap 1/1/c1/3:1 {
}
}
The state of the SDP and of the Epipe service can be verified on AN-1, as follows:
[/]
A:admin@AN-1# show service sdp
============================================================================
Services: Service Destination Points
============================================================================
SdpId AdmMTU OprMTU Far End Adm Opr Del LSP Sig
----------------------------------------------------------------------------
15 0 1552 192.0.2.5 Up Up MPLS B TLDP
----------------------------------------------------------------------------
Number of SDPs : 1
----------------------------------------------------------------------------
Legend: R = RSVP, L = LDP, B = BGP, M = MPLS-TP, n/a = Not Applicable
I = SR-ISIS, O = SR-OSPF, T = SR-TE, F = FPE
============================================================================
[/]
A:admin@AN-1# show service id 1 base
===============================================================================
Service Basic Information
===============================================================================
Service Id : 1 Vpn Id : 0
Service Type : Epipe
---snip---
Admin State : Up Oper State : Up
---snip---
-------------------------------------------------------------------------------
Service Access & Destination Points
-------------------------------------------------------------------------------
Identifier Type AdmMTU OprMTU Adm Opr
-------------------------------------------------------------------------------
sap:1/1/c1/3:1 q-tag 1518 1518 Up Up
sdp:15:1 S(192.0.2.5) Spok 0 1552 Up Up
===============================================================================
* indicates that the corresponding row element may have been truncated.
The state of the SDP and of the Epipe service can be verified on AN-5, as follows:
[/]
A:admin@AN-5# show service sdp
============================================================================
Services: Service Destination Points
============================================================================
SdpId AdmMTU OprMTU Far End Adm Opr Del LSP Sig
----------------------------------------------------------------------------
51 0 1552 192.0.2.1 Up Up MPLS B TLDP
----------------------------------------------------------------------------
Number of SDPs : 1
----------------------------------------------------------------------------
Legend: R = RSVP, L = LDP, B = BGP, M = MPLS-TP, n/a = Not Applicable
I = SR-ISIS, O = SR-OSPF, T = SR-TE, F = FPE
============================================================================
[/]
A:admin@AN-5# show service id 1 base
===============================================================================
Service Basic Information
===============================================================================
Service Id : 1 Vpn Id : 0
Service Type : Epipe
---snip---
Admin State : Up Oper State : Up
---snip---
-------------------------------------------------------------------------------
Service Access & Destination Points
-------------------------------------------------------------------------------
Identifier Type AdmMTU OprMTU Adm Opr
-------------------------------------------------------------------------------
sap:1/1/c1/3:1 q-tag 1518 1518 Up Up
sdp:51:1 S(192.0.2.1) Spok 0 1552 Up Up
===============================================================================
* indicates that the corresponding row element may have been truncated.
Configure VPRN
An L3 VPN service is established on AN-1 and AN-5, as shown in L3 VPN service.
The VPRN service is configured on AN-1 and AN-5, as follows. For simplicity, no CEs are attached to the ANs and only one loopback is created for verification.
# on AN-1:
configure exclusive
service {
vprn "VPRN 2" {
admin-state enable
service-id 2
customer "1"
bgp-ipvpn {
mpls {
admin-state enable
route-distinguisher "64496:2"
vrf-target {
community "target:64496:2"
}
auto-bind-tunnel {
resolution any
}
}
}
interface "loopback" {
loopback true
ipv4 {
primary {
address 192.0.1.1
prefix-length 32
}
}
}
# on AN-5:
configure exclusive
service {
vprn "VPRN 2" {
admin-state enable
service-id 2
customer "1"
bgp-ipvpn {
mpls {
admin-state enable
route-distinguisher "64496:2"
vrf-target {
community "target:64496:2"
}
auto-bind-tunnel {
resolution any
}
}
}
interface "loopback" {
loopback true
ipv4 {
primary {
address 192.0.1.5
prefix-length 32
}
}
}
The routing table for VPRN 2 contains the local and the remote loopback addresses. On AN-1, this can be verified as follows:
[/]
A:admin@AN-1# show router "2" route-table
===============================================================================
Route Table (Service: 2)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.1.1/32 Local Local 00h02m26s 0
loopback 0
192.0.1.5/32 Remote BGP VPN 00h01m08s 170
192.0.2.5 (tunneled:BGP) 1000
-------------------------------------------------------------------------------
No. of Routes: 2
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
On AN-5, this can be verified as follows:
[/]
A:admin@AN-5# show router "2" route-table
===============================================================================
Route Table (Service: 2)
===============================================================================
Dest Prefix[Flags] Type Proto Age Pref
Next Hop[Interface Name] Metric
-------------------------------------------------------------------------------
192.0.1.1/32 Remote BGP VPN 00h01m31s 170
192.0.2.1 (tunneled:BGP) 1000
192.0.1.5/32 Local Local 00h02m19s 0
loopback 0
-------------------------------------------------------------------------------
No. of Routes: 2
Flags: n = Number of times nexthop is repeated
B = BGP backup route available
L = LFA nexthop available
S = Sticky ECMP requested
===============================================================================
Ping messages can be sent from the loopback address in VPRN 2 on AN-1 to the remote loopback address in VPRN 2 on AN-5, as follows:
[/]
A:admin@AN-1# ping 192.0.1.5 router-instance "VPRN 2"
PING 192.0.1.5 56 data bytes
64 bytes from 192.0.1.5: icmp_seq=1 ttl=64 time=2.69ms.
64 bytes from 192.0.1.5: icmp_seq=2 ttl=64 time=3.18ms.
. 64 bytes from 192.0.1.5: icmp_seq=3 ttl=64 time=2.87ms.
. 64 bytes from 192.0.1.5: icmp_seq=4 ttl=64 time=2.64ms.
. 64 bytes from 192.0.1.5: icmp_seq=5 ttl=64 time=2.36ms.
---- 192.0.1.5 PING Statistics ----
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min = 2.36ms, avg = 2.75ms, max = 3.18ms, stddev = 0.271ms
In a similar way, ping messages are sent from the loopback address in VPRN 2 on AN-5 to the loopback address in VPRN 2 on AN-1, as follows:
[/]
A:admin@AN-5# ping 192.0.1.1 router-instance "VPRN 2"
PING 192.0.1.1 56 data bytes
64 bytes from 192.0.1.1: icmp_seq=1 ttl=64 time=2.05ms.
64 bytes from 192.0.1.1: icmp_seq=2 ttl=64 time=1.82ms.
64 bytes from 192.0.1.1: icmp_seq=3 ttl=64 time=1.92ms.
. 64 bytes from 192.0.1.1: icmp_seq=4 ttl=64 time=1.90ms.
. 64 bytes from 192.0.1.1: icmp_seq=5 ttl=64 time=2.40ms.
---- 192.0.1.1 PING Statistics ----
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min = 1.82ms, avg = 2.02ms, max = 2.40ms, stddev = 0.206ms
Data plane overview
Label stacks for traffic from AN-1 to AN-5 shows the label stacks used for traffic from AN-1 to AN-5. As an example, an Epipe service is used.
The service label added for Epipe 1 on AN-1 for egress traffic to AN-5 is 524282. Ingress traffic on AN-1 has service label 524282. This can be shown as follows:
[/] A:admin@AN-1# show service id 1 labels =============================================================================== Martini Service Labels =============================================================================== Svc Id Sdp Binding Type I.Lbl E.Lbl ------------------------------------------------------------------------------- 1 15:1 Spok 524282 524282 ------------------------------------------------------------------------------- Number of Bound SDPs : 1 ------------------------------------------------------------------------------- ===============================================================================
This service label remains unchanged end-to-end.
On AN-1, the (middle) BGP label for traffic with destination AN-5 is 524282, as follows:
[/] A:admin@AN-1# show router bgp routes 192.0.2.5 label-ipv4 =============================================================================== BGP Router ID:192.0.2.1 AS:64496 Local AS:64496 =============================================================================== Legend - Status codes : u - used, s - suppressed, h - history, d - decayed, * - valid l - leaked, x - stale, > - best, b - backup, p - purge Origin codes : i - IGP, e - EGP, ? - incomplete =============================================================================== BGP LABEL-IPV4 Routes =============================================================================== Flag Network LocalPref MED Nexthop (Router) Path-Id IGP Cost As-Path Label ------------------------------------------------------------------------------- u*>i 192.0.2.5/32 100 None 192.0.2.2 None 10 No As-Path 524282 ------------------------------------------------------------------------------- Routes : 1 ===============================================================================
The next hop is ABR-2. AN-1 pushes the LDP label 524287 to reach ABR-2, as follows:
[/] A:admin@AN-1# show router ldp bindings active prefixes prefix 192.0.2.2/32 =============================================================================== LDP Bindings (IPv4 LSR ID 192.0.2.1) (IPv6 LSR ID ::) =============================================================================== Label Status: U - Label In Use, N - Label Not In Use, W - Label Withdrawn WP - Label Withdraw Pending, BU - Alternate For Fast Re-Route e - Label ELC FEC Flags: LF - Lower FEC, UF - Upper FEC, M - Community Mismatch, BA - ASBR Backup FEC (S) - Static (M) - Multi-homed Secondary Support (B) - BGP Next Hop (BU) - Alternate Next-hop for Fast Re-Route (I) - SR-ISIS Next Hop (O) - SR-OSPF Next Hop (C) - FEC resolved with class-based-forwarding =============================================================================== LDP IPv4 Prefix Bindings (Active) =============================================================================== Prefix Op IngLbl EgrLbl EgrNextHop EgrIf/LspId ------------------------------------------------------------------------------- 192.0.2.2/32 Push -- 524287 192.168.12.2 1/1/c1/1 ------------------------------------------------------------------------------- No. of IPv4 Prefix Active Bindings: 1 ===============================================================================
At ABR-2, the service label 524282 remains unchanged. The LDP label 524287 is popped, as follows:
[/] A:admin@ABR-2# show router ldp bindings active prefixes prefix 192.0.2.2/32 =============================================================================== LDP Bindings (IPv4 LSR ID 192.0.2.2) (IPv6 LSR ID ::) =============================================================================== ---snip--- =============================================================================== LDP IPv4 Prefix Bindings (Active) =============================================================================== Prefix Op IngLbl EgrLbl EgrNextHop EgrIf/LspId ------------------------------------------------------------------------------- 192.0.2.2/32 Pop 524287 -- -- -- ------------------------------------------------------------------------------- No. of IPv4 Prefix Active Bindings: 1 ===============================================================================
On ABR-2, the BGP next hop is ABR-4 for prefix 192.0.2.5, as follows:
[/] A:admin@ABR-2# show router bgp routes 192.0.2.5 label-ipv4 =============================================================================== BGP Router ID:192.0.2.2 AS:64496 Local AS:64496 =============================================================================== Legend - Status codes : u - used, s - suppressed, h - history, d - decayed, * - valid l - leaked, x - stale, > - best, b - backup, p - purge Origin codes : i - IGP, e - EGP, ? - incomplete =============================================================================== BGP LABEL-IPV4 Routes =============================================================================== Flag Network LocalPref MED Nexthop (Router) Path-Id IGP Cost As-Path Label ------------------------------------------------------------------------------- u*>i 192.0.2.5/32 100 None 192.0.2.4 None 20 No As-Path 524282 ------------------------------------------------------------------------------- Routes : 1 ===============================================================================
On ABR-2, the BGP (middle) label 524282 is swapped with (in this case, the same label) 524282 for BGP next hop ABR-4, as follows:
[/] A:admin@ABR-2# show router bgp inter-as-label =============================================================================== BGP Inter-AS labels Flags: B - entry has backup, P - entry is promoted =============================================================================== NextHop Received Advertised Label Label Label Origin ------------------------------------------------------------------------------- 192.0.2.1 524283 524283 Internal 192.0.2.4 524282 524282 Internal ------------------------------------------------------------------------------- Total Labels allocated: 2 ===============================================================================
ABR-2 pushes a new LDP label (524284) to reach the BGP next hop (ABR-4), as follows:
[/] A:admin@ABR-2# show router ldp bindings active prefixes prefix 192.0.2.4/32 =============================================================================== LDP Bindings (IPv4 LSR ID 192.0.2.2) (IPv6 LSR ID ::) =============================================================================== ---snip--- =============================================================================== LDP IPv4 Prefix Bindings (Active) =============================================================================== Prefix Op IngLbl EgrLbl EgrNextHop EgrIf/LspId ------------------------------------------------------------------------------- 192.0.2.4/32 Push -- 524284 192.168.23.2 1/1/c1/1 192.0.2.4/32 Swap 524284 524284 192.168.23.2 1/1/c1/1 ------------------------------------------------------------------------------- No. of IPv4 Prefix Active Bindings: 2 ===============================================================================
At LSR P-3, only an LDP label swap occurs. P-3 swaps LDP label 524284 with 524287, as follows:
[/] A:admin@P-3# show router ldp bindings active prefixes prefix 192.0.2.4/32 =============================================================================== LDP Bindings (IPv4 LSR ID 192.0.2.3) (IPv6 LSR ID ::) =============================================================================== ---snip--- =============================================================================== LDP IPv4 Prefix Bindings (Active) =============================================================================== Prefix Op IngLbl EgrLbl EgrNextHop EgrIf/LspId ------------------------------------------------------------------------------- 192.0.2.4/32 Push -- 524287 192.168.34.2 1/1/c1/1 192.0.2.4/32 Swap 524284 524287 192.168.34.2 1/1/c1/1 ------------------------------------------------------------------------------- No. of IPv4 Prefix Active Bindings: 2 ===============================================================================
At ABR-4, LDP label 524287 is popped and BGP label 524282 is swapped to label 524283, as follows:
[/] A:admin@ABR-4# show router bgp inter-as-label =============================================================================== BGP Inter-AS labels Flags: B - entry has backup, P - entry is promoted =============================================================================== NextHop Received Advertised Label Label Label Origin ------------------------------------------------------------------------------- 192.0.2.2 524283 524283 Internal 192.0.2.5 524283 524282 Internal ------------------------------------------------------------------------------- Total Labels allocated: 2 ===============================================================================
ABR-4 pushes a new LDP label 524287 to reach AN-5, as follows:
[/] A:admin@ABR-4# show router ldp bindings active prefixes prefix 192.0.2.5/32 =============================================================================== LDP Bindings (IPv4 LSR ID 192.0.2.4) (IPv6 LSR ID ::) =============================================================================== ---snip--- =============================================================================== LDP IPv4 Prefix Bindings (Active) =============================================================================== Prefix Op IngLbl EgrLbl EgrNextHop EgrIf/LspId ------------------------------------------------------------------------------- 192.0.2.5/32 Push -- 524287 192.168.45.2 1/1/c1/1 192.0.2.5/32 Swap 524284 524287 192.168.45.2 1/1/c1/1 ------------------------------------------------------------------------------- No. of IPv4 Prefix Active Bindings: 2 ===============================================================================
Finally, at AN-5, all labels in the stack are popped. The LDP label 524287 is popped as follows:
[/] A:admin@AN-5# show router ldp bindings active prefixes prefix 192.0.2.5/32 =============================================================================== LDP Bindings (IPv4 LSR ID 192.0.2.5) (IPv6 LSR ID ::) =============================================================================== ---snip--- =============================================================================== LDP IPv4 Prefix Bindings (Active) =============================================================================== Prefix Op IngLbl EgrLbl EgrNextHop EgrIf/LspId ------------------------------------------------------------------------------- 192.0.2.5/32 Pop 524287 -- -- -- ------------------------------------------------------------------------------- No. of IPv4 Prefix Active Bindings: 1 ===============================================================================
The BGP (middle) label 524283 is popped.
[/] A:admin@AN-5# show router bgp inter-as-label =============================================================================== BGP Inter-AS labels Flags: B - entry has backup, P - entry is promoted =============================================================================== NextHop Received Advertised Label Label Label Origin ------------------------------------------------------------------------------- 0.0.0.0 0 524283 Edge ------------------------------------------------------------------------------- Total Labels allocated: 1 ===============================================================================
The ingress service label 524282 is popped, as follows:
[/] A:admin@AN-5# show service id 1 labels =============================================================================== Martini Service Labels =============================================================================== Svc Id Sdp Binding Type I.Lbl E.Lbl ------------------------------------------------------------------------------- 1 51:1 Spok 524282 524282 ------------------------------------------------------------------------------- Number of Bound SDPs : 1 ------------------------------------------------------------------------------- ===============================================================================
OAM
The following Operations, Administration, and Maintenance (OAM) commands can be launched to validate reachability between regions using BGP labeled IPv4 routes.
[/]
A:admin@AN-1# oam lsp-ping bgp-label prefix 192.0.2.5/32
LSP-PING 192.0.2.5/32: 80 bytes MPLS payload
Seq=1, send from intf int-AN-1-ABR-2, reply from 192.0.2.5
udp-data-len=32 ttl=255 rtt=2.63ms rc=3 (EgressRtr)
---- LSP 192.0.2.5/32 PING Statistics ----
1 packet sent, 1 packet received, 0.00% packet loss
round-trip min = 2.63ms, avg = 2.63ms, max = 2.63ms, stddev = 0.000ms
[/]
A:admin@AN-5# oam lsp-ping bgp-label prefix 192.0.2.1/32
LSP-PING 192.0.2.1/32: 80 bytes MPLS payload
Seq=1, send from intf int-AN-5-ABR-4, reply from 192.0.2.1
udp-data-len=32 ttl=255 rtt=3.84ms rc=3 (EgressRtr)
---- LSP 192.0.2.1/32 PING Statistics ----
1 packet sent, 1 packet received, 0.00% packet loss
round-trip min = 3.84ms, avg = 3.84ms, max = 3.84ms, stddev = 0.000ms
In a similar way, LSP trace can validate the reachability of the remote AN, as follows:
[/]
A:admin@AN-1# oam lsp-trace bgp-label prefix 192.0.2.5/32 output-format detail
lsp-trace to 192.0.2.5/32: 1 hops min, 30 hops max, 104 byte packets
0 192.0.2.1
DS 1: ipaddr=192.168.12.2 ifaddr=192.168.12.2 iftype=ipv4Numbered MRU=1560
label[1]=524282 protocol=2(BGP)
1 192.0.2.2 rtt=1.18ms rc=8(DSRtrMatchLabel) rsc=1
DS 1: ipaddr=192.168.23.2 ifaddr=192.168.23.2 iftype=ipv4Numbered MRU=1560
label[1]=524282 protocol=2(BGP).
2 192.0.2.4 rtt=2.03ms rc=8(DSRtrMatchLabel).
3 192.0.2.5 rtt=2.26ms rc=3(EgressRtr) rsc=1
[/]
A:admin@AN-5# oam lsp-trace bgp-label prefix 192.0.2.1/32 output-format detail
lsp-trace to 192.0.2.1/32: 1 hops min, 30 hops max, 104 byte packets
0 192.0.2.5
DS 1: ipaddr=192.168.45.1 ifaddr=192.168.45.1 iftype=ipv4Numbered MRU=1560
label[1]=524283 protocol=2(BGP)
1 192.0.2.4 rtt=1.06ms rc=8(DSRtrMatchLabel) rsc=1
DS 1: ipaddr=192.168.34.1 ifaddr=192.168.34.1 iftype=ipv4Numbered MRU=1560
label[1]=524283 protocol=2(BGP).
2 192.0.2.2 rtt=1.54ms rc=8(DSRtrMatchLabel).
3 192.0.2.1 rtt=1.88ms rc=3(EgressRtr) rsc=1
Conclusion
Seamless MPLS helps to solve the scalability problems of large networks. Seamless MPLS partitions the core, aggregation, and access networks into isolated IGP/LDP domains, which helps to maintain IGP databases small and controlled. Labeled BGP allows the establishment of hierarchical LSPs for end-to-end service set up.