このページでは、レイヤ 2 VPN(L2VPN)を使用して、オンプレミス環境からプライベート クラウドまでレイヤ 2 ネットワークを拡張する方法について説明します。
レイヤ 2 ネットワークの L2VPN ベースの拡張は、オンプレミスの VMware 環境で、NSX ベースのネットワークの有無に関係なく機能します。オンプレミスのワークロードに NSX ベースのネットワークがない場合は、スタンドアロンの NSX Edge サービス ゲートウェイを使用します。
デプロイ シナリオ
L2VPN を使用してオンプレミス ネットワークを拡張するには、L2VPN サーバー(宛先 NSX-T Tier0 ルーター)と L2VPN クライアント(ソース スタンドアロン クライアント)を構成する必要があります。
このデプロイ シナリオでは、サイト間 VPN トンネルを使用してプライベート クラウドをオンプレミス環境に接続します。VPN トンネルを使用すると、オンプレミス管理と vMotion のサブネットがプライベート クラウド管理および vMotion のサブネットと通信できるようになります。この設定により、Cross vCenter vMotion(xVC-vMotion)が有効になります。NSX-T Tier0 ルーターをプライベート クラウドの L2VPN サーバーとしてデプロイします。
オンプレミス環境に NSX スタンドアロン Edge を L2VPN クライアントとしてデプロイし、L2VPN サーバーとペア設定します。各サイドに GRE トンネル エンドポイントを作成し、オンプレミスのレイヤ 2 ネットワークをプライベート クラウドに拡張するように構成します。
L2VPN を使用した移行の詳細については、バーチャル プライベート ネットワークに関する VMware のドキュメントをご覧ください。
前提条件
ソリューションをデプロイして構成する前に、以下の要件が満たされているかを確認します。
- サイト間 VPN で、オンプレミス環境とプライベート クラウド データセンターが接続されている。
- オンプレミスの vSphere のバージョンは、6.7U1 以降または 6.5P03 以降である。
- オンプレミスの vSphere ライセンスは、エンタープライズ プラスのレベルである(vSphere 分散スイッチの場合)。
- プライベート クラウドに拡張するワークロードのレイヤ 2 ネットワークを特定済みである。
- L2VPN クライアント アプライアンスをデプロイするために、オンプレミス環境でレイヤ 2 ネットワークを特定済みである。
- プライベート クラウドを作成している。
- スタンドアロンの NSX-T Edge アプライアンスのバージョンは、プライベート クラウド環境で使用される NSX-T Manager バージョン(NSX-T 2.3.0)と互換性がある。
- トランク ポートグループがオンプレミス vCenter にすでに作成されている。
- パブリック IP アドレスが、NSX-T スタンドアロン クライアント アップリンク IP アドレス用に予約されており、1:1 NAT が 2 つのアドレス間の変換用に配置されている。
- DNS 転送がオンプレミスの DNS サーバー上で設定され、ドメインがプライベート クラウド DNS サーバーを参照するよう指定されている。
- RTT レイテンシが 150 ミリ秒以下になっている。vMotion が 2 つのサイトで動作するには、この条件を満たす必要があります。
制限事項と考慮事項
次の表で、サポートされている vSphere のバージョンとネットワーク アダプター タイプを一覧表示します。
vSphere のバージョン | ソース vSwitch タイプ | 仮想 NIC ドライバ | ターゲット vSwitch タイプ | サポート対象 |
---|---|---|---|---|
すべて | DVS | すべて | DVS | ○ |
vSphere 6.7UI 以降、6.5P03 以降 | DVS | VMXNET3 | N-VDS | ○ |
vSphere 6.7UI 以降、6.5P03 以降 | DVS | E1000 | N-VDS | VMware ではサポートされていません |
vSphere 6.7UI または 6.5P03、NSX-V または NSX-T2.2 以前、6.5P03 以降のバージョン | すべて | すべて | N-VDS | VMware ではサポートされていません |
VMware NSX-T 2.3 リリースの現時点:
- L2VPN を介してオンプレミスに拡張されたプライベート クラウド側の論理スイッチを同時にルーティングすることはできません。拡張された論理スイッチは、論理ルーターに接続できません。
- L2VPN とルートベースの IPSEC VPN は、API 呼び出しの使用でのみ構成できます。
詳細については、バーチャル プライベート ネットワークに関する VMware ドキュメントをご覧ください。
L2VPN デプロイの例
次の表に、L2VPN のデプロイ仕様の例を示します。
スタンドアロン ESG(L2VPN クライアント)がデプロイされているオンプレミス ネットワーク
項目 | 値 |
---|---|
ネットワーク名 | MGMT_NET_VLAN469 |
VLAN | 469 |
CIDR | 10.250.0.0/24 |
スタンドアロン Edge アプライアンス IP アドレス | 10.250.0.111 |
スタンドアロン Edge アプライアンス NAT IP アドレス | 192.227.85.167 |
拡張されるオンプレミス ネットワーク
項目 | 値 |
---|---|
VLAN | 472 |
CIDR | 10.250.3.0/24 |
NSX-T Tier0 ルーター(L2VPN サーバー)のプライベート クラウド IP スキーマ
項目 | 値 |
---|---|
ループバック インターフェース | 192.168.254.254/32 |
トンネル インターフェース | 5.5.5.1/29 |
論理スイッチ(拡張) | Stretch_LS |
ループバック インターフェース(NAT IP アドレス) | 104.40.21.81 |
拡張ネットワークにマッピングされるプライベート クラウド ネットワーク
項目 | 値 |
---|---|
VLAN | 712 |
CIDR | 10.200.15.0/24 |
L2VPN に必要な論理ルーター ID を取得する
次の手順は、IPsec と L2VPN サービスの Tier0 DR 論理ルーター インスタンスの論理ルーター ID を取得する方法を示しています。後で L2VPN を実装する際に、論理ルーター ID を使用します。
- NSX-T Manager にログインし、[Networking] > [Routers] > [Provider-LR] > [Overview] の順に選択します。[High Availability Mode] で、[Active-Standby] を選択します。この操作を行うと、ポップアップ ウィンドウが開き、Tier0 ルーターが現在アクティブな Edge VM が表示されます。
- [Fabric] > [Nodes] > [Edge] の順に選択します。前の手順で特定したアクティブな Edge VM(Edge VM1)の管理 IP アドレスをメモしておきます。
- Edge VM の管理 IP アドレスへの SSH セッションを開きます。
get-logical-router
コマンドを実行します。 - エントリ
DR-Provider-LR
が表示されない場合は、次の手順を行います。- オーバーレイ対応論理スイッチを 2 つ作成します。論理スイッチの 1 つは、移行されたワークロードが存在するオンプレミスに拡張されます。詳細については、論理スイッチを作成するをご覧ください。
- リンクローカル IP アドレスか、オンプレミスまたはプライベート クラウドから重複しないサブネットを使用して、Tier1 ルーターに 2 つ目の論理スイッチを接続します。詳細については、Tier-1 論理ルーターのダウンリンク ポートの追加をご覧ください。
- Edge VM の SSH セッションで、
get logical-router
コマンドを再度実行します。出力には、DR-Provider-LR
論理ルーターの UUID が表示されます。UUID をメモしておきます。これは、L2VPN を構成するときに必要になります。
L2VPN に必要な論理スイッチ ID を取得する
- NSX-T Manager にログインします。
- [Networking] > [Switching] > [Switches] > [Overview] の順に選択します。
- ストレッチ論理スイッチの UUID をメモしておきます。これは、L2VPN を構成するときに必要になります。
L2VPN のルーティングとセキュリティに関する考慮事項
NSX-T Tier0 ルーターと NSX スタンドアロン Edge クライアントの間に IPsec ルートベース VPN を確立するには、NSX-T Tier0 ルーターのループバック インターフェースが、UDP 500/4500 を介したオンプレミス NSX スタンドアロン クライアントのパブリック IP アドレスと通信できる必要があります。
IPsec 用の UDP 500/4500 を許可する
- Google Cloud VMware Engine ポータルで NSX-T Tier0 ループバック インターフェースにパブリック IP アドレスを割り振ります。
- UDP 500/ 4500 の受信トラフィックを許可するステートフル ルールで、ファイアウォール テーブルを作成し、NSX-T HostTransport サブネットにファイアウォール テーブルを接続します。
ループバック インターフェース IP をアンダーレイ ネットワークにアドバタイズする
- ループバック インターフェース ネットワークの null ルートを作成します。
- NSX-T Manager にログインし、[Networking] > [Routing] > [Routers]> [Provider-LR] > [Routing] > [Static routes] を選択します。
- [Add] をクリックします。
- [Network] で、ループバック インターフェースの IP アドレスを指定します。
- [Next Hops] で、[Add] をクリックし、ネクストホップに Null を指定します。[Admin distance] はデフォルト値の 1 のままにします。
- IP プレフィックス リストを作成します。
- NSX-T Manager にログインし、[Networking] > [Routing] > [Routers]> [Provider-LR] > [Routing] > [IP prefix lists] を選択します。
- [Add] をクリックします。
- リストを識別する名前を入力します。
- [Prefixes] で [Add] を 2 回クリックします。
- 1 行目の [Network] に「
0.0.0.0/0
」、[Action] に「Deny」と入力します。 - 2 行目の [Network] で [Any] を選択し、[Action] で [Permit] を選択します。
- IP プレフィックス リストを両方の BGP ネイバー(TOR)にアタッチします。IP プレフィックス リストを BGP ネイバーにアタッチすると、デフォルト ルートが BGP で TOR スイッチにアドバタイズされなくなります。ただし、null ルートを含む他のルートは、ループバック インターフェース IP アドレスを TOR スイッチにアドバタイズします。
- NSX-T Manager にログインし、[Networking] > [Routing] > [Routers] > [Provider-LR] > [Routing] > [BGP] > [Neighbors] を選択します。最初のネイバーを選択します。
- [Routers] > [Address families] をクリックします。
- IPv4 ファミリーの場合は、[Out filter] 列を編集して、作成した IP プレフィックス リストを選択します。[Save] をクリックします。2 つ目のネイバーについてもこの手順を繰り返します。
- null 静的ルートを BGP に再配布します。ループバック インターフェース ルートをアンダーレイにアドバタイズするには、null 静的ルートを BGP に再配布する必要があります。
- NSX-T Manager にログインし、[Networking] > [Routing] > [Routers] > [Provider-LR] > [Routing] > [Route redistribution] > [Neighbors] を選択します。
- [Provider-LR-route_redistribution] を選択し、[Edit] をクリックします。
- [Static] チェックボックスをオンにして、[Save] をクリックします。
NSX-T Tier0 ルーターでルートベースの VPN を構成する
次のテンプレートを使用して、NSX-T Tier0 ルーターでルートベースの VPN を構成するための詳細を指定します。各 POST 呼び出しの UUID は、後続の POST 呼び出しで必要になります。
ループバックの IP アドレスと L2VPN のトンネル インターフェースは、一意である必要があり、オンプレミス ネットワークやプライベート クラウド ネットワークと重複しないようにする必要があります。ループバック インターフェース ネットワークは常に /32
である必要があります。
Loopback interface ip : 192.168.254.254/32 Tunnel interface subnet : 5.5.5.0/29 Logical-router ID : UUID of Tier0 DR logical router obtained in section "Steps to fetch Logical-Router ID needed for L2VPN" Logical-switch ID(Stretch) : UUID of Stretch Logical Switch obtained earlier IPSec Service ID : IKE profile ID : DPD profile ID : Tunnel Profile ID : Local-endpoint ID : Peer end-point ID : IPSec VPN session ID (route-based) : L2VPN service ID : L2VPN session ID : Logical-Port ID : Peer Code :
次のすべての API 呼び出しでは、IP アドレスを NSX-T Manager の IP アドレスに置き換えます。curl
コマンドを使用すると、これらの API 呼び出しをすべて実行できます。
論理ルーターで IPSec VPN サービスを有効にする
POST https://192.168.110.201/api/v1/vpn/ipsec/services/ { "resource_type": "IPSecVPNService", "description": "Manage VPN service", "display_name": "IPSec VPN service", "logical_router_id": "Logical-router ID", "ike_log_level": "INFO", "enabled": true }
プロファイルの作成: IKE
POST https://192.168.110.201/api/v1/vpn/ipsec/ike-profiles { "resource_type": "IPSecVPNIKEProfile", "description": "IKEProfile for siteA", "display_name": "IKEProfile siteA", "encryption_algorithms": ["AES_128"], "ike_version": "IKE_V2", "digest_algorithms": ["SHA2_256"], "sa_life_time":21600, "dh_groups": ["GROUP14"] }
プロファイルの作成: DPD
POST https://192.168.110.201/api/v1/vpn/ipsec/dpd-profiles { "resource_type": "IPSecVPNDPDProfile", "display_name": "nsx-default-dpd-profile", "enabled": true }
プロファイルの作成: トンネル
POST https://192.168.110.201/api/v1/vpn/ipsec/tunnel-profiles { "resource_type": "IPSecVPNTunnelProfile", "display_name": "nsx-default-tunnel-profile", "enable_perfect_forward_secrecy": true, "encryption_algorithms": ["AES_GCM_128"], "digest_algorithms": [], "sa_life_time":3600, "dh_groups": ["GROUP14"], "encapsulation_mode": "TUNNEL_MODE", "transform_protocol": "ESP", "df_policy": "COPY" }
ローカル エンドポイントの作成
{ "resource_type": "IPSecVPNLocalEndpoint", "description": "Local endpoint", "display_name": "Local endpoint", "local_id": "Public IP of Loopback interface", "ipsec_vpn_service_id": { "target_id": "IPSec VPN service ID"}, "local_address": "IP of Loopback interface", "trust_ca_ids": [], "trust_crl_ids": [] }
ピア エンドポイントの作成
POST https://192.168.110.201/api/v1/vpn/ipsec/peer-endpoints { "resource_type": "IPSecVPNPeerEndpoint", "description": "Peer endpoint for site B", "display_name": "Peer endpoint for site B", "connection_initiation_mode": "INITIATOR", "authentication_mode": "PSK", "ipsec_tunnel_profile_id": "IPSec Tunnel profile ID", "dpd_profile_id": "DPD profile ID", "psk":"nsx", "ike_profile_id": "IKE profile ID", "peer_address": "Public IP of Standalone client", "peer_id": "Public IP of Standalone client" }
ルートベースの VPN セッションの作成
POST : https://192.168.110.201/api/v1/vpn/ipsec/sessions { "resource_type": "RouteBasedIPSecVPNSession", "peer_endpoint_id": "Peer Endpoint ID", "ipsec_vpn_service_id": "IPSec VPN service ID", "local_endpoint_id": "Local Endpoint ID", "enabled": true, "tunnel_ports": [ { "ip_subnets": [ { "ip_addresses": [ "5.5.5.1" ], "prefix_length": 24 } ] } ] }
NSX-T Tier0 ルーターへの L2VPN の構成
各 POST 呼び出し後に、次の情報を指定します。この ID は、後続の POST 呼び出しで必要になります。
L2VPN Service ID: L2VPN Session ID: Logical Port ID:
L2VPN サービスの作成
次の GET コマンドの出力は、構成が完了していないため、空のままになります。
GET : https://192.168.110.201/api/v1/vpn/l2vpn/services
次の POST コマンドの場合、論理ルーター ID は、前に取得した Tier0 DR 論理ルーターの UUID です。
POST : https://192.168.110.201/api/v1/vpn/l2vpn/services { "logical_router_id": "Logical Router ID", "enable_full_mesh" : true }
L2VPN セッションの作成
次の POST コマンドの場合、L2VPN サービス ID は先ほど取得した ID で、IPSec VPN セッション ID は前のセクションで取得した ID です。
POST: https://192.168.110.201/api/v1/vpn/l2vpn/sessions { "l2vpn_service_id" : "L2VPN service ID", "transport_tunnels" : [ { "target_id" : "IPSec VPN session ID" } ] }
これらの呼び出しによって GRE トンネル エンドポイントが作成されます。ステータスを確認するには、次のコマンドを実行します。
edge-2> get tunnel-port Tunnel : 44648dae-8566-5bc9-a065-b1c4e5c3e03f IFUID : 328 LOCAL : 169.254.64.1 REMOTE : 169.254.64.2 ENCAP : GRE Tunnel : cf950ca1-5cf8-5438-9b1a-d2c8c8e7229b IFUID : 318 LOCAL : 192.168.140.155 REMOTE : 192.168.140.152 ENCAP : GENEVE Tunnel : 63639321-87c5-529e-8a61-92c1939799b2 IFUID : 304 LOCAL : 192.168.140.155 REMOTE : 192.168.140.156 ENCAP : GENEVE
トンネル ID を指定した論理ポートの作成
POST https://192.168.110.201/api/v1/logical-ports/ { "resource_type": "LogicalPort", "display_name": "Extend logicalSwitch, port for service", "logical_switch_id": "Logical switch ID", "admin_state" : "UP", "attachment": { "attachment_type":"L2VPN_SESSION", "id":"L2VPN session ID", "context" : { "resource_type" : "L2VpnAttachmentContext", "tunnel_id" : 10 } } }
NSX-T 側で L2VPN のピアコードを取得する
NSX-T エンドポイントのピアコードを取得します。リモート エンドポイントを構成する際には、ピアコードが必要です。前のセクションから L2VPN を取得できます。詳しくは、NSX-T 2.3 API をご覧ください。
GET https://192.168.110.201/api/v1/vpn/l2vpn/sessions/session-id/peer-codes
NSX-T スタンドアロン クライアントをデプロイする(オンプレミス)
デプロイする前に、オンプレミス ファイアウォール ルールで、NSX-T T0 ルーターのループバック インターフェース用に以前に予約されたパブリック IP アドレスとの間の受信 / 送信 UDP 500/4500 トラフィックが許可されていることを確認します。
- スタンドアロン Edge クライアントの OVF をダウンロードし、ダウンロードしたバンドルからファイルをフォルダに抽出します。
- 抽出されたすべてのファイルがあるフォルダに移動します。
- すべての VMDK を選択し、[Next] をクリックします。
- アプライアンスのサイズが大きい場合は
NSX-l2t-client-large.mf
とNSX-l2t-client-large.ovf
。 - 特大サイズのアプライアンスの場合は、
NSX-l2t-client-Xlarge.mf
とNSX-l2t-client-Xlarge.ovf
。
- アプライアンスのサイズが大きい場合は
- NSX-T スタンドアロン クライアントの名前を入力して、[Next] をクリックします。
- 必要に応じて [Next] をクリックし、データストアの設定に移動します。
- NSX-T スタンドアロン クライアントに適切なデータストアを選択し、[Next] をクリックします。
- NSX-T スタンドアロン クライアントで Trunk(Trunk PG)、パブリック(Uplink PG)、HA(Uplink PG)インターフェースに適正なポートグループを選択します。[Next] をクリックします。
- [Customize template] 画面で次の情報を入力して、[Next] をクリックします。
- L2T を展開します。
- ピアアドレス。NSX-T Tier0 ループバック インターフェース用に Google Cloud VMware Engine ポータルで予約されている IP アドレスを入力します。
- ピアコード。L2VPN サーバーのデプロイから取得したピアコードを貼り付けます。
- サブインターフェース VLAN(トンネル ID)。拡張される VLAN ID を入力します。かっこ
()
には、前に構成したトンネル ID を入力します。
- uplink インターフェースを展開します。
- DNS IP アドレス。オンプレミスの DNS IP アドレスを入力します。
- デフォルト ゲートウェイ。このクライアントのデフォルト ゲートウェイとして機能する VLAN のゲートウェイを入力します。
- IP アドレス。スタンドアロン クライアントのアップリンク IP アドレスを入力します。
- プレフィックス長。アップリンク VLAN / サブネットのプレフィックス長を入力します。
- CLI 管理者 / 有効化 / root ユーザー パスワード。管理者 / 有効化 / root アカウントのパスワードを設定します。
- L2T を展開します。
- 設定を確認し、[Finish] をクリックします。
オンプレミスのシンクポートを構成する
一方の VPN サイトに NSX がデプロイされていない場合、そのサイト内にスタンドアロンの NSX Edge をデプロイすることで、L2VPN を構成できます。Edge サービス ゲートウェイ アプライアンスが L2VPN クライアントとして機能するには、NSX で管理されていないホストに、OVF ファイルを使用してスタンドアロンの Edge をデプロイします。
スタンドアロンの Edge トランク vNIC が vSphere の分散スイッチに接続されている場合、L2VPN 機能には無作為モードまたはシンクポートが必要です。無作為モードを使用すると、ping が重複してレスポンスが重複することがあります。このため、L2VPN スタンドアロン NSX Edge 構成では、シンクポート モードを使用します。詳細については、シンクポートを構成するをご覧ください。
IPsec VPN と L2VPN の確認
次のコマンドを使用して、NSX-T スタンドアロン Edge からの IPsec と L2VPN セッションを確認します。
nsx-l2t-edge> show service ipsec ----------------------------------------------------------------------- vShield Edge IPSec Service Status: IPSec Server is running. AESNI is enabled. Total Sites: 1, 1 UP, 0 Down Total Tunnels: 1, 1 UP, 0 Down ---------------------------------- Site: 10.250.0.111_0.0.0.0/0-104.40.21.81_0.0.0.0/0 Channel: PeerIp: 104.40.21.81 LocalIP: 10.250.0.111 Version: IKEv2 Status: UP Tunnel: PeerSubnet: 0.0.0.0/0 LocalSubnet: 0.0.0.0/0 Status: UP ---------------------------------- nsx-l2t-edge> show service l2vpn L2 VPN is running ---------------------------------------- L2 VPN type: Client/Spoke SITENAME IPSECSTATUS VTI GRE 1ecb00fb-a538-4740-b788-c9049e8cb6c6 UP vti-100 l2t-1
次のコマンドを使用して、NSX-T Tier0 ルーターからの IPsec と L2VPN セッションを確認します。
edge-2> get ipsecvpn session Total Number of Sessions: 1 IKE Session ID : 3 UUID : 1ecb00fb-a538-4740-b788-c9049e8cb6c6 Type : Route Local IP : 192.168.254.254 Peer IP : 192.227.85.167 Local ID : 104.40.21.81 Peer ID : 192.227.85.167 Session Status : Up Policy Rules VTI UUID : 4bf96e3b-e50b-49cc-a16e-43a6390e3d53 ToRule ID : 560874406 FromRule ID : 2708358054 Local Subnet : 0.0.0.0/0 Peer Subnet : 0.0.0.0/0 Tunnel Status : Up edge-2> get l2vpn session Session : f7147137-5dd0-47fe-9e53-fdc2b687b160 Tunnel : b026095b-98c8-5932-96ff-dda922ffe316 IPSEC Session : 1ecb00fb-a538-4740-b788-c9049e8cb6c6 Status : UP
次のコマンドを使用して、NSX-T スタンドアロン クライアント VM がオンプレミス環境にある ESXi ホストのシンクポートを確認します。
[root@esxi02:~] esxcfg-vswitch -l |grep NSX 53 1 NSXT-client-large.eth2 225 1 NSXT-client-large.eth1 52 1 NSXT-client-large.eth0 [root@esxi02:~] net-dvs -l | grep "port\ [0-9]\|SINK\|com.vmware.common.alias" com.vmware.common.alias = csmlab2DS , propType = CONFIG port 24: port 25: port 26: port 27: port 13: port 19: port 169: port 54: port 110: port 6: port 107: port 4: port 199: port 168: port 201: port 0: port 49: port 53: port 225: com.vmware.etherswitch.port.extraEthFRP = SINK port 52:
次のステップ
- Google Cloud VMware Engine ネットワークに VPN ゲートウェイを設定する。
- プライベート クラウドでの VMware について詳しく学習する。