Nutanix NC2 on AWSで実際にL2延伸を組んでみる。

#### Japan AWS Ambassadors Advent Calendar 2024のエントリー記事です ####
### はじめに ###
本記事は2024年12月19日にNutanix、Networld、AWS、TISの合同セミナーで私が登壇した、NC2 on AWSのL2延伸の資料をベースに作成しています。
セミナーはこちら（終了しています）
https://www.tis.co.jp/seminar/seminar/202412_aws-nutanix.html
諸般の事情で、私の資料は配付しないことにしましたが、せっかくなのでQiitaに記事の抜粋をまとめたいと思います。

:::note info
いつものお約束ですが、エンジニア向けのナレッジ共有の記事ですので、本番で動かす場合はご自身でキャッチアップを行った上で、構築をお願いします。
:::

### 検証環境の説明 ###
検証環境は以下の通りです。日本の某所（汗）から、Internet-VPNでus-west2にIPSecで接続を行っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775358/a555e6a9-e913-8d9b-ab21-58b2a0177e6e.png)

この時点で、お気づきも方も多いかと思いますが、日本のオンプレミス環境はこちらです。
https://qiita.com/damepanda_supra/items/a3606cbe28c41508ec80

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775358/c3df15b6-3b46-2500-d8bb-d679cf5e79c3.png)


スライド右側がNC2 on AWS側、左側がオンプレです。
オンプレ側のVPN装置はFortigateで構成しています。回線はPPPoEです。
RGWはvyosを使っています。NC2onAWS側のLGWは、Consoleで接続するとわかりますが実はvyosです。Configを参考にできたため、vyosを用いています。

### Flow Virtual Networking（FVN） について ###
Flow Virtual Networkingは、VMwareでいうNSXのような機能です。
仮想基盤上にOverlayのネットワークを構成します。L2延伸はOverlay側のNetworkになります。Prism Central（PC)が3ノード必要な理由は、FVNのコントローラ機能がPCの中で動いているからです。1台で動かす事ももちろん可能ですが、PCが停止するとFVNのネットワークも停止します。余談ですがNC2onAWSをハイバネートから戻したときに、PCが動いていない状態でRGW(vyos)を稼働させると正常に動作しません。
なおFVNには分散FWなどの機能も保有していますが、今回は割愛しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775358/413f47a6-3e59-f02c-bb54-56de34e45445.png)

PrismCentralからSubnetの構成と確認すると以下のようになります。
この中でvlan31～vlan33がL2延伸するSubnetです。（既に接続しているのでExtended Subnetと表示されてます）
なお、NC2onAWSは、VPC配下のSubnetに仮想マシンを置くことも可能です。（そもそもPrismCentralが仮想マシン）この画面だと、nc2-workload-privateやnc2-workload-publicやPrism Centalが対象となります。（VLANとして見えてます）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775358/76228fbb-91b8-6015-dab7-6f9bf39a9933.png)


FVNのVPCの考え方はNSX-TのT0の考え方に近いです。ExternalとつなぐためにTransit-VPCを通していますが、それはvyosが外にでたり、AWS経由でRoutingしたり、NATで抜けていくためです。DefaultでNAT External Subnetだけつなげば、VPNははれますし、L2延伸も行えます。L2延伸だけしか使わないなら、実はNoNAT External Subnetは不要です。（その代償としてAWS側からRouting自体ができない）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775358/e0a4a187-53e6-4593-0004-d760fed3014f.png)

今回は細かい説明は割愛しますが、FVNのtransit-vpcとuser-vpcのExternally Routable IP AddressesにOverlayのSubnetを入力すると、VPC側のRoute Tableには反映されます。なおRoutingを利用したい場合はNoNAT External SubnetとRouting設定が必要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775358/629362c8-e07e-cf97-d085-7b53cdbba9e1.png)
AWS側には以下のようにみえます。（Transit Gatewayには手入力が必要）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775358/d5194635-edf1-d563-d72e-82228a9efe27.png)
オンプレミス側には、Transit GatewayのRouting TableがBGPで流れてきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775358/ce4d92a5-7cd6-f9ae-2d5a-a6cc6c690334.png)
このあたりは、BGPやTransit Gatewayの有識者であれば簡単に組めると思います。

### L2延伸の考え方について ###
こちらのスライドにまとめています。
L2延伸は、vyos同士がvxlanで接続しbridgeすることで実現します。よって一部のプロトコルは通りません。（例：DHCPなど）よって、Moveなどを使ってマイグレする場合は、NC2側のVLANにDHCPの設定を入れておく必要があります。

- vyosのbridge部分 -
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775358/86f9f097-f3ad-8afd-8f10-253a5a4040dc.png)
- vyosのvxlan部分 -
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775358/d3ea92c3-e6fe-2c94-04ec-3c652c2bc830.png)
remoteはnc2側、sourceはオンプレ側です。
vtepは、172.28.0.160と172.27.160.173で張っています。
vniは31で設定していますが、Ciscoなどと接続する場合はIDレンジが指定されますので注意
MTU/MSS関連の記述は削除しています。（理由は後述）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775358/c172394b-80aa-bf4b-fc49-0bb8498e61df.png)

FVN側で設定するときの指定箇所はこちらです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775358/efb48fba-d654-dff9-eaa1-a3ab24417abc.png)
IP Address Management ：　NC2側のGWアドレスを指定します。
Local IP Address　：　vyos（NC2側）が利用するアドレスを指定します。

### 実際のL2延伸の結果 ###
オンプレミスからPINGでテストをしています。
オンプレ側もL2延伸側もGatewayはオンプレに向いており、その先のサブネットからPINGを実行した結果です。
172.16.0.10がオンプレミス側、172.16.0.101がNC2側となります。
太平洋をまたいでL2延伸しているため、遅延は多めですが、普通にSSHなども通るので問題はないかと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775358/c6b07277-68ff-2ed7-9a3a-e4cbd129ef95.png)

### 注意点 ###
FortigateでVPN接続しているため、DFの処理をあまり意識していませんが、PPPoE＋IPSecなので実はパケットサイズが変則的になっています。本番環境はDirect Connectを使ってください。実は安定させるためにMTUやMSSの調整にかなり時間がかかりました・・・。VMware社のHCXのようにインターネット越しに張ることも考えましたが、VXLANは暗号化されないので、トンネルが必須となります。