Configuring Seamless MPLS

Information about Seamless MPLS

The following sections provide information about Seamless MPLS.

Overview of Seamless MPLS

Seamless MPLS provides a highly flexible and scalable architecture to integrate multiple networks into a single MPLS domain. It is based on existing and well known protocols.

A large MPLS network can have several types of platforms and services in different parts of the network. Such a network would usually be divided into areas such as a core area and aggregation areas, and each of these areas have different Interior Gateway Protocols (IGPs). The IGP prefixes from one area cannot be distributed to another area. If the IGP prefixes cannot be distributed, then end-to-end Label-Switched-Paths (LSP) cannot be established. This affects the scalability of the network.

Seamless MPLS introduces greater scalability by establishing end-to-end LSPs. Seamless MPLS uses the Border Gateway Protocol (BGP) instead of IGP to forward the loopback prefixes of the Provider Edge (PE) routers. BGP distributes the prefixes end-to-end. This eliminates the need to install IGP prefixes of one domain in another domain.

Seamless MPLS introduces separation of the service and transport planes and provides end to end service independent transport. It removes the need for service specific configurations in network transport nodes.

Architecture for Seamless MPLS

The figure shows a network with three different areas: one core and two aggregation areas on the side. Each area runs its own IGP, with no redistribution between them on the Area Border Router (ABR). Use of BGP is needed in order to provide an end-to-end MPLS LSP. BGP advertises the loopbacks of the PE routers with a label across the whole domain, and provides an end-to-end LSP. BGP is deployed between the PEs and ABRs.

Seamless MPLs uses BGP to provide an end-to-end MPLS LSP. BGP is deployed between the PEs and the ABRs. BGP sends the IPv4 prefix and label. BGP advertises the loopbacks of the PE routers with a label across the whole domain and provides an end-to-end LSP.

When using IGP in the network, the next-hop address of the prefixes is the loopback prefix of the PE routers. This prefix is not known to the IGP being used in other parts of the network. The next hop address cannot be used to recurse to an IGP prefix. To avoid this the prefixes are carried in BGP. The ABRs are configured as Route Reflectors (RR). And the RRs are configured to set the next hop to self even for the reflected iBGP prefixes.

There are two possible scenarios.

  • The ABR does not set the next hop to self for the prefixes advertised (reflected by BGP) by the ABR into the aggregation part of the network. The ABR needs to redistribute the loopback prefixes of the ABRs from the core IGP into the aggregation IGP. Only the ABR loopback prefixes (from the core) need to be advertised into the aggregation part, not the loopback prefixes from the PE routers from the remote aggregation parts.

  • The ABR sets the next hop to self for the prefixes advertised (reflected by BGP) by the ABR into the aggregation part. Because of this, the ABR does not need to redistribute the loopback prefixes of the ABRs from the core IGP into the aggregation IGP.

In both scenarios, the ABR sets the next hop to self for the prefixes advertised (reflected by BGP) by the ABR from the aggregation part of the network into the core part.

How to configure Seamless MPLs

The following sections provide information on how to configure Seamless MPLS.

Configuring Seamless MPLS on the PE Router

The following steps can be used to configure Seamless MPLS on the PE Router

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. interface loopback slot/port
  4. ip address ip-address subnet-mask
  5. interface ethernet slot/port
  6. no ip address
  7. xconnect peer-ip-address vcid encapsulation mpls
  8. router ospf process-id
  9. network ip-address wild-mask area area-id
  10. network ip-address wild-mask area area-id
  11. router bgp autonomous-system-number
  12. bgp log neighbor changes
  13. address-family ipv4
  14. network network-number mask network-mask
  15. no bgp default ipv4 unicast
  16. no bgp default route-target filter
  17. neighbor ip-address remote-as autonomous-system-number
  18. neighbor ip-address update-source interface-type interface-number
  19. neighbor ip-address send-label

DETAILED STEPS

  Command or Action Purpose

Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:


Device# configure terminal

Enters global configuration mode.

Step 3

interface loopback slot/port

Example:

Device(config-if)# interface Loopback0

Configures a Loopback interface and enters interface configuration mode.

Step 4

ip address ip-address subnet-mask

Example:

Device(config-if)ip address 10.100.1.4 255.255.255.255

Enters the IP address for the interface.

Step 5

interface ethernet slot/port

Example:

Device(config-if)# interface Ethernet1/0

Configures an Ethernet interface and enters interface configuration mode.

Step 6

no ip address

Example:

Device(config-if)# no ip address

Removes an IP address definition.

Step 7

xconnect peer-ip-address vcid encapsulation mpls

Example:

Device(config-if)# xconnect 10.100.1.5 100 encapsulation mpls

Specifies MPLS as the tunneling method to encapsulate.

Step 8

router ospf process-id

Example:

Device(config)# router ospf 2

Configures the OSPF routing process.

Step 9

network ip-address wild-mask area area-id

Example:

Device(config-router)# network 10.2.0.0 0.0.255.255 area 0

Defines the interfaces on which OSPF runs and defines the area ID for those interfaces.

Step 10

network ip-address wild-mask area area-id

Example:

Device(config-router)# network 10.100.1.4 0.0.0.0 area 0

Defines the interfaces on which OSPF runs and defines the area ID for those interfaces.

Step 11

router bgp autonomous-system-number

Example:

Device(config)# router bgp 1

Configures the BGP routing process.

Step 12

bgp log neighbor changes

Example:

Device(config-router)# bgp log neighbor changes

Enables logging of BGP neighbor resets.

Step 13

address-family ipv4

Example:

Device(config-router)# address-family ipv4

Enters address family configuration mode.

Step 14

network network-number mask network-mask

Example:

Device(config-router-af)# network 10.100.1.4 mask 255.255.255.255

Specifies the networks to be advertised by BGP and multiprotocol BGP routing processes.

Step 15

no bgp default ipv4 unicast

Example:

Device(config-router-af)# no bgp default ipv4 unicast

Disables default IPv4 unicast address family for peering session establishment

Step 16

no bgp default route-target filter

Example:

Device(config-router-af)# no bgp default route-target filter

Disables automatic BGP route-target community filtering.

Step 17

neighbor ip-address remote-as autonomous-system-number

Example:

Device(config-router-af)# neighbor 10.100.1.1 remote-as 1

Adds an entry to the BGP or multiprotocol BGP neighbor table.

Step 18

neighbor ip-address update-source interface-type interface-number

Example:

Device(config-router-af)# neighbor 10.100.1.1 update-source Loopback0

Allows BGP sessions to use any operational interface for TCP connections.

Step 19

neighbor ip-address send-label

Example:

Device(config-router-af)# neighbor 10.100.1.1 send-label

Enables a BGP router to send MPLS labels with BGP routes to a neighboring BGP router.

Configuring Seamless MPLS on the Route Reflector

The following steps can be used to configure Seamless MPLS on the Route Reflector.

SUMMARY STEPS

  1. enable
  2. configure terminal
  3. interface loopback slot/port
  4. ip address ip-address subnet-mask
  5. router ospf process-id
  6. network ip-address wild-mask area area-id
  7. network ip-address wild-mask area area-id
  8. exit
  9. router ospf process-id
  10. redistribute ospf instance-tag route-map map-name
  11. network ip-address wild-mask area area-id
  12. exit
  13. router bgp autonomous-system-number
  14. bgp log neighbor changes
  15. address-family ipv4
  16. neighbor ip-address remote-as autonomous-system-number
  17. neighbor ip-address update-source interface-type interface-number
  18. neighbor ip-address next-hop-self all
  19. neighbor ip-address send-label
  20. neighbor ip-address remote-as autonomous-system-number
  21. neighbor ip-address update-source interface-type interface-number
  22. neighbor ip-address route-reflector-client
  23. neighbor ip-address next-hop-self all
  24. neighbor ip-address send-label
  25. exit
  26. ip prefix-list name seq number permit prefix
  27. route-map name permit sequence-number
  28. match ip address prefix-list prefix-list-name

DETAILED STEPS

  Command or Action Purpose

Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:


Device# configure terminal

Enters global configuration mode.

Step 3

interface loopback slot/port

Example:

Device(config-if)# interface Loopback0

Configures a Loopback interface and enters interface configuration mode.

Step 4

ip address ip-address subnet-mask

Example:

Device(config-if)# ip address 10.100.1.1 255.255.255.255

Enters the IP address for the interface.

Step 5

router ospf process-id

Example:

Device(config)# router ospf 1

Configures the OSPF routing process.

Step 6

network ip-address wild-mask area area-id

Example:

Device(config-router)# network 10.1.0.0 0.0.255.255 area 0

Defines the interfaces on which OSPF runs and defines the area ID for those interfaces.

Step 7

network ip-address wild-mask area area-id

Example:

Device(config-router)# 10.100.1.1 0.0.0.0 area 0

Defines the interfaces on which OSPF runs and defines the area ID for those interfaces.

Step 8

exit

Example:

Device(config-router)#exit

Exits the configuration mode.

Step 9

router ospf process-id

Example:

Device(config)# router ospf 2

Configures the OSPF routing process.

Step 10

redistribute ospf instance-tag route-map map-name

Example:

Device(config-router)# redistribute ospf 1 subnets match internal route-map ospf1-into-ospf2

Injects routes from one routing domain into OSPF.

Step 11

network ip-address wild-mask area area-id

Example:

Device(config-router)# network 10.2.0.0 0.0.255.255 area 0

Defines the interfaces on which OSPF runs and defines the area ID for those interfaces.

Step 12

exit

Example:

Device(config-router)#exit

Exits the configuration mode.

Step 13

router bgp autonomous-system-number

Example:

Device(config)# router bgp 1

Configures the BGP routing process.

Step 14

bgp log neighbor changes

Example:

Device(config-router)# bgp log neighbor changes

Enables logging of BGP neighbor resets.

Step 15

address-family ipv4

Example:

Device(config-router)# address family ipv4

Enters address family configuration mode.

Step 16

neighbor ip-address remote-as autonomous-system-number

Example:

Device(config-route-af)# neighbor 10.100.1.2 remote-as 1

Adds an entry to the BGP or multiprotocol BGP neighbor table.

Step 17

neighbor ip-address update-source interface-type interface-number

Example:

Device(config-router-af)# neighbor 10.100.1.2 update-source Loopback0

Allows BGP sessions to use any operational interface for TCP connections.

Step 18

neighbor ip-address next-hop-self all

Example:

Device(config-router-af)# neighbor 10.100.1.2 next-hop-self all

Configures a router as the next hop for a BGP-speaking neighbor or peer group.

Step 19

neighbor ip-address send-label

Example:

Device(config-router-af)# neighbor 10.100.1.2  send-label

Enables a BGP router to send MPLS labels with BGP routes to a neighboring BGP router.

Step 20

neighbor ip-address remote-as autonomous-system-number

Example:

Device(config-router-af)# neighbor 10.100.1.4 remote-as 1

Adds an entry to the BGP or multiprotocol BGP neighbor table.

Step 21

neighbor ip-address update-source interface-type interface-number

Example:

Device(config-router-af)# neighbor 10.100.1.4 update-source Loopback0

Allows BGP sessions to use any operational interface for TCP connections.

Step 22

neighbor ip-address route-reflector-client

Example:

Device(config_router-af)# neighbor 10.100.1.4 route-reflector-client

Configures the router as a BGP route reflector and configure the specified neighbor as its client.

Step 23

neighbor ip-address next-hop-self all

Example:

Device(config-router-af)# neighbor 10.100.1.4 next-hop-self all

Configures a router as the next hop for a BGP-speaking neighbor or peer group.

Step 24

neighbor ip-address send-label

Example:

Device(config-router-af)# neighbor 10.100.1.4 send-label

Enables a BGP router to send MPLS labels with BGP routes to a neighboring BGP router.

Step 25

exit

Example:

Device(config-router)#exit

Exits the configuration mode.

Step 26

ip prefix-list name seq number permit prefix

Example:

Device(config)# ip prefix-list prefix-list-ospf1-into-ospf2 seq 5 permit 10.100.1.1/32

Creates a prefix list to match IP packets or routes against.

Step 27

route-map name permit sequence-number

Example:

Device(config)# route-map ospf1-into-ospf2 permit 10

Creates the route map entry. Enters route-map configuration mode.

Step 28

match ip address prefix-list prefix-list-name

Example:

Device(config-route-map)# match ip address prefix-list prefix-list-ospf1-into-ospf2

Distributes routes that have a destination IP network number address that is permitted by a prefix list.

Configuration Examples for Seamless MPLS

The following sections provide examples for configuring Seamless MPLS.

Example: Configuring Seamless MPLS on PE Router 1

The following example shows how to configure Seamless MPLS on PE router 1.

Device(config-if)#interface Loopback0
 Device(config-if)#ip address 10.100.1.4 255.255.255.255
!
Device(config-if)# interface Ethernet1/0
Device(config-if)# no ip address
Device(config-if)# xconnect 10.100.1.5 100 encapsulation mpls
!
Device(config)# router ospf 2
Device(config-router)# network 10.2.0.0 0.0.255.255 area 0
Device(config-router)# network 10.100.1.4 0.0.0.0 area 0
!
Device(config)#router bgp 1
Device(config-router)# bgp log-neighbor-changes
Device(config-router)# address family ipv4
Device(config-router-af)# network 10.100.1.4 mask 255.255.255.255
Device(config-router-af)# no bgp default ipv4 unicast
Device(config-router-af)# no bgp default route-target filter
Device(config-router-af)# neighbor 10.100.1.1 remote-as 1
Device(config-router-af)# neighbor 10.100.1.1 update-source Loopback0
Device(config-router-af)# neighbor 10.100.1.1 send-label

Example: Configuring Seamless MPLS on Route Reflector 1

The following examples shows how to configure Seamless MPLS on route reflector 1.

Device(cofig-if)# interface Loopback0
Device(cofig-if)# ip address 10.100.1.1 255.255.255.255
Device(config)# router ospf 1
Device(config-router)# network 10.1.0.0 0.0.255.255 area 0
Device(config-router)# network 10.100.1.1 0.0.0.0 area 0
!
Device(config)# router ospf 2
Device(config-router)# redistribute ospf 1 subnets match internal route-map ospf1-into-ospf2
Device(config-router)# network 10.2.0.0 0.0.255.255 area 0
!
Device(config)# router bgp 1
Device(config-router)# bgp log-neighbor-changes
Device(config-router)# address family ipv4
Device(config-router-af)# neighbor 10.100.1.2 remote-as 1
Device(config-router-af)# neighbor 10.100.1.2 update-source Loopback0
Device(config-router-af)# neighbor 10.100.1.2 next-hop-self all
Device(config-router-af)# neighbor 10.100.1.2 send-label
Device(config-router-af)# neighbor 10.100.1.4 remote-as 1
Device(config-router-af)# neighbor 10.100.1.4 update-source Loopback0
Device(config-router-af)# neighbor 10.100.1.4 route-reflector-client
Device(config-router-af)# neighbor 10.100.1.4 next-hop-self all
Device(config-router-af)# neighbor 10.100.1.4 send-label

Device(config)# ip prefix-list prefix-list-ospf1-into-ospf2 seq 5 permit 10.100.1.1/32

Device(config)# route-map ospf1-into-ospf2 permit 10
Device(conifg-route-mao)# match ip address prefix-list prefix-list-ospf1-into-ospf2

Example: Configuring Seamless MPLS on PE Router 2

The following example shows how to configure Seamless MPLS on PE router 2.

Device(config-if)#interface Loopback0
 Device(config-if)#ip address 10.100.1.5 255.255.255.255
!
Device(config-if)# interface Ethernet1/0
Device(config-if)# no ip address
Device(config-if)# xconnect 10.100.1.4 100 encapsulation mpls
!
Device(config)# router ospf 3
Device(config-router)# network 10.3.0.0 0.0.255.255 area 0
Device(config-router)# network 10.100.1.5 0.0.0.0 area 0
!
Device(config)#router bgp 1
Device(config-router)# bgp log-neighbor-changes
Device(config-router)# address family ipv4
Device(config-router-af)# network 10.100.1.5 mask 255.255.255.255
Device(config-router-af)# no bgp default ipv4 unicast
Device(config-router-af)# no bgp default route-target filter
Device(config-router-af)# neighbor 10.100.1.2 remote-as 1
Device(config-router-af)# neighbor 10.100.1.2 update-source Loopback0
Device(config-router-af)# neighbor 10.100.1.2 send-label

Example: Configuring Seamless MPLS on Route Reflector 2

The following examples shows how to configure Seamless MPLS on route reflector 2.

Device(cofig-if)# interface Loopback0
Device(cofig-if)# ip address 10.100.1.2 255.255.255.255
Device(config)# router ospf 1
Device(config-router)# network 10.1.0.0 0.0.255.255 area 0
Device(config-router)# network 10.100.1.2 0.0.0.0 area 0
!
Device(config)# router ospf 3
Device(config-router)# redistribute ospf 1 subnets match internal route-map ospf1-into-ospf3
Device(config-router)# network 10.3.0.0 0.0.255.255 area 0
!
Device(config)# router bgp 1
Device(config-router)# bgp log-neighbor-changes
Device(config-router)# address family ipv4
Device(config-router-af)# neighbor 10.100.1.1 remote-as 1
Device(config-router-af)# neighbor 10.100.1.1 update-source Loopback0
Device(config-router-af)# neighbor 10.100.1.1 next-hop-self all
Device(config-router-af)# neighbor 10.100.1.1  send-label
Device(config-router-af)# neighbor 10.100.1.5 remote-as 1
Device(config-router-af)# neighbor 10.100.1.5 update-source Loopback0
Device(config-router-af)# neighbor 10.100.1.5 route-reflector-client
Device(config-router-af)# neighbor 10.100.1.5 next-hop-self all
Device(config-router-af)# neighbor 10.100.1.5 send-label

Device(config)# ip prefix-list prefix-list-ospf1-into-ospf3 seq 5 permit 10.100.1.1/32

Device(config)# route-map ospf1-into-ospf3 permit 10
Device(conifg-route-mao)# match ip address prefix-list prefix-list-ospf1-into-ospf3

Feature History for Seamless MPLS

This table provides release and related information for features explained in this module.

These features are available on all releases subsequent to the one they were introduced in, unless noted otherwise.

Release

Feature

Feature Information

Cisco IOS XE Gibraltar 16.12.1

Seamless MPLS

Seamless MPLS provides a highly flexible and scalable architecture to integrate multiple networks into a single MPLS domain. It is based on existing and well known protocols.

Use Cisco Feature Navigator to find information about platform and software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn.