Многопротокольная коммутация по меткам (MPLS) : MPLS

Устранение неполадок LSP в виртуальной частной сети с многопротокольной коммутацией по меткам (MPLS VPN)

21 октября 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Английский (22 августа 2015) | Отзыв


Содержание


Введение

В этом документе подразумевается, что у пользователя имеются базовое знание принципов Многопротокольной коммутации по меткам (MPLS) . MPLS-коммутируемые пакеты пересылаются на основе информации, содержащейся в базе данных переадресации меток (LFIB). Пакет, оставляя маршрутизатор по интерфейсу для коммутации меток получит метки со значениями, заданными LFIB. Метки привязаны к назначениям в LFIB согласно Forwarding Equivalence Class (FECs). FEC является группировкой пакетов IP, которые перемещаются по тому же пути и проходят то же передающее лечение. Самым простым примером FEC является перемещение пакетов в определенную подсеть. Другим примером могли быть все пакеты с данным приоритетом IP-трафика, переходящим к следующему переходу Протокола IGP, привязанному к группе Маршрутов пограничного протокола шлюза (BGP).

База информации меток(LIB) - это структура, которая хранит метки, полученные от соседей по протоколу распределения меток (LDP) или протоколу распределения тегов (TDP). Для внедрения Cisco метки передаются за всеми маршрутами в таблице маршрутизации данного маршрутизатора (за исключением маршрутов BGP) ко всему LDP или соседям TDP. Все метки, полученные от соседей, сохраняются в LIB независимо от того, используются они или нет. Если метки принимаются от соседнего устройства, находящегося ниже по цепочке, для их FEC, то метки из LIB будут использоваться LFIB для переадресации пакетов. Метки, используемые для переадресации, получены от следующего перехода маршрутизатора к назначению в соответствие с Cisco Express Forwarding (CEF) маршрутизатора и таблицами маршрутизации.

Если связывания меток получены от соседа в нисходящем направлении для префиксов (включая маску подсети), которого нет в таблицах маршрутизации и CEF маршрутизатора, эти связывания не будут использоваться. Подобным образом, если маршрутизатор объявит метки для пары подсети/маски подсети, которые не соответствуют обновлениям маршрута, также объявленным этим маршрутизатором для той же подсети / пара маски подсети, то эти метки не будут использоваться соседями в восходящем направлении (от абонента к оператору), и Путь коммутации меток (LSP) между этими устройствами откажет.

В этом документе приводится пример отказа LSP подобного рода и предлагается несколько возможных решений. Документ дает сведения по одному сценарию, где связки меток, полученные маршрутизатором, не используются для пересылки MPLS-коммутированных пакетов. Однако, шаги, необходимые для диагностики и исправления этой проблемы, применимы к любой проблеме, включающей связывание меток и LFIB на маршрутизаторах, настроенных для MPLS.

Предварительные условия

Требования

Для этого документа отсутствуют особые требования.

Используемые компоненты

Сведения в этом документе основываются на этой версии программного обеспечения:

  • Cisco Версия релиза ПО 12.0 (21) ST2 IOS�

Условные обозначения

Дополнительные сведения об условных обозначениях см. в документе Условные обозначения технических терминов Cisco.

Схема сети

troubleshoot_mpls_vpn-1.gif

Конфигурации маршрутизатора

Конфигурация маршрутизатора 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

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.

Конфигурация маршрутизатора 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

Конфигурация маршрутизатора 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

Примечание: Конфигурация CE1 пропущена. Конфигурация состоит из только IP-адресации на Интерфейсе Ethernet и статическом маршруте по умолчанию к 10.2.2.2.

Проблема

Соединение между CE1 и интерфейсом обратной петли CE2 потеряно, как показано в следующем примере.

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)

Однако CE1 имеет допустимую запись маршрутизации для этого назначения, как показано в следующем примере.

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

В PE1 (Периферийный маршрутизатор подключил к CE1), можно проверить MPLS VPN определенная информация. Следующие примеры показывают, что допустимый маршрут назначению присутствует в таблице VRF для этой 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

Как показано в данном примере, для PE1 не существует маршрут следующего перехода BGP с правильной маской.

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

Сведения о маршрутизации IGP, используемые PE1 для доступа к следующему узлу BGP, получены от маршрутизатора P. Как показано в следующем примере, этот маршрутизатор использует неверную маску для обратной петли PE2 и не имеет маршрута для этого префикса с правильной маской.

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

Причина сбоя LSP

LFIB и привязки тегов на маршрутизаторе P показывают причину сбоя LSP между этим маршрутизатором и PE2. Для 10.5.5.5 исходящей метки нет. Когда пакет покидает PE1, он содержит две метки: метку следующего узла BGP, генерируемую маршрутизатором P (16), и метку VPN, генерируемую PE2 (32). Поскольку эта запись на маршрутизаторе P показывает без меток, пакеты с коммутацией по меткам для этого назначения, это будет отослано без любых меток. В связи с потерей метки 32 сети VPN, невозможен прием данной метки на стороне PE2, и на стороне PE2 будет недостаточно информации для пересылки пакета в направлении необходимой точки назначения в сети VPN.

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

Как показано в следующем примере, таблица привязки меток маршрутизатора P показывает что PE2 (tsr: 10.8.8.5:0), только объявляет привязку для 10.5.5.5 с/24 маской. Метка для маршрута/32 объявлена маршрутизатором P и PE1 (tsr: 10.2.2.2:0), но не PE2. Поскольку привязка, объявленная PE2, не совпадает с маршрутом, который это также объявляет, никакая метка не присутствует в LFIB маршрутизатора P к передачам пакетов этому назначению.

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

Причина расхождений между обновленными данными маршрутизации и связываниями меток, декларируемыми PE2, содержится в таблице маршрутизации и таблице связывания меток для маршрутизатора. Непосредственно связанный loopback показывает корректную/24 маску, это используется маршрутизатором в генерации назначения меток. Поскольку этот Протокол OSPF использований сети, маршрутизатор объявляет этот интерфейс с/32 маской, как показано в следующем примере.

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).

Решения

Поскольку сбой LSP межу маршрутизатором P и PE1 был вызван расхождением между маршрутом, объявленным для обратной связи, и привязкой метки, созданной PE1, наиболее простое решение – изменить маску обратной связи так, чтобы она соответствовала маске, объявленной OSPF для всех сетей типа LOOPBACK.

Решение 1: Изменение маски подсети на 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#

Информация о PE1 появляется то же как в сценарии, где Сбой LSP происходит, как показано в следующем примере.

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

Маршрутизатор P показывает, что условий, которые привели к сбою LSP, больше не существует. Исходящая метка теперь является тегом извлечения. Это означает, что главная метка для следующего перехода BGP будет вытолкана, поскольку пакеты пересекают маршрутизатор, но пакеты будут все еще иметь вторую метку VPN (пакеты больше не отсылаются без меток).

Таблица привязки метки показывает, что метка (пустой указатель импорта) объявлена PE2 (tsr: 10.8.8.5:0) для маршрута/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

Решение 2: Изменение типа сети OSPF

Второе решение состоит в том, чтобы изменить Тип сети OSPF интерфейса обратной связи. Когда Тип сети OSPF интерфейса обратной связи PE2 изменен на точка-точка, петлевой префикс автоматически больше не объявляется с/32 маской. Это означает, что назначение меток, сгенерированное PE2 при обращении к напрямую подключенной подсети в таблице маршрутизации (содержит маску подсети /24), не будет подходить для маршрута OSPF на маршрутизаторе P, полученного от PE2 (содержит маску подсети /24 для этого префикса).

Команду ip ospf network point-to-point можно использовать для изменения типа сети в интерфейсе обратной связи PE2, как показано в следующем примере.

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)#

Как показано ниже, таблица пересылки метки на PE1 содержит запись для следующего перехода BGP, который совместим с фактической маской интерфейса обратной связи на PE2. Таблица маршрутизации указывает, что маршрут OSPF, связанный с этой записью переадресации, также является правильным.

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

В примере ниже, запись переадресации метки маршрутизатора P показывает исходящий тег как метку популярности, как в Решении 1, как показано в примере ниже. Еще раз главная метка для следующего перехода BGP будет вытолкана, поскольку пакет пересекает этот маршрутизатор, но вторая метка VPN будет сохранена, и LSP не откажет. Привязка, показывая маску правильной подсети также присутствует.

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

Как показано ниже, выходные данные этой команды подтверждают, что тип сети был изменен на "точка-точка". Полное подключение присутствует от CE1 до интерфейса обратной связи 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.

Дополнительные сведения


Document ID: 23565