【DHCP AS / DDN1 Enterprise】冗長構成の注意点

EasyBlocks DHCP AS2500/5000EasyBlocks DDN1 Enterpriseは、Active-Standby型の冗長化に対応したアプライアンスです。
この方式では、アクティブ機に障害が発生するとスタンバイ機が自動的にアクティブとなり、サービスを継続できます。

しかし、冗長構成の設定時に 「正常に冗長構成が組めない」「2台ともアクティブ機になってしまう」「切り替わり動作が不安定」 などのお問い合わせをいただくことがあります。

今回は、こうした冗長構成のトラブルの中で特に発生しやすいケースについて、EasyBlocks DHCP AS 2500/5000を例に出しながら解説していきます。

※本記事の内容はEasyBlocks DDN1 Enterpriseにも流用できます。

はじめに

EasyBlocks DHCP AS 2500/5000の冗長化機能は「VRRP」を使用しています。
VRRP(Virtual Router Redundancy Protocol)は、経路の冗長化を目的としたプロトコルです。


EasyBlocks DHCP ASの2台には、それぞれ実IPアドレスを設定し、サービス用の仮想IPアドレス(VIP)を共有します。

また、内部的にDHCPの設定ファイルやリース情報も同期されるため、アクティブ機に障害が発生しても、スタンバイ機が同じ設定とリース情報を保持したままサービスを継続できます。
この仕組みにより、クライアント側では特別な対応をすることなく、引き続きサービスを利用できます。

ハマりどころ

冒頭で挙げた「冗長構成がうまく動作しない」原因の中で、最も多いのは 「STP(Spanning Tree Protocol)」 による影響です。
VRRPが動作しているインターフェースに STP対応のスイッチングハブ が接続されている場合に問題が発生しやすくなります。

STP(Spanning Tree Protocol)は、ループ状に形成されたレイヤー2ネットワークでデータトラフィックが永続的に流れ続けることを防ぐプロトコルで、STPの状態遷移は通常、以下の順番で進行します。

「ブロッキング」→ 「リスニング」 → 「ラーニング」 → 「フォワーディング」

そのため、スイッチングハブでSTPが動作している場合、リンクアップしてから実際に通信可能になるまで 数秒〜数十秒の遅延 が発生することがあります。

フォワーディング状態にならないとデータフレームの送受信ができないため、VRRPのアドバタイズパケットが届かず、結果として 冗長構成が正常に組めない、または適切に切り替わらない という問題が発生します。

対策

大きく分けて3つの対策があります。

①STPを無効にする

EasyBlocks DHCP ASのVRRPが動作するインターフェースに接続されたスイッチングハブで、STP機能を無効にします。

②使用しているSTPモードに合わせてPortFast設定を実施する

PortFastが設定されたポートでは、リンクがアップするとすぐにフォワーディング状態になり、データフレームを転送できるようになります。

③STP用起動遅延機能を使用する

EasyBlocksには「STP用起動遅延」という機能があり、STP対応のスイッチングハブ向けに通信開始を遅延させることができます。
STPがフォワーディングステータスになるまでの遅延時間はスイッチングハブ側の設定によりますが、例えば10秒の遅延が設定されていれば、リンクアップ後すぐにVRRPパケットのやり取りを始めず、10秒待ってから開始します。
この機能を使うことで、STPが有効でも正常に冗長構成を組むことができ、切り替わり動作も正常になります。

STP用起動遅延設定を使用する場合ははいを選択し、で実際の秒数を設定します。

※ただし、VRRPのアドバタイズパケットはタイミングが重要なため、必ずしも正常に動作するとは限りません。もしうまくいかない場合は、対策2 を推奨します。STP自体を無効にする方法は、環境によってはリスクが伴うため、EasyBlocks DHCP ASが接続されるポートのみPortFast設定を行うことを推奨します。

参考情報

スイッチングハブ側の設定確認

STPの設定有無、設定内容、モードなどに関しては実際に設定した担当者次第であり、一概にご案内出来ませんが、参考までに手元の環境にあるCISCO、Catalyst2960で確認してみました。

上記のなかで、今回関係ある部分としては以下の通りです。

VLAN1でSTPが有効

転送遅延タイマ(Forward Delay)は15秒

Gi0/1のポートはportfast有効、Gi0/2はportfast無効

この結果から、Gi0/1にEasyBlocksを接続する場合は問題ありませんが、Gi0/2に接続する場合は対策1.2.3のいずれかを実施する必要があります。

この場合、対策3を試す場合、Forward Delayが15秒設定のため、

Listening(15秒)+Learning(15秒)= 30秒

つまり、リンクアップしてから30秒後に通信可能(Forwarding)になる ということです。
そのため、EasyBlocks側のSTP用起動遅延時間の設定には30と入力することになります。

まとめ

今回は、冗長構成を実際に構築した際によく発生する問題について解説しました。

取り上げた事例は、過去のお問い合わせ実績などから多く寄せられたケースに基づいていますが、必ずしもすべてのケースに当てはまるわけではありません。
もし類似の現象が発生した場合は、本ブログの内容を参考にして試していただければと思います。

それでも解消しない場合はサポート窓口をご用意しておりますので、こちらからお問い合わせください。

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