OSPFの等コストによるロードバランス環境における障害時のHSRPの動作について

ルータの冗長化でよく利用されるのがHSRP、VRRPですが、OSPFの等コストによりロードバランスされる環境においてのHSRPの動作について意外と知らない人が多かったので共有します。


まず、以下のような構成でOSPFを構成します。構成はすごくシンプルで、 ルータ4台でOSPFを構成。PC1側を拠点A、PC2側を拠点Bというような想定で、ルータ間はHSRPを構成しています。

この構成の場合、通常時のPC1 - PC2間の通信は、以下のような経路になります。

 


■通信経路

[PC1]⇒[SW1]⇒[RT1]⇒[RT3]⇒[SW3]⇒[PC2]

f:id:merrywhite:20210810173249j:plain


 

これはOSPF が、インターフェイス帯域幅に基づくコストをメトリックとして使用している為で、OSPF のコストは下記の計算式で算出できます。

コスト = 100M / 帯域幅 (Mbps)

 

例えば、100Mbpsの帯域幅「1」 になります。また、100Mbpsを超える1Gbps以上の帯域幅の場合においても「1」になります。※宛先経路に辿り着くまでのこのコスト値の合計がOSPFのメトリックになり、発信IFで加算されます。EIGRPも同様。

インターフェイス 帯域幅 コスト
Ethernet 10Mbps 10
FastEthernet 100Mbps 1
GigabitEthernet 1Gbps 1
Serial 1.5Mbps 64

つまり、以下のようなコスト計算になります。 

f:id:merrywhite:20210810173308j:plain



では、実際に障害が発生した場合を想定してみます。上記構成で等コストによるロードバランスが利用される障害パターンを例に出します。
 
 

【RT1-SW1間のリンク障害】


以下の障害では、HSRPは切り替わらず、PC1の通信はSW間の渡りを経由して、RT2へ向かいます。RT2のルーティングテーブルでは、PC2までの経路は等コストにより2経路見えます。

計算してもらえばわかりますが、経路①、経路②はともにコスト「3」になります。

■通信経路
①[PC1]⇒[SW1]⇒[SW2]⇒[RT2]⇒[RT1]⇒[RT3]⇒[SW3]⇒[PC2]
②[PC1]⇒[SW1]⇒[SW2]⇒[RT2]⇒[RT4]⇒[RT3]⇒[SW3]⇒[PC2]
hsrp4

上記を見てもらえばわかりますが、HSRPは必ずActive経由で通信されるわけではなく、OSPFのコストからルートを算出してから経路を決めます。


私の周りでは、HSRPは必ずActiveルータを経由すると思っている人がいます。HSRPはあくまでゲートウェイの冗長なので、構成によっては想定外の通信経路になることもあります。


上記のようなケースで障害が発生した場合に、RT1を経由させたくない場合は、ルータ間のコストを変更することで経路を調整する事が可能です。


NWの設計で重要なのは、要件に基づいて想定通りの経路を通る事なので、障害試験はきちんと行いましょう!