今回はWindows Server 2012 R2のHyper-Vで構成可能なネットワークの仮想化の一つ、NVGREの解説と、NVGREを使って簡単に仮想化ネットワークを構築するためのツール「WNVManager」をご紹介します。
目次
ネットワークの仮想化とは
「ネットワーク 仮想化」というキーワードで調べてみると、いろいろな解説や定義が出てきます。その中に「ズバリこれ!」というものが見当たらなかったため、独断的になってしまいますが、SDN(Software-Defined Ntwork)の考え方の一つである、「ハードウェアに依存せず、ソフトウェアでネットワークを構成する考え方」という定義でお話ししたいと思います。
「ネットワークの仮想化」を構成する実装形態としては、
・NVGRE (Network Virtualization using Generic Routing Encapsulation)
・IP Rewrite
・VXLAN(Virtual eXtensible Local Area Network)
・STT (Stateless Transport Tunneling Protocol)
・OpenFlow
なとがあります。
ネットワークの仮想化の利点
ネットワークの仮想化の利点の一つとしては、ネットワーク分離の簡略化が上げられます。例えば社内でいくつかのネットワークセグメントを構成してネットワークを分離する場合、これまではVLAN方式でスイッチングハブにVLANの設定を行い、それぞれのネットワークに割り振られたVLANIDを元にハードウェアにネットワークの通信を振り分けて分離するといったものでした。これには、ハードウェアの設定を行ったり、MACアドレスの管理などネットワーク管理者の作業が必要でしたが、「ネットワークの仮想化」の考え方によって、これらの煩雑な作業をソフトウェア設定だけで完了することができるようになります。

サービス提供者に対しても大きな利点があります。サーバー内、もしくは複数のサーバー間でIaaSとして仮想マシンのホスティングサービスを行う場合に、ユーザーごとに完全に独立したプライベートネットワークを簡単に提供することができるようになります。ユーザーごとに自由にIPアドレスを割り当てることも、サブネットを構成することも可能となります。
システム開発においても恩恵を受けることができます。テスト・開発環境を完全に切り離したネットワーク内で構築し、いざ本番となった場合、ソフトウェア的な変更のみですぐにサービスインすることが可能となります。これとは反対に、メンテナンスなど一時的にネットワークから切り離したい場合も、同様のオペレーションでメンテナンスモード、本番モードの切り替えができるのです。また、完全に独立したn階層アプリケーションの構築も可能です。
仮想ネットワークを用いることで、ネットワーク管理者の手を煩わせることもハードウェアなど大掛かりな設備投資もすることなく、最短の時間と最少のオペレーションで実現することができるのです。

NVGREとは
Windows Server 2012 R2のHyper-Vでは、NVGREとIP Rewrite がサポートされています。今回ご紹介する「WNVManager」はNVGREに特化したツールとなっています。NVGREを用いることで、Windows Server間、Hyper-V サーバー間では、一つ物理ネットワークで複数の仮想ネットワークを構築することが可能となります。NVGREの仕組みは簡単に言うと、一つの物理ネット―ワーク内でそれぞれの仮想ネットワークの通信内容をカプセル化して、他の仮想ネットワークの通信内容と混在しないようにする方法です。サーバーとサーバーの間は、仮想ネットワークごとにトンネルが構築された状態で通信されています。Hyper-V自体が各仮想ネットワークのルーティングテーブルを持つ仕様となっており、特にネットワークコントローラーなどを配置する必要はありません。
NVGREの設定方法
現在提供されているNVGREの設定方法は、Windows Server 2012 R2では3つあります。
1:PowerShellコマンドレッドによる方法
2:System Center Virtual Machine Manager(SCVMM)による方法
3:Windows Management Instrumentation(WMI)による方法


どの方法でもNVGREを設定するということに関しては可能なのですが、それぞれ一長一短があります。
PowerShellコマンドレッドはコマンドベースのインターフェース(CUI)のみなので、直感的な操作や現在の利用状況を分かりやすく表示するといった場面では少々使いづらい部分があり、NVGREを理解した熟練者向きの仕様となっています。
SCVMMはGUIベースでNVGREの設定が可能となっており、使いやすさでは問題ない仕様ですが、System Center自体の導入コストが高価なこともあり、簡単・手軽に利用するといった面では、なかなか敷居の高いものとなっています。
WMIはVisualStudioを使用した本格的なシステム開発者向けのAPIとなっており、サーバー管理者にはドキュメントやサンプルが少なくなかなか手を出しにくいものとなっています。
WNVManagerとは
これらを踏まえ、手軽で簡単にNVGREを利用するためのツールとして、WNVManagerをご紹介しましょう。このツールは単体でNVGREを設定することが可能となっており、SCVMMなどミドルウェアは不要です。中小規模のHyper-V環境で利用するために最適化してありますので、NVGREを実際に設定して勉強してみたいなど、検証用ツールとしてもすぐにご利用いただけます。
PowerShellコマンドレットとは異なりGUIベースで直感的にわかりやすく、NVGREの設定はウィザード形式で行う仕様です。設定した内容もGUIで視覚化することで、一目で現状の設定状況を把握することが可能です。設定したNVGREの構成は、保存、読み込みが可能なので、何度でも簡単に再構築することができます。こちらのツールはHyper-Vコミュニティー「InvokeV」で無償ダウンロードすることこができます。
では、実際にWNVManagerの使い方を見てみましょう。
今回は2台のHyper-Vホスト間に作成した仮想マシンに対し、NVGREの設定を行い、Pingの疎通確認をして実際に仮想ネットワークが構成されたかを確認してみます。
一台のHyper-Vのホストマシン上にWNVManagerをダウンロードしておきます。
前提条件
Hyper-Vホスト 2012R2(ドメイン参加済み)
- winsvr0019 172.10.10.119″
- winsvr0020 172.10.10.120″
仮想マシン(VM)
- RED1 192.168.5.191 255.255.255.0 (winsvr0019)
- BLUE1 192.168.5.192 255.255.255.0 (winsvr0019)
- RED2 192.168.5.201 255.255.255.0 (winsvr0020)
- BLUE2 192.168.5.202 255.255.255.0 (winsvr0020)
※注意
今回はGWの設定はありません。SCVMMがインストールされている環境ではエラーが出る場合があります。

WNVManager.exeを管理者権限で起動します

何も設定していない状態の初期画面です


まずはNVGREで使用するサーバーを登録します。
「ServerList」ボタンを押してサーバー名とIPを登録します。

次にNVGREを設定するVMを登録します。「SetWiz」ボタンを押します。

ウィザード画面が起動するので、先ほど登録したサーバー一覧から、一つを選択して、「Select」ボタンを押します。

Hyper-V上のVM一覧が表示されるので、該当VMを選択して「Select」ボタンを押します。

NVGREを設定するネットワークアダプタを選択して、「Select」ボタンを押します。

続いて、NVGREを設定する他のVMを登録するときは、「はい」を選択して、同様にVMを追加します。

VMの選択が完了したら、NVGREで仕様するIPAddressの範囲を設定します。
ドロップダウンボックスから選択するか、直接入力します。

次にNVGREのグループ名を決めます。こればVirtualSubnetIDに該当するもので、任意のグループ名を入力します。(GroupListボタンで編集可能)

「Set」ボタンを押して設定を完了します。

Top画面でVMが追加されています。


この状態で、RED1とRED2双方向にPingが通る状態です。(ファイヤーウォールでPingを許可しておきます)

同様にBLUE1、BLUE2も登録します。この時「GroupName」を別のグループ名にすることを忘れずに!

このように、4台のVMが登録されました。

「Detail」ボタンを押すと、詳細設定内容が確認できます。

同様の設定内容をPowerShellからも確認できます。


「TreeView」ボタンでグループごとの表示と、サーバーごとの表示に切り替え可能です。

TreeViewのアイコンを右クリックで、登録情報を削除することができます。
詳細表示時にデータグリッドのレコードを選択してDeleteキーでも削除可能です。

「SaveConfig」ボタンは現在の設定を保存します。「LoadConfig」ボタンは保存した設定を復元します。「DelConfig」は設定内容を削除します。
このように「WNVManager」はGUIで簡単にNVGREを構成することができるツールです。
まずNVGREを勉強してみたい、検証してみたいという方にはぴったりのツールとなっていますので、是非ダウンロードして、実際にNVGREの便利さを体験してみてください。

InvokeV
Open Source & Open Community for Hyper-V
*本文中に記載されている会社名および商品名・サービス名は、各社の商標 または登録商標です。
著書の紹介欄
Hyper-Vで本格的なサーバー仮想環境を構築。仮想環境を設定・操作できる!
できるPRO Windows Server 2016 Hyper-V
◇Hyper-Vのさまざまな機能がわかる ◇インストールからの操作手順を解説 ◇チェックポイントやレプリカも活用できる Windows Server 2016 Hyper-Vは、仮想化ソフトウェア基盤を提供する機能であり、クラウドの実現に不可欠のものです。 本書では、仮想化の基礎知識から、Hyper-Vでの仮想マシンや仮想スイッチの設定・操作、プライベートクラウドの構築、Azureとの連携などを解説します。

初めてのWindows Azure Pack本が発売
Windows Azure Pack プライベートクラウド構築ガイド
本書は、Windows Azure PackとHyper-Vを利用し、企業内IaaS(仮想マシン提供サービス)を構成するための、IT管理者に向けた手引書です。試用したサーバーは、最小限度の物理サーバーと仮想マシンで構成しています。Windows Azure Packに必要なコンポーネントのダウンロード、実際にプライベートクラウド構築する過程を、手順を追って解説しています。これからプライベートクラウドの構築を検討するうえで、作業負担の軽減に役立つ一冊です。

ブログの著者欄
採用情報
関連記事
KEYWORD
CATEGORY
-
技術情報(458)
-
イベント(164)
-
カルチャー(38)
-
デザイン(21)
TAG
- 5G
- Adam byGMO
- AI
- AWX
- BIT VALLEY
- blockchain
- ChatGPT
- cloudflare
- cloudnative
- CloudStack
- CM
- CNDO
- CNDT
- CODEGYM Academy
- ConoHa
- CS
- CSS
- CTF
- DC
- Designship
- Desiner
- DeveloperExpert
- DevSecOpsThon
- DNS
- Docker
- DTF
- GitLab
- GMO Developers Day
- GMO Developers Night
- GMO GPUクラウド
- GMO Hacking Night
- GMO kitaQ
- GMO SONIC
- GMOアドパートナーズ
- GMOアドマーケティング
- GMOイエラエ
- GMOグローバルサイン
- GMOソリューションパートナー
- GMOデジキッズ
- GMOブランドセキュリティ
- GMOペイメントゲートウェイ
- GMOペパボ
- GMOリサーチ
- Go
- GTB
- Hardning
- Harvester
- HCI
- iOS
- IoT
- ISUCON
- JapanDrone
- Java
- JJUG
- K8s
- Kaigi on Rails
- Kids VALLEY
- LLM
- MetaMask
- MySQL
- NFT
- NVIDIA
- OpenStack
- Perl
- perplexity
- PHP
- PHPcon
- PHPerKaigi
- PHPカンファレンス
- QUIC
- Rancher
- RPA
- Ruby
- Selenium
- Spectrum Tokyo Meetup
- splunk
- SRE
- SSL
- Terraform
- TLS
- TypeScript
- UI/UX
- VLAN
- VS Code
- アドベントカレンダー
- インターンシップ
- オブジェクト指向
- オンボーディング
- お名前.com
- カルチャー
- コンテナ
- スクラム
- スペシャリスト
- セキュリティ
- ソフトウェアテスト
- チームビルディング
- ドローン
- ネットワーク
- プログラミング教育
- ブロックチェーン
- マルチプレイ
- ミドルウェア
- モバイル
- ゆめみらいワーク
- リモートワーク
- レンタルサーバー
- 京大ミートアップ
- 協賛レポート
- 基礎
- 多拠点開発
- 大学授業
- 宮崎オフィス
- 応用
- 技育プロジェクト
- 新卒
- 暗号
- 機械学習
- 決済
PICKUP