はじめに
仮想化技術の進化により、ネットワークの柔軟性とセキュリティを向上させる手段がますます増えています。その中でも、VMwareのNSXは仮想基盤上に仮想ネットワークを構築するための効果的なソリューションの1つです。今回は、NSXが提供するIPsec機能を使用して、異なるサイト間でのセキュアな通信を確立する方法を具体的な設定例とともに紹介します。
NSXではIKEv2のポリシーベースIPsecとルートベースIPsecをサポートしています。
ポリシーベースIPsec: ポリシーベースIPsecは、送信元や送信先のIPアドレス、または特定のトラフィックパターンに基づいてIPsecトンネルを確立します。これにより、特定の通信パターンに対してセキュリティポリシーを適用することが可能です。例えば、特定のサブネット間の通信にのみIPsecを適用するなどがあります。
ルートベースIPsec: ルートベースIPsecは、特定の経路上のトラフィックに対してIPsecを適用します。つまり、ルーティングテーブルに基づいてIPsecトンネルを確立し、その経路を通るすべてのトラフィックにセキュリティを提供します。この方式は、特定の通信パターンに対する柔軟性を持ちつつ、ネットワーク全体に対する包括的なセキュリティを提供します。
これらの2つのIPsecモードを適切に活用することで、NSXを使用したネットワークセキュリティの強化が可能となります。
NSXはT0ゲートウェイおよびT1ゲートウェイの両方でIPsecをサポートしています。両者の設定方法はほとんど同じですが、今回はより複雑なT1ゲートウェイでの設定方法を具体的に紹介します。
ポリシーベースIPsec
構築するネットワーク構成は以下となります。
SiteA
ユーザセグメント:172.16.10.0/24
IPsec用エンドポイントIP:10.12.12.12
SiteB
ユーザセグメント:172.16.20.0/24
IPsec用エンドポイントIP:10.34.34.34
NSX ver.3.2.3.1
IPsecを構築するために必要な設定は以下になります。
①T0ゲートウェイにエンドポイント間のルートを学習
②NSX IPsecの設定
1.VPNサービスの設定
2.NSX IPsec Session (ポリシーベース)の作成
3.NSX ローカルエンドポイントの作成
①T0ゲートウェイにエンドポイント間のルートを学習
この後設定するIPsecエンドポイントIPは対向サイトへ広報している必要があります。アンダーレイをダイナミックルーティングで構築している場合は、このIPを再配送している必要があります。T1およびT0ゲートウェイで再配送の設定を確認します。
ネットワーク > Tier-1 ゲートウェイ >ルートアドバタイズ
ネットワーク > Tier-0 ゲートウェイ >ルート再配分
(スタティックルートを用いて構築している場合は対向IPsecエンドポイントIPへのスタティックルートを追加します。)
②NSX IPsecの設定
ネットワーク > VPN > VPNサービス > IPsec
ネットワーク > VPN > IPsecセッション > IPsecセッションの追加
ローカルエンドポイントを新規作成
(ローカルIDは空欄のままだとIPアドレスがそのまま入る)
リモートIP(対向のIP)、ローカル・リモートのIP、プリシェアードキーを入力
これですべての設定は完了!
(オプション) エンドポイント間の通信確認
IPsecを張るためにはエンドポイント間で通信ができることが最低条件になるため、アンダーレイの通信可否を確認する
Edge VM にSSH > T1-SR のVRF番号を確認
vm-edge01> get logical-router
Logical Router
UUID VRF LR-ID Name Type Ports Neighbors
736a80e3-23f6-5a2d-81d6-bbefb2786666 0 0 TUNNEL 4 4/5000
72428152-324f-4631-bab2-e8b65a690986 1 1 DR-T0-GW DISTRIBUTED_ROUTER_TIER0 8 4/50000
cb8a4c2a-ce27-4184-a625-2320eb33382a 2 1025 SR-T0-GW SERVICE_ROUTER_TIER0 7 5/50000
bcc8eff6-2e2f-4de5-b9e4-c9a7d611009c 6 2052 DR-test-t1 DISTRIBUTED_ROUTER_TIER1 5 2/50000
49a81429-559f-4fb7-afeb-78ef3b639212 8 2056 SR-kk-T1-01 SERVICE_ROUTER_TIER1 5 2/50000
d655e8f7-2455-43cd-b984-bfd3d3ad1a07 9 2055 DR-kk-T1-01 DISTRIBUTED_ROUTER_TIER1 4 0/50000
Edge からEdge にPingを打って、エンドポイント間の通信を確認(これが通らなければVPNは張れません。アンダーレイを確認してください)
vm-edge01> vrf 8
vm-edge01(tier1_sr[8])> ping 10.34.34.34 source 10.12.12.12
PING 10.34.34.34 (10.34.34.34) from 10.12.12.12: 56 data bytes
64 bytes from 10.34.34.34: icmp_seq=0 ttl=63 time=2.406 ms
64 bytes from 10.34.34.34: icmp_seq=1 ttl=63 time=2.771 ms
64 bytes from 10.34.34.34: icmp_seq=2 ttl=63 time=4.096 ms
64 bytes from 10.34.34.34: icmp_seq=3 ttl=63 time=2.004 ms
64 bytes from 10.34.34.34: icmp_seq=4 ttl=63 time=2.168 ms
64 bytes from 10.34.34.34: icmp_seq=5 ttl=63 time=1.843 ms
64 bytes from 10.34.34.34: icmp_seq=6 ttl=63 time=2.576 ms
^C
— 10.34.34.34 ping statistics —
8 packets transmitted, 7 packets received, 12.5% packet loss
round-trip min/avg/max/stddev = 1.843/2.552/4.096/0.697 ms
VPN状態の確認
ネットワーク > VPN > IPsecセッション からVPN状態をが「成功」になっていることを確認
VPN経由通信の確認
ネットワーク > VPN > IPsecセッション > 統計情報の表示 から、VPN サイト間の通信量を確認できる
データの送受信が確認できればVPNが正常に張れていることなる
[Tips:VPN gateway の冗長化は?]
NSX のIPsec はNSX Edge 内で動くT0/T1 Gateway で動作するが、これは Active/Standby で冗長化されている。同時にIPsecセッションはあらかじめActive からStandby へ同期されている。そのためT0/T1 Gateway やNSX Edge に障害があった場合は、アンダーレイルートの収束後に既存セッションを引き継ぐ形で通信が復旧する。さらにBFD 環境では高速なアンダーレイルートの収束が可能のため、結果として数秒以内のダウンタイムでの切り替わりが期待できる
ルートベースIPsec
ルートベースIPsecで構築するネットワーク構成は以下となります。ポリシーベースとの違いは、両サイトにVPNトンネル終端のためのトンネルインターフェースが設定され、ここにユーザ任意のネットワークセグメント(例では10.222.222.0/24)がアサインされる点です。
SiteA
ユーザセグメント:172.16.10.0/24
IPsec用エンドポイントIP:10.12.12.12
IPsec用トンネルインターフェースIP:10.222.222.1/24
SiteB
ユーザセグメント:172.16.20.0/24
IPsec用エンドポイントIP:10.34.34.34
IPsec用トンネルインターフェースIP:10.222.222.2/24
NSX ver.3.2.3.1
IPsecを構築するために必要な設定は以下になります。
①T0ゲートウェイにエンドポイント間のルートを学習
②NSX IPsecの設定
1.VPNサービスの設定
2.NSX IPsec Session (ルートベース)の作成
3.NSX ローカルエンドポイントの作成
③T0ゲートウェイにトンネル経由のルートを追加
※黒字はポリシーベースと同様のため以下キャプチャでは省略します
②NSX IPsecの設定
2.NSX IPsec Session (ルートベース)の作成
ネットワーク > VPN > IPsecセッション > IPsecセッションの追加 からルートベースを選択
ポリシーベースにはなかった設定としてトンネルインターフェイスCIDRの指定が必要となる。
VPN 経由の通信はこのトンネルインターフェースを経由し、対向のトンネルIPをネクストホップとなる転送を行うが、その転送のためのルートはスタティックルートで定義するかBGPにより広報して貰う必要がある。以下はスタティックルートおよびBGPの設定例となる。
*NSXではトンネルインターフェースでのOSPFはサポートしていない
③T0ゲートウェイにトンネル経由のルートを追加(スタティックルートによるルート追加の場合)
ネットワーク > Tier-0 ゲートウェイ or Tier-1 ゲートウェイ >ルーティング > スタティックルートからルートを追加
対向サイトのネットワークサブネットを下記、ネクストホップは対向のトンネルインターフェースを入力
③T0ゲートウェイにトンネル経由のルートを追加(BGPによるルートの広報の場合)
ネットワーク > Tier-0 ゲートウェイ or Tier-1 ゲートウェイ >BGP > BGP ネイバー を設定する
BGPネイバーIPは対向のトンネルIPで、送信元アドレスは自身のトンネルIPをいれる
ポリシーベースとの設定差分は以上となる。ポリシーベースと同様にアンダーレイの通信確認の上、VPN経由の通信が正常に行えることを確認する。