これからの企業ネットワークはどうなる?――Windows Serverとネットワーク仮想化技術の現在と未来:特集:Microsoft & Windows最前線2021(1)
ニューノーマルな時代に向けたMicrosoft&Windowsテクノロジー活用の新たな道筋を探る本特集。企業のビジネス革新を支援し、エンドユーザーの利便性と生産性の向上に寄与するテクノロジーとはどのようなものか。第1弾は、「Windows Serverとネットワーク仮想化技術」を深掘りする。
オンプレミスのネットワークにもクラウドの技術を
企業内システムにサーバ仮想化技術が適用され、もはやサーバ仮想化技術なしではシステムは立ち行かないといっても過言ではなくなっています。1台の物理サーバ上で数十台の仮想マシンが稼働し、必要に応じてスケールアウト、もしくはスケールアップ/スケールダウンを可能にするこの技術は、システムの効率化や構成自由度、そしてコスト削減に大きく貢献しています。
対して、ネットワークの世界はどうでしょうか? 仮想化ホストが接続されるネットワーク機器の設定は、仮想マシンが設定される、もしくは新しいネットワークが追加されるたびに、ネットワークエンジニアが手作業で設定を変更している場合がほとんどでしょう。
仮想マシンの構成変更とともに、ネットワークの構成も簡単に変更することはできないのでしょうか――。その答えは「クラウド」にあります。
「Microsoft Azure」をはじめとするパブリッククラウドでは、ユーザーが仮想マシンを作成するたびに、ネットワークの構成を自動的に変更してくれます。ユーザーは物理的なネットワーク構成を意識することなく、ネットワークを(制約事項はあるにせよ)自由に構成/変更することが可能です。
これを実現している技術こそが「ネットワーク仮想化技術」です。
サーバ仮想化技術と同様、物理的なネットワーク上に抽象化レイヤーを設け、その上でユーザーごとに完全に隔離されたネットワークを複数展開することで、パブリッククラウドは自由なネットワークの構成/変更を実現しています。
パブリッククラウドでは、このネットワーク仮想化技術と既存のネットワーク技術を併用して複数のサブネットを作成/ルーティングする「仮想ネットワーク」、複数のサーバに対する負荷を分散する「ロードバランス」、外部ネットワークとの安全な接続を行う「ゲートウェイ」といったネットワークに欠かせない諸機能を実現しています。
また、これらの機能を利用する場合、オンプレミスのようにネットワークエンジニアがネットワーク機器を直接変更するわけではなく、全てパブリッククラウドのポータルサイトやAPI経由で操作することで、簡単に設定を変更することが可能です。
このパブリッククラウドで採用されているネットワーク仮想化技術を利用しながら、ソフトウェア的にネットワークを新規に構成したり、変更したりする技術の総称を「Software Defined Networking(SDN)」と呼びます。パブリッククラウドではこのSDNの技術を利用することで、ユーザーのニーズに応じたネットワークを柔軟かつ容易に提供しているのです。
非常に強力なSDNですが、このような技術はパブリッククラウドでなければ実現できないのでしょうか。
「Windows Server 2016」および「Windows Server 2019」には、Microsoft Azure生まれのネットワーク仮想化技術「Microsoft SDN Version2(v2)」が標準搭載されており、サーバ仮想化技術とともに企業内ネットワークに適用可能となっています。
MicrosoftのWebページ「Windows Server 2019の価格とライセンス体系」の「Windows Server 2019の機能比較」を見ると、「ソフトウェア定義のネットワーク」という項目が存在します。これがWindows Server 2019におけるSDN機能を指しており、Datacenterエディションでは標準で利用できます。
なお、ネットワーク仮想化技術は、データセンターや大規模ネットワークで利用することが想定されているため、Datacenterエディションのみで利用可能となっています(※)。
【※】ネットワーク仮想化技術の中心コンポーネントである「ネットワークコントローラー」がDatacenterエディションのみインストール可能、ということであり、コントローラーの配下に入るHyper-VホストはStandardエディションも選択可能です。ただし、サーバ仮想化のメリットをライセンス的に最大限享受するためには、Hyper-VホストもDatacenterエディションを選択した方が無難です。
つまり、Windows Server 2016/2019 Datacenterエディションによるサーバ仮想化基盤を既に導入しているユーザーは、“アドオンライセンスなし”でネットワーク仮想化とSDNの基盤を構築可能であり、そのメリットを享受することができるのです。
Microsoft SDN v2ができること
Microsoft SDN v2はMicrosoft Azure生まれのSDN技術であることは既に説明しましたが、実際にはどのようなことができるのでしょうか。
オンプレミスのシステムでは、サーバ仮想化技術を用いていたとしても以下の各機能を実現するために、多くの場合でネットワーク機器を用いていると思います。
- ネットワークのL2分離とルーティング → L2/L3スイッチ
- セグメント間のアクセス制御 → ファイアウォール
- インターネットへ接続するためのNAT → ファイアウォール
- サーバアクセスの負荷分散 → ロードバランサー
- 社外リソースからの安全な接続 → ファイアウォールによるIPsec終端/SSL VPN
Microsoft SDN v2では、これらの機能を全てソフトウェアで実現し、Windows Server群を相互接続する物理スイッチと既存ネットワークへ接続するための物理スイッチ以外のネットワーク機器は、原則的には不要となります。
例えば、以下のような要件のネットワーク設定作業を依頼されたとします。
「Webサーバをインターネットに新規公開したい。Webサーバの構成は2台でグローバルアドレスはアサイン済みなので、そのIPアドレスにNAT(Network Address Translation)を実施。WebサーバへはTCPポート443以外は通信不可。ラウンドロビンで負荷分散をしつつ、パーシステンスは5要素(送信元IP/送信元ポート番号/送信先IP/送信先ポート番号/プロトコルタイプ)で、ヘルスチェックを実施して、Webサーバから応答がなかった場合にはバランシング対象から切り離し。できれば明日公開したいので、テストも含めて早急に実施をお願いしたい」
これらを実現するには、何台のネットワーク機器の設定変更と動作検証が必要でしょうか?
既存のネットワーク構成にもよりますが、最低でもロードバランサーの設定変更は必要ですし、Webサーバを収容するL2ネットワークを新規作成するかどうかによって、L2スイッチやファイアウォールの設定変更も必要になるでしょう。また、それらの調整や確認、実際の設定を変更/テストするのに、何人日の工数が必要になるでしょうか?
Microsoft SDN v2が有効化された基盤では、上記の要件を満たすネットワークはWindows PowerShellだけで構築可能で、設定変更に必要な時間はPowerShellの実行時間のみです。この柔軟性と容易性がSDNの特徴の最たるものであり、企業内システムの運用に大きなインパクトを与えます。
その他にも、以下のようなよくあるネットワーク設定がPowerShellで実施可能です。
- 複数台の仮想マシンを個別のサブネットに接続し、ルーティングによる相互通信
- サーバ間通信のアクセスリストによる通信制御
- 仮想マシンのアウトバウンドトラフィックに対する帯域制御(QoS)
- 物理ネットワークと仮想ネットワーク間のIPsecを用いた安全なネットワーク接続
- 物理ネットワークと仮想ネットワーク間のL3レベルの直接接続
なお、Microsoft SDN v2はサーバ仮想化技術と組み合わせて実現しており、仮想マシンをベースとしたサーバサイドインフラにのみ適用されます。従って、クライアントPCが接続されたクライアントサイドのネットワークに適用することはできません。こちらに関しては「Ansible」を使用したネットワーク機器設定の自動化など、別ソリューションを適用する必要がある点に注意してください。
Microsoft SDN v2は以下の4つのコンポーネントから構成されています。
ネットワークコントローラー
- Microsoft SDN v2の中核コンポーネント。ネットワーク仮想化基盤の制御を実施
- Windows Serverのサービスとして実装
SLBMUX(Software Load Balancer MUltipleXer)
- 仮想マシンのNATやトラフィックのロードバランシング機能を提供
- Windows Serverのサービスとして実装
Gateway
- 仮想ネットワークへのIPsec接続機能やGRE接続機能を提供
- 「ルーティングとリモートアクセスサービス」で実装
Hyper-Vホスト
- 仮想マシンのプラットフォームでもあり、SDNの実際の処理を担当
- コアコンポーネントはHyper-Vの仮想スイッチに導入される「Windows Azure VFP Switch Extension」と各種Windowsサービス
Microsoft SDN v2を構成するコンポーネント(TechSummit2017 CLD-019「Azureから生まれたWindows Server 2016 SDN〜アップデート版〜」から引用)
これらのコンポーネントを有効化し、Microsoft SDN v2を展開するには以下のドキュメントを参考にインストールを行います。
- ソフトウェアで定義されたネットワークインフラストラクチャを展開する(Microsoft Docs)
また、展開を容易にするためのサンプルスクリプト(SDNExpress.ps1)がGitHubで公開されているので、そちらを利用することも可能です。
- microsoft/SDN(GitHub)
Microsoft SDN v2の運用を強力にサポートするSCVMMとWindows Admin Center
Microsoft SDN v2による仮想ネットワークの設定変更は、PowerShellで実施すると説明しました。PowerShellによる設定は、自動化や機械化を進める上では非常に強力な方法といえますが、人の目から見た際にはPowerShellの読解やスクリプトの記述など、若干ハードルが高いともいえます。
Microsoft SDN v2をMicrosoft AzureのようにGUIでコントロールしたい――。そのニーズに応えるツールが2つ存在します。
1つが、Microsoftが提供する仮想化基盤の管理ツール「System Center Virtual Machine Manager(SCVMM)」。もう1つが、これもMicrosoftが提供するサーバ管理ツール「Windows Admin Center」です。SCVMMは「Windows Server 2008」の時代から長く使用され続けてきた製品ですので、本稿では解説は不要かと思います。
- Virtual Machine Manageとは(Microsoft Docs)
SCVMM環境でMicrosoft SDN v2を使用する場合は、SCVMMからネットワークコントローラーをはじめとするMicrosoft SDN v2のコンポーネントを展開する必要があります。展開用のサービステンプレートは前述のGitHubで提供されているので、非常に簡単です。また、SCVMMでMicrosoft SDN v2を管理する場合は、仮想ネットワークの新規作成/設定変更、ロードバランサーの設定など、一部を除くほぼ全ての機能がGUIから可能です。既にシステム基盤をSCVMMで管理している場合は、スムーズにMicrosoft SDN v2環境を展開できるでしょう。
Windows Admin Centerは、Windows Serverの「サーバーマネージャー」の進化形として開発され、その機能をパブリッククラウドのように短いスパンで強化され続けている、現在Windows Server用管理ツールの中で最も進化が著しいツールです。
- Windows Admin Centerとは?(Microsoft Docs)
しかしながら、執筆時点でWindows Admin Center Ver.2007によるMicrosoft SDN v2環境の管理はプレビュー段階であり、その機能も限定されています。現バージョンで使用可能となっている機能は以下の通りです。
- 仮想ネットワークの作成と管理
- アクセス制御リスト(ACL)の作成と管理
- 論理ネットワークの管理
- 外部接続ゲートウェイの作成と編集
- SLBMUXによるNAT設定やロードバランシング設定(※)
- パブリックIP(SLBMUXで使用される外部通信用IP)の作成と編集※
【※】上図メニューで「拡張機能」に分類されているSLBMUXの設定とパブリックIPの設定ですが、Windows Admin Center上で明示的に機能拡張を有効にする必要がありますので注意してください。
それ以外の機能に関しては、従来通りPowerShellで実施する必要があります。また、管理対象として設定できるMicrosoft SDN v2環境は、ハイパーコンバージド環境上に構築された環境のみとなっており、Hyper-Vホスト単体の環境や、共有ディスクもしくはファイルサーバ共有で構築されたHyper-Vクラスタは管理不可となっています。
とはいえ、Windows Admin CenterによるMicrosoft SDN v2環境の管理は、今後も機能拡張を重ねて使いやすくなっていくでしょう。また、Microsoft Azureとの連携を主眼において拡張されることも想定されています。
そのため、現バージョンにおいても、外部接続ゲートウェイとMicrosoft Azure環境とのIPsec接続がウィザード形式で実装可能となっており、今後のMicrosoft Azureとの連携強化は非常に楽しみなポイントとなっています。
なお、新しいOSとして位置付けられている「Azure Stack HCI」を使用した環境では、Microsoft SDN v2の環境もWindows Admin Centerの管理画面からハイパーコンバージド環境構築と同時に展開可能となっています。
Azure Stack HCIにおけるMS SDNv2に関しては、以下ドキュメントを参照してください。
- Azure Stack HCI におけるソフトウェアによるネットワーク制御(SDN)(Microsoft Docs)
Microsoft SDN v2環境は、ソフトウェアでネットワークを構成可能であり、また非常に迅速に展開できるところがポイントとなっています。反面、ソフトウェア的な操作が必要であるという点で、PowerShellを駆使しなければならないなど、管理面でややハードルが高いのも事実です。そのための管理ツールとして、SCVMMやWindows Admin Centerといったツール群も用意されていますので、機会があればぜひ一度お試しください。
Microsoftのネットワークテクノロジーと今後の展望
Microsoft がWindows Serverに実装している機能は、今回紹介したSDNだけではなく、ネットワーク機能のハードウェアオフロードやSMB MultiChannelといったより高速なネットワークを提供することを目的とした機能など、多岐にわたっています。
SDNの機能の一つとして提供されているゲートウェイ機能も、既に提供されているネットワーク機能「ルーティングとリモートアクセス」を利用して実装されています。
今後も、従来のネットワーク機能をうまく利用しながら新しい機能を付加していく方針は継続されると思いますし、時代の流れに即したネットワーク機能が追加されていくと確信しています。
その一つが「Remote Direct Memory Access(RDMA)」を利用した「SMB Direct」であり、そういったネットワーク機能をうまく活用することでハイパフォーマンスを実現した「ハイパーコンバージドインフラストラクチャ(HCI)」であると考えています。
プラットフォームとして進化を続けるWindows ServerとAzure Stack HCI、管理基盤として機能を拡充し続けるSystem CenterとWindows Admin Center、そしてハイブリッドクラウドを実現するMicrosoft Azureの進化を、今後も引き続きウォッチしていただけると幸いです。
筆者紹介
後藤 諭史(ごとう さとし)
Microsoft MVP for Cloud and Datacenter Management(2012-2021)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
特集:Microsoft & Windows最前線2021
企業のビジネスを支え、エンドユーザーの利便性と生産性の向上に寄与してきたMicrosoft & Windowsテクノロジー。2020年も進化、改良が続けられ、安心で安全、より便利になる環境を提供してきた。しかし、本当にMicrosoftが提供するテクノロジーを理解し、十分に活用できているのだろうか――。本特集ではニューノーマルな時代に向けたWindowsプラットフォーム活用の新たな道筋を探ると同時に、さらなる利活用とITモダナイゼーションを推進するためのテクノロジーをあらためて解説する。
Copyright © ITmedia, Inc. All Rights Reserved.