実は、NATを使用せず、物理ネットワークに直接コンテナーを接続し、DHCPでIPアドレスを自動的に割り当てる構成オプションも用意されています。「ContainerSetup.ps1」を詳しく調べてみると、「-UseDHCP $true」パラメーターを指定することで、仮想スイッチ「Virtual Switch」を“外部タイプの仮想スイッチ”として構成可能であることが分かりました。
試しに、NATタイプの仮想スイッチ「Virtual Switch」を残したまま、コンテナーホストのネットワークアダプターに関連付けた外部タイプの仮想スイッチ「Virtual Switch - DHCP」を作成し、新しいコンテナーを作成する際にこの仮想スイッチを割り当ててみました。
New-VMSwitch "Virtual Switch - DHCP" -NetAdapterName <ネットワークアダプター名>
すると、コンテナーにはコンテナーホストが接続されている物理ネットワーク上のDHCP(Dynamic Host Configuration Protocol)サーバーから、IPアドレスが自動的に割り当てられるようになりました(画面5)。
なお、コンテナーホストをHyper-Vの仮想マシンで実行している場合は、コンテナーがDHCPサーバーからIPアドレスを取得できるように、仮想マシンのネットワークアダプターの「詳細設定」で「MACアドレスのスプーフィングを有効にする」チェックボックスにチェックを入れておく必要があります。
ただし、このNATを使用しないコンテナーのネットワーク構成は、セキュリティ上の大きな課題があります。Windows Server 2016 TP3のWindows Serverコンテナーは、コンテナー自身がWindowsファイアウオールを提供しません。そのため、コンテナーは“ファイアウオールなし”で物理ネットワークに直結されることになります。
また、コンテナーホストのNATを経由しないため、コンテナーホストのWindowsファイアウオールで保護されることもありません。Hyper-VホストのWindowsファイアウオール設定が、Hyper-V仮想マシンの通信に影響しないのと同じ理屈です。
例えば、NATを使用しないで物理ネットワークに直結されたコンテナーには、コンテナーホストのWindowsファイアウオールの構成に関係なく、リモートデスクトップ接続が可能です(画面6)。
言い忘れましたが、Windows Serverコンテナーでは「リモートデスクトップサービス(RDS)」がサポートされ、既定で「有効」になっています。詳しくは、以下のドキュメントで説明されています。
Windows Serverコンテナーは、まだ初めてのプレビューが提供されたばかりであり、今後、仕様変更される可能性は大いにあります。例えば、LinuxベースのDockerの場合はコンテナー間の通信の遮断や許可、リンク(コンテナー間の連携を簡単に行う仕組み)など、コンテナー間の分離と連携の仕組みが用意されていますが、Windows Serverコンテナーにはその部分が不足しています。開発の初期段階であることを踏まえて、本稿を読んでいただければと思います。
ところで、“Windows ServerにおけるDockerサポートの話はどうなったの?”と思っている読者の方は多いでしょう。本連載の「その2」と「その3」(今回)で説明した同じ操作を、Dockerではどのように操作するのか、次回の「その4」で説明します。
岩手県花巻市在住。Microsoft MVP:Hyper-V(Oct 2008 - Sep 2015)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手がける。個人ブログは『山市良のえぬなんとかわーるど』。
Copyright © ITmedia, Inc. All Rights Reserved.