イーサネットのように、1つのセグメントに何台ものルータがつながるネットワークを、マルチアクセスネットワークと呼びます。OSPF は、マルチアクセスネットワークで代表ルータ(DR)とバックアップ代表ルータ(BDR)を選び、LSA の交換を効率よく行います。この記事では、DR と BDR の役割と選ばれ方、設定と確認の方法をまとめます。
- マルチアクセスネットワークで DR が必要な理由
- DR/BDR の選ばれ方(優先度とルータ ID)
show ip ospf interfaceとshow ip ospf neighborでの DR/BDR の確認
マルチアクセスネットワークでの LSA 交換の問題
OSPF のルータは、隣接関係(FULL)になったルータと、1対1で LSA を交換します。
マルチアクセスネットワークで、すべてのルータが互いに隣接関係になって1対1で LSA を交換すると、組み合わせの数が多くなります。ルータが n 台なら n(n−1)/2 本で、5台なら10本です。同じ LSA が何度もやり取りされ、経路情報の更新に負荷がかかります。
代表ルータ(DR)とバックアップ代表ルータ(BDR)
代表ルータ(Designated Router:DR)は、マルチアクセスネットワークで経路情報の更新の負荷を減らすためのルータです。OSPF が有効なセグメントごとに、DR が1台選ばれます。
バックアップ代表ルータ(Backup Designated Router:BDR)は、DR に障害が起きたときに DR の役割を引き継ぐルータです。
DR でも BDR でもないルータ(DROTHER)は、DR と BDR とだけ隣接関係(FULL)になり、LSA を交換します。DROTHER 同士は 2-WAY のままで、LSA を直接は交換しません。DROTHER が送った LSA は DR が受け取り、セグメントのほかのルータへ配ります。
DR は、このセグメントを表すネットワーク LSA(タイプ2)を作ります。トポロジーの中では、このタイプ2がセグメントを表す擬似ノードになります。詳しくは LSA タイプ1/タイプ2 の記事で確かめています。
DR/BDR の選ばれ方
DR と BDR は、Hello パケットに入っている情報で選ばれます。
| 順番 | 決め方 |
|---|---|
| 1 | インターフェースの OSPF 優先度(priority)がいちばん大きいルータが選ばれる。既定値は 1 |
| 2 | 優先度が同じときは、ルータ ID がいちばん大きいルータが選ばれる |
| 例外 | 優先度が 0 のルータは、DR にも BDR にもならない |
いったん DR が決まったあとで、DR より優先度の高いルータがつながっても、すぐには入れ替わりません。今の DR や BDR が落ちるまで、そのルータは DR にも BDR にもなりません。
基本設定と確認
検証構成
R1、R2、R3 を同じセグメント 192.168.123.0/24 につなぎ、すべてエリア0で OSPF を有効にします。優先度はすべて既定値の 1 なので、ルータ ID がいちばん大きい R3(3.3.3.3)が DR、次の R2(2.2.2.2)が BDR になります。
OSPF を設定する
OSPF を有効にするインターフェースとエリア番号を、network コマンドで設定します。
R1
R1(config)#router ospf 1 R1(config-router)#network 192.168.123.0 0.0.0.255 area 0 R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
R2
R2(config)#router ospf 1 R2(config-router)#network 192.168.123.0 0.0.0.255 area 0 R2(config-router)#network 2.2.2.2 0.0.0.0 area 0
R3
R3(config)#router ospf 1 R3(config-router)#network 192.168.123.0 0.0.0.255 area 0 R3(config-router)#network 3.3.3.3 0.0.0.0 area 0
R1 が DR と BDR の両方と隣接関係(FULL)になると、次のログが出ます。
R1# %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on FastEthernet0/0.123 from LOADING to FULL, Loading Done %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on FastEthernet0/0.123 from LOADING to FULL, Loading Done
インターフェースを確認する
show ip ospf interface で、自分の役割と優先度、DR と BDR、隣接関係になっているネイバーを確認できます。
R1
R1#show ip ospf interface
Loopback0 is up, line protocol is up
Internet Address 1.1.1.1/32, Area 0, Attached via Network Statement
Process ID 1, Router ID 1.1.1.1, Network Type LOOPBACK, Cost: 1
Topology-MTID Cost Disabled Shutdown Topology Name
0 1 no no Base
Loopback interface is treated as a stub Host
FastEthernet0/0.123 is up, line protocol is up
Internet Address 192.168.123.1/24, Area 0, Attached via Network Statement
Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
Topology-MTID Cost Disabled Shutdown Topology Name
0 1 no no Base
Transmit Delay is 1 sec, State DROTHER, Priority 1
Designated Router (ID) 3.3.3.3, Interface address 192.168.123.3
Backup Designated router (ID) 2.2.2.2, Interface address 192.168.123.2
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
oob-resync timeout 40
Hello due in 00:00:00
Supports Link-local Signaling (LLS)
Cisco NSF helper support enabled
IETF NSF helper support enabled
Index 1/1, flood queue length 0
Next 0x0(0)/0x0(0)
Last flood scan length is 0, maximum is 1
Last flood scan time is 0 msec, maximum is 0 msec
Neighbor Count is 2, Adjacent neighbor count is 2
Adjacent with neighbor 2.2.2.2 (Backup Designated Router)
Adjacent with neighbor 3.3.3.3 (Designated Router)
Suppress hello for 0 neighbor(s)
| 表示 | 意味 |
|---|---|
| State DROTHER, Priority 1 | R1 は DR でも BDR でもない。優先度は既定値の 1 |
| Designated Router (ID) 3.3.3.3 | DR は R3 |
| Backup Designated router (ID) 2.2.2.2 | BDR は R2 |
| Adjacent neighbor count is 2 | DR と BDR の2台と隣接関係になっている |
ネイバーを確認する
show ip ospf neighbor で、セグメントのどのルータと、どの状態になっているかを確認できます。R1 から見ると、R3(3.3.3.3)が DR、R2(2.2.2.2)が BDR です。
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.123.2 FastEthernet0/0.123 3.3.3.3 1 FULL/DR 00:00:31 192.168.123.3 FastEthernet0/0.123
R2 から見ると、R1(1.1.1.1)は DR でも BDR でもないので、DROTHER と表示されます。
R2
R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 FULL/DROTHER 00:00:39 192.168.123.1 FastEthernet0/0.123
3.3.3.3 1 FULL/DR 00:00:32 192.168.123.3 FastEthernet0/0.123
ルーティングテーブルを確認する
R1 が、R2 と R3 のループバックを OSPF で学習しています。コストの 2 は、セグメントのコスト 1 とループバックのコスト 1 の合計です。
R1
R1#sh ip route ospf
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
2.0.0.0/32 is subnetted, 1 subnets
O 2.2.2.2 [110/2] via 192.168.123.2, 00:08:03, FastEthernet0/0.123
3.0.0.0/32 is subnetted, 1 subnets
O 3.3.3.3 [110/2] via 192.168.123.3, 00:07:49, FastEthernet0/0.123
まとめ
| 役割 | 内容 |
|---|---|
| DR | セグメントの LSA の交換の中心になり、ネットワーク LSA(タイプ2)を作る |
| BDR | DR に障害が起きたときに DR を引き継ぐ |
| DROTHER | DR と BDR とだけ FULL になる。DROTHER 同士は 2-WAY |
| 選ばれ方 | 優先度が大きい順、同じならルータ ID が大きい順。優先度 0 は対象外。あとから入れ替わらない |
コメント