【OSPF】マルチアクセス環境(DR/BDR)

イーサネットのように、1つのセグメントに何台ものルータがつながるネットワークを、マルチアクセスネットワークと呼びます。OSPF は、マルチアクセスネットワークで代表ルータ(DR)とバックアップ代表ルータ(BDR)を選び、LSA の交換を効率よく行います。この記事では、DR と BDR の役割と選ばれ方、設定と確認の方法をまとめます。

この記事でわかること
  1. マルチアクセスネットワークで DR が必要な理由
  2. DR/BDR の選ばれ方(優先度とルータ ID)
  3. show ip ospf interface と show ip ospf neighbor での DR/BDR の確認

マルチアクセスネットワークでの LSA 交換の問題

OSPF のルータは、隣接関係(FULL)になったルータと、1対1で LSA を交換します。

LSA の交換(1対1)
図1 1対1での LSA の交換

マルチアクセスネットワークで、すべてのルータが互いに隣接関係になって1対1で LSA を交換すると、組み合わせの数が多くなります。ルータが n 台なら n(n−1)/2 本で、5台なら10本です。同じ LSA が何度もやり取りされ、経路情報の更新に負荷がかかります。

5台で10本
図2 すべてのルータが1対1で 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 BDR DROTHERDROTHERDROTHERDROTHER DROTHER 同士(灰色の点線)は 2-WAY のままで、LSA を直接交換しない DR との隣接(FULL) BDR との隣接(FULL)
図3 DR と BDR を中心にした LSA の交換

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 になります。

Area 0 R1(DROTHER)R2(BDR) R3(DR)Lo0 3.3.3.3/32 Lo0 1.1.1.1/32Lo0 2.2.2.2/32 .1.2.3 192.168.123.0/24
図4 検証構成

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 1R1 は DR でも BDR でもない。優先度は既定値の 1
Designated Router (ID) 3.3.3.3DR は R3
Backup Designated router (ID) 2.2.2.2BDR は R2
Adjacent neighbor count is 2DR と 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)を作る
BDRDR に障害が起きたときに DR を引き継ぐ
DROTHERDR と BDR とだけ FULL になる。DROTHER 同士は 2-WAY
選ばれ方優先度が大きい順、同じならルータ ID が大きい順。優先度 0 は対象外。あとから入れ替わらない

コメント