こんにちは、ソリューション技術部の平良です。
弊社で利用しているファイアウォール製品(以下、FW)にてEOSL*1の発表があり、機器自体のリプレースを行うべく事前検証を行った際に発生した事象についてご紹介します。
スイッチ*2などネットワーク機器を触る上で昔からよく耳にするARP*3問題ですが、今なお健在でしたので簡単に発生状況や原因、対応方法などご紹介していきます。
機器切替の流れ
新FWの設定は現行踏襲とし、同一IP、同一設定で構築し並列に配置しておきます。 切替作業は旧FWから新FWへLANケーブルの物理的な差替えのみで通信が切替わる手順としました。
切替直後に通信断が発生
WAN側(インターネット)、LAN側のLANケーブルを旧FWから新FWへ差し替えたところ、インターネットへの通信が行えなくなりました。
原因の切り分け
① サーバーからインターネット向けの通信が不通
② サーバー〜FW間の通信は可能
③ サーバー間(L2接続同士)のローカル通信は可能
上記の結果から、L3スイッチとFW間で何らかの問題が発生していると考えられるため、L3スイッチとFW間の接続をリフレッシュするためFWのフェイルオーバーを実施したところ通信が復旧しました。
判明した原因
物理的なLANケーブルの抜き差しを行った場合、物理インターフェースのリンクダウン/リンクアップを契機にGARP*4が送出され、対象ネットワークインターフェースのARPが近隣機器で更新されます。
但し、冗長構成で構築している場合、外部との通信を行う際にはVIP(Virtual-IP)を割り当てる、Virtual-Interfaceで通信を行います。
その名の通り、Virtualであるため物理のケーブル抜き差しではリンクダウン/リンクアップが発生せず、LAN差替えの時にGARPが送出されず、近隣機器ではその存在を検知できないため古い機器のARP情報のままとなります。
このため、新しく設置した機器のVIP宛て通信がインターネット側のL3スイッチでは宛先不明(古い機器向けになる)となり通信が正しく行えない状態となります。
① WAN1のインターフェース(物理)についてはLANケーブル接続のタイミングで、L3側にてGARPを受信しARPテーブルが書き替わっています。
② GARPが送出されないVirtual-IPのMACアドレスは書き換わらず古いままとなっています。
そのため、L3-1から見たVirtual-IPのMACアドレスは0000.0000.000aとなり、切り替えた環境だと見つからない宛先のため通信が成立しません。
対策
Virtual-IPのARP情報を更新するため、「② FWのフェイルオーバー」を実施し、Virtual-IPの移動に伴うGARPの送出を明示的に発生させてます。
① LANケーブルの差替え
② FWのフェイルオーバー
この順序で実施することで、物理、Virtual-IP両方のARPが更新され、新機器向けの通信が正常に行えるようになります。
*1:EOSL(End Of Service Life)は、 ソフトウェアやハードウェアなどの製造販売、およびサポートの終了を意味します。
*2:リピーター(物理層レベルでデータを中継する装置。受け取ったデータは宛先に拘わらず接続された機器すべてに転送されます)の様に接続している機器すべてにデータを転送するのではなく、通信データを解析し必要な機器へのみ通信を転送する機能を持ったハブです。
*3:ARP(Address Resolution Protocol)は、ネットワークでのパケット送信の際に宛先IPアドレスからMACアドレス(ネットワークインターフェイスが持つハードウエア固有の番号)を割り出すための規格。
*4:GARP(Gratuitous ARP)は自身に設定するIPアドレスが重複チェックと、同一セグメントのARPキャッシュの更新を促します。