Pull to refresh

Особенности работы External Type 1 и External Type 2 маршрутов в OSPF. Часть 2

Reading time 6 min
Views 22K
Этот топик является продолжением топика опубликованного здесь.

Топик касается редистрибуции маршрутов в OSPF из других протоколов маршрутизации, и рассматривает особенности использования Е1 и Е2 типов маршрутов. В этой части разговор пойдёт о том, как маршрутизатор выбирает маршруты, если оба из них одинаковые по типу, но отличаются метрикой редистрибуции, и ценой пути до ASBR.
Напомню топологию




Настроим теперь редистрибуцию так, что-бы к R1 приходили маршруты E2 но с разными значениями метрики:

R4(config)#router ospf 1
R4(config-router)#redistribute eigrp 100 metric 100 subnets metric-type 2

R5(config)#router ospf 1
R5(config-router)#redistribute eigrp 100 subnets metric-type 2


Проверим таблицу маршрутизации на R1:

R1#sh ip rout 6.6.6.6

Routing entry for 6.6.6.6/32
Known via "ospf 1", distance 110, metric 20, type extern 2, forward metric 2
Last update from 10.0.2.2 on FastEthernet1/0, 00:09:08 ago
Routing Descriptor Blocks:
* 10.0.2.2, from 5.5.5.5, 00:09:08 ago, via FastEthernet1/0
Route metric is 20, traffic share count is 1


Как и следовало ожидать R1 выбрал маршрут через R5, поскольку метрика маршрута через него равна 20 + forward metric 2, в то время как метрика через R4 равна 100 + forward metric 2. Если мы установим для обоих маршрутов тип Е1, ситуация не измениться.

До этого момента все было более менее очевидно. Рассмотрим теперь какие появляются особенности, если мы изменим цену линка для OSPF, внутри Area 0.
Установим ospf cost для пути через R2 равным 100:

R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#interface FastEthernet0/0
R1(config-if)#ip ospf cost 100


Теперь настроим маршрутизаторы так, чтобы оба ASBR отдавали E1 маршруты, но с разными метриками, так чтобы суммарные метрики были одинаковые:

R4(config-router)#router ospf 1
R4(config-router)#redistribute eigrp 100 metric-type 1 metric 99 subnets

R5(config)#router ospf 1
R5(config-router)#redistribute eigrp 100 metric-type 1 metric 198 subnets


И проверим, что появляется в таблице маршрутизации R1:

R1#sh ip rout 6.6.6.6

Routing entry for 6.6.6.6/32
Known via "ospf 1", distance 110, metric 200, type extern 1
Last update from 10.0.2.2 on FastEthernet1/0, 00:02:46 ago
Routing Descriptor Blocks:
10.0.2.2, from 5.5.5.5, 00:02:46 ago, via FastEthernet1/0
Route metric is 200, traffic share count is 1
* 10.0.1.2, from 4.4.4.4, 00:02:46 ago, via FastEthernet0/0
Route metric is 200, traffic share count is 1


Как видим, оба маршрута приходят с метрикой 200. Для первого пути, это сумма цены линка до R2 + цена линка R2-R4 + метрика редистрибуции на R4 (100+1+99=200). Для второго пути соответственно цена линка до R3 + цена линка R3-R5 + метрика редистрибуции на R5 1+1+198 = 200. Соответственно оба маршрута попадают в таблицу маршрутизации.
Изменим тип маршрутов, с Е1 на Е2:

R4(config)#router ospf 1
R4(config-router)#redistribute eigrp 100 metric-type 2 metric 99 subnets

R5(config)#router ospf 1
R5(config-router)#redistribute eigrp 100 metric-type 2 metric 198 subnets


И снова проверим, что появляется в таблице маршрутизации R1:

R1#sh ip rout 6.6.6.6

Routing entry for 6.6.6.6/32
Known via "ospf 1", distance 110, metric 99, type extern 2, forward metric 101
Last update from 10.0.1.2 on FastEthernet0/0, 00:03:01 ago
Routing Descriptor Blocks:
* 10.0.1.2, from 4.4.4.4, 00:03:01 ago, via FastEthernet0/0
Route metric is 99, traffic share count is 1


Несмотря на то, что суммарная метрика одинакова для обоих маршрутов, маршрутизатор использовал только ту метрику, которая задается при настройке редистрибуции, игнорируя forward metric.
Установим одинаковую стоимость редистрибуции и посмотрим, что получится:

R4(config)#router ospf 1
R4(config-router)#redistribute eigrp 100 metric-type 2 metric 1 subnets

R5(config)#router ospf 1
R5(config-router)#redistribute eigrp 100 metric-type 2 metric 1 subnets

R1#sh ip route 6.6.6.6

Routing entry for 6.6.6.6/32
Known via "ospf 1", distance 110, metric 1, type extern 2, forward metric 2
Last update from 10.0.2.2 on FastEthernet1/0, 00:00:57 ago
Routing Descriptor Blocks:
* 10.0.2.2, from 5.5.5.5, 00:00:57 ago, via FastEthernet1/0
Route metric is 1, traffic share count is 1


Сюрприз. Исходя из логики предыдущего примера, маршрутизатор должен был добавить в таблицу маршрутизации оба маршрута, поскольку метрика редистрибуции у них одинакова и равна 1, а forward metric как мы видели выше игнорируется.
На самом деле процесс выбора маршрута происходить несколько сложнее.
Сначала R1 смотрит на метрику маршрутов которые пришли к нему. Поскольку оба маршрута имеют метрику редистрибуции 1, маршрутизатору необходимо определить, какой из ASBR ближе к нему путем проверки доступности R4 и R5 через Intra-Area маршруты.
Для этого он смотрит какой адрес у Advertising Router`ов, которые прислали ему LSA касательно префикса 6.6.6.6/32:

R1#sh ip ospf database external 6.6.6.6

OSPF Router with ID (1.1.1.1) (Process ID 1)
Type-5 AS External Link States

LS age: 353
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 6.6.6.6 (External Network Number )
Advertising Router: 4.4.4.4
LS Seq Number: 8000000B
Checksum: 0x87F9
Length: 36
Network Mask: /32
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 1
Forward Address: 0.0.0.0
External Route Tag: 0

Routing Bit Set on this LSA
LS age: 325
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 6.6.6.6 (External Network Number )
Advertising Router: 5.5.5.5
LS Seq Number: 8000000A
Checksum: 0x6B13
Length: 36
Network Mask: /32
Metric Type: 2 (Larger than any link state path)
TOS: 0
Metric: 1
Forward Address: 0.0.0.0
External Route Tag: 0


Маршрутизатор видит, два Advertising Router`a, 4.4.4.4 и 5.5.5.5 и затем проверяет есть ли Router LSA от этих маршрутизаторов (наличие этих LSA свидетельствует о том, что маршрутизатор доступен через Intra-Area маршруты).

R1#sh ip ospf database router 4.4.4.4
OSPF Router with ID (1.1.1.1) (Process ID 1)

R1#sh ip ospf database router 5.5.5.5
OSPF Router with ID (1.1.1.1) (Process ID 1)


Вывод показывает, что Intra-Area маршрутов нет. Дальше маршрутизатор проверяет Inter-Area маршруты:

R1#sh ip ospf database asbr-summary 5.5.5.5
OSPF Router with ID (1.1.1.1) (Process ID 1)

Summary ASB Link States (Area 0)
Routing Bit Set on this LSA
LS age: 379
Options: (No TOS-capability, DC, Upward)
LS Type: Summary Links(AS Boundary Router)
Link State ID: 5.5.5.5 (AS Boundary Router address)
Advertising Router: 3.3.3.3
LS Seq Number: 80000009
Checksum: 0x34DE
Length: 28
Network Mask: /0
TOS: 0 Metric: 1

R1#sh ip ospf database asbr-summary 4.4.4.4
OSPF Router with ID (1.1.1.1) (Process ID 1)

Summary ASB Link States (Area 0)
Routing Bit Set on this LSA
LS age: 203
Options: (No TOS-capability, DC, Upward)
LS Type: Summary Links(AS Boundary Router)
Link State ID: 4.4.4.4 (AS Boundary Router address)
Advertising Router: 2.2.2.2
LS Seq Number: 80000009
Checksum: 0x809A
Length: 28
Network Mask: /0
TOS: 0 Metric: 1


Исходя из вывода видно, что ASBR доступны как Inter-Area через 2 разных ABR, и оба пути имеют метрику 1. Соответственно дальше маршрутизатору нужно определить какой из ABR`ов к нему ближе.
Для этого R1 снова делает проверку на Router LSA, и видит, что оба ABR в качестве DR имеют соответственно свои интерфейсы 10.0.1.2 и 10.0.2.2. Поскольку сам R1 имеет в качестве DR те же адреса, то он может добавить стоимости для этих DR, в метрику для ABR:

R1#sh ip ospf database router 1.1.1.1
OSPF Router with ID (1.1.1.1) (Process ID 1)

Router Link States (Area 0)
LS age: 1028
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 1.1.1.1
Advertising Router: 1.1.1.1
LS Seq Number: 8000000E
Checksum: 0xBABB
Length: 48
Number of Links: 2
Link connected to: a Transit Network
(Link ID) Designated Router address: 10.0.2.2
(Link Data) Router Interface address: 10.0.2.1
Number of TOS metrics: 0
TOS 0 Metrics: 1

Link connected to: a Transit Network
(Link ID) Designated Router address: 10.0.1.2
(Link Data) Router Interface address: 10.0.1.1
Number of TOS metrics: 0
TOS 0 Metrics: 100


Соответственно стоимость линка к 6.6.6.6, через R4 будет равняться композитной метрике R1->R2->R4->R6, что равно 102, а через R5 будет использоваться композитная метрика R1->R3->R5->R6, равная 3. В конце концов R1 предпочтен более короткий маршрут к ASBR, и выберет маршрут R1->R3->R5 имеющий стоимость 2.
Таким образом можно сделать вывод, что при одинаковой внешней метрике Е2, маршрутизатор не устанавливает оба Е2 маршрута в таблицу маршрутизации, а делает ешё одно проверку на метрику до ASBR (эта метрика на R1 называется forward metric).

Подведём итоги:


1. При наличии маршрутов Е1 и Е2 к одному префиксу, маршрутизатор выбирает Е1 маршрут, независимо от метрики.

2. При наличии двух маршрутов, оба из которых Е1, выбор происходит на основе метрики. Если метрики одинаковые то устанавливаются оба маршрута.

3. При наличии двух маршрутов, оба из которых Е2, маршрутизатор сначала делает выбор на основе метрики редистрибуции. Если эта метрика одинаковая, то делает выбор на основе метрики до ASBR (forward metric), если эти метрики также одинаковые то в таблицу маршрутизации устанавливаются оба маршрута.
Tags:
Hubs:
+19
Comments 7
Comments Comments 7

Articles