Este documento descreve a finalidade do Unified Multiprotocol Label Switching (MPLS) e fornece um exemplo de configuração.
Não existem requisitos específicos para este documento.
Este documento não se restringe a versões de software e hardware específicas.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
A finalidade do Unified MPLS é dimensionar. Para escalar uma rede MPLS, onde há diferentes tipos de plataformas e serviços em partes da rede, faz sentido dividir a rede em áreas diferentes. Um projeto típico apresenta uma hierarquia que tem um núcleo no centro com agregação no lado. Para dimensionar, pode haver diferentes IGPs (Interior Gateway Protocols) no núcleo versus a agregação. Para dimensionar, você não pode distribuir os prefixos IGP de um IGP para o outro. Se você não distribuir os prefixos IGP de um IGP para o outro IGP, os Caminhos de Rótulo Comutado (LSPs - Label-Switched Paths) de ponta a ponta não serão possíveis.
Para fornecer os serviços MPLS de ponta a ponta, você precisa que o LSP seja de ponta a ponta. O objetivo é manter os serviços MPLS (VPN MPLS, L2VPN MPLS) como eles são, mas introduzir maior escalabilidade. Para fazer isso, mova alguns dos prefixos IGP para o Border Gateway Protocol (BGP) (os prefixos de loopback dos roteadores Provider Edge (PE)), que distribui os prefixos fim-a-fim.
A Figura 1 mostra uma rede com três áreas diferentes: uma área central e duas áreas de agregação no lado. Cada área executa seu próprio IGP, sem redistribuição entre eles no roteador de borda de área (ABR). O uso do BGP é necessário para fornecer um LSP MPLS fim-a-fim. O BGP anuncia os loopbacks dos roteadores PE com um rótulo em todo o domínio e fornece um LSP de ponta a ponta. O BGP é implantado entre os PEs e ABRs com RFC 3107, o que significa que o BGP envia o prefixo IPv4 + rótulo (AFI/SAFI 1/4).
Como as partes de núcleo e agregação da rede são integradas e LSPs de ponta a ponta são fornecidos, a solução Unified MPLS também é conhecida como "MPLS sem falhas".
Novas tecnologias ou protocolos não são usados aqui, somente MPLS, Label Distribution Protocol (LDP), IGP e BGP. Como você não deseja distribuir os prefixos de loopback dos roteadores PE de uma parte da rede para outra parte, você precisa carregar os prefixos no BGP. O iBGP (Internal Border Gateway Protocol) é usado em uma rede, portanto, o endereço do próximo salto dos prefixos são os prefixos de loopback dos roteadores PE, que não são conhecidos pelo IGP nas outras partes da rede. Isso significa que o endereço do próximo salto não pode ser usado para recursar a um prefixo IGP. O truque é fazer os Refletores de Rota (RR - Route Reflectors) dos roteadores ABR e definir o próximo salto como auto, mesmo para os prefixos iBGP refletidos. Para que isso funcione, é necessário um novo botão.
Somente os RR precisam de software mais novo para suportar essa arquitetura. Como os RR anunciam os prefixos BGP com o próximo salto definido para eles mesmos, eles atribuem um rótulo MPLS local aos prefixos BGP. Isso significa que no plano de dados, os pacotes encaminhados nesses LSPs de ponta a ponta têm um rótulo MPLS extra na pilha de rótulos. Os RR estão no caminho de encaminhamento.
Há dois cenários possíveis:
Em ambos os cenários, o ABR define o próximo salto para auto dos prefixos anunciados (refletidos pelo BGP) pelo ABR da parte de agregação da rede na parte central. Se isso não for feito, o ABR precisará redistribuir os prefixos de loopback dos PEs do IGP de agregação no IGP de núcleo. Se isso for feito, não há escalabilidade.
Para definir o salto seguinte como auto para rotas iBGP refletidas, você deve configurar o comando neighbor x.x.x.x next-hop-self all.
Essa é a configuração dos roteadores PE e ABRs para o cenário 2.
PE1
interface Loopback0
ip address 10.100.1.4 255.255.255.255
!
interface Ethernet1/0
no ip address
xconnect 10.100.1.5 100 encapsulation mpls
!
router ospf 2
network 10.2.0.0 0.0.255.255 area 0
network 10.100.1.4 0.0.0.0 area 0
!
router bgp 1
bgp log-neighbor-changes
network 10.100.1.4 mask 255.255.255.255
neighbor 10.100.1.1 remote-as 1
neighbor 10.100.1.1 update-source Loopback0
neighbor 10.100.1.1 send-label
RR1
interface Loopback0
ip address 10.100.1.1 255.255.255.255
router ospf 1
network 10.1.0.0 0.0.255.255 area 0
network 10.100.1.1 0.0.0.0 area 0
!
router ospf 2
redistribute ospf 1 subnets match internal route-map ospf1-into-ospf2
network 10.2.0.0 0.0.255.255 area 0
!
router bgp 1
bgp log-neighbor-changes
neighbor 10.100.1.2 remote-as 1
neighbor 10.100.1.2 update-source Loopback0
neighbor 10.100.1.2 next-hop-self all
neighbor 10.100.1.2 send-label
neighbor 10.100.1.4 remote-as 1
neighbor 10.100.1.4 update-source Loopback0
neighbor 10.100.1.4 route-reflector-client
neighbor 10.100.1.4 next-hop-self all
neighbor 10.100.1.4 send-label
ip prefix-list prefix-list-ospf1-into-ospf2 seq 5 permit 10.100.1.1/32
route-map ospf1-into-ospf2 permit 10
match ip address prefix-list prefix-list-ospf1-into-ospf2
RR2
interface Loopback0
ip address 10.100.1.2 255.255.255.255
router ospf 1
network 10.1.0.0 0.0.255.255 area 0
network 10.100.1.2 0.0.0.0 area 0
!
router ospf 3
redistribute ospf 1 subnets match internal route-map ospf1-into-ospf3
network 10.3.0.0 0.0.255.255 area 0
!
router bgp 1
bgp log-neighbor-changes
neighbor 10.100.1.1 remote-as 1
neighbor 10.100.1.1 update-source Loopback0
neighbor 10.100.1.1 next-hop-self all
neighbor 10.100.1.1 send-label
neighbor 10.100.1.5 remote-as 1
neighbor 10.100.1.5 update-source Loopback0
neighbor 10.100.1.5 route-reflector-client
neighbor 10.100.1.5 next-hop-self all
neighbor 10.100.1.5 send-label
ip prefix-list prefix-list-ospf1-into-ospf3 seq 5 permit 10.100.1.2/32
route-map ospf1-into-ospf3 permit 10
match ip address prefix-list prefix-list-ospf1-into-ospf3
PE2
interface Loopback0
ip address 10.100.1.5 255.255.255.255
interface Ethernet1/0
no ip address
xconnect 10.100.1.4 100 encapsulation mpls
router ospf 3
network 10.3.0.0 0.0.255.255 area 0
network 10.100.1.5 0.0.0.0 area 0
router bgp 1
bgp log-neighbor-changes
network 10.100.1.5 mask 255.255.255.255
neighbor 10.100.1.2 remote-as 1
neighbor 10.100.1.2 update-source Loopback0
neighbor 10.100.1.2 send-label
Consulte a Figura 2 para verificar a operação do plano de controle.
Veja a Figura 3 para verificar os anúncios de etiqueta MPLS.
Veja a Figura 4 para verificar o encaminhamento de pacotes.
É assim que os pacotes são encaminhados de PE1 para PE2. O prefixo de loopback de PE2 é 10.100.1.5/32, portanto esse prefixo é de interesse.
PE1#show ip route 10.100.1.5
Routing entry for 10.100.1.5/32
Known via "bgp 1", distance 200, metric 0, type internal
Last update from 10.100.1.1 00:11:12 ago
Routing Descriptor Blocks:
* 10.100.1.1, from 10.100.1.1, 00:11:12 ago
Route metric is 0, traffic share count is 1
AS Hops 0
MPLS label: 22
PE1#show ip cef 10.100.1.5
10.100.1.5/32
nexthop 10.2.2.6 Ethernet0/0 label 19 22
PE1#show ip cef 10.100.1.5 detail
10.100.1.5/32, epoch 0, flags rib defined all labels
1 RR source [no flags]
recursive via 10.100.1.1 label 22
nexthop 10.2.2.6 Ethernet0/0 label 19
PE1#show bgp ipv4 unicast labels
Network Next Hop In label/Out label
10.100.1.4/32 0.0.0.0 imp-null/nolabel
10.100.1.5/32 10.100.1.1 nolabel/22
P1#show mpls forwarding-table labels 19 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
19 Pop Label 10.100.1.1/32 603468 Et1/0 10.2.1.1
MAC/Encaps=14/14, MRU=1504, Label Stack{}
AABBCC000101AABBCC0006018847
No output feature configured
RR1#show mpls forwarding-table labels 22 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
22 21 10.100.1.5/32 575278 Et0/0 10.1.1.3
MAC/Encaps=14/22, MRU=1496, Label Stack{17 21}
AABBCC000300AABBCC0001008847 0001100000015000
No output feature configured
RR1#show bgp ipv4 unicast labels
Network Next Hop In label/Out label
10.100.1.4/32 10.100.1.4 19/imp-null
10.100.1.5/32 10.100.1.2 22/21
P3#show mpls forwarding-table labels 17 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 Pop Label 10.100.1.2/32 664306 Et1/0 10.1.2.2
MAC/Encaps=14/14, MRU=1504, Label Stack{}
AABBCC000201AABBCC0003018847
No output feature configured
RR2#show mpls forwarding-table labels 21 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
21 17 10.100.1.5/32 615958 Et0/0 10.3.1.7
MAC/Encaps=14/18, MRU=1500, Label Stack{17}
AABBCC000700AABBCC0002008847 00011000
No output feature configured
RR2#show bgp ipv4 unicast labels
Network Next Hop In label/Out label
10.100.1.4/32 10.100.1.1 22/19
10.100.1.5/32 10.100.1.5 21/imp-null
P2#show mpls forwarding-table labels 17 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 Pop Label 10.100.1.5/32 639957 Et1/0 10.3.2.5
MAC/Encaps=14/14, MRU=1504, Label Stack{}
AABBCC000500AABBCC0007018847
No output feature configured
PE1#trace
Protocol [ip]:
Target IP address: 10.100.1.5
Source address: 10.100.1.4
DSCP Value [0]:
Numeric display [n]:
Timeout in seconds [3]:
Probe count [3]:
Minimum Time to Live [1]:
Maximum Time to Live [30]:
Port Number [33434]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Type escape sequence to abort.
Tracing the route to 10.100.1.5
VRF info: (vrf in name/id, vrf out name/id)
1 10.2.2.6 [MPLS: Labels 19/22 Exp 0] 3 msec 3 msec 3 msec
2 10.2.1.1 [MPLS: Label 22 Exp 0] 3 msec 3 msec 3 msec
3 10.1.1.3 [MPLS: Labels 17/21 Exp 0] 3 msec 3 msec 2 msec
4 10.1.2.2 [MPLS: Label 21 Exp 0] 2 msec 3 msec 2 msec
5 * * *
6 10.3.2.5 4 msec * 4 msec
P2#show ip route 10.100.1.4
% Subnet not in table
Atualmente, não existem informações disponíveis específicas sobre Troubleshooting para esta configuração.
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
03-Jul-2013 |
Versão inicial |