NSX ネットワーク

新卒 SE 社員が贈る NSX のキソ!第 5 回~仮想化されたネットワークのルーティング~

こんにちは!「新卒 SE 社員が贈る NSX のキソ!」第 5 回を担当する VMware 新卒第 4 期生の笠井伶花と申します。
前回の第 4 回では、論理スイッチをテーマに仮想環境のネットワークを VXLAN で払い出すことで物理環境に手を加えず、サーバ側で自由に仮想ネットワークを払い出すことができるというお話をしてきました。
構成図で見ると、図 1 のところまで完成している状態ですね。

図 1 第 4 回で完成した構成図

しかし、ここまでのお話で VXLAN によるセグメントをまたいだ通信はどうするんだろう?という疑問を持ったかたもいらっしゃるのではないでしょうか。そこで、第 5 回では、異なるセグメントネットワーク間の通信に欠かせない「NSX Data Center のルーティング機能」についてご紹介いたします。
VXLAN によるセグメントをまたいだ通信をする場合、もちろんルーティングが必要になります。しかし、VXLAN で払い出した仮想ネットワークのセグメント間のルーティングを従来通り物理のルータで行うとしたらどうなるでしょうか? 第 4 回でもお話がありましたが、結局はトラフィックが 1 度仮想化されたネットワークの外に出てしまいます。また物理ルータへの設定が都度必要になってしまうのです。折角サーバ側で自由にネットワークを払い出すことが出来るようになったのに、ルーティングで結局物理ネットワーク側での設定変更が必要になっては意味がありません。
しかし、NSX Data Center ではルーティング機能に関しても仮想の世界の中だけで行う機能を備えているんです!

1. NSX Data Center のルーティング機能
NSX Data Center には実は 2 種類のルーティング機能があります。1 つは NSX Edge の機能の 1 つである仮想ルータによるルーティング、もう 1 つは、ハイパーバイザのカーネルに組み込まれた分散論理ルータによるルーティングです。
しかしこの 2 種類のルーティングは一体何が違っているのか、ややこしいですよね。そこで、ここからは NSX Edge のルータ、分散論理ルータについてそれぞれ特徴を見ながら、2 つのルータの違いとメリットについて理解していきましょう。

2. NSX Edge Service Gateway とは ~NSX Edge を使うメリット~
第 2 回の主要コンポーネントの紹介の部分で簡単に説明しましたが、NSX Edge はネットワーク機能を提供する仮想アプライアンスです(図 2)。従来、物理ネットワーク機器で提供されていた各種ネットワーク機能を仮想マシンで提供しているというと分かりやすいかもしれません。NSX Edge はルータ、NAT、ファイアウォール、ロードバランサー、VPN、DHCP といった機能を提供することができます。
仮想アプライアンスの NSX Edge を使うと、例えば、従来では物理ネットワーク機器での運用が必要だったネットワーク機能と比較して、「仮想マシンだからこそ」の簡単かつ素早いネットワーク機能の展開、展開が簡単だからこその短期間でのスケールアウトの実現、そして、物理ネットワーク機器のダウンサイジングによるコスト縮小、といったメリットが得られます。また、NSX Edge の管理・運用についてもバラバラの管理コンソールではなく、vSphere Web Client で一元的に管理可能なことも管理者側から見て魅力的な部分です。

図 2 NSX Edge によるルータを含む構成図

2.1 NSX Edge Service Gateway のルータ ~North-South 方向のルーティング~
NSX Edge は物理ネットワーク機器が仮想アプライアンスになったイメージと言いましたが、物理ネットワーク機器のルータを使った場合と NSX Edge のルータを使った場合のトラフィックの流れと比べると図 3 のようになります。物理ネットワーク機器の代わりに NSX Edge のルータがルーティング処理していますね。また、ネットワーク仮想化環境で通信が完結する場合は、L3 スイッチまでトラフィックがあがらずに Edge で処理することができます。
このように NSX Edge ルータは、特に仮想ネットワークと外部ネットワーク間の通信、すなわち North-South 方向の通信のルーティングを処理するときに適しています。

図 3 物理ルータと NSX Edge ルータのルーティング経路の比較

では、データセンター内の通信、いわゆる East-West 方向のルーティングでは NSX Edgeルータを使わないのでしょうか?実は East-West 方向のルーティングに関しては、もっとトラフィックを減らせる最適な方法を NSX Data Center は持っているんです。
それが次に説明する「分散論理ルータ」です。

3. 分散論理ルータ(Distributed Logical Router/DLR)
さて、NSX Data Center が持つもう 1 つのルーティング機能、「分散論理ルータ」。この機能は NSX Data Center だからこそ、という特徴を持っています。この回の最初にお話した通り、従来の物理ルータによるルーティングは、同じホスト上にあるセグメントが異なる仮想マシン同士が通信しようとすると、1 度必ずホストからパケットが出て物理ルータで処理されてから、再度同じホスト上にある送信先仮想マシンにパケットが届きます。
なんだか遠回りしていると思いませんか?
このルーティングでは、同じホスト上に仮想マシンがあるにも関わらず 1 度通信がホストからネットワークに出てしまうため、その分ヘアピン通信(同じホスト上にある仮想マシン間の通信がホストから 1 度出て、また元のホストに戻るような通信)が発生してしまいネットワーク機器が処理するパケットの量が増大してしまいます。また、仮想ネットワークの追加・変更時には、物理ネットワーク機器への設定変更が必要になってしまいます。
実はこれらの問題を「分散論理ルータ」で一気に解決できてしまうんです!

3.1 分散論理ルータによるメリット ~East-West 方向トラフィックの最適化~
まず、ヘアピン通信の問題から見ていきましょう。
実はデータセンター内における通信のうち約 7 割はマシン-マシン間での通信であるとも言われています。つまり、仮想サーバで構成されたデータセンターでは、仮想マシン同士の通信によるトラフィックの量が大きいのです。この East-West 方向のトラフィックの最適化を分散論理ルータはどう実現しているのでしょうか?
実は分散論理ルータの正体はハイパーバイザー カーネル モジュールに組み込まれたルーティング機能です。もう少し噛み砕いて言うと、同じ設定のルーティングテーブルを持ったルータが複数の ESXi ホストのカーネル モジュールに実装されるイメージです。分散論理ルータでは、送信元の仮想マシンからパケットが投げられると、そのホスト内の分散論理ルータでルーティング処理され、そのまま送信先の仮想マシンにパケットが届けられます。
分散論理ルータでは、ダイナミックルーティングで構成する場合、ルーティング情報を集中して制御している「分散論理ルータコントロール仮想マシン」がルーティング情報を NSX Controller クラスタに集約し、NSX Controller から各ホストに情報をプッシュすることでルーティングの構成が各分散論理ルータに共有されます(図 4)。

図 4 分散論理ルータのルーティング情報の共有の仕方

ちなみに、スタティックルートで構成する場合は、新たにルートを学習することはないため、分散論理ルータコントロール仮想マシンは必要なく、静的に設定された分散論理ルータの構成が Controller クラスタから各 ESXi ホストにプッシュされます。
このように、各ホストのカーネル モジュールに構成された分散論理ルータがルーティングの情報を持っているため、ホスト内の分散論理ルータでルーティング処理ができるのです!
分散論理ルータを使った場合のトラフィックの流れは、図 5 のようになっています。まず、ルーティング処理は送信元の仮想マシンがのっているホスト内の分散論理ルータで処理されるため、1 度、物理ルータ、もしくは Edge を使用している場合は Edge に行く必要がなくなります。
もう少し詳しく説明しますと、図 5 の赤い線が示すように、送信先の仮想マシンがローカルのホスト上に存在する場合、ネットワーク側にパケットが転送されることなく、ローカルのホスト内でルーティングが完結するんです!
また、図 5 の橙色の線を見てもらうと分かるように、送信先の仮想マシンが別のホストに存在する場合は、分散論理ルータでルーティング処理が行われた後に VXLAN で該当の仮想マシンが起動しているホストまでパケットが転送されます。どちらの場合も仮想マシン間でルーティングを行うにあたり、物理ルータや Edge にパケットを転送する必要がありません!
このようにして East-West 方向におけるルーティングのトラフィックの最適化を可能にしているのです。

図 5 分散論理ルータによるルーティングの経路

そして皆様、本ブログ第 4 回の VXLAN の話を思い出してください!
VXLAN を使えば、物理ネットワーク機器への VLAN 設定変更は必要ない、というお話がありましたね。つまり分散論理ルータでルーティング処理された後は VXLAN による通信で転送される、すなわち L2 の通信ということですから、このときの物理ネットワークはただのパケットの通り道になっているんです。
ここまでくるとお気づきでしょう。
分散論理ルータを使うと、仮想マシン間のルーティングを行うための物理ルータは必要ありません!そして、ルーティング処理の追加・変更時においても物理ネットワーク機器への設定変更も必要ありません!
従来の物理ルータによるルーティングの問題が仮想ネットワークのルータにより解決されたのがお分かり頂けたでしょうか?

4. まとめ
最後に改めて NSX Data Center の持つ 2 種類のルーティング機能の特徴とメリットをそれぞれ整理しましょう。
NSX Edge のルータと分散論理ルータは適しているトラフィックの方向が違います!
分散論理ルータは East-West 方向のルーティングのトラフィックを最適化します。NSX Edge のルータの使いどころは、外部(物理)ネットワーク-仮想ネットワーク間の通信をルーティングすること、すなわち North-South 方向の通信のルーティングです。

図 6 論理図で見る NSX Data Center の 2 種類のルーティング

② VXLAN による L2 通信と同様、仮想ネットワーク内におけるルーティングまわりの設定追加・変更を物理ネットワークから切り離して実施できるため、ネットワーク運用の工程削減の実現が可能になります!
③ 2 種類のルーティングのデザインを活用し、ネットワーク処理の最適化を行うことで、物理ネットワーク機器のダウンサイジングが可能になります!

5. おわりに
ここまででスイッチ、ルータといったネットワークの基本が NSX Data Center の機能で仮想化の世界で閉じて実現しましたね(図 7)。

図 7 NSX Data Center のルーティング機能を実装した構成図

でもこれではまだセキュアなネットワーク環境にはなっていません。VXLAN で払い出した仮想ネットワークのセグメント間でも通信をさせたくない・・そんな状況ももちろん出てきますよね。
そこで次回の「新卒社員が贈る NSX のキソ!」では、セキュアなネットワークを実現する NSX Data Center のファイアウォール機能についてご紹介します!お楽しみに!
- VMware SE 笠井伶花