Driver jaringan kontainer Windows

Berlaku untuk: Windows Server 2022, Windows Server 2019, Windows Server 2016

Selain memanfaatkan jaringan 'nat' default yang dibuat oleh Docker di Windows, pengguna dapat menentukan jaringan kontainer kustom. Jaringan yang ditentukan pengguna dapat dibuat menggunakan perintah Docker CLI docker network create -d <NETWORK DRIVER TYPE> <NAME> . Pada Windows, tipe pengandar jaringan berikut ini tersedia:

Driver jaringan NAT

Kontainer yang terpasang pada jaringan yang dibuat dengan driver 'nat' akan terhubung ke sakelar Hyper-V internal dan menerima alamat IP dari awalan IP yang ditentukan pengguna (--subnet). Penerusan / pemetaan port dari host kontainer ke titik akhir kontainer didukung.

Tip

Dimungkinkan untuk menyesuaikan subnet yang digunakan oleh jaringan 'nat' default melalui fixed-cidr pengaturan dalam file konfigurasi daemon Docker.

Catatan

Jaringan NAT yang dibuat pada Windows Server 2019 (atau lebih tinggi) tidak lagi bertahan setelah reboot.

Membuat jaringan NAT

Untuk membuat jaringan NAT baru dengan subnet 10.244.0.0/24:

docker network create -d "nat" --subnet "10.244.0.0/24" my_nat

Driver jaringan transparan

Kontainer yang terpasang pada jaringan yang dibuat dengan driver 'transparan' akan terhubung langsung ke jaringan fisik melalui sakelar Hyper-V eksternal . IP dari jaringan fisik dapat ditetapkan secara statis (memerlukan opsi yang ditentukan --subnet pengguna) atau secara dinamis menggunakan server DHCP eksternal.

Catatan

Karena persyaratan berikut, menyambungkan host kontainer Anda melalui jaringan transparan tidak didukung di Azure VM.

Memerlukan: Ketika mode ini digunakan dalam skenario virtualisasi (host kontainer adalah VM) spoofing alamat MAC diperlukan.

Membuat jaringan transparan

Untuk membuat jaringan transparan baru dengan subnet 10.244.0.0/24, gateway 10.244.0.1, server 10.244.0.7 DNS, dan ID 7VLAN :

docker network create -d "transparent" --subnet 10.244.0.0/24 --gateway 10.244.0.1 -o com.docker.network.windowsshim.vlanid=7 -o com.docker.network.windowsshim.dnsservers="10.244.0.7" my_transparent

Melapisi driver jaringan

Populer digunakan oleh orkestrator kontainer seperti Docker Swarm dan Kubernetes, kontainer yang melekat pada jaringan overlay dapat berkomunikasi dengan kontainer lain yang terpasang pada jaringan yang sama di beberapa host kontainer. Setiap jaringan overlay dibuat dengan subnet IP-nya sendiri, yang ditentukan oleh awalan IP privat. Driver jaringan overlay menggunakan enkapulasi VXLAN untuk mencapai isolasi lalu lintas jaringan antara jaringan kontainer penyewa dan memungkinkan penggunaan kembali alamat IP di seluruh jaringan overlay.

Memerlukan: Pastikan lingkungan Anda memenuhi prasyarat yang diperlukan ini untuk membuat jaringan overlay.

Memerlukan: Pada Windows Server 2019, ini memerlukan KB4489899.

Memerlukan: Pada Windows Server 2016, ini memerlukan KB4015217.

Catatan

Pada Windows Server 2019 ke atas, jaringan overlay yang dibuat oleh Docker Swarm memanfaatkan aturan NAT VFP untuk konektivitas keluar. Ini berarti bahwa kontainer tertentu menerima 1 alamat IP. Ini juga berarti bahwa alat berbasis ICMP seperti ping atau Test-NetConnection harus dikonfigurasi menggunakan opsi TCP/UDP mereka dalam situasi penelusuran kesalahan.

Membuat jaringan overlay

Untuk membuat jaringan overlay baru dengan subnet 10.244.0.0/24, server 168.63.129.16DNS, dan VSID 4096:

docker network create -d "overlay" --attachable --subnet "10.244.0.0/24" -o com.docker.network.windowsshim.dnsservers="168.63.129.16" -o com.docker.network.driver.overlay.vxlanid_list="4096" my_overlay

Driver jaringan L2bridge

Kontainer yang terpasang pada jaringan yang dibuat dengan driver 'l2bridge' akan terhubung ke jaringan fisik melalui sakelar Hyper-V eksternal . Di l2bridge, lalu lintas jaringan kontainer akan memiliki alamat MAC yang sama dengan host karena operasi terjemahan alamat Layer-2 (penulisan ulang MAC) pada ingress dan egress. Di pusat data, ini membantu meringankan stres pada sakelar yang harus mempelajari alamat MAC dari kontainer yang terkadang berumur pendek. Jaringan L2bridge dapat dikonfigurasi dengan 2 cara berbeda:

  1. Jaringan L2bridge dikonfigurasi dengan subnet IP yang sama dengan host kontainer
  2. Jaringan L2bridge dikonfigurasi dengan subnet IP kustom baru

Dalam konfigurasi 2 pengguna harus menambahkan titik akhir pada kompartemen jaringan host yang bertindak sebagai gateway dan mengonfigurasi kemampuan perutean untuk awalan yang ditunjuk.

Membuat jaringan l2bridge

Untuk membuat jaringan l2bridge baru dengan subnet 10.244.0.0/24, gateway 10.244.0.1, server 10.244.0.7 DNS, dan ID VLAN 7:

docker network create -d "l2bridge" --subnet 10.244.0.0/24 --gateway 10.244.0.1 -o com.docker.network.windowsshim.vlanid=7 -o com.docker.network.windowsshim.dnsservers="10.244.0.7" my_l2bridge

Tip

Jaringan L2bridge sangat dapat diprogram; Detail selengkapnya tentang cara mengonfigurasi l2bridge dapat ditemukan di sini.

Driver jaringan L2tunnel

Pembuatan identik dengan l2bridge, namun driver ini hanya boleh digunakan di Microsoft Cloud Stack (Azure). Satu-satunya perbedaan atas l2bridge adalah bahwa semua lalu lintas kontainer dikirim ke host virtualisasi tempat kebijakan SDN diterapkan, sehingga mengaktifkan fitur seperti Azure Network Security Groups untuk kontainer.

Topologi jaringan dan IPAM

Tabel di bawah ini menunjukkan bagaimana konektivitas jaringan disediakan untuk koneksi internal (kontainer-ke-kontainer) dan eksternal untuk setiap driver jaringan.

Mode jaringan/driver Docker

Driver Jaringan Docker Windows Penggunaan umum Kontainer-ke-kontainer (Simpul tunggal) Kontainer-ke-eksternal (simpul tunggal + multi-simpul) Kontainer-ke-kontainer (multi-simpul)
NAT (Default) Baik untuk Pengembang
  • Subnet yang sama: Koneksi yang disambungkan melalui sakelar virtual Hyper-V
  • Subnet silang: Tidak didukung (hanya satu awalan internal NAT)
Dirutekan melalui Management vNIC (terikat ke WinNAT) Tidak didukung secara langsung: memerlukan pengeksposan port melalui host
Transparan Baik untuk Pengembang atau penyebaran kecil
  • Subnet yang sama: Koneksi yang disambungkan melalui sakelar virtual Hyper-V
  • Subnet Silang: Dirutekan melalui host kontainer
Dirutekan melalui host kontainer dengan akses langsung ke adaptor jaringan (fisik) Dirutekan melalui host kontainer dengan akses langsung ke adaptor jaringan (fisik)
Overlay Baik untuk multi-simpul; diperlukan untuk Docker Swarm, tersedia di Kubernetes
  • Subnet yang sama: Koneksi yang disambungkan melalui sakelar virtual Hyper-V
  • Subnet Silang: Lalu lintas jaringan dienkapsulasi dan dirutekan melalui Mgmt vNIC
Tidak didukung secara langsung - memerlukan titik akhir kontainer kedua yang terpasang pada jaringan NAT pada aturan Windows Server 2016 atau VFP NAT pada Windows Server 2019. Same/Cross Subnet: Lalu lintas jaringan dienkapsulasi menggunakan VXLAN dan dirutekan melalui Mgmt vNIC
L2Bridge Digunakan untuk Kubernetes dan Microsoft SDN
  • Subnet yang sama: Koneksi yang disambungkan melalui sakelar virtual Hyper-V
  • Subnet Silang: Alamat MAC kontainer ditulis ulang pada masuk dan keluar dan dirutekan
Alamat MAC kontainer ditulis ulang pada ingress dan egress
  • Subnet yang Sama: Koneksi tersambung
  • Subnet Silang: dirutekan melalui Mgmt vNIC di WSv1809 ke atas
L2Tunnel Khusus Azure Same/Cross Subnet: Disematkan rambut ke sakelar virtual Hyper-V host fisik ke tempat kebijakan diterapkan Lalu lintas harus melalui gateway jaringan virtual Azure Same/Cross Subnet: Disematkan rambut ke sakelar virtual Hyper-V host fisik ke tempat kebijakan diterapkan

IPAM

Alamat IP dialokasikan dan ditetapkan secara berbeda untuk setiap driver jaringan. Windows menggunakan Host Networking Service (HNS) untuk menyediakan IPAM untuk driver nat dan bekerja dengan Docker Swarm Mode (KVS internal) untuk menyediakan IPAM untuk overlay. Semua driver jaringan lainnya menggunakan IPAM eksternal.

Mode Jaringan / Driver IPAM
NAT Alokasi dan penugasan IP dinamis oleh Host Networking Service (HNS) dari awalan subnet NAT internal
Transparan Alokasi IP statis atau dinamis (menggunakan server DHCP eksternal) dan penugasan dari alamat IP dalam awalan jaringan host kontainer
Overlay Alokasi IP dinamis dari Docker Engine Swarm Mode mengelola awalan dan penugasan melalui HNS
L2Bridge Alokasi dan penugasan IP dinamis oleh Host Networking Service (HNS) dari awalan subnet yang disediakan
L2Tunnel Khusus Azure - Alokasi ip dinamis dan penugasan dari plugin

Penemuan Layanan

Penemuan Layanan hanya didukung untuk driver jaringan Windows tertentu.

Nama driver Penemuan Layanan Lokal Penemuan Layanan Global
Nat YA YA dengan Docker EE
Overlay YA YA dengan Docker EE atau kube-dns
Transparan TIDAK TIDAK
l2bridge YA dengan kube-dns YA dengan kube-dns