※この記事は「AOS 7.0 AHV10.0 Prism Central pc.2024.3」時点の情報をもとに作成しています。その後の機能アップデートについてはメーカーの公開情報をご確認ください。
NutanixのFlow Virtual Networkingの連載については以下の記事にリンクをまとめています。ほかの記事にもこちらからアクセス可能です。
Flow Virtual Networkingでは、ネイティブのVPNゲートウェイ機能が提供されており、異なるVPCのVPNゲートウェイ間やサードパーティ製品とのVPN接続が可能です。
今回は、異なるクラスター(異なるPC管理下)のVPC間をVPNで接続してみます。VPC間をセキュアに接続したい場合などに使えそうですね。
目次
1.今回の環境
AOS: 7.0.1
AHV: 10.0.1
Prism Central: pc.2024.3.1.1
2つのAHVクラスター
▽今回の環境のイメージ図は以下の通りです。異なるPrism Central管理下にある2つのクラスターにそれぞれVPCを作成し、NAT接続でFloating IPを使用してVPNゲートウェイ間をIPSecでトンネル接続します。
2. 環境の確認
VPCやオーバーレイサブネット、external subnet、Floating IPなどはこれまでの記事で解説済みですので詳細の設定方法は割愛します。
▽今回は、以下のようにVPCにexternal-subnetを接続しました。2つのexternal subnetは、外部のスイッチでルーティングされています。
▽また、VPNゲートウェイが外部通信で使用するFloating IPをexternal subnetから一つ払い出しています。
▽さらに各クラスターのVPCには、それぞれオーバーレイサブネットを1つずつ作成済みです。
3. VPNゲートウェイの作成
▽ここまで確認した環境と、ここから作成するゲートウェイのイメージ図は以下の通りです。今回は、主にcluster 01側の画面を例に紹介します。
▽まず、Prism Centralの「Connectivity」から「Create Gateway」の「Local」を選択して、ローカルにネットワークゲートウェイを作成する画面を起動します。
▽以下の画面のように作成を進めます。今回はVPCを選択して、VPC内にネットワークゲートウェイをデプロイします。また、Floating IPもここで割り当てます。
▽作成されたVPNゲートウェイは以下の通りです。ゲートウェイのエンドポイントとなるFloating IPが「Service IP」として表示されています。
▽なお、VPNゲートウェイの実体は仮想マシンとして作成されますので、VM一覧でも確認できます。Floating IPに変換される前のオーバーレイ側のIPとして「100.64.1.238」というアドレスが設定されていました。
▽これは、VPNゲートウェイをVPCにNAT変換で作成した場合に、「Nutanix-vpn-internal(100.64.1.0/24)」というオーバーレイサブネットが自動で作成される仕様になっており、このサブネットにVPNゲートウェイが接続されるためです。お見せしたイメージ図の通りです。
▽なお、cluster 02側にも同様にVPNゲートウェイを作成しました。
4. リモートVPNゲートウェイの登録
各クラスターに作成したローカルのVPNゲートウェイを、クラスター間でリモートVPNゲートウェイとして双方向に登録します。▽作業イメージは以下の通りです。主にcluster 01側の画面で紹介します。
▽「Connectivity」の画面で今度は「Remote」を選択します。
▽リモートゲートウェイの名前を付けて「VPN」を選択し、「Public IP Address」にはcluster 02側のVPNに割り当てた「Floating IP」を入力します。ベンダーはいくつかメーカーの選択肢があるのですが、NutanixネイティブのVPNの場合どれを選択するのかドキュメントに記載されていなかったため「Other」を選択しています。また、ルーティングメソッドは今回は「Static」を選択しました。
▽以下の通り双方向にリモートVPNゲートウェイの登録が完了しました。
5. VPN接続の開始
ここまで準備ができたら、あとはVPN接続の設定をするだけです。▽作業イメージは以下の通りです。VPNは、「イニシエーター(Initiator)」と「アクセプター(Acceptor)」で双方向に登録しますので、この作業もクラスターで相互に実施します。
▽「VPN Connections」タブより「Create VPN Connection」をクリックします。
▽各クラスターから双方向に入力した内容は以下の通りです。「IPSec Secret」は「事前共有鍵」になりますので同じパスワードを設定します。また、VTIはVPNトンネルの内部インターフェースとなり、/30でIPが2つ設定できれば任意のプライベートネットワークでいいのですが、ドキュメントに書かれていた値をそのまま流用しました。さらに、ハンドシェイクは片方が「イニシエーター」で片方が「アクセプター」となるように設定します。
▽設定が問題なければ、作成したVPN Connectionのステータスが双方向に「● Connected」となります。BGPが「Not Established」となっているのは、今回ルーティングメソッドで「Static」を選択しているためです。
これでVPN接続までは完了しました。
6. スタティックルートの設定とVPC間の疎通確認
今回は外部ルーティングの設定で「Static」を選択したので、VPN接続したVPC間で、相手方のオーバーレイサブネットを宛先としてスタティックルートを記入し、疎通確認をしてみます。▽作業イメージは以下の通りです。
▽各クラスターのVPCで「Routers」タブから「Manage Static Routes」を選択し、相手方VPCのオーバーレイサブネット宛にVPN接続をネクストホップとしてスタティックルートを設定します。
▽設定した内容は以下の通りです。これで、VPC間のオーバーレイサブネット間で通信できるようになったはずです。
▽双方のオーバーレイサブネットに接続した仮想マシン同士の疎通確認は以下の通りです。疎通できました。
▽なお、双方で試しに「tracert」をしてみたところ、VPN subnetのIP(100.64.1.xxx)からVTIの内部インターフェース(10.20.20.x)を経由していることが確認できました。
以上です。
次回はVPNで、BGPでルート情報交換する方法を試して紹介したいと思います。うまくいけば。