При построении сетей на базе 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 router bgp 65500 neighbor 10.248.254.126 | R2 router ospfv2 0 router bgp 65500 address-family vpnv4 unicast neighbor 10.248.254.125 | R3 router ospfv2 0 | R4 router ospfv2 0 |
|---|
Для проверки состояния 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
