今回は、
「NSXのVXLANを利用したマルチアクティブデータセンタについて」
と、いうタイトルでお送りします。
実装したのは2017年でしたが、ユーザさんの情シス部門の方々に仕組みを改めてご説明する機会(ユーザ企業様ないでの社内講習会)があったので、
ブログの話題にもしてしまおうというわけです。
バージョン自体は少し古いですが、考えの根本は参考になるんじゃないかな?と思います。
NSXでの実装の仕方としては、素直な構成です。
アンダーレイとして物理ネットワーク(裏LAN)があり、オーバーレイとして論理ネットワークがある。
ユニバーサル分散論理ルータでユニバーサル論理スイッチに接続された仮想マシンのゲートウェイの役割を担う。
分散論理ルータからのネクストホップは、それぞれの拠点に作成したNSX Edgeの論理ルータとなる。
両拠点のNSX Edgeの論理ルータはサービス系の表LANとつながって、WANおよびWANを介した拠点とつながる。
ここからが面白い部分ですが、
せっかく2つのデータセンタでユニバーサル論理スイッチによって同じネットワークが提供されているのに、通信の最適化をしなければ、WANに対しての出入り口が偏ってしまう。という問題に突き当たります。
そういうわけで、
Aの拠点側リソースを使っている仮想マシンは、A側の出入り口(ルータ)を利用する。
Bの拠点側リソースを使っている仮想マシンは、B側の出入り口(ルータ)を利用する。
こういう形が理想ですよね?
でなければ、
Bの拠点にいても、Aの方から入ってきてB側に引き渡され処理、またA側に戻ってきて出口から出ていく。。。
という、全くもって無駄な話になってしまいます。
ということで、目玉の通信の最適化。
出口の制御としては、A拠点、B拠点どちらにいるのかというのを
NSXのロケーションIDによって検知・制御してもらいます。
入口側の制御としては、完全にネットワークの技術ですがルーティングプロトコルで制御します。
この時に実装したやり方としては、2拠点だったためにデフォルトの通信先をA拠点の方として、B拠点で稼働する仮想マシンはネットマスクのロンゲストマッチを利用してB拠点側にいるということをルーティングマップにのせてやるようにルーティングプロトコルをうまく動かす。という形です。
(ネットワークの技術の話なので細かい部分は割愛です(汗)
こういう構成とすることで、
A拠点にいた仮想マシンをB拠点にCross-vCenter vMotion してやると、仮想マシン側の設定を何も変更せずに稼働させられ、且つ無駄な通信を省ける構成の完成です。
ご興味のある方、ご相談ください。
お仕事大歓迎です(笑