Nutanixで仮想ネットワークによるL2延伸

この記事はNutanix Advent Calendar 2023の3日目として作成しました。https://adventar.org/calendars/8538

Nutanix Meetup Hybrid 23.10 in Osakaでネットワーク関連ネタを発表したので、今回もネットワークネタで記事を作成しました。

# L2延伸が必要なケース
VLANネットワークは単一データセンターもしくは単一建屋に閉じて運用されているケースが一般的かと思います。
VLANが大きすぎるとブロードキャストドメインが大きくなってしまい、余計なBUMトラフィックが増えてしまいます。それ以外にもネットワーク管理者の立場からVLANネットワークを大きくしたくない理由はいろいろあるかと思いますが、今回はその辺りの話を深堀するのが目的でないため割愛します。
一方で、サーバ管理者の立場からすると、データセンターを跨いでL2延伸したいというニーズは少なからずあると思います。たとえばデータセンター移転やBCP目的などで、仮想サーバのIPアドレスを変更せずにデータセンター間で同じVLANを利用したいといったケースが考えられます。
L2延伸はメリット/デメリットあるため業務利用する際はそれらを踏まえた上で採用可否を決定すべきと思いますが、今回はその辺りの細かい事は記載せず、Nutanix上で上記を実現する一例を示したいと思います。
実際に検証環境で動作確認した情報を記載しますので、興味ある人はぜひ試してもらえればと思います。

:::note info
仮想ネットワークとしてL2延伸を行うため、物理ネットワーク機器の設定変更を必須とせずNutanix上の設定を行うだけで実現できるというのもポイントです（もちろんサイト間でIPルーティングが通っているなど条件はあります）。
:::

# 構成概要
今回はシンプルに2つのNutanixクラスターを用意し、クラスター間で同じVLANのL2延伸を行います。
バージョン情報は以下です。
AOS:6.5.2
AHV:20220304.342
Prism Central:2022.6.0.8

:::note info
前提条件として、上記のクラスター基本コンポーネントは構築済みであるところから本記事は記載。L3スイッチなどIPネットワークについても構築済み。
:::

サイト1の管理VLAN:0 192.168.1.0/24
サイト2の管理VLAN:100 192.168.100.0/24
L2延伸するVLAN:200 192.168.200.0/24

L2延伸前の構成イメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632060/2b35f40a-06f3-2880-30d4-dabd3886609c.png)

:::note warn
L2延伸前のVlan200はそれぞれのサイトで孤立しており疎通できません。
:::

L2延伸後の構成イメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632060/85cc7414-b813-60a4-5946-0bdccb663bda.png)

:::note warn
L2延伸することでそれぞれのVlan200を連結し疎通できるようにします。
:::


# 設定
それぞれのサイトでGateway(VTEP)を構成します。
 (PE上で仮想マシン（仮想ルータ）として確認できます)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632060/07850876-d366-0ca6-d843-da64676222cb.png)
サイト1のVTEP: 192.168.1.200
サイト2のVTEP: 192.168.100.200

それぞれのサイトでSubnet Extensionを構成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632060/ae1900b0-7f6d-b06d-12b4-521e63a68335.png)

それぞれのサイトでVLAN200にテスト用仮想マシンを作成します（VM作成については詳細割愛）
(作成順番としては上記のVTEP作成、Subnet Extension作成より前でも構いません)
サイト1VM1:192.168.200.100
サイト1VM2:192.168.200.102
サイト2VM3:192.168.200.101

# 動作確認
:::note info
サイト1VM1からPingで疎通確認　まずは同じクラスター内のサイト1VM2へ⇒OK
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632060/75f37798-76c0-1b30-3768-1a3eeb9f5d26.png)


:::note info
今度はL2延伸先のサイト2VM3へ⇒OK　ただしPingに少し遅延があった。(VXLAN処理の影響と思われる)
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632060/4fe11e7a-c3c7-d6ed-6c8a-3e528e86682e.png)

:::note info
サイト1VM1でARPテーブルを確認　⇒OK　L2延伸だからといって特別変わった見え方はしない。
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632060/ee8a9146-09a9-0511-460a-49e617719a3e.png)

最低限としてはここまでですが、少し物足りたいのでもう少し確認してみました。

:::note info
Pingのsizeを大きくして疎通確認⇒NG 
Pingのsizeを少し小さくして疎通確認⇒OK　L2延伸の場合はMTUサイズが影響していることがわかります。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632060/92d9fa02-f89b-662b-d810-13a4ad75b2f0.png)

理由はオリジナルのイーサネットフレームへVTEPがヘッダーを追加しているため。
念のためパケットキャプチャーで詳細を確認しました。
以下はサイト1VM1:192.168.200.100からサイト2VM3:192.168.200.101へPingしたものをwiresharkでキャプチャしたものです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632060/3dcaad44-06c0-71f5-a24d-16af6e10e2e1.png)

:::note info
Source Address:サイト1のVTEPのアドレス:192.168.1.200とDestination Address:サイト2のVTEPのアドレス:192.168.100.200でヘッダーが付加されていることが確認できました。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632060/9b6cbc55-aea9-94f9-b825-e68bc4919c52.png)

:::note info
UDP 4789 VXLAN (VNI)が付与されている事も確認できました。
:::


なお、Nutanix AHV上でパケットキャプチャー（traffic mirroring）する方法については、以前に下記でまとめていますのでこちらもご参考ください。今回キャプチャを採取するに辺りこちらを使ってwiresharkを準備しました。

:::note warn
traffic mirroring on AHV Hosts
https://go.nutanix.com/rs/031-GVQ-112/images/traffic-mirroring-on-AHV-Hosts-20231024-meetup-kuze.pdf?version=0
:::


# 詳細な追加検討（今後について）
以下については今回は確認していませんが、実際に業務等で使うことを考える際は以下のような追加検討が必要と思うので参考までに記載しておきます。
・物理ネットワーク装置でジャンボフレームを構成し、MTUを調整する。
・VLAN200のゲートウェイを構成しVLAN間通信ができるようにする。
・複数のVLANでL2延伸を構成する。

時間あるときに上記についても改めて確認しようと思います（今回は時間の関係で割愛します）。

# ご参考
L2延伸の詳細についてはNutanixのSupport Portalに情報がまとまっていますので、ぜひこちらもご参考ください。
https://portal.nutanix.com/page/documents/details?targetId=Nutanix-Flow-Virtual-Networking-Guide-vpc_2022_6:ear-flow-nw-l2-virtual-network-extension-c.html

今回の記事は上記URL内の以下セクションに近い内容になっています。
・Extending a Subnet to Third Party Datacenters Over VTEP

今回はVTEP間でL2延伸を行いましたが、Nutanixが提供している方法にはVPNを使うやり方もあります。L2延伸トラフィックを暗号化したい場合はVPNとなります（VTEPは暗号化に非対応なため）。
・Layer 2 Virtual Subnet Extension Over VPN
この辺りについても上記URL内で詳細が確認できます。

なお、今回の検証はNutanix CE2.0を用いて実施しました。興味持たれた方はぜひNutanix CE2.0についても触ってみてください！
#
今回は以上です。明日以降のアドベントカレンダーもお楽しみに！