適用於:Windows Server 2022、Windows Server 2019、Windows Server 2016
使用網路命名空間隔離
每個容器端點都會放在它自己的 網路命名空間中,。 管理主機虛擬網路適配器和主機網路堆疊位於預設網路命名空間中。 若要在相同主機上的容器之間強制執行網路隔離,系統會為每個 Windows Server 容器建立網路命名空間,並在容器的網路適配器安裝所在的 Hyper-V 隔離下執行。 Windows Server 容器會使用主機虛擬網路適配器來連結至虛擬交換器。 Hyper-V 隔離會使用合成 VM 網路配接器(未暴露於工具程式 VM)來連接至虛擬交換器。
使用綜合 VM 網路適配器的
執行下列 Powershell Cmdlet 以取得通訊協定堆疊中的所有網路區間:
Get-NetCompartment
網路安全性
根據所使用的容器和網路驅動程式而定,埠 ACL 會由 Windows 防火牆和 Azure 虛擬篩選平臺 (VFP)的組合強制執行。
Windows Server 容器
下列值會使用 Windows 主機的防火牆(結合網路命名空間運作)以及 VFP:
- 默認輸出:允許全部
- 默認輸入:允許全部(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。
進行
Kubernetes Pods
在 Kubernetes Pod中,會先建立基礎結構容器,以連結端點。 屬於相同 Pod 的容器,包括基礎結構容器和工作容器,共享相同的網路命名空間(例如相同的 IP 和埠空間)。
自定義預設埠 ACL
如果您想要修改預設埠 ACL,請先檢閱 主機網路服務 主題,再變更埠。 您必須在下列元件內更新原則:
注意
針對透明和 NAT 模式中的 Hyper-V 隔離,您目前無法重新設定預設的埠 ACL,這在下表中以「X」顯示出來。
網路驅動程式 | Windows Server 容器 | Hyper-V 隔離 |
---|---|---|
透明 | Windows 防火牆 | X |
NAT | Windows 防火牆 | X |
L2Bridge | 兩者 | VFP |
L2Tunnel | 兩者 | VFP |
覆蓋 | 兩者 | VFP |