OSPF DR/BDRの選出 008

今回はOSPFのDR/BDRの選出について詳しく解説致します。

 

座学

DR/BDRの選出

前回の記事で、OSPFのDR、BDRは以下の基準に従い、選出されることを解説しました。

  • Priorityが最大のルータをDRに選出
  • Priorityが2番目に大きいルータをBDRに選出
  • Priorityが同じ場合、Router IDが最大のルータをDR、2番目に大きいルータをBDRに選出

 

ルータのBroadcastタイプのインタフェースでOSPFが起動すると、Wait Timerが開始されます。

 

Wait Timerが経過するまで、ルータはDR/BDRの選出をせず、Helloパケット経由でネイバーの学習のみを行います。

 

Helloパケットには、DR/BDRの選出に関わる、Router IDとPriorityが格納されています。

 

Wait Timer経過後、ルータは「自身のRouter ID/Priority」と「Helloパケットで学習したネイバーのRouter ID/Priority」を比較し、DRとBDRを選出します。DRとBDR選出後、ルータが送信するHelloパケットには選出されたDRとBDRのIPアドレスが格納されます。

 

注意点として、DR/BDRはネットワークセグメント毎に選出されます。そのため、あるネットワークセグメントではDRであるルータが、別のセグメントではBDRやDROTHERのケースもあります。また、DR/BDRはネットワークセグメント毎に選出されるため、OSPFのPriorityはインタフェース単位で設定します。

 

DR/BDRのPreempt

下図の様に、DR/BDRの選出後に、DRであるR1よりもPriorityが大きいR4が出現した場合、R4がDRの役割を奪うのか、と疑問が生じるかと思います。結論を言うと、OSPFではDR/BDRのPreemptは発生しません。このように、新たに出現したルータが他のルータの役割を奪うことをPreemptと呼びます。

R4のBroadcastタイプのインタフェースでOSPFが有効になると、OSPFではWait Timerが開始されます。

 

R4は自身のRouter IDとPriorityを格納したHelloパケットを送信します。R1~R3はR4のHelloパケットを受信後、既にDR/BDRを選出済みなため、Priorityが最大のR4をDROTHERとして認識します。

 

Wait Timer経過中に、R4はR1~R3のHelloパケット経由でDR/BDRが選出済みなことを認識し、R4は自身をDROTHERとします。

 

Priority 0

Priorityを0に設定することで、特定のネットワークセグメントにおいて、ルータをDR/BDRの選出対象から除外可能です。

 

BroadcastタイプのインタフェースのPriorityが0のルータは、そのインタフェースが接続しているネットワークセグメント上で、常にDROTHERとして動作します。また、下図のように、BDRが存在しない場合でも、OSPFは正しく動作します。

 

注意点として、Priorityが0以外の全ルータがダウンした場合、DRが選出できず、Broadcastネットワーク上でLSAの交換ができなくなります。この様な状況では、DROTHERであるルータ同士のネイバーは2-Way状態にとどまります。

 

実機での動作確認

検証内容1(DR/BDRの選出)

R1、R2、R3でOSPF Area 0を有効にします。
R1、R2、R3のNetwork TypeにはBroadcastを使用します。
R1のRouter IDを1.1.1.1、Priorityを5に設定します。
R2のRouter IDを2.2.2.2、Priorityを1に設定します。
R3のRouter IDを3.3.3.3、Priorityを1に設定します。

 

設定


interface GigabitEthernet2
 ip address 10.1.1.1 255.255.255.0
 ip ospf priority 5
!
router ospf 1
 router-id 1.1.1.1
 network 10.1.1.0 0.0.0.255 area 0
            


interface GigabitEthernet2
 ip address 10.1.1.2 255.255.255.0
!
router ospf 1
 router-id 2.2.2.2
 network 10.1.1.0 0.0.0.255 area 0
            


interface GigabitEthernet2
 ip address 10.1.1.3 255.255.255.0
!
router ospf 1
 router-id 3.3.3.3
 network 10.1.1.0 0.0.0.255 area 0
            

 

Priorityの設定の確認

OSPFが動作しているインタフェースのPriorityはip ospf priority <priority>コマンドで変更可能です。デフォルトのPriorityは1になります。

R1

interface GigabitEthernet2
 ip ospf priority 5
            

 

OSPFが動作しているインタフェースの状態確認(R1のインタフェース障害前)

R1のg2のPriorityが5で、R1がDRであることが確認できます。また、R1はR2をDROTHER、R3をBDRとして認識していることが確認できます。また、Wait Timerが40秒であることも確認できます。

R1

R1#show ip ospf interface
GigabitEthernet2 is up, line protocol is up
  Internet Address 10.1.1.1/24, Interface ID 6, 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 DR, Priority 5
  Designated Router (ID) 1.1.1.1, Interface address 10.1.1.1
  Backup Designated router (ID) 3.3.3.3, Interface address 10.1.1.3
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:06
  Supports Link-local Signaling (LLS)
  Cisco NSF helper support enabled
  IETF NSF helper support enabled
  Index 1/1/1, flood queue length 0
  Next 0x0(0)/0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 2
  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
    Adjacent with neighbor 3.3.3.3  (Backup Designated Router)
  Suppress hello for 0 neighbor(s)
            

 

R2のg2のPriorityが1で、R2がDROTHERであることが確認できます。また、R2はR1をDR、R3をBDRとして認識していることが確認できます。

R2

R2#show ip ospf interface
GigabitEthernet2 is up, line protocol is up
  Internet Address 10.1.1.2/24, Interface ID 6, Area 0
  Attached via Network Statement
  Process ID 1, Router ID 2.2.2.2, 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) 1.1.1.1, Interface address 10.1.1.1
  Backup Designated router (ID) 3.3.3.3, Interface address 10.1.1.3
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:08
  Supports Link-local Signaling (LLS)
  Cisco NSF helper support enabled
  IETF NSF helper support enabled
  Index 1/1/1, flood queue length 0
  Next 0x0(0)/0x0(0)/0x0(0)
  Last flood scan length is 0, maximum is 2
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 2, Adjacent neighbor count is 2
    Adjacent with neighbor 1.1.1.1  (Designated Router)
    Adjacent with neighbor 3.3.3.3  (Backup Designated Router)
  Suppress hello for 0 neighbor(s)
            

 

R3のg2のPriorityが1で、R3がBDRであることが確認できます。また、R3はR1をDR、R2をDROTHERとして認識していることが確認できます。

R3

R3#show ip ospf interface
GigabitEthernet2 is up, line protocol is up
  Internet Address 10.1.1.3/24, Interface ID 6, Area 0
  Attached via Network Statement
  Process ID 1, Router ID 3.3.3.3, Network Type BROADCAST, Cost: 1
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           1         no          no            Base
  Transmit Delay is 1 sec, State BDR, Priority 1
  Designated Router (ID) 1.1.1.1, Interface address 10.1.1.1
  Backup Designated router (ID) 3.3.3.3, Interface address 10.1.1.3
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:08
  Supports Link-local Signaling (LLS)
  Cisco NSF helper support enabled
  IETF NSF helper support enabled
  Index 1/1/1, flood queue length 0
  Next 0x0(0)/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 1.1.1.1  (Designated Router)
    Adjacent with neighbor 2.2.2.2
  Suppress hello for 0 neighbor(s)
            

 

OSPFネイバーの状態確認(R1のインタフェース障害前)

R1はR2をDROTHER、R3をBDRとして認識していることが確認できます。

R1

R1#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   FULL/DROTHER    00:00:31    10.1.1.2        GigabitEthernet2
3.3.3.3           1   FULL/BDR        00:00:31    10.1.1.3        GigabitEthernet2
            

 

R2はR1をDR、R3をBDRとして認識していることが確認できます。

R2

R2#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1           5   FULL/DR         00:00:34    10.1.1.1        GigabitEthernet2
3.3.3.3           1   FULL/BDR        00:00:35    10.1.1.3        GigabitEthernet2
            

 

R3はR1をDR、R2をDROTHERとして認識していることが確認できます。

R3

R3#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1           5   FULL/DR         00:00:36    10.1.1.1        GigabitEthernet2
2.2.2.2           1   FULL/DROTHER    00:00:36    10.1.1.2        GigabitEthernet2
            

 

Helloパケットの確認(R1のインタフェース障害前)

以下はDR/BDR選出前にR1が送信したHelloパケットになります。Priorityとして5が格納されていること、DR/BDRのIPアドレスが0.0.0.0なことが確認できます。

 

以下はDR/BDR選出後のR1が送信したHelloパケットになります。DRのIPアドレスとしてR1のg2の10.1.1.1、BDRのIPアドレスとしてR3のg2の10.1.1.3が格納されていることが確認できます。

 

OSPFのデバックの確認(R1のインタフェース障害前)

R1はg2でOSPFが起動してからWait Timer(40秒)経過後にDR/BDRを選出していることが確認できます。

R1

R1#debug ip ospf adj
*May 11 13:15:04.752: OSPF-1 ADJ   Gi2: Interface going Up
*May 11 13:15:44.752: OSPF-1 ADJ   Gi2: end of Wait on interface
*May 11 13:15:44.752: OSPF-1 ADJ   Gi2: DR/BDR election
*May 11 13:15:44.752: OSPF-1 ADJ   Gi2: Elect BDR 1.1.1.1
*May 11 13:15:44.752: OSPF-1 ADJ   Gi2: Elect DR 1.1.1.1
*May 11 13:15:44.752: OSPF-1 ADJ   Gi2: Elect BDR 3.3.3.3
*May 11 13:15:44.752: OSPF-1 ADJ   Gi2: Elect DR 1.1.1.1
*May 11 13:15:44.752: OSPF-1 ADJ   Gi2: DR: 1.1.1.1 (Id)
*May 11 13:15:44.752: OSPF-1 ADJ   Gi2:    BDR: 3.3.3.3 (Id)
            

 

R1のインタフェース障害

DRであるR1のg2をシャットダウンします。

R1

interface GigabitEthernet2
 shutdown
            

 

OSPFが動作しているインタフェースの状態確認(R1のインタフェース障害後)

R2がBDRであること、R2はR3をDRとして認識していることが確認できます。

R2

R2#show ip ospf interface
GigabitEthernet2 is up, line protocol is up
  Internet Address 10.1.1.2/24, Interface ID 6, Area 0
  Attached via Network Statement
  Process ID 1, Router ID 2.2.2.2, Network Type BROADCAST, Cost: 1
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           1         no          no            Base
  Transmit Delay is 1 sec, State BDR, Priority 1
  Designated Router (ID) 3.3.3.3, Interface address 10.1.1.3
  Backup Designated router (ID) 2.2.2.2, Interface address 10.1.1.2
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:02
  Supports Link-local Signaling (LLS)
  Cisco NSF helper support enabled
  IETF NSF helper support enabled
  Index 1/1/1, flood queue length 0
  Next 0x0(0)/0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 2
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 3.3.3.3  (Designated Router)
  Suppress hello for 0 neighbor(s)

            

 

R3がDRであること、R3はR2をBDRとして認識していることが確認できます。

R3

R3#show ip ospf interface
GigabitEthernet2 is up, line protocol is up
  Internet Address 10.1.1.3/24, Interface ID 6, Area 0
  Attached via Network Statement
  Process ID 1, Router ID 3.3.3.3, Network Type BROADCAST, Cost: 1
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           1         no          no            Base
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 3.3.3.3, Interface address 10.1.1.3
  Backup Designated router (ID) 2.2.2.2, Interface address 10.1.1.2
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:03
  Supports Link-local Signaling (LLS)
  Cisco NSF helper support enabled
  IETF NSF helper support enabled
  Index 1/1/1, flood queue length 0
  Next 0x0(0)/0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 1
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 2.2.2.2  (Backup Designated Router)
  Suppress hello for 0 neighbor(s)

            

 

OSPFネイバーの状態確認(R1のインタフェース障害前)

R2はR3をDRとして認識していることが確認できます。

R2

R2#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
3.3.3.3           1   FULL/DR         00:00:35    10.1.1.3        GigabitEthernet2
            

 

R3はR2をBDRとして認識していることが確認できます。

R3

R3#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   FULL/BDR        00:00:36    10.1.1.2        GigabitEthernet2
            

 

Helloパケットの確認(R1のインタフェース障害後)

以下はR3が送信したHelloパケットになります。DRのIPアドレスとしてR3のg2の10.1.1.3、BDRのIPアドレスとしてR2のg2の10.1.1.2が格納されていることが確認できます。

 

OSPFのデバックの確認(R1のインタフェース障害後)

R3はDRとしてR3自身、BDRとしてR2を選出していることが確認できます。

R3

R3#debug ip ospf adj
*May 11 14:25:07.152: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on GigabitEthernet2 from FULL to DOWN, Neighbor Down: Dead timer expired
*May 11 14:25:14.650: OSPF-1 ADJ   Gi2: DR/BDR election
*May 11 14:25:14.650: OSPF-1 ADJ   Gi2: Elect BDR 2.2.2.2
*May 11 14:25:14.650: OSPF-1 ADJ   Gi2: Elect DR 3.3.3.3
*May 11 14:25:14.650: OSPF-1 ADJ   Gi2: Elect BDR 2.2.2.2
*May 11 14:25:14.650: OSPF-1 ADJ   Gi2: Elect DR 3.3.3.3
*May 11 14:25:14.650: OSPF-1 ADJ   Gi2: DR: 3.3.3.3 (Id)
*May 11 14:25:14.650: OSPF-1 ADJ   Gi2:    BDR: 2.2.2.2 (Id)
            

 

検証内容2(Priority 0)

R1とR2でOSPF Area 0を有効にします。
R1とR2のNetwork TypeにBroadcastを使用します。
R2のg2のPriorityを0に設定し、R2がDR/BDRに選出されないことを確認します。

 

設定


interface GigabitEthernet2
 ip address 10.1.1.1 255.255.255.0
!
router ospf 1
 router-id 1.1.1.1
 network 10.1.1.0 0.0.0.255 area 0
            


interface GigabitEthernet2
 ip address 10.1.1.2 255.255.255.0
 ip ospf priority 0
!
router ospf 1
 router-id 2.2.2.2
 network 10.1.1.0 0.0.0.255 area 0
            

 

OSPFが動作しているインタフェースの状態確認

R2のg2のPriorityが0なことが確認できます。また、R1がDR、R2がDROTHERであり、BDRは選出されていないことが確認できます。

R1

R1#show ip ospf interface
GigabitEthernet2 is up, line protocol is up
  Internet Address 10.1.1.1/24, Interface ID 6, 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 DR, Priority 1
  Designated Router (ID) 1.1.1.1, Interface address 10.1.1.1
  No backup designated router on this network
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:01
  Supports Link-local Signaling (LLS)
  Cisco NSF helper support enabled
  IETF NSF helper support enabled
  Index 1/1/1, flood queue length 0
  Next 0x0(0)/0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 1
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 2.2.2.2
  Suppress hello for 0 neighbor(s)
            
R2

R2#show ip ospf interface
GigabitEthernet2 is up, line protocol is up
  Internet Address 10.1.1.2/24, Interface ID 6, Area 0
  Attached via Network Statement
  Process ID 1, Router ID 2.2.2.2, 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 0
  Designated Router (ID) 1.1.1.1, Interface address 10.1.1.1
  No backup designated router on this network
  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/1, flood queue length 0
  Next 0x0(0)/0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 1
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 1.1.1.1  (Designated Router)
  Suppress hello for 0 neighbor(s)
            

 

OSPFネイバーの状態確認

R1はR2をDROTHER、R2はR1をDRとして認識していることが確認できます。

R1

R1#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           0   FULL/DROTHER    00:00:36    10.1.1.2        GigabitEthernet2
            
R2

R2#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1           1   FULL/DR         00:00:34    10.1.1.1        GigabitEthernet2
            

 

Helloパケットの確認

以下はR2が送信したHelloパケットになります。Priorityとして0、DRとしてR1のg2の10.1.1.1が格納されていることが確認できます。また、BDRは存在しないので、BDRとして0.0.0.0が格納されていることが確認できます。

 

OSPFのデバックの確認(R1のインタフェース障害前)

R1のOSPFのデバックからDRのみ選出されていることが確認できます。。

R1

R1#debug ip ospf adj
*May 11 15:04:41.670: OSPF-1 ADJ   Gi2: Interface going Up
*May 11 15:05:31.690: OSPF-1 ADJ   Gi2: DR/BDR election
*May 11 15:05:31.690: OSPF-1 ADJ   Gi2: Elect BDR 0.0.0.0
*May 11 15:05:31.690: OSPF-1 ADJ   Gi2: Elect DR 1.1.1.1
*May 11 15:05:31.690: OSPF-1 ADJ   Gi2: DR: 1.1.1.1 (Id)
*May 11 15:05:31.690: OSPF-1 ADJ   Gi2:    BDR: none
            

 

検証内容3(DRが選出できない場合)

R1とR2でOSPF Area 0を有効にします。
R1とR2のNetwork TypeにBroadcastを使用します。
R1とR2のg2のPriorityを0に設定し、DRが選出できない場合の挙動を確認します。

 

設定


interface GigabitEthernet2
 ip address 10.1.1.1 255.255.255.0
 ip ospf priority 0
!
router ospf 1
 router-id 1.1.1.1
 network 10.1.1.0 0.0.0.255 area 0
            


interface GigabitEthernet2
 ip address 10.1.1.2 255.255.255.0
 ip ospf priority 0
!
router ospf 1
 router-id 2.2.2.2
 network 10.1.1.0 0.0.0.255 area 0
            

 

OSPFネイバーの状態確認

R1とR2はお互いをDROTHERとして認識しており、かつ、2-Way状態であることが確認できます。

R1

R1#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           0   2WAY/DROTHER    00:00:32    10.1.1.2        GigabitEthernet2
            
R2

R2#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1           0   2WAY/DROTHER    00:00:37    10.1.1.1        GigabitEthernet2
            

 

OSPFのデバックの確認(R1のインタフェース障害前)

R1のOSPFのデバックからDRとBDRが選出できていないことが確認できます。

R1

R1#debug ip ospf adj
*May 11 15:10:35.683: OSPF-1 ADJ   Gi2: Interface going Up
*May 11 15:11:15.683: OSPF-1 ADJ   Gi2: end of Wait on interface
*May 11 15:11:15.683: OSPF-1 ADJ   Gi2: DR/BDR election
*May 11 15:11:15.683: OSPF-1 ADJ   Gi2: Elect BDR 0.0.0.0
*May 11 15:11:15.683: OSPF-1 ADJ   Gi2: Elect DR 0.0.0.0
*May 11 15:11:15.683: OSPF-1 ADJ   Gi2: DR: none
*May 11 15:11:15.683: OSPF-1 ADJ   Gi2:    BDR: none
            

コメント

タイトルとURLをコピーしました