■はじめにこんにちは、パートナーSEの川崎です。本シリーズでは、前回に引き続きネットワーク仮想化をネットワークの基本から理解するという姿勢で、物理環境と比較しながら進めます。第3回となる今回はレイヤ3のルーティングに関して見ていきます。割を占めていると言われています。トラフィックを最適化します。管理画面から行います。物理サーバや物理ネットワーク機器数十台にまたがるような分散ルーティング環境を構成する際も、個々の物理コンポーネントに設定を行う必要はありません。分散ルーティング環境を構成するためには、論理ルータコントロールVMと呼ばれるコンポーネントを作成します。構成ウィザードから、インストールタイプを「論理(分散)ルータ」として構成します。ホストに展開されます。ホスト内の論理ルータカーネルモジュールに展開されることになります。簡単に行うことができますが、APIを介した設定も可能であり、CMP(クラウドマネジメントプラットフォーム)と連携することで設定作業を自動化できます。■物理ネットワーク環境におけるルーティング分散ルーティングの説明に入る前に、物理ネットワーク環境でのルーティングの説明を行います。物理ネットワーク環境におけるルーティングネットワーク環境において、異なるネットワークセグメント内に存在する端末間で通信を行なう場合を考えます。172.16.20.0/24のネットワークに存在し、物理ルータ(L3SW)に接続されています。異なるネットワークセグメント間の通信では、ルータによるルーティング処理が行なわれます。ルーティングを行うのは、ネットワーク機器だけではありません。異なるサブネットにいることを認識します。あるルータにトラフィックを転送します。持ち、受信した通信を、別のインターフェイスから送信します。送信するインターフェイスを決定する際にルーティングテーブルを参照します。実際にルータのルーティングテーブルを確かめてみましょう。接続していることが確認できます。パケットを転送します。物理ネットワーク環境では、物理ルータがルーティングテーブルを持ち、単一のポイントでルーティング処理を実施します。複数の物理デバイスがある場合は、個々のデバイスに対して設定作業を行うことになります。ルーティングの考え方及び、端末側の動作はネットワーク仮想化環境になっても変わりませんが、ネットワーク仮想化環境では物理ルータの持つルーティング機能を、分散ルーティングとしてハイパーバイザに実装することができます。分散ルーティングのアーキテクチャについて、「ルーティングテーブル」に注目する形でこの後見ていきます。■ネットワーク仮想化環境における分散ルーティングネットワーク仮想化環境でのルーティングを見ていきます。サーバ仮想化環境であっても通常の構成であれば、ルーティング処理は外部のルータで行われることになります。ホスト内に論理ルータカーネルモジュールが配置され、ホスト内でルーティング処理を行うことが可能になります。ホストが存在し、ネットワーク仮想化と分散ルーティングが有効となった環境を表しています。ホスト内に論理ルータカーネルモジュールが構成され、2つのネットワークが接続されています。論理ルータカーネルモジュールはルーティングテーブルを持ち、異なるL2ネットワーク間の通信が行なわれる際にルーティング処理を行ないます。実際に分散ルーティングが行なわれる状況を見てみましょう。通信を行なう様子を示しています。接続しているため、2つの仮想マシン間で通信するためにはルーティングが必要です。ヘッダがつけられて送信され、論理ルータカーネルモジュールに届きます。実際に分散ルーティング環境のルーティングテーブルを確認しましょう。ホスト内の論理ルータカーネルモジュールそれぞれについてルーティングテーブルを確認します。設定した論理インターフェイス(LIF)情報、静的に設定されたルーティング情報、動的に得られたルーティング情報が基になっています。BGP)を介して情報を交換します。持つルーティングテーブルを示します。ホストに伝えられます。ルーティングテーブル情報を確認できます。ホスト内に存在する論理ルータカーネルモジュールに配信されます。172.16.20.0/24)を通知しています。これにより、外部ネットワークと内部ネットワーク間の通信が可能になります。物理ネットワーク環境とネットワーク仮想化環境について、ルーティングの面で比較します。物理ネットワーク環境では、ルーティングテーブルは物理ルータが持ち、単一のポイントでルーティング処理を実施していました(集中処理)。複数の物理ルータがあるような構成では個々のハードウェアに対して設定作業を行うことになります(分散管理)。一方でネットワーク仮想化環の分散ルーティングは、ハイパーバイザ内でルーティングテーブルを分散して持つことで、複数のポイントでルーティング処理を実施します。コントローラクラスタで集約して行います。経由で簡単に行うことが出来ます。トラフィックを処理することを可能にしています。構成する各コンポーネントがどういった役割を果たしているのか解説を行います。構築する際に最初に展開するコンポーネントで、仮想アプライアンスとして提供されています。いった仮想アプライアンスの払い出しを担います。環境の設定を可能にします。コントローラクラスタは、現時点で3台の仮想アプライアンスで構成することを推奨しており、分散ルーティング環境において、各種情報(論理インターフェイス、ルーティングテーブル)を集中管理するポイントになります。(テナントA)はコントローラ1番、(テナントB)はコントローラ2番というように役割が割り当てられます。テーブル情報は、担当するコントローラのみが保持します。マルチテナント環境でのルーティングテーブルの扱い3台のコントローラ(192.168.110.201,192.168.110.202,192.168.110.203)で構成されている環境で、論理ルータの情報を確認する手順は下記のとおりです。インスタンスが2つあることが分かります。コントローラが管理していることが分かります。論理ルータの情報を見るためには該当のコントローラにログインする必要があります。1.1.1.254/24・論理ルータコントロールVM(コントロールプレーン)論理ルータコントロールVMは分散ルーティング環境において、ルーティングの処理を集中して行うための仮想アプライアンスです。テナント単位(ルーティングテーブルの管理単位)で複数たてることができます。インストールされるカーネルモジュールとなります。Bundle)ファイルとしてインストールされ、カーネルモジュール(vdrb)としてロードされます。カーネルモジュールは、ハイパーバイザ内で論理ルータのテーブルの管理とルーティング処理を行います。コネクションを張り、情報のアップデートを行います。介して接続していることが確認できます。コントローラとの間で各種テーブル情報の交換を行います。介して接続していることが確認できます。アドレス情報を取得します。管理インターフェイスは使用しません。等)を提供する「スイスのアーミーナイフ」のようなコンポーネントです。従来の物理のネットワーク機器が仮想アプライアンスとして置き換わったイメージです。ダイナミックルーティングプロトコルを使用しルーティング情報を交換する場合がありますが、論理ルータの提供する分散ルーティングの機能そのものには直接関与しません。当初ネットワーク仮想化と聞いて非常に難しそうに感じました。サーバ仮想化もまだ勉強中であり、ネットワークについてはさらに知っていることが少ない状態です。通信はテーブルを参照してパケットが流れていくという点では物理環境とほとんど変わりませんでした。実際、物理ネットワークと比較して抑えていくことで、ネットワーク仮想化が物理ネットワークの再現であり、仮想マシンや流れるパケットからすれば同様に動作できる環境が作られていることがわかってきました。複数のコンポーネントがありますが、それぞれの持つ役割を把握することで、スムーズに理解していけるように感じます。皆様もぜひご一緒にネットワーク仮想化を学んでいきましょう。■関連リンク今回ご紹介した内容をオンラインのハンズオン環境上で確認することができます。コマンドラインの出力はハンズオン環境をベースに作成しています。機能全般及び、ネットワーク仮想化環境の設計に興味のあるかたは下記テックペーパーを参照ください。Blogsコメントは停止中です。