Tünelinizin diğer tarafındaki bir paylaşıma ihtiyaç duyan Windows konteyneri iki bağımsız şekilde başarısız olur ve ana makinenin Explorer'ı bunların hiçbirini kanıtlamaz. Konteynerin kendi ağ uç noktası ve kendi süreç kimliği vardır. Masaüstünde çözülen bir ad ve dosya sunucusunun orada kabul ettiği bir oturum masaüstünü anlatır, iş yükünü değil.

Ana makinenin Explorer'ı kanıt değildir

Paylaşımı ana makinede açmak, ana makinenin DNS istemcisini, ana makinenin yönlendirme tablosunu ve ana makinede oturum açmış hesabı kullanır. Konteyner süreci bunların hiçbirini örtük olarak devralmaz; konteyner aynı makinede çalışsa ve VPN istemcisi de orada çalışsa bile. İlk sınır ağ yoludur: konteyner adı çözebiliyor mu ve SMB portuna bir TCP oturumu açabiliyor mu. İkincisi kimliktir: dosya sunucusu, konteynerin sunduğunu iş yükünün ihtiyaç duyduğu izinlerle kabul ediyor mu.

İkisini tek bir sorun olarak ele almak, aslında paylaşımdan gelen bir erişim reddi yanıtını düzeltmek için güvenlik duvarı kurallarını genişletme şeklindeki bilinen döngüyü üretir.

Konteynerin kendi isteğini izleyin

Windows konteyner ağı, kendi ağ ad alanına sahip uç noktalar oluşturan Host Networking Service tarafından yönetilir. Seçtiğiniz mod, uç noktanın çevrilip çevrilmediğini, köprülenip köprülenmediğini veya ana makineyle paylaşılan bir ağa bağlanıp bağlanmadığını belirler. Bu karar aynı anda iki şeyi değiştirir: konteynerin neyi çözebileceğini ve dosya sunucusunun hangi kaynak adresini gördüğünü.

Herhangi bir şeyi değiştirmeden önce konteynerin kendisinin ne gözlemlediğini doğrulayın. Dışarıda çözülen bir ad içeride başarısız olabilir, çünkü konteynerin DNS yapılandırması ana makinenin yapılandırması değildir ve çevrilmiş bir uç nokta, dosya sunucusu kurallarının beklemediği bir kaynak sunabilir.

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"

Çözümleme başarısız olursa, bir adresi değiştirmek yerine ağ yapılandırmasındaki DNS'i düzeltin. Adı IP ile değiştirmek kimlik doğrulama ve sunucu kimliği davranışını değiştirebilir, bu da bir sorunu ikiye çıkarır. VPN istemcisinin kendi ilkesi kontrol edilecek sıradaki şeydir, çünkü ana makine süreçlerine ve konteynerden gelen trafiğe farklı davranabilir.

Kimlik ayrı bir karardır

Etkileşimli bir kullanıcının eşlediği sürücü harfi bir uygulama arabirimi değildir. Tek bir oturum açma oturumunda vardır ve konteyner süreci bunun parçası değildir. UNC yolunu kullanın ve iş yüküne dağıtım modelinin desteklediği bir kimlik verin. Etki alanının desteklediği yerlerde, grup tarafından yönetilen hizmet hesabı (gMSA) bir kimlik bilgisi belirtimi aracılığıyla yönetilen kimlik sağlar.

Microsoft'un konteyner gMSA kılavuzu bu kimlik bilgisi belirtimi düzenini ve etki alanı üyeliği ile kimlik bilgisini alabilen bir ana makineyi içeren ön koşullarını açıklar. Hesap, alma, konteynerin içindeki süreç kimliği ve paylaşım izinlerinin hepsi uyuşmalıdır. VPN oturum açması o kimlik değildir ve ana makine kullanıcısının oturumunu yeniden üretmek için bir imaja parola gömmek kalıcı bir maruz kalma yaratır.

Başarısız olan aşamayı görünür tutun

Çözümleme hatası, bağlantı reddi ve erişim reddi farklı kanıtlar gerektirir. Bunlar sırasıyla bir DNS sorusu, bir yönlendirme veya filtreleme sorusu ve bir kimlik doğrulama veya izin sorusudur. Uygulamanın genel hatası yerine konteynerin aldığı yanıtı okuyun.

İş yükünün kendi kimliğiyle test edin ve reddi de test edin.

Yeniden bağlanmayı planlayın

VPN yolları düşer. Tünel geri geldiğinde, bir uç nokta farklı bir çevrilmiş adresle geri gelebilir ve mevcut SMB oturumu uygulama farkına varmadan ölmüş olabilir. Bunu uygulamada ele alın: yolu ve kimliği yeniden kurun, işlemi yeniden deneyin ve hiçbir şey olmadığını varsaymak yerine sonucu bilinmeyen bir dosya işlemini uzlaştırın.

Ağ modunu, DNS kaynağını ve kimlik düzenini dağıtım notlarına kaydedin. Bir sonraki hata tam olarak bu üç gerçekle ilgili olacak.

İlgili makaleler