適用対象: Windows Server 2022、Windows Server 2019、Windows Server 2016
ネットワーク名前空間を使用した分離
各コンテナー エンドポイントは、独自の ネットワーク名前空間に配置されます。 管理ホスト仮想ネットワーク アダプターとホスト ネットワーク スタックは、既定のネットワーク名前空間にあります。 同じホスト上のコンテナー間にネットワーク分離を適用するために、Windows Server コンテナーごとにネットワーク名前空間が作成され、コンテナーのネットワーク アダプターがインストールされる Hyper-V 分離の下でコンテナーが実行されます。 Windows Server コンテナーでは、ホスト仮想ネットワーク アダプターを使用して仮想スイッチに接続します。 Hyper-V 分離では、(ユーティリティ VM に公開されていない) 合成 VM ネットワーク アダプターを使用して仮想スイッチに接続します。
合成 VM ネットワーク アダプターを使用した
次の PowerShell コマンドレットを実行して、プロトコル スタック内のすべてのネットワーク コンパートメントを取得します。
Get-NetCompartment
ネットワーク セキュリティ
使用するコンテナーとネットワーク ドライバーに応じて、ポート ACL は Windows ファイアウォールと Azure Virtual Filtering Platform (VFP)の組み合わせによって適用されます。
Windows Server コンテナー
次の値は、Windows ホストのファイアウォール (ネットワーク名前空間で対応) と VFP を使用します。
- 既定の発信: ALLOW ALL
- 既定の着信: ALLOW ALL (TCP、UDP、ICMP、IGMP) の未承諾ネットワーク トラフィック
- これらのプロトコルからではなく、他のすべてのネットワーク トラフィックを拒否する
手記
Windows Server バージョン 1709 および Windows 10 Fall Creators Update より前のバージョンでは、既定の受信規則はすべて DENY でした。 これらの古いリリースを実行しているユーザーは、docker run -p
(ポートフォワーディング) を使用して受信 ALLOW ルールを作成できます。
Hyper-V 分離
Hyper-V 分離で実行されるコンテナーには独自の分離カーネルがあるため、次の構成で Windows ファイアウォールの独自のインスタンスを実行します。
- Windows ファイアウォール (ユーティリティ VM で実行) と VFP の両方に、既定で ALLOW ALL に設定されています。
ファイアウォールHyper-V isolation with firewallを使用したHyper-V の分離
Kubernetes ポッド
Kubernetes ポッドでは、エンドポイントがアタッチされるインフラストラクチャ コンテナーが最初に作成されます。 インフラストラクチャコンテナーやワーカー コンテナーなど、同じポッドに属するコンテナーは、共通のネットワーク名前空間 (同じ IP やポート空間など) を共有します。
既定のポート ACL のカスタマイズ
既定のポート ACL を変更する場合は、ポートを変更する前に、ホスト ネットワーク サービスの に関するトピックを確認してください。 次のコンポーネント内のポリシーを更新する必要があります。
手記
Transparent モードと NAT モードでの Hyper-V 分離の場合、現在、次の表の "X" によって反映される既定のポート ACL を再構成することはできません。
ネットワーク ドライバー | Windows Server コンテナー | Hyper-V 分離 |
---|---|---|
透明 | Windows ファイアウォール | X |
NAT | Windows ファイアウォール | X |
L2Bridge | 両方とも | VFP |
L2Tunnel | 両方とも | VFP |
オーバーレイ | 両方とも | VFP |