2015年5月31日日曜日

VMware NSX @SoftLayer - その13 【論理スイッチとEdge Services Gateway】


NSXが利用できるようになったので、早速、テナントを1つ作ってみたいと思います。
Webサーバー、APサーバー、DBサーバーが登場する例とします。
まずは、セグメントが3つ欲しいです。
VLANを3つ割り当てるところから始めるのですが、既存の物理ネットワークの場合、幾つの物理ネットワーク機器にどれだけの設定を入れれば機能するようになるでしょうか。
NSXであれば、VLANを3つ作ることについてはvSphere Web Client上で論理スイッチを3つ作ればよいです。名前を付けて、前回作成した転送ゾーンを選ぶだけです。PODが増えなければ転送ゾーンは1つしかなく、実質的には名前を付けるだけです。その他の項目はデフォルト値をお勧めします。デフォルト値以外だと、サポートを受けるうえで不利だと思います。




簡単に設定できました。この操作により、分散ポートグループが作成されました。



次に、ルーターを設置し、セグメント間をつなぎます。
ルーターを冗長化するために利用するハートビート専用論理スイッチも作成しておきます。



NSX Edgeを追加します。


2種類のルーターを導入可能です。
1つは分散論理ルーターです。ESXiにインストールしたカーネルモジュールで機能します。1台のハイパーバイザー内でルーティングが完結する場合には、ハイパーバイザ内で処理が完結し、物理ネットワークにパケットが出ていくことはありません。トラブルシューティング時には、ESXiにログインしてARPテーブルを確認したりします。慣れるまではパケットがどこを通過したのか、どこを調べればよいのか非常に分かりにくいと思います。また、多機能ルーターではありません。マニュアルを読み始める前は、分散論理ルーターが分散論理NATルーターになったり、分散論理VPNルーターになったり、分散論理ロードバランサーになったり、といった機能を期待したのですが、非常にシンプルなルーター機能しか持っていません。分散論理ルーターを利用しないとネットワーク仮想化を導入した気になれないような気もしますが、技術者の理解が進むまでは利用しない、という設計方針もありだと思います。
もう1つは、Edge Services GatewayというNFVです。Vyattaを触ったことがあればすぐに理解できると思います。仮想マシンがデプロイされます。仮想マシンなので、仮想NICが最大で10個しか持てないという制限があります。VxLAN用の分散ポートグループではVLAN Trunkのような機能がないので、このNFVに対する接続可能なセグメント数が限られます。VxLANではない通常のVLAN Trunkは可能で、200個のVLANをTrunk可能です。分散論理ルーターは確か1000個のVxLANに接続可能だったと思います。
今回はEdge Services Gatewayを設置します。











Edge Services Gatewayの設定画面は以下のようになっています。


デプロイされた仮想マシンを確認します。


このような一連の操作で、冗長化されたNFVが構築完了します。切り替え時間はたった6秒に設定可能です。vSphere HAによる冗長化だと、このような短時間での切り替えは不可能ですし、ストレージ等の不具合には無力です。

デプロイされた仮想マシンを移行します。t0001-edge01-0を1号機のローカルディスクへ、t0001-edge01-1を2号機のローカルディスクへ配置します。


今回の設定で利用したプライベートIPアドレスについて述べておきます。
通常プライベートIPアドレスとして利用するものとしては、10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16だと思います。またリンクローカルアドレスとして169.254.0.0/16が利用されます。これらをあえて避けておけば、既存のシステムとダブることは非常に少なくなります。SoftLayerでいえば、10.0.0.0/8内のIPアドレスを利用したい場合は、きちんと申請して取得する必要があります。ただし、希望したIPアドレスがもらえるわけではありません。また、専用線接続をする場合には、172.16.0.0/12も避けておいた方がよいです。そこで、最近ISP Shared Addressとして確保された100.64.0.0/10をテナント用に利用することにしました。サーバーサイトで使う分には、既存のシステムと衝突する心配は非常に少ないと思います。また、ネットワークテスト用に確保されている192.0.2.0/24を30ビットマスクに分割して、Edge Services Gatewayを冗長化するためのハートビート通信に利用しています。こちらも既存のシステムと衝突する心配は滅多にありません。そもそもルーティングさせる気がありません。ネットワーク性能試験用に198.18.0.0/15が確保されていますが、こちらをプライベートIPアドレスとして利用しているシステムを何度か見ているので避けることにしました。

次に考えるべきは、どのようにルーティングさせるかです。
一番良いのは、SoftLayerのGateway Applianceを発注して、今回使っているPOD内のルーターを置き換え、自分で制御することです。この場合、プライベートIPアドレスのルーティングはかなりの自由度を以て設計することができます。マルチキャストを有効化することもできるはずです。Vyattaの使い方を述べるのは本稿の範疇から外れていくような気がするので詳細は述べませんが、導入が必須の機能と考えています。
Gateway Applianceの有無とは別に、テナントごとにEdge Services Gatewayを設置し、NATルーターにすることを考えます。NATルーター配下のネットワークについては、基本的に自由に設計して利用できます。他のテナントとIPアドレスの利用範囲が重なっても何ら問題ありません。モデルケースを作って、積極的に同じIPアドレス体系を利用すべきかもしれません。

SoftLayerのネットワークはデフォルト設定でLACPが有効化されており、IPアドレスでハッシュ値を取得して負荷分散していることを考慮し、rhel6-templateをクローンして、web, ap, db, edgeの各セグメントに2台ずつ配置し、pingでの疎通確認 (MTU=9000)、sshでのログインまで動作確認しました。

ここから先の操作は、ネットワーク設計により様々です。適切な設計をするために、NSXで何ができるのかを知ることが先決です。そのための環境がここまでの操作でできました。

0 件のコメント:

コメントを投稿