При построении  сетей на базе MPLS L3VPN  возникает ситуация, когда между двумя удалёнными площадками одновременно существует несколько путей: основной — через MPLS-сеть, и дополнительный backdoor-канал, построенный напрямую между сайтами. 

При передаче OSPF-маршрутов через MPLS L3VPN информация о маршруте передается между PE с использованием MP-BGP. Для CE при этом маршрут, полученный через MPLS VPN, обычно имеет статус intra-area. В результате при наличии backdoor-соединения OSPF может рассматривать прямой путь как более предпочтительный в соответствии с правилами выбора маршрутов, даже если с точки зрения архитектуры сети предпочтительным должен быть путь через MPLS.

Для решения подобных задач используется механизм OSPF Sham-Link.

Sham-Link создаёт логическое OSPF-соединение между PE через MPLS , имитируя прямой линк между ними . Благодаря этому для CE маршрут через MPLS может быть представлен как inter-area.


Рассмотрим конфигурацию устройств:

R1

router ospfv2 0
  area 0.0.0.0
    interface tengigabitethernet 0/0/1
      bfd fast-detect
      network point-to-point
    exit
  exit
  router-id 10.248.254.125
  vrf sham
    area 0.0.0.0
      interface tengigabitethernet 0/0/1
        bfd fast-detect
        network point-to-point
      exit
      sham-link 10.249.254.125 10.249.254.126 << Команда для работы фуникцонала
      exit
    exit
    redistribution bgp bgp_to_ospf
      match prefix 10.249.254.126/32 << Делаем редистрибуцию маршрута remote-endpoint R2 для поднятия sham-link
      metric-conversion same
    exit
  exit
exit

router bgp 65500
  address-family vpnv4 unicast
    redistribution ospf 1
      match prefix 10.249.254.125/32 << Требуется сделать редистрибуцию маршрута local-endpoint для поднятия sham-link
      match vrf sham
    exit
  exit

  neighbor 10.248.254.126
    address-family vpnv4 unicast
    exit
    remote-as 65500
    send-community
    send-community-ext
    update-source 10.248.254.125
  exit

R2

router ospfv2 0
  area 0.0.0.0
    interface tengigabitethernet 0/0/1
      bfd fast-detect
      network point-to-point
    exit
  exit
  router-id 10.248.254.126
  vrf sham
    area 0.0.0.0
      interface tengigabitethernet 0/0/1
        bfd fast-detect
        network point-to-point
      exit
      sham-link 10.249.254.126 10.249.254.125 << Команда для работы фуникцонала
      exit
    exit
    redistribution bgp bgp_to_ospf
      match prefix 10.249.254.125/32 << Делаем редистрибуцию маршрута remote-endpoint R1 для поднятия sham-link
      metric-conversion same
    exit
  exit
exit

router bgp 65500

address-family vpnv4 unicast
    redistribution ospf 1
      match prefix 10.249.254.126/32 << Требуется сделать редистрибуцию маршрута local-endpoint для поднятия sham-link
      match vrf sham
    exit
  exit

 neighbor 10.248.254.125
    address-family vpnv4 unicast
    exit
    remote-as 65500
    send-community
    send-community-ext
    update-source 10.248.254.126
  exit

R3

router ospfv2 0
  area 0.0.0.0
    interface loopback 0
    exit
    interface tengigabitethernet 0/0/1
      bfd fast-detect
      network point-to-point
    exit
    interface tengigabitethernet 0/0/2
      bfd fast-detect
      network point-to-point
    exit
  exit
  router-id 10.248.254.65
exit

R4

router ospfv2 0
  area 0.0.0.0
    interface loopback 0
    exit
    interface tengigabitethernet 0/0/1
      bfd fast-detect
      network point-to-point
    exit
    interface tengigabitethernet 0/0/3
      bfd fast-detect
      network point-to-point
    exit
  exit
  router-id 10.248.254.66
exit

Для проверки состояния sham-link мы можем использовать следующие show команды:

0/ME5200S:R1# show  ospfv2 vrf  sham  sham-links 
Fri Sep 25 09:43:59 2026
  Routing Process: 0, VRF sham, ID 172.28.71.30
  Instance ID: 0
    Router is an area border router

      Interface        Area             Local-endpoint   Remote-endpoint  State  Metric 
      ---------------- ---------------- ---------------- ---------------- ------ ------- 
      sha1028          0.0.0.0          10.249.254.125   10.249.254.126   P2P    1 
  
0/ME5200S:R1# show  ospfv2 vrf  sham  sham-links detailed 
Fri Sep 25 09:44:01 2026
  Routing Process: 0, VRF sham, ID none
    Router is not an area border router
  
      Sham-link interface 1028, state: point-to-point, status: up << состояние интерфейса UP
        Area 0.0.0.0, metric: 1, MTU: 576
        Local-endpoint address: 10.249.254.125, remote-endpoint address: 10.249.254.126
        Changed state: 1 time
        Hello time remaining: 6668 ms
        Number of LSA count: 0, checksum: 0x00000000
        Stats (packet count):
          rx invalid: 0, byte: 0
          rx hello: 95, byte: 6460
          rx database description: 2, byte: 204
          rx ls request: 0, byte: 0
          rx ls update: 4, byte: 456
          rx ls acknowledgement: 1, byte: 64
          tx hello: 234, byte: 15356
          tx database description: 2, byte: 204
          tx ls request: 0, byte: 0
          tx ls update: 3, byte: 372
          tx ls acknowledgement: 2, byte: 128
          tx failed: 0, byte: 0
          header length err: 0, header version err: 0
          header bad source err: 0, header area mismatch err: 0
          header self-originated err: 0, header duplicate id err: 0
          header hello err: 0, header MTU mismatch err: 0
          header neighbor ignored err: 0, header resource err: 0
          bad lsa len: 0, bad lsa type: 0
          bad lsa data: 0, bad lsa checksum: 0x0000
          unknown NBMA neighbor: 0, unknown virtual neighbor: 0
          hello timer mismatch: 0, dead interval mismatch: 0
          options mismatch: 0, dead interval mismatch: 0
          neighbor admin down: 0, come from the local router: 0
          multi-area interface is not P2P: 0, bad packet: 0
          checksum err: 0, authentication err: 0
          wrong protocol err: 0, virtual interface clash with multi-area interface err: 0
          bad authentication: 0, authentication failed: 0
          netmask mismatch: 0
  
0/ME5200S:R1# show  ospfv2 vrf  sham  neighbors 
Fri Sep 25 09:44:10 2026
  Routing Process: 0, VRF sham, ID 172.28.71.30
  Instance ID: 0
    Router is an area border router
  
  Neighbor ID      Area ID          Pri  State               BFD           Dead Time  Last state change  Address          Interface 
  ---------------- ---------------- ---- ------------------- ------------- ---------- ------------------ ---------------- ---------- 
  10.248.254.65    0.0.0.0          1    full                active        00:00:34   01h14m15s          172.28.71.29     te0/0/1 
  172.28.71.17     0.0.0.0          --   full                --            00:00:32   00h15m57s          10.249.254.126   sha1028 

Далее на R3 рассмотрим таблицу маршрутзации:

0/ME5200S:R3# show  route
Fri Sep 25 10:04:49 2026
  Codes: C - connected, S - static, O - OSPF, B - BGP, L - local
      IA - OSPF inter area, EA - OSPF intra area
      N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
      E1 - OSPF external type 1, E2 - OSPF external type 2
      i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2,
      LE1 - IS-IS level1 external, LE2 - IS-IS level2 external
      BI - BGP internal, BE - BGP external, BV - BGP vpn,
      BL - BGP labeled, R - RIP
  
  
  C      10.245.44.2/31     is directly connected, 07h26m13s, te0/0/1.102
  L      10.245.44.2/32     is directly connected, 07h26m13s, te0/0/1.102
  S      10.248.231.215/32    via 10.245.44.3 [1/1], 07h25m20s, te0/0/1.102
  L      10.248.254.65/32     is directly connected, 07h35m50s, lo0
  O EA   10.248.254.66/32    via 172.28.71.14 [30/2], 00h00m27s, te0/0/2 << Loopback R4 изучается через backdoor
  O E2   10.249.254.125/32    via 172.28.71.30 [110/0], 00h00m15s, te0/0/1
  O E2   10.249.254.126/32    via 172.28.71.30 [110/0], 00h00m15s, te0/0/1
  C      172.28.71.12/30     is directly connected, 00h48m09s, te0/0/2
  L      172.28.71.13/32     is directly connected, 00h48m09s, te0/0/2
  O EA   172.28.71.16/30    via 172.28.71.14 [30/2], 00h00m27s, te0/0/2
  C      172.28.71.28/30     is directly connected, 01h50m27s, te0/0/1
  L      172.28.71.29/32     is directly connected, 01h50m27s, te0/0/1
  
  Total entries: 12

Изменим метрику на прямом линке и проверим таблицу маршрутизации для демонстрации функционала:

0/ME5200S:R3(config)# router  ospfv2 0 
0/ME5200S:R3(config-ospfv2)#  area 0.0.0.0
0/ME5200S:R3(config-area)#  interface tengigabitethernet 0/0/2
0/ME5200S:R3(config-tengigabitethernet)# metric 100
0/ME5200S:R3(config-tengigabitethernet)# commit 
Fri Sep 25 10:08:39 2026
Commit successfully completed in 6.612011 sec
0/ME5200S:R3(config-tengigabitethernet)# end
0/ME5200S:R3# show  route
Fri Sep 25 10:08:49 2026
  Codes: C - connected, S - static, O - OSPF, B - BGP, L - local
      IA - OSPF inter area, EA - OSPF intra area
      N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
      E1 - OSPF external type 1, E2 - OSPF external type 2
      i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2,
      LE1 - IS-IS level1 external, LE2 - IS-IS level2 external
      BI - BGP internal, BE - BGP external, BV - BGP vpn,
      BL - BGP labeled, R - RIP
  
  
  C      10.245.44.2/31     is directly connected, 07h30m14s, te0/0/1.102
  L      10.245.44.2/32     is directly connected, 07h30m14s, te0/0/1.102
  S      10.248.231.215/32    via 10.245.44.3 [1/1], 07h29m21s, te0/0/1.102
  L      10.248.254.65/32     is directly connected, 07h39m51s, lo0
  O EA   10.248.254.66/32    via 172.28.71.30 [30/4], 00h00m06s, te0/0/1 <<< Маршрут перестроился на интерфейс te0/0/1 через MPLS backbone
  O E2   10.249.254.125/32    via 172.28.71.30 [110/0], 00h00m06s, te0/0/1
  O E2   10.249.254.126/32    via 172.28.71.30 [110/0], 00h00m06s, te0/0/1
  C      172.28.71.12/30     is directly connected, 00h52m10s, te0/0/2
  L      172.28.71.13/32     is directly connected, 00h52m10s, te0/0/2
  O EA   172.28.71.16/30    via 172.28.71.30 [30/3], 00h00m06s, te0/0/1
  C      172.28.71.28/30     is directly connected, 01h54m28s, te0/0/1
  L      172.28.71.29/32     is directly connected, 01h54m28s, te0/0/1
  
  Total entries: 12