Kontena Windows yang memerlukan perkongsian di seberang terowong anda gagal dalam dua cara yang berasingan, dan Explorer hos tidak membuktikan salah satu daripadanya. Kontena mempunyai titik akhir rangkaian dan identiti prosesnya sendiri. Nama yang diselesaikan pada desktop dan sesi yang diterima oleh pelayan fail di sana menerangkan desktop, bukan beban kerja.

Explorer hos bukan bukti

Membuka perkongsian pada hos menggunakan klien DNS hos, jadual penghalaan hos dan akaun yang log masuk pada hos. Proses kontena tidak mewarisi mana-mana daripada itu secara tersirat, walaupun kontena berjalan pada mesin yang sama dan klien VPN juga berjalan di situ. Sempadan pertama ialah laluan rangkaian: bolehkah kontena menyelesaikan nama itu, dan bolehkah ia membuka sesi TCP ke port SMB. Yang kedua ialah identiti: adakah pelayan fail menerima apa yang dikemukakan oleh kontena, dengan kebenaran yang diperlukan oleh beban kerja.

Menganggapnya sebagai satu masalah menghasilkan gelung yang biasa: meluaskan peraturan tembok api untuk membetulkan apa yang sebenarnya jawapan akses ditolak daripada perkongsian.

Ikuti permintaan kontena itu sendiri

Rangkaian kontena Windows diuruskan oleh Host Networking Service, yang mencipta titik akhir dengan ruang nama rangkaiannya sendiri. Mod yang anda pilih menentukan sama ada titik akhir itu diterjemah, dijambatani atau disambungkan ke rangkaian yang dikongsi dengan hos. Keputusan itu mengubah dua perkara sekali gus: apa yang boleh diselesaikan oleh kontena, dan alamat sumber apa yang dilihat oleh pelayan fail.

Sahkan apa yang diperhatikan oleh kontena itu sendiri sebelum mengubah apa-apa. Nama yang diselesaikan di luar mungkin gagal di dalam, kerana konfigurasi DNS kontena bukan konfigurasi hos, dan titik akhir yang diterjemah mungkin mengemukakan sumber yang tidak dijangka oleh peraturan pelayan fail.

docker exec -it app powershell -Command "Resolve-DnsName files.corp.example"
docker exec -it app powershell -Command "Test-NetConnection files.corp.example -Port 445"
docker exec -it app powershell -Command "Get-NetIPConfiguration"

Jika penyelesaian gagal, betulkan DNS dalam konfigurasi rangkaian dan bukannya menggantikan alamat. Menggantikan nama dengan IP boleh mengubah tingkah laku pengesahan dan identiti pelayan, yang menjadikan satu masalah kepada dua. Dasar klien VPN itu sendiri ialah perkara seterusnya yang perlu diperiksa, kerana ia mungkin melayan proses hos dan trafik yang berasal dari kontena secara berbeza.

Identiti ialah keputusan berasingan

Huruf pemacu yang dipetakan oleh pengguna interaktif bukan antara muka aplikasi. Ia wujud dalam satu sesi log masuk, dan proses kontena bukan sebahagian daripadanya. Gunakan laluan UNC dan berikan beban kerja identiti yang disokong oleh model penggunaan. Di tempat domain menyokongnya, akaun perkhidmatan terurus kumpulan (gMSA) menyediakan identiti terurus melalui spesifikasi kelayakan.

Panduan gMSA kontena Microsoft menerangkan susunan spesifikasi kelayakan itu dan prasyaratnya, termasuk keahlian domain dan hos yang mampu mengambil kelayakan tersebut. Akaun, pengambilan, identiti proses di dalam kontena dan kebenaran perkongsian semuanya mesti selari. Log masuk VPN bukan identiti itu, dan membakar kata laluan ke dalam imej untuk menghasilkan semula sesi pengguna hos mencipta pendedahan yang berterusan.

Kekalkan peringkat yang gagal kelihatan

Kegagalan penyelesaian, penolakan sambungan dan penolakan akses memerlukan bukti yang berbeza. Ia masing-masing ialah soalan DNS, soalan penghalaan atau penapisan, dan soalan pengesahan atau kebenaran. Baca respons yang diterima oleh kontena dan bukannya ralat umum aplikasi.

Uji dengan identiti beban kerja itu sendiri dan uji juga penolakan.

Rancang untuk sambungan semula

Laluan VPN terputus. Apabila terowong kembali, titik akhir mungkin kembali dengan alamat terjemahan yang berbeza, dan sesi SMB sedia ada mungkin mati tanpa aplikasi menyedarinya. Kendalikan itu dalam aplikasi: bina semula laluan dan identiti, cuba semula operasi, dan selaraskan operasi fail dengan hasil yang tidak diketahui dan bukannya menganggap tiada apa yang berlaku.

Catat mod rangkaian, sumber DNS dan susunan identiti dalam nota penggunaan. Ketiga-tiga fakta itulah yang akan menjadi perkara kegagalan seterusnya.

Artikel berkaitan