OSPF все никак не отпускает. Сегодня коротенько о том, как происходит выбор лучшего маршрута в случае нескольких внешних одинаковых E1 или E2 анонсов. Или "тяжелая жизнь О5"...
Для рассмотрения этого вопроса придется немного модифицировать прошлую схему. Я убрал все лишнее и добавил один линк в area 1. Теперь area0 и area1 соединяют два ABRа - O2 и O3, и в этом вся мякотка. О1 по прежнему анонсирует пачку внешних маршрутов 192.168. Более того, в area0 теперь не широковещательная среда. Я сделал PtP линки между O1-O2, O2-O3 и O3-O1. Сделано это для наглядности. Схема изображена в начале поста.
Базовый конфиг рассматривать не будем, все это уже было в упомянутом большом посте с лабой. В результате мы имеем все те же установившиеся соседства в area0 и соседство между О3 и О5 в area1.
E2 Intra-area
Для начала, добавим маршруты 192.168 как внешние с типом E2 и метрикой 10. В таком случае, стоимость такого маршрута по пути не будет меняться (писал об этом тут). Посмотрим, как будет складываться ситуация внутри одной области - area0.
Итак, О1 передает пачку LSA Type 5 в нулевую область. В их числе и "дефолтный" маршрут.
root@O1> show ospf database external
OSPF AS SCOPE link state database
Type ID Adv Rtr Seq Age Opt Cksum Len
Extern *0.0.0.0 10.0.10.1 0x80000004 3 0x22 0x5446 36
Extern *192.168.0.0 10.0.10.1 0x80000005 3 0x22 0xa08f 36
Extern *192.168.1.0 10.0.10.1 0x80000005 3 0x22 0x9599 36
Extern *192.168.2.0 10.0.10.1 0x80000005 3 0x22 0x8aa3 36
Extern *192.168.3.0 10.0.10.1 0x80000005 3 0x22 0x7fad 36
Extern *192.168.4.0 10.0.10.1 0x80000005 3 0x22 0x74b7 36
Extern *192.168.5.0 10.0.10.1 0x80000005 3 0x22 0x69c1 36
Extern *192.168.6.0 10.0.10.1 0x80000005 3 0x22 0x5ecb 36
Возьмем для примера 192.168.0.0 и проследим судьбу этого LSA. Итак, метрика равна 10, тип 2, Forwardind address по нулям. Ок.
root@O1> show ospf database external lsa-id 192.168.0.0 detail
OSPF AS SCOPE link state database
Type ID Adv Rtr Seq Age Opt Cksum Len
Extern *192.168.0.0 10.0.10.1 0x80000006 17 0x22 0x322 36
mask 255.255.255.255
Topology default (ID 0)
Type: 2, Metric: 10, Fwd addr: 0.0.0.0, Tag: 0.0.0.0
О1 рассылает такой LSA своим соседям, в итоге и О2 и О3 его получают.
root@O3> show ospf database external lsa-id 192.168.0.0 detail
OSPF AS SCOPE link state database
Type ID Adv Rtr Seq Age Opt Cksum Len
Extern 192.168.0.0 10.0.10.1 0x80000006 101 0x22 0x322 36
mask 255.255.255.255
Topology default (ID 0)
Type: 2, Metric: 10, Fwd addr: 0.0.0.0, Tag: 0.0.0.0
root@O3> show ospf route 192.168.0.0
Topology default Route Table:
Prefix Path Route NH Metric NextHop Nexthop
Type Type Type Interface Address/LSP
192.168.0.0/32 Ext2 Network IP 10 em6.0 10.10.7.2
Как видно в последнем выводе, маршрут ведет к О1, по кротчайшему пути. Прекрасно. Вполне логично, что при обрыве линка О1-О3 маршрут поменяется и трафик пойдет по длинному пути О3-О2-О1. Вполне логично. Но почему? Метрика нам тут не поможет...
Итак, LSA Type 5 про 192.168.0.0 доходит до О3. Глянем на него ещё разок.
root@O3> show ospf database external lsa-id 192.168.0.0 detail
OSPF AS SCOPE link state database
Type ID Adv Rtr Seq Age Opt Cksum Len
Extern 192.168.0.0 10.0.10.1 0x8000000c 708 0x22 0xf628 36
mask 255.255.255.255
Topology default (ID 0)
Type: 2, Metric: 10, Fwd addr: 0.0.0.0, Tag: 0.0.0.0
Эти строки дают нашему О3 знания о том, что префикс 192.168.0.0 находится за роутером с RouterID 10.0.10.1.
Для того чтобы понять как добраться до роутера с ID 10.0.10.1 O3 предпринимает следующие действия.
1. Находит Advertising Router в LSA Type 5, что является Router ID ASBRa.
2. Считает наиболее выгодный маршрут основываясь на LSDB в этой области до ASBRa.
3. Next-Hop в сторону ASBRa и будет подставлен в таблицу маршрутизации.
Поэтому, в случае отказа линка, таблица маршрутизации сразу поменяется. Наиболее выгодный маршрут в случае аварии до ASBRa будет лежать через О2.
E2 Inter-area
Теперь посмотрим как себя будет вести O5. Для этого потребуются ещё некоторые изменения в сети, для наглядности. Сейчас все линки в сети имеют одинаковую стоимость. Каждый линк по 1Г, а rreference-bandwidth настроен на 100Г. Путем несложной калькуляции получаем, что каждый линк в сети имеет стоимость 100. Линки в area1 оставим без изменения, а вот в area0 линк от О2 к О1 сделаем похуже, так будет поинтересней.
root@O2# set protocols ospf area 0 interface em7.0 metric 50
root@O2# commit and-quit
commit complete
Exiting configuration mode
root@O2> show ospf interface em7.0 detail
Interface State Area DR ID BDR ID Nbrs
em7.0 PtToPt 0.0.0.0 0.0.0.0 0.0.0.0 1
Type: P2P, Address: 10.10.6.2, Mask: 255.255.255.252, MTU: 1986, Cost: 50
Adj count: 1
Hello: 10, Dead: 40, ReXmit: 5, Not Stub
Auth type: None
Protection type: None
Topology default (ID 0) -> Cost: 50
Теперь имеем примерно такую картину.
Пришло время взглянуть на О5. Он получает все те же LSA Type5 с типом E2. Метрика одинаковая и равна 10. У О5 есть четыре возможных пути, два из которых проходят через линк О2 - О3. Понятно, что такой маршрут точно не будет выбран. А какой будет? Конечно же О5 - О2 - О1, что логично. И вот какой алгоритм стоит за этим простым умозаключением (чуть сложнее, чем в случае Intra-area). Посмотрим прям с командами, лишнее я буду заменять тремя точками.
1. О5 находит Advertising Router в LSA Type 5, что является Router ID ASBRa (как и в прошлом случае). В нашем случае это будет 10.0.10.1.
root@O5> show ospf database external lsa-id 192.168.0.0 detail
Type ID Adv Rtr Seq Age Opt Cksum Len
Extern 192.168.0.0 10.0.10.1 0x8000000e 191 0x22 0xf22a 36
Type ID Adv Rtr Seq Age Opt Cksum Len
Extern 192.168.0.0 10.0.10.1 0x8000000e 191 0x22 0xf22a 36
...
2. Далее О5 находит все ABR через которые доступен ASBR. Далает он это с помощью LSA Type 4. Я уже писал про этот процесс в прошлом посте. У нас есть LSA Type 4 c ID 10.0.10.1, в котором содержится.
root@O5> show ospf database asbrsummary lsa-id 10.0.10.1 detail
Type ID Adv Rtr Seq Age Opt Cksum Len
ASBRSum 10.0.10.1 10.0.10.2 0x80000007 599 0x22 0xbd1b 28
...
Type ID Adv Rtr Seq Age Opt Cksum Len
ASBRSum 10.0.10.1 10.0.10.2 0x80000007 599 0x22 0xbd1b 28
...
Topology default (ID 0) -> Metric: 50
ASBRSum 10.0.10.1 10.0.10.3 0x80000007 662 0x22 0xadf7 28
...
Topology default (ID 0) -> Metric: 100
ASBRSum 10.0.10.1 10.0.10.3 0x80000007 662 0x22 0xadf7 28
...
Topology default (ID 0) -> Metric: 100
Тут становится видно, что добраться до ASBRa с RID 10.0.10.1 можно через ABR 10.0.10.2 (O2) стоимость от этого ABRa до интересующего нас ASBRa равна 50. Либо можно пойти через ABR 10.0.10.3 (О3), такой путь этот ABR оценивает уже в 100 попугаев. Это важно, в LSA Type 4 передается стоимость от ABRа до ASBRa. Они рассказывают в других областях, что через них можно выйти из автономной системы и во сколько они это оценивают.
3. О5 считает стоимости для достижения О2 и О3 основываясь на LSDB внутри области 1. Эта информация уже есть в таблице.
root@O5> show ospf route 10.0.10.2
Prefix Path Route NH Metric NextHop Nexthop
Type Type Type Interface Address/LSP
10.0.10.2 Intra Area BR IP 100 em2.0 10.10.1.1
root@O5> show ospf route 10.0.10.3
Prefix Path Route NH Metric NextHop Nexthop
Type Type Type Interface Address/LSP
10.0.10.3 Intra Area BR IP 100 em4.0 10.10.5.2
Prefix Path Route NH Metric NextHop Nexthop
Type Type Type Interface Address/LSP
10.0.10.2 Intra Area BR IP 100 em2.0 10.10.1.1
root@O5> show ospf route 10.0.10.3
Prefix Path Route NH Metric NextHop Nexthop
Type Type Type Interface Address/LSP
10.0.10.3 Intra Area BR IP 100 em4.0 10.10.5.2
Стоимости одинаковые.
4. О5 складывает полученные стоимости из шага 2 и 3.
В первом случае, до 192.168.0.0 можно добраться через О2 и стоить это будет 100 + 50 = 150 попугаев.
Второй вариант - через О2 и стоить это уже будет 100 + 100 = 200. Выбор очевиден и О5 добавляет наиболее выгодный маршрут в таблицу.
В первом случае, до 192.168.0.0 можно добраться через О2 и стоить это будет 100 + 50 = 150 попугаев.
Второй вариант - через О2 и стоить это уже будет 100 + 100 = 200. Выбор очевиден и О5 добавляет наиболее выгодный маршрут в таблицу.
root@O5> show ospf route 192.168.0.0
Topology default Route Table:
Prefix Path Route NH Metric NextHop Nexthop
Type Type Type Interface Address/LSP
192.168.0.0/32 Ext2 Network IP 10 em2.0 10.10.1.1
Обратите внимание, метрика по прежнему равна 10, потому что это E2 маршрут.
Topology default Route Table:
Prefix Path Route NH Metric NextHop Nexthop
Type Type Type Interface Address/LSP
192.168.0.0/32 Ext2 Network IP 10 em2.0 10.10.1.1
Обратите внимание, метрика по прежнему равна 10, потому что это E2 маршрут.
E1
В случае E1 маршрутов, все вроде бы как проще, потому что метрика изменяется по пути. Каждый маршрутизатор добавляет свою стоимость к оригинальной метрике. Итак, сеть та же, стоимости линков те же, единственное, что мы поменяли, это тип маршрутов на E1.
Внутри одной области все совсем просто, О3 из аналогичного примера с E2 маршрутами, руководствуется все теми же принципами. Единственное, что измениться, это метрика. Теперь она складывается из оригинальной метрики (10) просуммированной со стоимостью исходящего линка.
root@O3> show ospf route 192.168.0.0
Topology default Route Table:
Prefix Path Route NH Metric NextHop Nexthop
Type Type Type Interface Address/LSP
192.168.0.0/32 Ext1 Network IP 110 em6.0 10.10.7.2
Topology default Route Table:
Prefix Path Route NH Metric NextHop Nexthop
Type Type Type Interface Address/LSP
192.168.0.0/32 Ext1 Network IP 110 em6.0 10.10.7.2
Да и в случае О5 все будет происходить аналогично примеру из E2 Intra-area.
1. О5 ищет наиболее выгодную стоимость до ближайшего ABRа, который анонсировал LSA Type 4 (в нешем случае они одинаковы).
2. Добавляет стоимости от ABRов до ASBRа.
3. И приплюсовывает оригинальную метрику.
В таком случае, у О5 будет два маршрута на выбор
О5-О2-О1 100+50+10 = 160
О5-О3-О1 100+100+10 = 210
Конечно же, лучший маршрут можно увидеть в таблице.
root@O5> show ospf route 192.168.0.0
Topology default Route Table:
Prefix Path Route NH Metric NextHop Nexthop
Type Type Type Interface Address/LSP
192.168.0.0/32 Ext1 Network IP 160 em2.0 10.10.1.1
Topology default Route Table:
Prefix Path Route NH Metric NextHop Nexthop
Type Type Type Interface Address/LSP
192.168.0.0/32 Ext1 Network IP 160 em2.0 10.10.1.1
Еще раз замечу, теперь метрика меняется, потому как мы работаем с E1 маршрутами.
И ещё...
Метрика всегда побеждает. Если бы у О5 было два маршрута E2, но с разной метрикой, он не стал бы заморачиваться и выбрал бы наименьшую. Более того, если сущесвтует два одинаковых маршрута в одну сеть, но с двумя разными типами, то всегда будет отдано предпочтение маршруту E1. Причем независимо от метрики.
Комментариев нет:
Отправить комментарий