Pojęcia dotyczące sieci dla kontenerów systemu Windows

Ukończone

Procesor w standardowym komputerze z systemem Windows ma tryb jądra i tryb użytkownika. Podstawowe składniki systemu operacyjnego i większość sterowników urządzeń działa w trybie jądra, a aplikacje działają w trybie użytkownika. Podczas implementowania kontenerów na komputerze każdy kontener tworzy izolowane, lekkie środowisko do uruchamiania aplikacji w systemie operacyjnym hosta. Kontener udostępnia większość jądra systemu operacyjnego hosta w celu uzyskania dostępu do systemu plików i rejestru.

Kontenery systemu Windows wymagają systemu operacyjnego kontenera. Kontener zależy od jądra systemu operacyjnego do zarządzania usługami, takimi jak system plików, sieć, planowanie procesów i zarządzanie pamięcią. System operacyjny kontenera to system operacyjny, który jest częścią spakowanego środowiska uruchomieniowego. Możesz użyć różnych wersji systemu Windows z kontenerami, aby umożliwić dostęp do określonych funkcji systemu operacyjnego lub innego wymaganego oprogramowania.

Izolacja sieciowa i zabezpieczenia

Kontenery systemu Windows obsługują dwa typy izolacji środowiska uruchomieniowego: Proces i Funkcja Hyper-V. Podstawową różnicą jest zakres izolacji utworzony między kontenerem, systemem operacyjnym hosta i innymi kontenerami na hoście.

Izolacja procesów jest najczęstszym podejściem. Wiele wystąpień kontenerów uruchomionych na tym samym hoście uzyskuje izolację za pośrednictwem ustawień przestrzeni nazw i kontroli zasobów oraz innych funkcji izolacji procesów.

  • Każdy kontener współużytkuje to samo jądro z systemem operacyjnym hosta i innymi kontenerami na hoście.
  • Każdy kontener ma wirtualną kartę sieciową, która łączy się z przełącznikiem wirtualnym.
  • Każdy punkt końcowy kontenera jest umieszczany we własnej przestrzeni nazw sieci. Domyślna przestrzeń nazw sieci to lokalizacja wirtualnej karty sieciowej hosta i stosu sieciowego hosta.

Izolacja funkcji Hyper-V zapewnia zwiększone zabezpieczenia i szerszą zgodność między hostem a kontenerami. Na tym samym hoście działa wiele wystąpień kontenerów, ale każdy kontener działa na zoptymalizowanej maszynie wirtualnej. Maszyna wirtualna zapewnia izolację na poziomie sprzętu między każdym kontenerem a hostem kontenera.

  • Każdy kontener ma zasadniczo własne jądro.
  • Aby wymusić izolację sieci między kontenerami na hoście, dla każdego kontenera jest tworzona przestrzeń nazw sieci.
  • Kontenery działają w ramach izolacji funkcji Hyper-V, do której zainstalowano wirtualną kartę sieciową dla kontenera. Kontenery systemu Windows Server używają wirtualnej karty sieciowej hosta do dołączania do przełącznika wirtualnego. Izolacja funkcji Hyper-V używa syntetycznej karty sieciowej maszyny wirtualnej (nie uwidocznionej dla maszyny wirtualnej narzędzia) w celu dołączenia do przełącznika wirtualnego.

Diagram showing how the virtual machine provides hardware-level isolation between each container and the container host.

Zarządzanie siecią za pomocą usługi sieci hosta (HNS)

System Windows używa usługi sieci hosta (HNS) i usługi obliczeniowej hosta (HCS) do tworzenia kontenerów i dołączania punktów końcowych do sieci.

  • Sieć: usługa HNS tworzy przełącznik wirtualny funkcji Hyper-V dla każdej sieci, a usługa HNS tworzy wymagane translatory adresów sieciowych i pul adresów IP.
  • Punkty końcowe: usługa HNS tworzy przestrzeń nazw sieci dla każdego punktu końcowego kontenera, a usługa HNS/HCS dodaje wirtualną kartę sieciową do przestrzeni nazw. Usługa HNS tworzy porty przełącznika wirtualnego. Usługa HNS przypisuje adres IP, informacje o systemie nazw domen (DNS), trasy itd. do punktu końcowego zgodnie ze skonfigurowanym trybem sterownika sieciowego.
  • Zasady: W przypadku domyślnej sieci TRANSLATOR adresów sieciowych usługa HNS tworzy reguły przekazywania portów WinNAT i mapowania z odpowiednimi regułami ZEZWALAnia na zaporę systemu Windows. W przypadku wszystkich innych sieci usługa HNS używa wirtualnej platformy filtrowania (VFP) do tworzenia zasad równoważenia obciążenia, list ACL i hermetyzacji.

Interakcja z zaporą

W zależności od konfiguracji kontenera i typu sterownika sieciowego listy ACL portów są wymuszane przez kombinację zapory systemu Windows i platformy filtrowania wirtualnego platformy Azure (VFP). Poniższe wartości używają zapory hostów systemu Windows (z obsługą przestrzeni nazw sieci) i programu VFP:

  • Domyślny ruch wychodzący: ZEZWALAJ NA WSZYSTKO.
  • Domyślny ruch przychodzący: ZEZWALAJ NA WSZYSTKIE (TCP, UDP, ICMP, IGMP) niepożądany ruch sieciowy. ODMÓW WSZYSTKICH innych ruchów sieciowych nie z tych protokołów.

Sterowniki sieciowe

System Windows obsługuje pięć różnych sterowników sieciowych lub trybów dla kontenerów platformy Docker: NAT, Transparent, Overlay, L2Bridge i L2Tunnel. Oprócz domyślnej sieci translatora adresów sieciowych utworzonych przez platformę Docker w systemie Windows można również zdefiniować niestandardowe sieci kontenerów przy użyciu polecenia z docker network create poziomu interfejsu wiersza polecenia platformy Docker.

Poniższa tabela zawiera podsumowanie typów sterowników sieci dostępnych dla kontenerów platformy Docker w systemie Windows. Wybierz sterownik sieciowy spełniający wymagania konfiguracji infrastruktury sieci fizycznej i hosta (jednego lub wielu węzłów).

Sterownik sieciowy Typowe zastosowania Kontener-kontener (pojedynczy węzeł) Kontener-zewnętrzny (pojedynczy węzeł + wiele węzłów) Kontener-kontener (wiele węzłów)
Translator adresów sieciowych (ustawienie domyślne) Dobre dla deweloperów Ta sama podsieć: połączenie mostkowane za pośrednictwem przełącznika wirtualnego funkcji Hyper-V

Podsieć krzyżowa: nieobsługiwane (tylko jeden wewnętrzny prefiks translatora adresów sieciowych)
Kierowana przez wirtualną kartę sieciową zarządzania (powiązana z winNAT) Nieobsługiwane bezpośrednio: wymaga ujawnienia portów za pośrednictwem hosta
Przezroczyste Dobre dla deweloperów lub małych wdrożeń Ta sama podsieć: połączenie mostkowane za pośrednictwem przełącznika wirtualnego funkcji Hyper-V

Podsieć krzyżowa: kierowana przez hosta kontenera.
Kierowany przez hosta kontenera z bezpośrednim dostępem do karty sieciowej (fizycznej) Kierowany przez hosta kontenera z bezpośrednim dostępem do karty sieciowej (fizycznej)
Nakładki Dobre dla wielu węzłów; wymagane dla platformy Docker Swarm dostępnej w rozwiązaniu Kubernetes Ta sama podsieć: połączenie mostkowane za pośrednictwem przełącznika wirtualnego funkcji Hyper-V

Między podsieciami: ruch sieciowy jest hermetyzowany i kierowany przez wirtualną kartę sieciową zarządzania.
Nieobsługiwane bezpośrednio — wymaga drugiego punktu końcowego kontenera dołączonego do sieci translatora adresów sieciowych w systemie Windows Server 2016 lub reguły NAT programu VFP w systemie Windows Server 2019. Ta sama/krzyżowa podsieć: ruch sieciowy jest hermetyzowany przy użyciu sieci VXLAN i kierowany przez wirtualną kartę sieciową zarządzania
L2Bridge Używane w przypadku rozwiązań Kubernetes i Microsoft Software Designed Network (SDN) Ta sama podsieć: połączenie mostkowane za pośrednictwem przełącznika wirtualnego funkcji Hyper-V

Między podsieciami: adres MAC kontenera został przepisany na ruch przychodzący i wychodzący oraz kierowany.
Adres MAC kontenera
przepisany przy ruchu przychodzącym i wychodzącym Ta sama podsieć: połączenie mostkowane

Podsieć krzyżowa: kierowana przez wirtualną kartę sieciową zarządzania w programie WSv1809 lub nowszym
L2Tunnel Tylko platforma Azure Ta sama/krzyżowa podsieć: przypięta do przełącznika wirtualnego funkcji Hyper-V hosta fizycznego, do którego są stosowane zasady. Ruch musi przechodzić przez bramę sieci wirtualnej platformy Azure Ta sama/krzyżowa podsieć: przypięta do przełącznika wirtualnego funkcji Hyper-V hosta fizycznego do miejsca zastosowania zasad

Zaawansowane opcje sieci

Możesz skorzystać z kilku opcji sterowników sieciowych dla funkcji i funkcji specyficznych dla systemu Windows. Oto kilka przykładów:

  • Uzyskaj dostęp do osadzonego tworzenia zespołu przełącznika dla sieci hostów kontenerów, określając wiele kart sieciowych dla kontenera systemu Windows.
  • Ustaw identyfikator sieci VLAN dla sieci, aby skonfigurować izolację sieci VLAN dla wszystkich punktów końcowych kontenera dołączonych do sieci.
  • Określ zasady OutboundNAT dla sieci, aby umożliwić kontenerowi dostęp do świata zewnętrznego.

Aby uzyskać więcej informacji, zobacz Zaawansowane opcje sieci w systemie Windows.