Este documento pressupõe que você já tem algum conhecimento sobre os conceitos básicos de MPLS (Multiprotocol Label Switching). Pacotes comutados por MPLS são encaminhados com base nas informações contidas na LFIB (Base de informações de encaminhamento de rótulo). Um pacote deixando um roteador sobre uma interface comutada por rótulo receberá rótulos com valores especificados pelo LFIB. Os rótulos são associados aos destinos no LFIB de acordo com as classes de equivalência de encaminhamento (FECs). Um FEC é um agrupamento de pacotes IP que trafegam pelo mesmo caminho e recebem o mesmo tratamento de encaminhamento. O exemplo mais simples de um FEC apresenta todos os pacotes sendo transmitidos para uma determinada sub-rede. Outro exemplo pode ser todos os pacotes com uma determinada precedência de IP indo para um salto seguinte do Interior Gateway Protocol (IGP) associado a um grupo de rotas do Border Gateway Protocol (BGP).
A LIB (Base de informações de rótulo) é uma estrutura que armazena os rótulos recebidos de todos os vizinhos do LDP (Protocolo de distribuição de rótulos) ou do TDP (Protocolo de distribuição de etiquetas). Para implementação da Cisco, os rótulos são enviados para todas as rotas em uma determinada tabela de roteamento do roteador (com exceção das rotas BGP), para todos os vizinhos LDP ou TDP. Todos os rótulos recebidos de vizinhos são mantidos no LIB, independente de serem usados. Caso os rótulos sejam recebidos de um downstream vizinho para suas FECs, os rótulo armazenados na LIB serão utilizados para encaminhamento de pacotes pela LFIB. Isso significa que os rótulos usados para encaminhamento são aqueles recebidos do próximo salto de um roteador a um destino, de acordo com o Cisco Express Forwarding (CEF) do roteador e com as tabelas de roteamento.
Se associações de rótulos são recebidas de um vizinho de downstream para prefixos (incluindo a máscara de sub-rede) que não aparecem no encaminhamento e nas tabelas CEF de um roteador, essas associações não serão utilizadas. De maneira semelhante, se um roteador anunciar rótulos para um par de máscaras de sub-rede/sub-rede, que não correspondem às atualizações de roteamento também anunciadas por esse roteador para o mesmo par de máscaras de sub-rede/sub-rede, esses rótulos não serão usados por vizinhos upstream e o caminho de Rótulo Comutado (LSP) entre esses dispositivos falhará.
Este documento dá um exemplo desse tipo de falha de LSP e fornece várias soluções possíveis. O documento abrange um cenário em que as conexões por ponte de rótulo recebidas por um roteador não são usadas para encaminhar os pacotes comutados por MLPS. Entretanto, os passos seguidos para diagnosticar e corrigir esse problema são aplicáveis a todo os problemas que envolvam associações de rótulo e LFIB em roteadores configurados para o MPLS.
Não existem requisitos específicos para este documento.
As informações aqui são baseadas nesta versão de software:
Software Cisco IOS® versão 12.0(21)ST2
Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.
Configuração do Roteador PE1 |
---|
ip vrf aqua rd 100:1 route-target export 1:1 route-target import 1:1 ! interface Loopback0 ip address 10.2.2.2 255.255.255.255 no ip directed-broadcast ! interface Ethernet2/0/1 ip vrf forwarding aqua ip address 10.1.1.2 255.255.255.0 no ip directed-broadcast ip route-cache distributed !--- The VPN Routing and Forwarding (VRF) interface !--- toward the customer edge (CE) router. interface Ethernet2/0/2 ip address 10.7.7.2 255.255.255.0 no ip directed-broadcast ip route-cache distributed tag-switching ip ! router ospf 1 log-adjacency-changes network 0.0.0.0 255.255.255.255 area 0 ! router bgp 1 bgp log-neighbor-changes neighbor 10.5.5.5 remote-as 1 neighbor 10.5.5.5 update-source Loopback0 no auto-summary ! address-family vpnv4 neighbor 10.5.5.5 activate neighbor 10.5.5.5 send-community extended exit-address-family ! address-family ipv4 neighbor 10.5.5.5 activate no auto-summary no synchronization exit-address-family ! address-family ipv4 vrf aqua redistribute connected no auto-summary no synchronization exit-address-family |
Configuração do roteador P |
---|
interface Loopback0 ip address 10.7.7.7 255.255.255.255 no ip directed-broadcast ! interface Ethernet2/0 ip address 10.8.8.7 255.255.255.0 no ip directed-broadcast tag-switching ip ! interface Ethernet2/1 ip address 10.7.7.7 255.255.255.0 no ip directed-broadcast tag-switching ip ! router ospf 1 log-adjacency-changes network 0.0.0.0 255.255.255.255 area 0 !--- BGP is not run on this router. |
Configuração do roteador PE2 |
---|
ip vrf aqua rd 100:1 route-target export 1:1 route-target import 1:1 ! interface Loopback0 ip address 10.5.5.5 255.255.255.0 no ip directed-broadcast ! interface Ethernet0/0 ip vrf forwarding aqua ip address 10.10.10.5 255.255.255.0 no ip directed-broadcast !--- The VRF interface toward the CE router. ! interface Ethernet0/3 ip address 10.8.8.5 255.255.255.0 no ip directed-broadcast tag-switching ip ! router ospf 1 log-adjacency-changes network 0.0.0.0 255.255.255.255 area 0 ! router rip version 2 ! address-family ipv4 vrf aqua version 2 network 10.0.0.0 no auto-summary exit-address-family ! router bgp 1 bgp log-neighbor-changes neighbor 10.2.2.2 remote-as 1 neighbor 10.2.2.2 update-source Loopback0 no auto-summary ! address-family vpnv4 neighbor 10.2.2.2 activate neighbor 10.2.2.2 send-community extended exit-address-family ! address-family ipv4 neighbor 10.2.2.2 activate no auto-summary no synchronization exit-address-family ! address-family ipv4 vrf aqua redistribute connected redistribute rip no auto-summary no synchronization exit-address-family |
Configuração do roteador CE2 |
---|
interface Loopback0 ip address 192.168.1.196 255.255.255.192 no ip directed-broadcast ! interface Ethernet1 ip address 10.10.10.6 255.255.255.0 no ip directed-broadcast ! router rip version 2 network 10.0.0.0 network 192.168.1.0 no auto-summary !--- Routing Information Protocol (RIP) is used for the advertisement !--- of routes between the CE and the provider edge (PE) router. ! ip route 0.0.0.0 0.0.0.0 10.10.10.5 |
Observação: a configuração CE1 foi omitida. A configuração consiste somente no endereçamento IP na interface Ethernet e em uma rota estática padrão para 10.2.2.2.
A conectividade entre CE1 e a interface de loopback do CE2 foi perdida, conforme mostra o exemplo a seguir.
CE1#ping 192.168.1.196 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.196, timeout is 2 seconds: ..... Success rate is 0 percent (0/5)
No entanto, CE1 tem uma entrada de roteamento válida para esse destino, como mostrado no exemplo a seguir.
CE1#show ip route 0.0.0.0 Routing entry for 0.0.0.0/0, supernet Known via "static", distance 1, metric 0, candidate default path Redistributing via ospf 100 Routing Descriptor Blocks: * 10.1.1.2 Route metric is 0, traffic share count is 1
Em PE1 (o roteador PE conectado ao CE1), você pode verificar informações específicas de VPN MPLS. Os exemplos a seguir mostram que uma rota válida para o destino está presente na tabela VRF para esta VPN.
PE1#show ip route vrf aqua 192.168.1.196 Routing entry for 192.168.1.192/26 Known via "bgp 1", distance 200, metric 1, type internal Last update from 10.5.5.5 00:09:52 ago Routing Descriptor Blocks: * 10.5.5.5 (Default-IP-Routing-Table), from 10.5.5.5, 00:09:52 ago Route metric is 1, traffic share count is 1 AS Hops 0, BGP network version 0 PE1#show tag-switching forwarding-table vrf aqua 192.168.1.196 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface None 16 192.168.1.192/26 0 Et2/0/2 10.7.7.7 MAC/Encaps=14/22, MTU=1496, Tag Stack{16 32} 00603E2B02410060835887428847 0001000000020000 No output feature configured PE1#show ip bgp vpnv4 vrf aqua 192.168.1.192 BGP routing table entry for 100:1:192.168.1.192/26, version 43 Paths: (1 available, best #1, table aqua) Not advertised to any peer Local 10.5.5.5 (metric 21) from 10.5.5.5 (10.5.5.5) Origin incomplete, metric 1, localpref 100, valid, internal, best Extended Community: RT:1:1 PE1#show tag-switching forwarding-table 10.5.5.5 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 18 16 10.5.5.5/32 0 Et2/0/2 10.7.7.7 MAC/Encaps=14/18, MTU=1500, Tag Stack{16} 00603E2B02410060835887428847 00010000 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Como mostrado neste exemplo, o PE1 não possui uma rota para o próximo salto de BGP com a máscara correta.
PE1# PE1#show ip route 10.5.5.5 255.255.255.0 % Subnet not in table PE1#show ip route 10.5.5.5 255.255.255.255 Routing entry for 10.5.5.5/32 Known via "ospf 1", distance 110, metric 21, type intra area Last update from 10.7.7.7 on Ethernet2/0/2, 00:38:55 ago Routing Descriptor Blocks: * 10.7.7.7, from 10.5.5.5, 00:38:55 ago, via Ethernet2/0/2 Route metric is 21, traffic share count is 1
As informações de IGP Routing utilizadas pelo PE1 para alcançar este próximo salto de BGP são recebidas do roteador P. Conforme mostrado no exemplo a seguir, esse roteador também mostra uma máscara incorreta para o circuito de retorno PE2 e não tem uma rota para esse prefixo com a máscara correta.
P#show ip route 10.5.5.5 Routing entry for 10.5.5.5/32 Known via "ospf 1", distance 110, metric 11, type intra area Last update from 10.8.8.5 on Ethernet2/0, 00:47:48 ago Routing Descriptor Blocks: * 10.8.8.5, from 10.5.5.5, 00:47:48 ago, via Ethernet2/0 Route metric is 11, traffic share count is 1 P#show ip route 10.5.5.5 255.255.255.0 % Subnet not in table
O LFIB e as ligações de caracteres especiais no roteador P mostram a causa da falha do LSP entre este roteador e o PE2. Não a rótulo de saída para o 10.5.5.5. Ao sair do PE1, o pacote leva dois rótulos, o rótulo BGP de próximo salto gerado pelo roteador P (16) e o rótulo VPN gerado pelo PE2 (32). Como essa entrada no roteador P mostra pacotes comutados por rótulo não marcados para esse destino, ela será enviada sem nenhum rótulo. Como o rótulo 32 do VPN foi perdido, ele nunca será recebido por PE2, e PE2 não terá as informações corretas para encaminhar o pacote para o destino de VPN apropriado.
P#show tag-switching forwarding-table 10.5.5.5 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 16 Untagged 10.5.5.5/32 5339 Et2/0 10.8.8.5 MAC/Encaps=0/0, MTU=1504, Tag Stack{} No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Como mostrado no exemplo a seguir, a tabela de vinculação de rótulo do roteador P mostra que PE2 (tsr: 10.8.8.5:0) anuncia somente um enlace para 10.5.5.5 com uma máscara /24. Um rótulo para a rota /32 é anunciado pelo roteador P e PE1 (tsr: 10.2.2.2:0), mas não PE2. Como o enlace anunciado por PE2 não corresponde à rota que ele também anuncia, nenhum rótulo está presente no LFIB do roteador P para encaminhar pacotes para esse destino.
P#show tag-switching tdp bindings detail tib entry: 10.5.5.0/24, rev 67(no route) remote binding: tsr: 10.8.8.5:0, tag: imp-null tib entry: 10.5.5.5/32, rev 62 local binding: tag: 16 Advertised to: 10.2.2.2:0 10.8.8.5:0 remote binding: tsr: 10.2.2.2:0, tag: 18
O motivo para a discrepância entre as atualizações de roteamento e os Label Bindings anunciadas por PE2 pode ser visto na tabela de roteamento e na tabela de Tag Binding deste roteador. O loopback conectado diretamente mostra a máscara /24 correta, que é usada pelo roteador para gerar a associação de rótulo. Como essa rede usa o OSPF (Open Shortest Path First), o roteador anuncia essa interface com uma máscara /32, como mostrado no exemplo a seguir.
PE2#show ip route 10.5.5.5 Routing entry for 10.5.5.0/24 Known via "connected", distance 0, metric 0 (connected, via interface) Routing Descriptor Blocks: * directly connected, via Loopback0 Route metric is 0, traffic share count is 1 PE2#show tag-switching tdp bindings detail tib entry: 10.5.5.0/24, rev 142 local binding: tag: imp-null Advertised to: 10.7.7.7:0 tib entry: 10.5.5.5/32, rev 148 remote binding: tsr: 10.7.7.7:0, tag: 16 PE2#show ip ospf interface loopback 0 Loopback0 is up, line protocol is up Internet Address 10.5.5.5/24, Area 0 Process ID 1, Router ID 10.5.5.5, Network Type LOOPBACK, Cost: 1 Loopback interface is treated as a stub Host !--- OSPF advertises all interfaces of Network Type LOOPBACK as host !--- routes (/32).
Como a falha do LSP entre o roteador P e o PE1 foi causada por uma incompatibilidade entre a rota anunciada para o loopback e o vínculo de rótulo gerado pelo PE1, a solução mais simples é alterar a máscara do loopback para que ela fique de acordo com a máscara anunciada pelo OSPF para todas as redes do tipo LOOPBACK.
Solução 1: Alteração da máscara de sub-rede em PE2
PE2#configure terminal Enter configuration commands, one per line. End with CNTL/Z. PE2(config)#int lo 0 PE2(config-if)#ip add 10.5.5.5 255.255.255.255 PE2(config-if)#end PE2#
As informações em PE1 aparecem da mesma forma que no cenário em que ocorre falha de LSP, como mostrado no exemplo a seguir.
PE1#show tag-switching forwarding-table vrf aqua 192.168.1.196 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface None 16 192.168.1.192/26 0 Et2/0/2 10.7.7.7 MAC/Encaps=14/22, MTU=1496, Tag Stack{16 32} 00603E2B02410060835887428847 0001000000020000 No output feature configured PE1#show tag-switching forwarding-table 10.5.5.5 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 18 16 10.5.5.5/32 0 Et2/0/2 10.7.7.7 MAC/Encaps=14/18, MTU=1500, Tag Stack{16} 00603E2B02410060835887428847 00010000 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
O roteador P mostra que as condições que causaram a falha do LSP não estão mais presentes. O rótulo de saída [e uma tag pop. Isso significa que o rótulo superior do próximo salto BGP será aberto à medida que os pacotes atravessarem o roteador, mas os pacotes ainda terão o segundo rótulo de VPN (os pacotes não serão mais enviados sem rótulo).
A tabela de associação de marcas mostra um rótulo (imp-null) anunciado por PE2 (tsr: 10.8.8.5:0) para a rota /32.
P#show tag-switching forwarding-table 10.5.5.5 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 16 Pop tag 10.5.5.5/32 3493 Et2/0 10.8.8.5 MAC/Encaps=14/14, MTU=1504, Tag Stack{} 006009E08B0300603E2B02408847 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P#show tag-switching tdp bindings detail tib entry: 10.5.5.5/32, rev 71 local binding: tag: 16 Advertised to: 10.2.2.2:0 10.8.8.5:0 remote binding: tsr: 10.2.2.2:0, tag: 18 remote binding: tsr: 10.8.8.5:0, tag: imp-null
Solução 2: Alteração de tipo de rede OSPF
A segunda solução é alterar o tipo de rede OSPF da interface de loopback. Quando o tipo de rede OSPF da interface de loopback de PE2 é alterado para ponto a ponto, o prefixo de loopback não é mais anunciado automaticamente com uma máscara /32. Isso significa que a ligação de rótulo gerada pelo PE2 ao fazer referência à sub-rede de conexão direta em sua tabela de roteamento (que contém uma máscara de sub-rede /24), corresponderá à rota de OSPF no roteador P recebido do PE2 (que contém uma máscara de sub-rede /24 para esse prefixo).
O comando ip ospf network point-to-point pode ser utilizado para alterar o tipo de rede na interface de loopback PE2, conforme mostrado no exemplo a seguir:
PE2#configure terminal Enter configuration commands, one per line. End with CNTL/Z. PE2(config)#interface loopback 0 PE2(config-if)#ip ospf network point-to-point PE2(config-if)#
Como mostrado abaixo, a tabela de encaminhamento de marca no PE1 contém uma entrada para o salto seguinte do BGP, que é consistente com a máscara real da interface de loopback em PE2. A tabela de roteamento mostra que a rota de OSPF associada a esta entrada de encaminhamento também está correta.
PE1#show tag-switching forwarding-table 10.5.5.5 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 22 17 10.5.5.0/24 0 Et2/0/2 10.7.7.7 MAC/Encaps=14/18, MTU=1500, Tag Stack{17} 00603E2B02410060835887428847 00011000 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 PE1#show ip route 10.5.5.5 Routing entry for 10.5.5.0/24 Known via "ospf 1", distance 110, metric 21, type intra area Last update from 10.7.7.7 on Ethernet2/0/2, 00:36:53 ago Routing Descriptor Blocks: * 10.7.7.7, from 10.5.5.5, 00:36:53 ago, via Ethernet2/0/2 Route metric is 21, traffic share count is 1
No exemplo abaixo, a entrada de encaminhamento de marca do roteador P mostra a tag de saída como uma tag pop, como na Solução 1, como mostrado no exemplo abaixo. Mais uma vez, o rótulo superior do próximo salto BGP será aberto quando o pacote atravessar esse roteador, mas o segundo rótulo VPN será mantido e o LSP não falhará. O enlace que mostra a máscara de sub-rede correta também está presente.
P#show tag-switching forwarding-table 10.5.5.5 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 17 Pop tag 10.5.5.0/24 4261 Et2/0 10.8.8.5 MAC/Encaps=14/14, MTU=1504, Tag Stack{} 006009E08B0300603E2B02408847 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P#show tag-switching tdp bindings detail tib entry: 10.5.5.0/24, rev 68 local binding: tag: 17 Advertised to: 10.2.2.2:0 10.8.8.5:0 remote binding: tsr: 10.8.8.5:0, tag: imp-null remote binding: tsr: 10.2.2.2:0, tag: 22
Conforme mostrado a seguir, a saída deste comando confirma se o tipo de rede foi alterado para ponto-a-ponto. A conectividade completa está presente do CE1 para a interface de loopback do CE2.
PE2#show ip ospf interface loopback 0 Loopback0 is up, line protocol is up Internet Address 10.5.5.5/24, Area 0 Process ID 1, Router ID 10.5.5.5, Network Type POINT_TO_POINT, Cost: 1 Transmit Delay is 1 sec, State POINT_TO_POINT, Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Index 3/3, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 0, maximum is 0 Last flood scan time is 0 msec, maximum is 0 msec Neighbor Count is 0, Adjacent neighbor count is 0 Suppress hello for 0 neighbor(s) CE1#ping 192.168.1.196 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.196, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms CE1.
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
18-Jan-2008 |
Versão inicial |