Rutaren som SMB-klient eller pakkevideresendar: kva som passar
Å videresende SMB-trafikk og å montere han er to ulike rollar. Kontroller påloggingsinformasjon, kjernestøtte og feilhandtering før rutaren blir klient.
Å videresende SMB-trafikk er ikkje same oppgåva som å avslutte han, og ein ruter som gjer det eine, meistrar kanskje ikkje det andre. Videresending tyder at rutaren flyttar pakkar der han aldri analyserer innhaldet. Montering tyder at rutaren blir ein filklient, med programvare han kanskje ikkje leverer, påloggingsinformasjon han må verne og feilmodusar han no eig. Valet mellom dei to handlar om kvar filene trengst, ikkje om kva ruterplattformen kan overtalast til å installere.
Videresending og avslutning er ulike oppgåver
I videresendarrolla har rutaren eitt ansvar: å levere pakkar mellom klienten og tenaren medan han brukar den policyen banen krev. Han autentiserer seg ikkje mot delinga, bufrer ikkje fildata og bryr seg ikkje om tenaren snakkar SMB2 eller SMB3, fordi han aldri les så langt inn i straumen. Blir delinga utilgjengeleg, ser brukaren ein feil, og rutaren held fram med å rute.
I klientrolla deltek rutaren i protokollsamtalen. Han forhandlar om ein dialekt, autentiserer seg, slår opp namn, held eit monteringspunkt og presenterer ei lokal filsystemvising for alt som køyrer over han. Dette er ei ekte teneste med livssyklus, og ho gjer gatewayen til ein avhengnad i filarbeidsflyten. Han arvar òg alle feilmodusane til den avhengnaden, inkludert venting ved oppstart og utdatert påloggingsinformasjon.
Samanlikninga handlar ikkje berre om evne. Ein plattform som kan montere ei deling er ikkje automatisk ein plattform som bør gjere det, og ein plattform som ikkje kan montere noka, kan framleis vere rett stad å rute trafikken.
Kva ei CIFS-montering i kjernen faktisk krev
På ein Linux-basert eining er CIFS-klienten i kjernen og ein klient i brukarområdet separate evner, og små avbildingar inneheld ofte ingen av dei. Kjernestøtte må finnast i avbildinga som køyrer, monteringshjelparen må finnast, og SMB-dialekten som blir forhandla med tenaren, må vere ein begge partar godtek. Det skildrar rettleiinga for Linux CIFS-klienten, som forklarar kjerneoppsettet og monteringsvala, og det er den rette referansen før du går ut frå at ein leverandørbygging inneheld han.
Kontroller evna før du designar rundt ho, og kontroller versjonen framfor at eit kommandonamn finst. Eit modulnamn i ei pakkeliste er ikkje det same som ein fungerande klient.
lsmod | grep -w cifs
modinfo cifs | head -5
mount.cifs --version
smbclient -L //fs02.corp.internal -U svc-router -m SMB3Ein kjernemodul som blir lasta, og eit brukarområdeverktøy som rapporterer ein versjon, garanterer framleis ikkje at ei montering overlever ein VPN-nøkkelutskifting, så handsam testen som ein startbetingelse, ikkje som prov. Viss avbildinga berre leverer SMB1-støtte, er det grunn til å stoppe, ikkje grunn til å slå det på på tenaren.
Påloggingsinformasjon og kjeldeidentitet er annleis enn på ein berbar
Ein videresend førespurnad ber den berbare sin identitet gjennom tunnelen, medan ein førespurnad som oppstår på rutaren, ber hans eigen kjeldeadresse, resolverbanen og utgangsfiltreringa. Dei kan hamne i ein annan brannmurregel, ei anna DNS-vising og ei anna tillatingsliste på tenarsida. Ein kopi som verkar frå ein arbeidsstasjon, provar derfor ingenting om rutaren si eiga montering. Test monteringa frå rutaren sitt eige skal, ikkje frå ein arbeidsstasjon bak han.
Gje rutaren ein smalt autorisert tenesteidentitet viss rolla i det heile blir godkjend. Legg aldri eit passord direkte i monteringskommandolinja, sidan det blir liggande i skallhistorikken og blir vist i prosesstabellen medan monteringa køyrer.
Lagre påloggingsinformasjonen gjennom den verna mekanismen til plattformen, og les han frå ei fil med strenge rettar. Den fila bør vere uleseleg for alle kontoar unntatt den som køyrer monteringa.
install -m 600 /dev/null /etc/cifs-reports.creds
printf 'username=svc-router\npassword=REPLACE_ME\ndomain=CORP\n' > /etc/cifs-reports.creds
mount -t cifs //fs02.corp.internal/reports /mnt/reports -o credentials=/etc/cifs-reports.creds,vers=3.1.1,roKven eig feilen når delinga forsvinn
Eit manglande eksternt filsystem oppfører seg annleis enn ein manglande rute. Ei montering kan blokkere prosessar som rører henne, ho kan feile ved oppstart før tunnelen finst, og ei skriving meint for tenaren kan hamne på feil stad viss ei lokal mappe ligg under monteringspunktet. Det er lagringsfeil som netteamet no eig, anten teamet ønskte dei eller ikkje. Ingen samtykte i det eigarskapet, men det følgjer med monteringa.
Design oppstartsrekkjefølgja og monteringsvala rundt den røynda. Ei skriveverna montering med kort tidsavbrot og eit dokumentert gjenopprettingsteg er lettare å forsvare enn ei skrivbar montering som alt anna er avhengig av. Stadfest at tunnelen kjem opp før noko prøver å montere, elles heng den første oppstarten etter eit straumbrot.
For omfattande filhandsaming, eller for noko som reeksporterer dataa vidare, gir ein eigen vert vanlegvis ei klarare eigarskapsgrense. Rutaren held fram med å rute, og filarbeidsflyten får ein maskin som kan startast på nytt utan å ta med nettet.
Kontroller avgjerda mot den faktiske oppgåva
Skriv ned kva oppgåve som treng filene, og kvar den oppgåva køyrer. Viss svaret er ein arbeidsstasjon, rut delinga og stopp der. Viss svaret er ei teneste på eininga, stadfest klientevna, den støtta dialekten og banen for påloggingsinformasjon før den første monteringa, og avgjer deretter om eininga verkeleg er rett vert.
Kontroller den monterte visinga og ledig plass frå rutaren sjølv, sidan det er der arbeidslasta vil sjå dei. Gjenta kontrollen etter ei ny tilkopling, ikkje berre etter ein rein oppstart.
findmnt -t cifs -o TARGET,SOURCE,OPTIONS
df -h /mnt/reports
ls -l /mnt/reports | headEi montering som listar filer, men rapporterer eit fullt eller skriveverna filsystem, har allereie fortalt deg kva feil du møter klokka 2 om natta. Stadfest òg gjenopprettingsbanen: avmonter reint, ta tunnelen ned, få han opp att og monter på nytt utan å starte eininga på nytt. Viss den sekvensen krev ei støttesak kvar gong, er rutaren feil stad for klientrolla.