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に記事の抜粋をまとめたいと思います。
いつものお約束ですが、エンジニア向けのナレッジ共有の記事ですので、本番で動かす場合はご自身でキャッチアップを行った上で、構築をお願いします。
検証環境の説明
検証環境は以下の通りです。日本の某所(汗)から、Internet-VPNでus-west2にIPSecで接続を行っています。
この時点で、お気づきも方も多いかと思いますが、日本のオンプレミス環境はこちらです。
https://qiita.com/damepanda_supra/items/a3606cbe28c41508ec80
スライド右側が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などの機能も保有していますが、今回は割愛しています。
PrismCentralからSubnetの構成と確認すると以下のようになります。
この中でvlan31~vlan33がL2延伸するSubnetです。(既に接続しているのでExtended Subnetと表示されてます)
なお、NC2onAWSは、VPC配下のSubnetに仮想マシンを置くことも可能です。(そもそもPrismCentralが仮想マシン)この画面だと、nc2-workload-privateやnc2-workload-publicやPrism Centalが対象となります。(VLANとして見えてます)
FVNのVPCの考え方はNSX-TのT0の考え方に近いです。ExternalとつなぐためにTransit-VPCを通していますが、それはvyosが外にでたり、AWS経由でRoutingしたり、NATで抜けていくためです。DefaultでNAT External Subnetだけつなげば、VPNははれますし、L2延伸も行えます。L2延伸だけしか使わないなら、実はNoNAT External Subnetは不要です。(その代償としてAWS側からRouting自体ができない)
今回は細かい説明は割愛しますが、FVNのtransit-vpcとuser-vpcのExternally Routable IP AddressesにOverlayのSubnetを入力すると、VPC側のRoute Tableには反映されます。なおRoutingを利用したい場合はNoNAT External SubnetとRouting設定が必要です。
AWS側には以下のようにみえます。(Transit Gatewayには手入力が必要)
オンプレミス側には、Transit GatewayのRouting TableがBGPで流れてきます。
このあたりは、BGPやTransit Gatewayの有識者であれば簡単に組めると思います。
L2延伸の考え方について
こちらのスライドにまとめています。
L2延伸は、vyos同士がvxlanで接続しbridgeすることで実現します。よって一部のプロトコルは通りません。(例:DHCPなど)よって、Moveなどを使ってマイグレする場合は、NC2側のVLANにDHCPの設定を入れておく必要があります。
- vyosのbridge部分 -
- vyosのvxlan部分 -
remoteはnc2側、sourceはオンプレ側です。
vtepは、172.28.0.160と172.27.160.173で張っています。
vniは31で設定していますが、Ciscoなどと接続する場合はIDレンジが指定されますので注意
MTU/MSS関連の記述は削除しています。(理由は後述)
FVN側で設定するときの指定箇所はこちらです。
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なども通るので問題はないかと思います。
注意点
FortigateでVPN接続しているため、DFの処理をあまり意識していませんが、PPPoE+IPSecなので実はパケットサイズが変則的になっています。本番環境はDirect Connectを使ってください。実は安定させるためにMTUやMSSの調整にかなり時間がかかりました・・・。VMware社のHCXのようにインターネット越しに張ることも考えましたが、VXLANは暗号化されないので、トンネルが必須となります。