FRR実践③ OSPFv2基本 DR BDR DROTHER 確認編
おさらい
本項ではDR/BDRの選出動作について確認していきます。
DR/BDRとは
DRは代表ルーターという呼びなでBDRはそのバックアップです。
OSPFはLSAと呼ばれる、各ルーターが持つ隣接ルーターの情報を交換しあい、LSDBというデータベースを構築することでどこにどのネットワークが存在するかを各ルーターで共有することで宛先にパケットを転送する仕組みなっています。
このLSAの交換を極小化する仕組みが備わっており、DROTHERはDR/BDRとだけLSAをやり取りすればLSDBが構築できる仕組みなっています。(DROTHER間ではLSA交換しなくてよい)
DR/BDRの選出
構成のポイントは以下のようにルーターIDとプライオリティの組み合わせが多少変則にしてあります。
ホスト名 | RouterID | Priority |
---|---|---|
Router_A | 10.0.0.1 | 255 |
Router_B | 10.0.0.2 | 255 |
Router_C | 10.0.0.3 | 253 |
Router_D | 10.0.0.4 | 254 |
これはOSPFのDR/DBRの選出が次のようなルールに基づくからです。
・プライオリティの一番高いルータがDRになる。
・ルータIDが一番大きいルーターがDRになる。
・次点のルーターがBDRになる。
・それ以外のルーターがDROTHERになる。
実機の動作を確認してみましょう。DR/BDRがどのルーターか確認するには
show ip ospf neighbor を実行します。
Router_A
Router_A# show ip ospf neighbor
OSPF Instance: 1
Neighbor ID Pri State Up Time Dead Time Address Interface RXmtL RqstL DBsmL
10.0.0.2 255 Full/DR 47m26s 38.787s 172.16.0.2 eth7:172.16.0.1 0 0 0
10.0.0.3 253 Full/DROther 47m23s 31.387s 172.16.0.3 eth7:172.16.0.1 0 0 0
10.0.0.4 254 Full/DROther 44m15s 33.603s 172.16.0.4 eth7:172.16.0.1 0 0 0
Router_B
Router_B# show ip ospf neighbor
OSPF Instance: 1
Neighbor ID Pri State Up Time Dead Time Address Interface RXmtL RqstL DBsmL
10.0.0.1 255 Full/Backup 48m23s 35.044s 172.16.0.1 eth7:172.16.0.2 0 0 0
10.0.0.3 253 Full/DROther 48m25s 34.407s 172.16.0.3 eth7:172.16.0.2 0 0 0
10.0.0.4 254 Full/DROther 45m12s 36.624s 172.16.0.4 eth7:172.16.0.2 0 0 0
Router_C
Router_C# show ip ospf neighbor
OSPF Instance: 1
Neighbor ID Pri State Up Time Dead Time Address Interface RXmtL RqstL DBsmL
10.0.0.1 255 Full/Backup 48m55s 30.315s 172.16.0.1 eth7:172.16.0.3 0 0 0
10.0.0.2 255 Full/DR 49m00s 37.059s 172.16.0.2 eth7:172.16.0.3 0 0 0
10.0.0.4 254 2-Way/DROther 45m38s 31.896s 172.16.0.4 eth7:172.16.0.3 0 0 0
Router_D
Router_D# show ip ospf neighbor
OSPF Instance: 1
Neighbor ID Pri State Up Time Dead Time Address Interface RXmtL RqstL DBsmL
10.0.0.1 255 Full/Backup 46m10s 36.895s 172.16.0.1 eth7:172.16.0.4 0 0 0
10.0.0.2 255 Full/DR 46m10s 33.637s 172.16.0.2 eth7:172.16.0.4 0 0 0
10.0.0.3 253 2-Way/DROther 46m10s 36.277s 172.16.0.3 eth7:172.16.0.4 0 0 0
4台のshow ip ospf neighborを確認するとRouter_BがDR、Router_AがBDRであることが分かると思います。
これは前述のプライオリティとルーターIDの組み合わせによるもので、Router_AとRouter_Bは同一プライオリティ(255)ですが、ルーターIDがRouter_Bのほうが大きいため、Router_BがDRに選出されています。次いでRouter_AがBDRになります。Router_CとRouter_Dはプライオリティが低いのでDROTHERになります。
DR/BDRの再選出
ではRouter_Bがいない場合はどのようになるでしょうか。以下のようにRouter_Bのケーブル結線を削除して確認してみましょう。
Router_A
Router_A# show ip ospf neighbor
OSPF Instance: 1
Neighbor ID Pri State Up Time Dead Time Address Interface RXmtL RqstL DBsmL
10.0.0.3 253 Full/DROther 57m05s 39.741s 172.16.0.3 eth7:172.16.0.1 0 0 0
10.0.0.4 254 Full/Backup 53m57s 31.962s 172.16.0.4 eth7:172.16.0.1 0 0 0
Router_C
Router_C# show ip ospf neighbor
OSPF Instance: 1
Neighbor ID Pri State Up Time Dead Time Address Interface RXmtL RqstL DBsmL
10.0.0.1 255 Full/DR 57m34s 31.434s 172.16.0.1 eth7:172.16.0.3 0 0 0
10.0.0.4 254 Full/Backup 2m17s 33.020s 172.16.0.4 eth7:172.16.0.3 0 0 0
Router_D
Router_D# show ip ospf neighbor
OSPF Instance: 1
Neighbor ID Pri State Up Time Dead Time Address Interface RXmtL RqstL DBsmL
10.0.0.1 255 Full/DR 54m45s 32.003s 172.16.0.1 eth7:172.16.0.4 0 0 0
10.0.0.3 253 Full/DROther 2m36s 31.364s 172.16.0.3 eth7:172.16.0.4 0 0 0
3台のshow ip ospf neighbor結果からRouter_AがDRに選出され、Router_DがBDRに昇格しました。
Router_Bが不在になったので元々次点にいたRouter_AがDRになります。
Router_CよりRouter_Dの方が、プライオリティもルーターIDも大きいためBDR昇格する動作となります。
このようにセグメント内で3台以上のルーターがいた場合には、DR/BDR/DROTHERが構成され、プライオリティとルーターIDにより関係性が構築されます。
Full/2Wayとは
show ip ospf neighborの表示に「Full/DROther」や「2-Way/DROther」と表示されるケースがあります。これはDR/BDRとDROTHERとの間はFull、DROTHER間は2-Wayとなります。つまりLSAの交換がされているルーター間はFull、DROTHER間は2-Wayとなります。
Discussion