1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
RID: 2.2.2.2 10.0.0.4/30 +------+ .6 | | Uplink +--------------+ R2 +------> |.5 | | +------+ +------+ | | | R1 | | | +------+ |.1 +------+ | .2 | | Uplink +--------------+ R3 +------> | | 10.0.0.0/30 +------+ RID: 3.3.3.3 |
Все мы понимаем как нужно сделать в данной ситуации, но..
Схема: R2 и R3 анонсируют default в сторону downlink-а (R1):
1 |
default-information originate always |
На R1 используется maximum-paths 1 для выбора только 1 маршрута.
Посмотрим какой из маршрутов выберет R1:
Default через R2, т.к R3 мы включили позднее:
1 2 3 4 5 6 7 8 9 |
R1# sh ip route 0.0.0.0 Routing entry for 0.0.0.0/0, supernet Known via "ospf 1", distance 110, metric 1, candidate default path Tag 1, type extern 2, forward metric 10 Last update from 10.0.0.6 on Ethernet0/0, 00:03:12 ago Routing Descriptor Blocks: * 10.0.0.6, from 2.2.2.2, 00:03:12 ago, via Ethernet0/0 Route metric is 1, traffic share count is 1 Route tag 1 |
Попробуем убрать из анонса маршрут от R2 и вернуть обратно..
1 |
R2(config-router)# no default-information originate always |
Через некоторое время возвращаем и вкл. отладку на R1:
1 2 3 4 5 |
R1# debug ip ospf rib OSPF RIB (Routing Information Base) debugging is on OSPF Local RIB (Routing Information Base) debugging is on OSPF Global RIB (Routing Information Base) debugging is on OSPF Redistribution debugging is on |
Маршрут ушел (сейчас через R3):
1 2 3 4 5 6 7 8 9 |
R1# sh ip route 0.0.0.0 Routing entry for 0.0.0.0/0, supernet Known via "ospf 1", distance 110, metric 1, candidate default path Tag 1, type extern 2, forward metric 10 Last update from 10.0.0.2 on Ethernet0/1, 00:01:23 ago Routing Descriptor Blocks: * 10.0.0.2, from 3.3.3.3, 00:01:23 ago, via Ethernet0/1 Route metric is 1, traffic share count is 1 Route tag 1 |
1 |
R2(config-router)# default-information originate always |
Видно, что он не установился в RIB, not preempt или oldest win что и логично.
1 2 3 4 5 6 |
R1# *May 2 08:52:01.765: OSPF-1 LRIB : Add 0.0.0.0/0, area dummy area, type Ext2, dist 1, forward 10, tag 0x1, via 10.0.0.6 Ethernet0/0, route flags (PartialSPF), path flags (none), source 2.2.2.2, spf 93, list-type route_type_list *May 2 08:52:01.765: OSPF-1 LRIB : Add 0.0.0.0/0, area dummy area, type Ext2, dist 1, forward 10, tag 0x1, via 10.0.0.2 Ethernet0/1, route flags (PartialSPF), path flags (none), source 3.3.3.3, spf 93, list-type route_type_list *May 2 08:52:01.765: OSPF-1 GRIB : IP route add of 1 next hops failed for 0.0.0.0/0 (flags (None), type Ext2, tag 0x1), retcode 21 *May 2 08:52:01.765: OSPF-1 GRIB : Next hop via 10.0.0.6 on Ethernet0/0 (distance 1, source 2.2.2.2, label 1048578) NOT installed *May 2 08:52:01.765: OSPF-1 LRIB : Sync'ed 0.0.0.0/0 type Ext2 - change (0x0): added 0 paths, deleted 0 paths, spf 93, route instance 93 |
Но данное поведение не постоянно, попробуем выполнить clear ip ospf process или clear ip ospf force-spf или ribна роутере R1, предварительно «вернув» все как было, т.е best через R2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
R1# clear ip ospf process Reset ALL OSPF processes? [no]: yes *May 2 08:59:16.572: %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on Ethernet0/1 from FULL to DOWN, Neighbor Down: Interface down or detached *May 2 08:59:16.572: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on Ethernet0/0 from FULL to DOWN, Neighbor Down: Interface down or detached *May 2 08:59:16.572: OSPF-1 LRIB : Local RIB clear *May 2 08:59:16.582: %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on Ethernet0/1 from LOADING to FULL, Loading Done *May 2 08:59:16.582: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on Ethernet0/0 from LOADING to FULL, Loading Done *May 2 08:59:21.589: OSPF-1 LRIB : Add 10.0.0.0/30, area 0, type Intra, dist 10, forward 0, tag 0x0, via 10.0.0.1 Ethernet0/1, route flags (Connected), path flags (Connected), source 1.1.1.1, spf 31, list-type change_list *May 2 08:59:21.589: OSPF-1 LRIB : Add 10.0.0.4/30, area 0, type Intra, dist 10, forward 0, tag 0x0, via 10.0.0.5 Ethernet0/0, route flags (Connected), path flags (Connected), source 1.1.1.1, spf 31, list-type change_list *May 2 08:59:21.589: OSPF-1 LRIB : Sync'ed 10.0.0.4/30 type Intra - change (Change, HigherCost): added 0 paths, deleted 0 paths, spf 31, route instance 31 *May 2 08:59:21.589: OSPF-1 LRIB : Sync'ed 10.0.0.0/30 type Intra - change (Change, HigherCost): added 0 paths, deleted 0 paths, spf 31, route instance 31 *May 2 08:59:21.589: OSPF-1 LRIB : Add 0.0.0.0/0, area dummy area, type Ext2, dist 1, forward 10, tag 0x1, via 10.0.0.6 Ethernet0/0, route flags (None), path flags (none), source 2.2.2.2, spf 94, list-type change_list *May 2 08:59:21.589: OSPF-1 LRIB : Add 0.0.0.0/0, area dummy area, type Ext2, dist 1, forward 10, tag 0x1, via 10.0.0.2 Ethernet0/1, route flags (None), path flags (none), source 3.3.3.3, spf 94, list-type change_list *May 2 08:59:21.589: OSPF-1 GRIB : IP route replace of 2 next hops failed for 0.0.0.0/0 (flags (None), type Ext2, tag 0x1), retcode 29 *May 2 08:59:21.589: OSPF-1 GRIB : Next hop via 10.0.0.2 on Ethernet0/1 (distance 1, source 3.3.3.3, label 1048578) installed *May 2 08:59:21.589: OSPF-1 GRIB : Next hop via 10.0.0.6 on Ethernet0/0 (distance 1, source 2.2.2.2, label 1048578) NOT installed *May 2 08:59:21.589: OSPF-1 LRIB : Sync'ed 0.0.0.0/0 type Ext2 - change (Change, PathChange, HigherCost): added 1 paths, deleted 0 paths, spf 94, route instance 94 *May 2 08:59:26.596: OSPF-1 LRIB : Add 0.0.0.0/0, area dummy area, type Ext2, dist 1, forward 10, tag 0x1, via 10.0.0.6 Ethernet0/0, route flags (None), path flags (none), source 2.2.2.2, spf 95, list-type change_list *May 2 08:59:26.596: OSPF-1 LRIB : Add 0.0.0.0/0, area dummy area, type Ext2, dist 1, forward 10, tag 0x1, via 10.0.0.2 Ethernet0/1, route flags (None), path flags (none), source 3.3.3.3, spf 95, list-type change_list *May 2 08:59:26.596: OSPF-1 GRIB : IP route add of 1 next hops failed for 0.0.0.0/0 (flags (None), type Ext2, tag 0x1), retcode 21 *May 2 08:59:26.596: OSPF-1 GRIB : Next hop via 10.0.0.6 on Ethernet0/0 (distance 1, source 2.2.2.2, label 1048578) NOT installed *May 2 08:59:26.596: OSPF-1 LRIB : Sync'ed 0.0.0.0/0 type Ext2 - change (0x0): added 0 paths, deleted 0 paths, spf 95, route instance 95 |
Видно, что маршрут через R3 с RID 3.3.3.3 установился как best, ранее был через R2.
Несмотря на то что роут через R2 более «старый»
1 2 3 |
R1# sh ip ospf database | b ^0.0.0.0 0.0.0.0 2.2.2.2 88 0x80000002 0x00FCAC 1 0.0.0.0 3.3.3.3 65 0x8000001F 0x00A4E3 1 |
Поведение напоминает выбор DR/BDR в broadcast сети, выбираем роутер с наивысшим RID, если уже выбран, оставляем сеть стабильной.
Также, интересная статья по выбору best через различные типы сетей, и наличия 2х путей к одному роутеру OSPF Path selection – Parallel Serial & Fast Ethernet Links
Конфигурация роутеров:
R1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
! hostname R1 ! interface Ethernet0/0 ip address 10.0.0.5 255.255.255.252 ip ospf network point-to-point ! interface Ethernet0/1 ip address 10.0.0.1 255.255.255.252 ip ospf network point-to-point ! router ospf 1 router-id 1.1.1.1 network 10.0.0.0 0.0.0.255 area 0 maximum-paths 1 ! |
R2
1 2 3 4 5 6 7 8 9 10 11 12 |
! hostname R2 ! interface Ethernet0/0 ip address 10.0.0.6 255.255.255.252 ip ospf network point-to-point ! router ospf 1 router-id 2.2.2.2 network 10.0.0.0 0.0.0.255 area 0 default-information originate always ! |
R3
1 2 3 4 5 6 7 8 9 10 11 12 |
! hostname R3 ! interface Ethernet0/0 ip address 10.0.0.2 255.255.255.252 ip ospf network point-to-point ! router ospf 1 router-id 3.3.3.3 network 10.0.0.0 0.0.0.255 area 0 default-information originate always ! |