助け合いフォーラム
この問題はプレミアムコンテンツです。
プロセスをリセットしてもDR/BDRが切り替わらない
パケトレで設問の状況を再現してOSPFプロセスのリセットを実行したところ、リセット後もR1がDRのままでした。
解説では「DRであるR1がDownすると、自動的にBDRであるR2がDRになる」とありますが、
考えるに、プロセスをリセットするとネイバー関係を一度解消してHelloパケットのやり取りからやり直すことになり、Helloパケットに含まれるルータIDを比較してDR/BDRを選出しなおすため、結局ルータIDの大きいR1が再びDRに選ばれるのではないかと思います。
一度DR/BDRが決定すると後からプライオリティやルータIDを変更しても役割は変わらないため、確かにプロセスのリセットは必要かと思いますが、
解答としては、
・R1にR2よりも小さいルータIDを設定する
・R1のOSPFプロセスをリセットする
あるいは
・R2のプライオリティを最大値にする
・R2のOSPFプロセスをリセットする
のいずれかの組み合わせがより正確ではないかと思います。
少なくとも、解説にある「プロセスリセットのみによってDRをBDRに変更できます」という記述は誤りではないかと思うのですが、
ご教示いただけると幸いです。
〈リセット前のR1のネイバーテーブル〉
R1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 1 FULL/BDR 00:00:38 192.168.12.2 GigabitEthernet0/0/0
〈リセット前のR2のネイバーテーブル〉
R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.10.10.10 1 FULL/DR 00:00:38 192.168.12.1 GigabitEthernet0/0/0
〈R1でプロセスをリセット〉
R1#clear ip ospf process
Reset ALL OSPF processes? [no]: y
00:09:26: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on GigabitEthernet0/0/0 from FULL to DOWN, Neighbor Down: Adjacency forced to reset
00:09:26: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on GigabitEthernet0/0/0 from FULL to DOWN, Neighbor Down: Interface down or detached
00:09:32: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on GigabitEthernet0/0/0 from LOADING to FULL, Loading Done
〈リセット後のR1のネイバーテーブル〉
R1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 1 FULL/BDR 00:00:36 192.168.12.2 GigabitEthernet0/0/0
〈リセット後のR2のネイバーテーブル〉
R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.10.10.10 1 FULL/DR 00:00:39 192.168.12.1 GigabitEthernet0/0/0
別の投稿への回答にも書きましたが、packet tracerはただのシミュレータなので実機の通りの挙動が全て実装されているとは限らないです。その上で確認してみていただきたいのですが、R1でプロセスリセットした後でR2で show ip ospf events
を実行した結果ってどうなってますか?
手元の環境でやってみたら、R1でプロセスリセットした後はちゃんとBDR→DRとなる挙動が見られます。
R2#sh ip os ev
OSPF Router with ID (2.2.2.2) (Process ID 1)
1 *Jul 21 01:40:32.952: End of SPF, Topo Base, SPF time 0ms, next wait-interval 10000ms
2 *Jul 21 01:40:32.952: Generic: ospf_external_route_sync 0xC
3 *Jul 21 01:40:32.952: Generic: ospf_external_route_sync 0xC
4 *Jul 21 01:40:32.952: Generic: ospf_external_route_sync 0x0
5 *Jul 21 01:40:32.952: Generic: ospf_external_route_sync 0x0
6 *Jul 21 01:40:32.952: Starting External processing, Topo Base in area 12
7 *Jul 21 01:40:32.952: Starting External processing, Topo Base
8 *Jul 21 01:40:32.952: Generic: ospf_inter_route_sync 0xC
9 *Jul 21 01:40:32.952: Generic: ospf_inter_route_sync 0xC
10 *Jul 21 01:40:32.952: Starting summary processing, Topo Base, Area 12
11 *Jul 21 01:40:32.952: Generic: post_spf_intra 0x0
12 *Jul 21 01:40:32.952: Generic: ospf_intra_route_sync 0xC
13 *Jul 21 01:40:32.952: Generic: ospf_intra_route_sync 0xC
14 *Jul 21 01:40:32.952: Starting Intra-Area SPF, Topo Base, Area 12, spf_type Full
15 *Jul 21 01:40:32.952: Starting SPF, Topo Base, wait-interval 5000ms
16 *Jul 21 01:40:32.505: Rcv Changed Type-1 LSA, LSID 10.10.10.10, Adv-Rtr 10.10.10.10, Seq# 80000004, Age 5, Area 12
17 *Jul 21 01:40:32.505: Schedule SPF, Topo Base, Area 12, spf-type Full, Change in LSA Type RLSID 10.10.10.10, Adv-Rtr 10.10.10.10
18 *Jul 21 01:40:28.491: Generate New Type-2 LSA, LSID 192.168.12.2, Seq# 80000001, Age 0, Area 12
19 *Jul 21 01:40:28.491: Schedule SPF, Topo Base, Area 12, spf-type Full, Change in LSA Type NLSID 192.168.12.2, Adv-Rtr 2.2.2.2
20 *Jul 21 01:40:28.490: Schedule SPF, Topo Base, Area 12, spf-type Full, Change in LSA Type RLSID 2.2.2.2, Adv-Rtr 2.2.2.2
21 *Jul 21 01:40:28.490: Generate Changed Type-1 LSA, LSID 2.2.2.2, Seq# 80000004, Age 0, Area 12
22 *Jul 21 01:40:28.002: Neighbor 10.10.10.10, Interface GigabitEthernet0/0 state changes from LOADING to FULL
23 *Jul 21 01:40:28.002: Neighbor 10.10.10.10, Interface GigabitEthernet0/0 state changes from EXCHANGE to LOADING
24 *Jul 21 01:40:27.999: Interface GigabitEthernet0/0 state changes from DR to DR
25 *Jul 21 01:40:27.999: Elect DR: GigabitEthernet0/0 2.2.2.2
26 *Jul 21 01:40:27.999: Elect BDR: GigabitEthernet0/0 10.10.10.10
27 *Jul 21 01:40:27.999: i/f state nbr chg: GigabitEthernet0/0 0x5
28 *Jul 21 01:40:27.999: Interface GigabitEthernet0/0 state changes from DR to DR
29 *Jul 21 01:40:27.999: Elect DR: GigabitEthernet0/0 2.2.2.2
30 *Jul 21 01:40:27.999: Elect BDR: GigabitEthernet0/0 10.10.10.10
31 *Jul 21 01:40:27.999: i/f state nbr chg: GigabitEthernet0/0 0x5
32 *Jul 21 01:40:27.997: Neighbor 10.10.10.10, Interface GigabitEthernet0/0 state changes from EXSTART to EXCHANGE
33 *Jul 21 01:40:27.997: Neighbor 10.10.10.10, Interface GigabitEthernet0/0 state changes from 2WAY to EXSTART
34 *Jul 21 01:40:27.997: nbr state adjok: 10.10.10.10 0x3
35 *Jul 21 01:40:27.997: Interface GigabitEthernet0/0 state changes from DR to DR
36 *Jul 21 01:40:27.997: Elect DR: GigabitEthernet0/0 2.2.2.2
37 *Jul 21 01:40:27.997: Elect BDR: GigabitEthernet0/0 10.10.10.10
38 *Jul 21 01:40:27.997: i/f state nbr chg: GigabitEthernet0/0 0x5
39 *Jul 21 01:40:27.997: Neighbor 10.10.10.10, Interface GigabitEthernet0/0 state changes from INIT to 2WAY
40 *Jul 21 01:40:27.990: Interface GigabitEthernet0/0 state changes from BDR to DR ←ここ
41 *Jul 21 01:40:27.990: Elect DR: GigabitEthernet0/0 2.2.2.2
42 *Jul 21 01:40:27.990: Elect BDR: GigabitEthernet0/0 0.0.0.0
43 *Jul 21 01:40:27.990: Elect DR: GigabitEthernet0/0 2.2.2.2 ←ここ
44 *Jul 21 01:40:27.990: Elect BDR: GigabitEthernet0/0 2.2.2.2
45 *Jul 21 01:40:27.990: i/f state nbr chg: GigabitEthernet0/0 0x6
46 *Jul 21 01:40:27.990: Neighbor 10.10.10.10, Interface GigabitEthernet0/0 state changes from FULL to INIT ←ここ
47 *Jul 21 01:40:27.952: Rcv Changed Type-2 LSA, LSID 192.168.12.1, Adv-Rtr 10.10.10.10, Seq# 80000001, Age 3600, Area 12
48 *Jul 21 01:40:27.952: Schedule SPF, Topo Base, Area 12, spf-type Full, Change in LSA Type NLSID 192.168.12.1, Adv-Rtr 10.10.10.10
49 *Jul 21 01:40:27.952: Rcv Changed Type-1 LSA, LSID 10.10.10.10, Adv-Rtr 10.10.10.10, Seq# 80000003, Age 3600, Area 12
50 *Jul 21 01:40:27.952: Schedule SPF, Topo Base, Area 12, spf-type Full, Change in LSA Type RLSID 10.10.10.10, Adv-Rtr 10.10.10.10
51 *Jul 21 01:39:31.436: Timer Exp: nbr_hold_dbd 0xA0A0A0A
コメント
ご回答ありがとうございます。
パケトレでは「show ip ospf events」コマンドはサポートされていないようで確認することができませんでした。
代わりにR2で「debug ip ospf events」コマンドを使ってログを出力してみましたが、
やはり最終的にルータID:10.10.10.10のほうがDRに選出されているようで、ご指摘の通りパケトレ特有の挙動なのかもしれません。
ちなみに、R2がDRに選出されている今の状況で、例えばR2のプライオリティを255に変更かつR2がDRに選ばれたままにするためには、
両方のルータのプロセスを同時にリセットする必要があるということでしょうか?
R2#debug ip ospf events
00:19:40: OSPF: Cannot see ourself in hello from 192.168.12.1 on GigabitEthernet0/0/0, state INIT
00:19:40: OSPF: Send immediate hello to nbr 192.168.12.1, src address 192.168.12.1 on GigabitEthernet0/0/0
00:19:40: OSPF: DR/BDR election on GigabitEthernet0/0/0
00:19:40: OSPF: Elect BDR 2.2.2.2
00:19:40: OSPF: Elect DR 2.2.2.2
00:19:40: OSPF: Elect BDR 0.0.0.0
00:19:40: OSPF: Elect DR 2.2.2.2
00:19:40: DR: 2.2.2.2 (Id) BDR: none
00:19:40: OSPF: End of hello processing
00:19:40: OSPF: Rcv DBD from 10.10.10.10 on GigabitEthernet0/0/0 seq 0x3e73d8d7 opt 0x00 flag 0x7 len 32 mtu 1500 state INIT
00:19:40: OSPF: Send DBD to 10.10.10.10 on GigabitEthernet0/0/0 seq 0x2f29024c opt 0x00 flag 0x7 len 32
00:19:40: OSPF: NBR Negotiation Done. We are the SLAVE
00:19:40: OSPF: Send DBD to 10.10.10.10 on GigabitEthernet0/0/0 seq 0x3e73d8d7 opt 0x00 flag 0x2 len 112
00:19:40: OSPF: Neighbor change Event on interface GigabitEthernet0/0/0
00:19:40: OSPF: DR/BDR election on GigabitEthernet0/0/0
00:19:40: OSPF: Elect BDR 0.0.0.0
00:19:40: OSPF: Elect DR 10.10.10.10
00:19:40: OSPF: Elect BDR 2.2.2.2
00:19:40: OSPF: Elect DR 10.10.10.10
00:19:40: DR: 10.10.10.10 (Id) BDR: 2.2.2.2 (Id)
00:19:40: OSPF: Rcv hello from 10.10.10.10 area 0 from GigabitEthernet0/0/0 192.168.12.1
00:19:40: OSPF: End of hello processing
00:19:40: OSPF: Rcv DBD from 10.10.10.10 on GigabitEthernet0/0/0 seq 0x3e73d8d8 opt 0x00 flag 0x3 len 32 mtu 1500 state EXCHANGE
00:19:40: OSPF: Send DBD to 10.10.10.10 on GigabitEthernet0/0/0 seq 0x3e73d8d8 opt 0x00 flag 0x0 len 32
00:19:40: OSPF: Rcv DBD from 10.10.10.10 on GigabitEthernet0/0/0 seq 0x3e73d8d9 opt 0x00 flag 0x1 len 32 mtu 1500 state EXCHANGE
00:19:40: OSPF: Send DBD to 10.10.10.10 on GigabitEthernet0/0/0 seq 0x3e73d8d9 opt 0x00 flag 0x0 len 32
00:19:40: Exchange Done with 10.10.10.10 on GigabitEthernet0/0/0
00:19:40: Synchronized with with 10.10.10.10 on GigabitEthernet0/0/0, state FULL
00:19:40: %OSPF-5-ADJCHG: Process 1, Nbr 10.10.10.10 on GigabitEthernet0/0/0 from LOADING to FULL, Loading Done
00:19:40: OSPF: Send DBD to 10.10.10.10 on GigabitEthernet0/0/0 seq 0x3e73d8d9 opt 0x00 flag 0x0 len 32
00:19:50: OSPF: Rcv hello from 10.10.10.10 area 0 from GigabitEthernet0/0/0 192.168.12.1
00:19:50: OSPF: End of hello processing
00:19:50: OSPF: DR/BDR election on GigabitEthernet0/0/0
00:19:50: OSPF: Elect BDR 2.2.2.2
00:19:50: OSPF: Elect DR 10.10.10.10
00:19:50: **DR: 10.10.10.10 (Id) BDR: 2.2.2.2 (Id)**
00:20:00: OSPF: Rcv hello from 10.10.10.10 area 0 from GigabitEthernet0/0/0 192.168.12.1
00:20:00: OSPF: End of hello processing
コメント
この投稿に対して返信しませんか?
a arashi1977
2024/07/21 20:47
> ちなみに、R2がDRに選出されている今の状況で、例えばR2のプライオリティを255に変更かつR2がDRに選ばれたままにするためには、 > 両方のルータのプロセスを同時にリセットする必要があるということでしょうか? 今のままであれば、プライオリティを255にしたければそのまま入れたらいいです。プライオリティ変更はDR変更のトリガーにならないので、プロセスリセットする必要はありません。 ``` R2#sh ip os nei Neighbor ID Pri State Dead Time Address Interface 10.10.10.10 1 FULL/BDR 00:00:38 192.168.12.1 GigabitEthernet0/0 R2#sh ip os int | i DR|line GigabitEthernet0/0 is up, line protocol is up Transmit Delay is 1 sec, State DR, Priority 1 R2#conf t Enter configuration commands, one per line. End with CNTL/Z. R2(config)#int g0/0 R2(config-if)#ip os prio 255 R2(config-if)#end R2#sh ip os int | i DR|line GigabitEthernet0/0 is up, line protocol is up Transmit Delay is 1 sec, State DR, Priority 255 R2#sh ip os nei Neighbor ID Pri State Dead Time Address Interface 10.10.10.10 1 FULL/BDR 00:00:35 192.168.12.1 GigabitEthernet0/0 ```