Driver jaringan kontainer Windows

Berlaku untuk: Windows Server 2025, 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 terhubung ke jaringan yang dibuat dengan driver 'nat' akan dihubungkan ke sakelar internal Hyper-V dan akan menerima alamat IP dari awalan IP (--subnet) yang ditentukan pengguna. Penerusan / pemetaan port dari host kontainer ke titik akhir kontainer didukung.

Ujung

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

Nota

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

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 dilampirkan ke 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 --subnet yang ditentukan pengguna) atau secara dinamis menggunakan server DHCP eksternal.

Nota

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) pemalsuan alamat MAC diperlukan.

Membuat jaringan transparan

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

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

Driver perangkat lunak jaringan overlay

Populer digunakan oleh orkestrator kontainer seperti Docker Swarm dan Kubernetes, kontainer yang terpasang pada jaringan overlay dapat berkomunikasi dengan kontainer lain yang terpasang ke 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 enkapsulasi VXLAN untuk mengisolasi 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.

Nota

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 debugging.

Membuat jaringan overlay

Untuk membuat jaringan overlay baru dengan subnet 10.244.0.0/24, server DNS 168.63.129.16, 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

Penggerak 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 mengurangi beban pada sakelar yang harus mempelajari alamat MAC dari kontainer yang 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 perlu 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 DNS 10.244.0.7 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

Ujung

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 dalam Microsoft Cloud Stack (Azure). Satu-satunya perbedaan atas l2bridge adalah bahwa semua lalu lintas kontainer dikirim ke host virtualisasi tempat kebijakan SDN diterapkan, sehingga memungkinkan 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 (Node tunggal) Kontainer-ke-eksternal (node tunggal + multi-node) Kontainer-ke-kontainer (multi-node)
NAT (Default) Baik untuk Pengembang
  • Subnet yang Sama: Koneksi yang dijembatani 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 dijembatani 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 Bagus untuk multi-node; diperlukan untuk Docker Swarm, dan tersedia di Kubernetes
  • Subnet yang Sama: Koneksi yang dijembatani melalui sakelar virtual Hyper-V
  • Subnet Silang: Lalu lintas jaringan dienkapsulasi dan dirutekan melalui Mgmt vNIC
Tidak didukung secara langsung - memerlukan endpoint kontainer kedua yang dilampirkan ke jaringan NAT pada Windows Server 2016 atau aturan 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 dijembatani melalui sakelar virtual Hyper-V
  • Lintas Subnet: Alamat MAC kontainer ditulis ulang saat masuk (ingress) dan keluar (egress) dan dirutekan
Alamat MAC kontainer ditulis ulang pada saat masuk dan keluar
  • Subnet yang Sama: Koneksi Jembatan
  • Subnet Silang: dirutekan melalui Mgmt vNIC pada WSv1809 ke atas
L2Tunnel Hanya Azure Subnet Sama/Silang: Dialihkan ke sakelar virtual host fisik Hyper-V di mana kebijakan diterapkan Lalu lintas harus melalui gateway jaringan virtual Azure Subnet Sama/Silang: Dialihkan ke sakelar virtual host fisik Hyper-V di mana 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 / Pengendali Perangkat IPAM
NAT Alokasi dan penugasan alamat IP dinamis oleh Host Networking Service (HNS) dari prefiks subnet NAT internal.
Transparan Alokasi dan penugasan IP secara statis atau dinamis (menggunakan server DHCP eksternal) dari alamat IP yang termasuk dalam awalan jaringan host kontainer.
Lapisan Alokasi IP dinamis dari prefix yang dikelola dan penugasannya melalui Docker Engine Swarm Mode dengan 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 pengemudi Penemuan Layanan Lokal Penemuan Layanan Global
Nat YA YA dengan Docker EE
Lapisan atas YA YA dengan Docker EE atau kube-dns
transparan TIDAK TIDAK
l2bridge YA dengan kube-dns YA dengan kube-dns