VMware NSX 4.1 では、ユーザーインターフェース(UI)を用いてマルチテナント環境を簡単に管理できるようになりました。これにより、単一のNSXインスタンス内で、各テナントは独自のネットワークとセキュリティ設定を行い、分離された基盤を活用できます。
このNSXのマルチテナント機能を用いれば、各テナントは自らの仮想マシンに対して、独立したルータやファイアウォール(FW)機能を設定できます。ただ、外部ネットワークとの接続方法についてはイメージしにくいかもしれません。
本記事では、BGP EVPN に触れつつ、外部ネットワークとNSX マルチテナント環境との接続例をいくつか紹介します。これによって、外部接続の柔軟性とその理解が深まることを期待しています。
マルチテナント ネットワーク
NSX マルチテナントでは、「プロジェクト」という名前でテナントが管理されます。今回は2つのテナント、Project-redとProject-blueを例に挙げます。
- Project-red
- Project-blue
上の図のように、ネットワークトポロジのUIで「すべてのプロジェクト」を選ぶと、これら2つのテナントがどのように構成されているかが明確になります。各テナントは、専用の仮想ルータ(T1 Gateway)とセグメントを有しています。
それでは、このマルチテナント仮想基盤と外部ネットワークとの接続方法を説明します。接続例として3つ以下に列挙します。
- テナントが仮想基盤上位の物理外部ネットワークを共有するケース
- 特定テナントが一部の物理外部ネットワークを利用するケース(BGP EVPN)
- 特定テナントが一部の物理外部ネットワークを利用するケース(VLAN)
1. テナントが仮想基盤上位の物理外部ネットワークを共有するケース
テナントは自身の T1 Gateway を通じ、共有リソースである T0 Gateway を介して外部物理ネットワークへのアクセスが可能です。例として、以下のような状況が考えられます:
- 複数テナントがインターネットに公開されている
- 複数テナントが共有ストレージやDNS、NTP、DHCPなどのリソースを使用
例えば下図のような、Project-red と Project-blue は、固有のネットワークを持ちながら、DNS、DHCP、ADなどのリソースと同じ外部ネットワークを共有できます。
例として、Project-red のユーザーインターフェース(UI)でログインし、「Project-red-t1」という名前の T1 Gateway を作成します。この状態で、「Enterprise Admin」によってすでに「parent-t0」という T0 Gateway が Project-red に対するリソース共有として設定されていれば、図に示すように、「Project-red-t1」の T1 Gateway で使用するT0 Gateway を選べるようになります。 (なお、図では「vrf-red」という T0 Gateway も選択可能です。その詳細な理由は後に説明します。)
この設定により、テナントが物理外部ネットワークを仮想基盤上で共有する場合、T0 Gateway の共有を通じて簡単にネットワークを構築できます。その後、各テナントは自身の T1 Gateway で、ファイアウォール(FW)、ネットワークアドレス変換(NAT)、ルーティングポリシーなどを自由に設定し、外部への接続を可能にできます。
2. 特定テナントが一部の物理外部ネットワークを利用するケース(BGP EVPN)
次に、特定のテナントが一部の物理外部ネットワークを使用する場面を考えます。NSX マルチテナントでは、仮想マシン用のネットワークセグメントはオーバーレイ技術を基盤としています。NSX が管理していない他のデータセンター、物理アプライアンス・物理データベース・物理ストレージなどとのプライベート接続や管理が必要な場合、BGP EVPNを用いてテナントネットワークを構成できます。
BGP EVPN とは
Ethernet VPN(EVPN)は、データセンターファブリックにおける Network Virtualization Overlay(NVO)技術を BGP で制御する手法です。これにより、アンダーレイネットワーク上でレイヤー2 およびレイヤー3 の接続が可能となります。現在、多くのデータセンターで、VXLAN オーバーレイネットワークの制御プレーンとして採用が広まっています。
NSX で利用できる BGP EVPN の構成とは
NSX では、BGP EVPN を使って、NSX 管理下のオーバーレイネットワークと、NSX が管理していない他のデータセンター環境とを相互に接続、拡張できます。NSX は EVPN Route Type-5 のみをサポートしており、L3 EVPN(L3VPN)として使用可能です( L2VPN は現状未対応)。VXLAN カプセル化は、NSX Edge Transport Node TEP と外部ネットワークデバイス(この例では VyOS )の間で行われます(詳細は下図参照)。
各テナントは専用の NSX T0 VRF Gateway を通じて、BGP EVPN による外部環境との分離された経路交換やルーティングが行えるように設計されています。
NSX における EVPN の設定
NSX で EVPN を実装する際には、「インライン モード」と「ルート サーバーモード」の二つの接続モードから選べます。今回は「インライン モード」を使用します。T0 Gateway は外部ルーター(VyOS)と連携し、BGP EVPN コントロールプレーンを介して互いの経路情報と TEP アドレスをアドバタイズします。
データプレーンの構成
NSX Edge において、各エッジノードに VXLAN カプセル化用の TEP アドレスを設定します。
T0 Gateway と VyOS の EVPN 連携
T0 Gateway は BGP EVPN を使用して、VyOS に EVPN Route Type-5 をアドバタイズします。さらに、NSX Edge Transport Node 上の VXLAN TEP IP アドレスも VyOS のルーティングテーブルに BGP でアドバタイズされます。
T0 Gateway で BGP EVPN を有効にした後、次のステップとしては、各テナント専用の VRF Gateway(例:vrf-red)を作成します。この設定により、各テナントは専用の NSX T0 VRF Gateway を通じて、外部環境とプライベート接続できるようになります。それにより、テナントごとに分離された経路情報を BGP EVPN でアドバタイズすることが可能です。
注目すべき点として、VRF Gateway(vrf-red)では BGP は無効になっています。これは T0 Gateway ですでに BGP EVPN が動いており、BGP セッションが集中管理されているからです。このアプローチによって、新たな VRF を作る際に毎回 BGP セッションを設定する手間が省け、VRF および L3VPN の効率的な運用が可能になります。これまでの設定は全て、NSXの「Enterprise Admin」によって行われています。
次に、Project-red Admin のユーザーインターフェース(UI)でログインし、「Project-red-t1」と名付けた T1 Gateway を作成します。既に「Enterprise Admin」が「Project-red」に対して「vrf-red」VRF Gatewayのリソース共有している設定があるため、「Project-red-t1」のT1 Gatewayから接続するT0 Gatewayで「vrf-red」を選べるようになっています。
「Project Admin」は T1 Gateway の設定が自由なので、T0 Gateway や VRF の選択を切り替えることで、上位ネットワークを共有 / EVPN などと切り替えることが可能です。T0 Gateway やVRF の選択肢は「Enterprise Admin」が管理しており、そこから提供される T0 Gateway や VRF は、「Project Admin」が T1 Gateway に接続して、多様な外部ネットワーク設定を構築できます。
上記の設定まで行うことで、下図右の構成が組み上がります。以下のように、 VyOS では BGP EVPN 経由で、VRF Gateway 「vrf-red」配下のオーバーレイセグメント(テナントセグメント)が EVPN Route Type-5 でアドバタイズされています。
3. 特定テナントが一部の物理外部ネットワークを利用するケース(VLAN)
前述したように、NSX は BGP EVPN を用いて管理していない外部環境との相互接続が可能です。ただし、BGP EVPN には対応した物理スイッチが必要など、設定が複雑になる場合もあります。そこで、物理データベースや物理ストレージといったリソースに個別に接続するための、よりシンプルな VLAN ベースの接続方法を紹介します。
NSX マルチテナントのネットワークは、基本的にオーバーレイテクノロジーを使用しますが、VLAN も活用可能です。具体的には、T1 Gateway はオーバーレイセグメントのダウンリンクと、「サービスインターフェイス」を用いたVLANセグメントのダウンリンクの両方を持つことができます。これらのダウンリンク設定は異なりますが、VLAN(例えばVLAN-ID 166)に物理サーバを接続し、T1 Gateway(Project Red-t1) を経由してオーバーレイセグメントと通信する構成が可能です。
「Project Admin」によって、「サービスインターフェイス」を作成し、VLAN セグメントのダウンリンクを作成することができますが、「Project Admin」に自由に 「VLAN-ID」 を選択できるようにしておくと、マルチテナント環境で「VLAN-ID」の重複(バッティング)する可能性がでてきます。実際のところ、「Project Admin」が「サービスインターフェイス」で利用できる VLAN-ID( NSX VLAN セグメント)は、あらかじめ「Enterprise Admin」が Project に対して VLAN-ID( 厳密には NSX VLAN セグメント)をリソース共有する設定がされている必要があります。つまり、下図の接続先の選択肢のように「Enterprise Admin」が指定した VLAN-ID しか、「Project Admin」は利用できないわけです。
このように、「Enterprise Admin」によって NSX マルチテナントで「VLAN-ID」の重複(バッティング)が起こさないように工夫することができます。
NSX マルチテナントにおいて、リソース共有の機能はテナントに適切なリソースを利用するのに非常に重要な機能になりますし、リソース共有を活用することでテナント側にネットワークの構築をうまく委任できるすてきな機能でもあります。「Enterprise Admin」と「Project Admin」が、それぞれの責任とペースで NSX を使い倒すことができる要となるのがリソース共有になりますので、ぜひこちらの機能を覚えておいていただけたらと思います。
さいごに
この NSX マルチテナントでは、テナントが管理している仮想マシンに、ルータ機能やFW機能をテナントごとに分離された状態で利用できますが、仮想基盤環境外にあるネットワークとどのように接続すればいいのか、少しイメージしにくい部分があるため、マルチテナント環境になった仮想基盤環境と仮想基盤外にある外部ネットワークとどのように接続すればいいのか、その接続例を3つご紹介しました。
- テナントが仮想基盤上位の物理外部ネットワークを共有するケース
- 特定テナントが一部の物理外部ネットワークを利用するケース(BGP EVPN)
- 特定テナントが一部の物理外部ネットワークを利用するケース(VLAN)
3つの接続例を通して、テナント間で外部ネットワークを共有したり、分離したり、テナントのニーズに合わせて L3VPN で外部接続したり、VLAN で接続したりと、NSX マルチテナントにさまざまな接続方式があり、柔軟なネットワークが構成できることがお分かりいただけたのではないかなと思います。
NSX のマルチテナント機能といえば、これまでは Gateway や VRF や EVPN などデータプレーンであるネットワークの分離機能がハイライトされてきました。NSX 4.1 からは、コントロールプレーンもマルチテナント機能が実装され、GUI 上での複数のテナント管理ができるようになりました。今回、NSX 4.1 で GUI 上で管理している複数のテナントに、NSX マルチテナントネットワークをどう接続していくのか、その具体例をここでご紹介させていただきました。マルチテナントなクラウド基盤を今後どう構築しようかなとお考えの読者の皆様に、少しでも活用のヒントとなれば幸いです。リソース共有の機能もぜひ活用してみてください。
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
〜お知らせ〜
-
NSX SecOps – Foundation (HOL-2226-01-SEC) (日本語ガイド付き)