F5 BIG-IP 仮想ロードバランサで、一部のアプリケーションサーバにのみ通信ができない

Cisco NEXUS でVPC構成(VLAN多数)、VMware ESXiによる仮想化、F5 BIG-IPの仮想ロードバランサ、ロードバランサの配下に複数のアプリケーションサーバ、という構成で、ロードバランサの下のAPサーバに通信がうまくできない、という状態が発生した。

状況を切り分けしてみると、下記のような状態になった。

端末→ESXi→Cisco NEXUS (A)→ESXi→BIG-IP→アプリサーバ(X) ・・・ 通信OK

端末→ESXi→Cisco NEXUS (A)→ESXi→BIG-IP→アプリサーバ(Y) ・・・ 通信OK

端末→ESXi→Cisco NEXUS (B)→ESXi→BIG-IP→アプリサーバ(X) ・・・ 通信NG

端末→ESXi→Cisco NEXUS (B)→ESXi→BIG-IP→アプリサーバ(Y) ・・・ 通信NG

※Cisco NEXUSは、2台(AとB)で、VPC(Virtual Port Channel)構成で、L3の役割を行っている。基本的に、VLANを超えるときは、必ずL3のNEXUSを通過する。

※端末と、APサーバ、BIG-IP仮想ロードバランサは、それぞれ別のネットワークに属する。

最初は、L3スイッチである、NEXUSの設定を疑ったのだが、AとBで差異はなく、VPCとしての動作も問題がなかった。BIG-IPを経由しなければ、AとBのどちらのNEXUSを通過しても問題発生しない。

BIG-IPの仮想ロードバランサでの通信制御が不具合につながっている可能性が高いことがわかった。BIG-IP仮想ロードバランサの設定を見ていくと、「Auto Last Hop」の設定がONになっており、これが影響していることがわかった。上位のスイッチであるL3のNexusは2台あるので、アクセスしてきたアクセス経路に通信を返す、のが正しいように見える。しかし、VPC構成になっているで、仮想MACアドレスで制御されているのため、アクセス元のスイッチに返してしまうと、経路が途中で変わってしまい、アクセス元の端末までパケットが届かない。

BIP-IPのほうも、上位スイッチが冗長構成を行っている場合は、「Auto Last Hop」の設定は、オフ(無効)にすることが推奨されている。「Auto Last Hop」の設定をオフにすることで、無事に、AとBのどちらのNexusを経由しても、BIP-IP仮想ロードバランサの下のAPサーバと通信できるようになった。

「Auto Last Hop」の設定は、BIG-IP仮想ロードバランサの設定画面で、

「System」→「Configuration」→「Local Traffic」

の順に選択する。Generalのプロパティに、「Auto Last Hop」の項目があるので、「Enabled」のチェックを外して保存する。

Auto Last Hopの説明

https://www.infraexpert.com/infra/bigip29.html

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする