UNC-tilgang i Windows-beholdere: navnet først, identiteten deretter
Utforskeren på verten beviser verken beholderens DNS-vei eller dens SMB-identitet. Kontroller navneoppslag og port 445 inne i beholderen før du ser på tillatelser.
En Windows-beholder som trenger en delt mappe på den andre siden av tunnelen din, feiler på to uavhengige måter, og Utforskeren på verten beviser ingen av dem. Beholderen har sitt eget nettverksendepunkt og sin egen prosessidentitet. Et navn som løses opp på skrivebordet, og en økt som filserveren godtar der, beskriver skrivebordet, ikke arbeidsbelastningen.
Utforskeren på verten er ikke bevis
Å åpne den delte mappen på verten bruker vertens DNS-klient, vertens rutetabell og kontoen som er logget på verten. En beholderprosess arver ingenting av dette implisitt, selv når beholderen kjører på samme maskin og VPN-klienten også kjører der. Den første grensen er nettverksveien: kan beholderen løse opp navnet, og kan den åpne en TCP-økt mot SMB-porten. Den andre er identitet: godtar filserveren det beholderen presenterer, med tillatelsene arbeidsbelastningen trenger.
Å behandle dem som ett problem gir den kjente løkken der brannmurregler utvides for å rette opp det som egentlig er et svar om nektet tilgang fra den delte mappen.
Følg beholderens egen forespørsel
Nettverket for Windows-beholdere administreres av Host Networking Service, som oppretter endepunkter med sitt eget nettverksnavnerom. Modusen du valgte avgjør om endepunktet oversettes, broes eller knyttes til et nettverk som deles med verten. Den avgjørelsen endrer to ting samtidig: hva beholderen kan løse opp, og hvilken kildeadresse filserveren ser.
Bekreft hva beholderen selv observerer før du endrer noe. Et navn som løses opp utenfor, kan feile innenfor, fordi beholderens DNS-konfigurasjon ikke er vertens, og et oversatt endepunkt kan presentere en kilde som filserverens regler ikke forventer.
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"
Hvis oppslaget feiler, rett opp DNS i nettverkskonfigurasjonen i stedet for å erstatte en adresse. Å erstatte navnet med en IP kan endre oppførselen til autentisering og serveridentitet, noe som gjør ett problem til to. VPN-klientens egen policy er det neste du bør kontrollere, fordi den kan behandle vertsprosesser og trafikk som kommer fra beholderen ulikt.
Identitet er en egen avgjørelse
En stasjonsbokstav som en interaktiv bruker tilordner, er ikke et applikasjonsgrensesnitt. Den finnes i én påloggingsøkt, og en beholderprosess er ikke en del av den. Bruk UNC-stien og gi arbeidsbelastningen en identitet som distribusjonsmodellen støtter. Der domenet støtter det, gir en gruppestyrt tjenestekonto (gMSA) en administrert identitet gjennom en legitimasjonsspesifikasjon.
Microsofts veiledning for beholder-gMSA beskriver den legitimasjonsspesifikasjonsordningen og forutsetningene, som omfatter domenemedlemskap og en vert som kan hente legitimasjonen. Kontoen, hentingen, prosessidentiteten inne i beholderen og tillatelsene på den delte mappen må alle stemme. En VPN-pålogging er ikke den identiteten, og å bake inn et passord i et image for å gjenskape vertsbrukerens økt skaper en varig eksponering.
Hold det feilende trinnet synlig
Feilet oppslag, avvist tilkobling og nektet tilgang trenger ulike bevis. De er henholdsvis et DNS-spørsmål, et ruting- eller filtreringsspørsmål og et autentiserings- eller tillatelsesspørsmål. Les svaret beholderen fikk, i stedet for applikasjonens generelle feil.
Test med arbeidsbelastningens egen identitet, og test også en nektelse.
Planlegg for gjentilkoblingen
VPN-veier faller ut. Når tunnelen kommer tilbake, kan et endepunkt komme tilbake med en annen oversatt adresse, og en eksisterende SMB-økt kan være død uten at applikasjonen merker det. Håndter det i applikasjonen: gjenopprett veien og identiteten, prøv operasjonen på nytt, og avstem en filoperasjon med ukjent resultat i stedet for å anta at ingenting skjedde.
Noter nettverksmodusen, DNS-kilden og identitetsordningen i distribusjonsnotatene. Det er nettopp disse tre fakta den neste feilen vil handle om.