네트워크 격리 및 보안Network isolation and security

네트워크 네임 스페이스와 격리Isolation with network namespaces

각 컨테이너 끝점은 자체 __네트워크 네임스페이스__에 배치됩니다.Each container endpoint is placed in its own network namespace. 관리 호스트 vNIC 및 호스트 네트워크 스택은 기본 네트워크 네임스페이스에 배치됩니다.The management host vNIC and host network stack are located in the default network namespace. 동일한 호스트의 컨테이너 간에 네트워크 격리를 적용 하기 위해 각 Windows Server 컨테이너에 대해 네트워크 네임 스페이스를 만들고 컨테이너에 대 한 네트워크 어댑터를 설치할 Hyper-v 격리 상태에서 컨테이너를 실행 합니다.In order to enforce network isolation between containers on the same host, a network namespace is created for each Windows Server container and containers run under Hyper-V isolation into which the network adapter for the container is installed. Windows Server 컨테이너는 호스트 vNIC를 사용하여 가상 스위치에 연결합니다.Windows Server containers use a Host vNIC to attach to the virtual switch. Hyper-v 격리는 가상 VM NIC (유틸리티 VM에 노출 되지 않음)를 사용 하 여 가상 스위치에 연결 합니다.Hyper-V isolation uses a Synthetic VM NIC (not exposed to the Utility VM) to attach to the virtual switch.

text

Get-NetCompartment

네트워크 보안Network security

사용되는 컨테이너 및 네트워크 드라이버에 따라 Windows 방화벽과 VFP의 조합으로 포트 ACL이 적용됩니다.Depending on which container and network driver is used, port ACLs are enforced by a combination of the Windows Firewall and VFP.

Windows Server 컨테이너Windows Server containers

이들은 Windows 호스트의 방화벽(네트워크 네임스페이스를 통해 인식)을 비롯해 VFP를 사용These use the Windows hosts' firewall (enlightened with network namespaces) as well as VFP

  • 기본 아웃바운드: 모두 허용Default Outbound: ALLOW ALL

  • 기본 인바운드: 원치 않는 모든 네트워크 트래픽(TCP, ICMP, UDP IGMP) 허용Default Inbound: ALLOW ALL (TCP, UDP, ICMP, IGMP) unsolicited network traffic

    • 이러한 프로토콜에서 나오지 않은 기타 모든 네트워크 트래픽 거부DENY ALL other network traffic not from these protocols

    참고

    Windows Server, 버전 1709 및 Windows 10 크리에이터 크리에이터 업데이트 이전에는 기본 인바운드 규칙이 모두 거부 였습니다.Prior to Windows Server, version 1709 and Windows 10 Fall Creators Update, the default inbound rule was DENY all. 이러한 이전 릴리스를 실행 하는 사용자는 docker run -p (포트 전달)를 사용 하 여 인바운드 허용 규칙을 만들 수 있습니다.Users running these older releases can create inbound ALLOW rules with docker run -p (port forwarding).

Hyper-V 격리Hyper-V isolation

Hyper-v 격리에서 실행 되는 컨테이너에는 자체 격리 된 커널이 있으므로 다음 구성을 사용 하 여 Windows 방화벽의 고유한 인스턴스를 실행 합니다.Containers running in Hyper-V isolation have their own isolated kernel and therefore run their own instance of Windows Firewall with the following configuration:

  • Windows 방화벽(유틸리티 VM에서 실행 중)과 VFP 모두에서 모두 허용이 기본 적용Default ALLOW ALL in both Windows Firewall (running in the utility VM) and VFP

text

Kubernetes podKubernetes pods

Kubernetes pod에서는 끝점이 연결 된 인프라 컨테이너가 먼저 생성 됩니다.In a Kubernetes pod, an infrastructure container is first created to which an endpoint is attached. 인프라 및 작업자 컨테이너를 포함 하 여 동일한 pod에 속한 컨테이너는 공통 네트워크 네임 스페이스 (동일한 IP 및 포트 공간)를 공유 합니다.Containers that belong to the same pod, including infrastructure and worker containers, share a common network namespace (same IP and port space).

text

기본 포트 ACL 사용자 지정Customizing default port ACLs

기본 포트 Acl을 수정 하려는 경우 호스트 네트워킹 서비스 설명서를 먼저 읽어 보세요 (곧 링크 추가).If you want to modify the default port ACLs, please read our Host Networking Service documentation first (link to be added soon). 다음 구성 요소 내에서 정책을 업데이트 해야 합니다.You'll need to update policies inside the following components:

참고

투명 및 NAT 모드의 Hyper-v 격리의 경우 현재 기본 포트 Acl을 mk-reprogram 수 없습니다.For Hyper-V isolation in Transparent and NAT mode, you currently can't reprogram the default port ACLs. 이는 테이블의 "X"에 반영되어 있습니다.This is reflected by an "X" in the table.

네트워크 드라이버Network driver Windows Server 컨테이너Windows Server containers Hyper-V 격리Hyper-V isolation
투명Transparent Windows 방화벽Windows Firewall XX
NATNAT Windows 방화벽Windows Firewall XX
L2BridgeL2Bridge 둘 다Both VFPVFP
L2TunnelL2Tunnel 둘 다Both VFPVFP
오버레이Overlay 둘 다Both VFPVFP