NSX-T 3.2  L2VPN ハブ & スポーク構成

[こちら](https://nsx.ninja/index.php/Hub_and_Spoke_Layer_2_VPNs_between_multiple_NSX-T_enabled_sites)を参照して、<font color="blue">**VMware NSX-T Data Center**</font> の <font color="blue">**L2VPN ハブ＆スポーク構成**</font> の動作検証を実施しましたので、簡単にまとめます。
* 検証環境
* vCenter Server : 7.0 U3c
* ESXi : 7.0 U3c
* NSX-T：3.2.0.1

# NSX-T L2VPN 検証構成
今回の検証構成は下記の形となり、本社と支店2か所間でハブ＆スポーク構成でL2VPN（172.110.10.0/24）を設定する想定です。
検証の前提としては、各サイトで仮想マシンをセグメント及びTier-1、Tier-0に接続し、外部ルータを介してOSPF（又はBGP）で<font color="blue"> **3拠点のルーティングを構成**</font>する事が必要となります。
L2VPNは NSX-T 3.0以降、Tier-0又はTier-1にてサポートされていますが、今回はTier-1で検証をしました。（<font color="blue">**Tier-0で設定する場合は、アクティブ/スタンバイ構成が必要**</font>です）
![Hub&Spoke.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/9b758431-479b-36b4-307c-9f90a4d04136.png)


# NSX-T L2VPNの設定手順：L2VPN サーバ
[こちら](https://docs.vmware.com/jp/VMware-NSX-T-Data-Center/3.2/administration/GUID-86C8D6BB-F185-46DC-828C-1E1876B854E8.html)を参照して、以下の手順で実施します。

**1. IPsec VPNサービスの作成** 
L2VPNの前提となるIPsec VPNサービスを[ネットワーク] > [VPN] > [VPN サービス] > [サービスの追加] > [IPsec] より作成します。
![IPsec.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/2a8c993b-8768-27f1-2eb9-214b7c0f5ce9.png)


**2. L2VPNサーバ サービスの作成**
次に [ネットワーク] > [VPN] > [VPN サービス] タブに移動し、[サービスの追加] > [L2 VPN サーバ] より、L2VPNサーバ サービスを作成します。また、[ハブアンドスポーク] も有効化します。
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/8852b5e1-633a-2d4c-af6a-5f52706a2a3b.png)

**3. ローカルエンドポイントの作成**
 [ネットワーク] > [VPN] > [ローカル エンドポイント] より、[ローカル エンドポイントの追加] を実施します。今回はTier-1でL2VPNを有効化する為、<font color="blue">**Tier-1でIPsec ローカル エンドポイントのルートアドバタイズを有効化**</font>する必要があります。<font color="grey">　
※ 6. IPsecローカルエンドポイントのアドレスを再配布

**4. L2VPNサーバ セッションの作成**
[ネットワーク] > [VPN] > [L2 VPN セッション] > [L2 VPN セッションの追加] より [L2 VPN サーバ]セッションを作成します。（各スポーク毎に作成）
![5_L2server.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/f6c68454-4290-62bb-ec43-5ec4f8fa3372.png)
**5. ローカルのセグメントをL2VPNセッションに接続**
対象のセグメントを編集し、L2VPNセッションに接続します。
![6_segment.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/6197beab-cd8e-5955-fb12-f5016c37e4b3.png)

**6. IPsecローカルエンドポイントのアドレスを再配布**
Tier-0、Tier-1にて、[IPsecローカルエンドポイント] のアドレスを広報します。
![distribute.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/d292e86f-e626-6052-2d2e-328ec23a42bb.png)



# NSX-T L2VPNの設定手順：L2VPN クライアント
**1. IPsec VPNサービスの作成**
サーバ側の手順と同様にIPsec VPNサービスを作成します。
![IPsec2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/7eb82c19-cc92-c18e-cb6f-3e8a007303fe.png)

**2. L2VPNクライアント サービスの作成**
サーバ側の手順と同様にL2VPNクライアントサービスを作成します。
![VPN Client.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/5ab06317-51b8-202d-187b-32b730a27e72.png)


**3. L2VPNクライアント セッションの作成（各スポーク毎に設定）**
L2VPNクライアント セッションの作成にあたり、L2VPNサーバセッションの[設定のダウンロード]より、[ピアコード]を取得します。
![download.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/0b21d932-1941-776c-fb95-832b5f423da8.png)

ダウンロードしたテキストより、[peer code：]以降の、ダブルクォートを抜いた文字列をコピーします。
![peer_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/30782cdb-fa26-d89f-8dbb-e7250e1b7b74.png)
上記のコードを利用して、L2VPNクライアントセッションを作成します。
![L2Client.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/523c53af-1b6e-71d7-ae18-7e0651e5fd53.png)

**4. ローカルのセグメントをL2VPNセッションに接続**
![Segment_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/3d7fa22e-346b-2069-ca54-3fdd72577704.png)

**5. IPsecローカルエンドポイントのアドレスを再配布**
サーバ側と同様に、Tier-0、Tier-1にて、[IPsecローカルエンドポイント] のアドレスを広報します。

**6. 通信確認**
L2VPNセッションが、サーバー及びクライアントを含め、状態が正常である事を確認します。
![Session.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/5d4561d2-6f05-4ff5-2c6f-8601088454e1.png)

意図通り、<font color="blue">**拠点間の ハブを経由した、同一L2の通信が可能**</font>であることを確認します。
（支店2 VM → 本社→ 支店1 VM)
![Ping.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/aa174d6a-fe7e-c29f-2917-fd4eeb837589.png)



# 参考URL
https://nsx.ninja/index.php/Hub_and_Spoke_Layer_2_VPNs_between_multiple_NSX-T_enabled_sites