Router ako klient SMB alebo preposielač paketov: čo sa hodí
Preposielanie prevádzky SMB a jej pripájanie sú oddelené roly. Overte prihlasovacie údaje, podporu jadra a ošetrenie zlyhaní, skôr než sa router stane klientom.
Preposielanie prevádzky SMB nie je tá istá úloha ako jej ukončovanie, a router, ktorý robí jedno, nemusí zvládať druhé. Preposielanie znamená, že router presúva pakety, ktorých obsah nikdy neanalyzuje. Pripájanie znamená, že sa router stane súborovým klientom, so softvérom, ktorý nemusí obsahovať, s údajmi, ktoré musí chrániť, a s režimami zlyhania, ktoré teraz vlastní. Voľba medzi tým je otázkou, kde sú súbory potrebné, nie toho, čo sa dá prehovoriť platformu pre smerovanie, aby nainštalovala.
Preposielanie a ukončovanie sú rôzne úlohy
V role preposielania má router jednu zodpovednosť: doručovať pakety medzi klientom a serverom a pritom uplatňovať politiku, ktorú cesta vyžaduje. Neautentifikuje sa voči zdieľanému zdroju, neukladá do vyrovnávacej pamäte súborové dáta a nezaujíma ho, či server hovorí SMB2 alebo SMB3, pretože nikdy nečíta tak hlboko do toku. Ak sa zdroj stane nedostupným, používateľ vidí chybu a router ďalej smeruje.
V role klienta sa router zapojí do konverzácie protokolu. Vyjednáva dialekt, autentifikuje sa, prekladá názvy, drží prípojný bod a predkladá lokálny pohľad na súborový systém všetkému, čo nad ním beží. To je skutočná služba so životným cyklom a robí z brány závislosť súborového pracovného postupu. Zdedí aj všetky režimy zlyhania tejto závislosti, vrátane čakania pri štarte a zastaraných údajov.
Porovnanie nie je len o schopnosti. Platforma, ktorá dokáže pripojiť zdieľaný zdroj, nie je automaticky platforma, ktorá by to mala robiť, a platforma, ktorá ho nedokáže pripojiť, môže byť stále správnym miestom na smerovanie prevádzky.
Čo vlastne pripojenie CIFS v jadre potrebuje
Na zariadení s Linuxom sú klientský CIFS modul v jadre a klientský program v používateľskom priestore oddelené schopnosti a malé obrazy často neobsahujú ani jednu. Podpora jadra musí byť v bežiacom obraze, pomocník pripojenia musí existovať a dialekt SMB vyjednaný so serverom musí byť taký, aký prijímajú obe strany. Píše o tom príručka klienta CIFS pre Linux, ktorá opisuje usporiadanie jadra a jeho možnosti pripojenia, a je správnym zdrojom, než predpokladáte, že ho zostavenie výrobcu obsahuje.
Overte schopnosť, než okolo nej navrhnete riešenie, a overte verziu, nie prítomnosť názvu príkazu. Názov modulu v zozname balíkov nie je to isté ako fungujúci klient.
lsmod | grep -w cifs
modinfo cifs | head -5
mount.cifs --version
smbclient -L //fs02.corp.internal -U svc-router -m SMB3Modul jadra, ktorý sa načíta, a nástroj v používateľskom priestore, ktorý vypíše verziu, ešte nezaručujú, že pripojenie prežije obnovu kľúčov VPN, takže test berte ako východiskovú podmienku, nie ako dôkaz. Ak obraz dodáva len podporu SMB1, je to dôvod zastaviť, nie dôvod ju zapnúť na serveri.
Údaje a identita zdroja sa líšia od tých na notebooku
Preposielaná požiadavka nesie identitu notebooku tunelom, kým požiadavka vytvorená na routeri nesie jeho vlastnú zdrojovú adresu, cestu prekladača a filtrovanie odchádzajúcej prevádzky. Môžu skončiť v inom pravidle firewallu, inom pohľade DNS a inom povolenom zozname na strane servera. Kópia, ktorá funguje z pracovnej stanice, teda nič nedokazuje o vlastnom pripojení routera. Testujte pripojenie z vlastného shellu routera, nie z pracovnej stanice za ním.
Dajte routeru úzko oprávnenú identitu služby, ak je rola vôbec schválená. Nikdy nedávajte heslo priamo do príkazového riadku pripojenia, pretože zostáva v histórii shellu a objavuje sa v tabuľke procesov, kým pripojenie beží.
Uložte údaje cez chránený mechanizmus platformy a čítajte ich zo súboru s obmedzujúcimi právami. Tento súbor má byť nečitateľný pre každý účet okrem toho, ktorý pripojenie spúšťa.
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,roKto vlastní zlyhanie, keď zdieľaný zdroj zmizne
Chýbajúci vzdialený súborový systém sa správa inak ako chýbajúca trasa. Pripojenie môže blokovať procesy, ktoré sa ho dotýkajú, môže zlyhať pri štarte skôr, než tunel existuje, a zápis určený serveru môže skončiť na nesprávnom mieste, ak pod prípojným bodom leží lokálny adresár. Sú to zlyhania úložiska, ktoré teraz vlastní sieťový tím, či už ich chcel alebo nie. Nikto s tým vlastníctvom nesúhlasil, ale prichádza s pripojením.
Navrhnite poradie štartu a možnosti pripojenia okolo tejto reality. Pripojenie len na čítanie s krátkym časovým limitom a zdokumentovaným krokom obnovy sa obhajuje ľahšie než zapisovateľné pripojenie, na ktorom závisí všetko ostatné. Potvrďte, že tunel naskočí skôr, než sa niečo pokúsi pripojiť, inak prvý štart po výpadku prúdu zostane visieť.
Pre rozsiahle spracovanie súborov alebo pre čokoľvek, čo dáta ďalej preexportúva, zvyčajne samostatný hostiteľ dáva jasnejšiu hranicu vlastníctva. Router ďalej smeruje a súborový pracovný postup dostane stroj, ktorý sa dá reštartovať bez toho, aby so sebou vzal sieť.
Overte rozhodnutie proti skutočnej úlohe
Zapíšte, ktorá úloha potrebuje súbory a kde táto úloha beží. Ak je odpoveďou pracovná stanica, smerujte zdieľaný zdroj a tam skončite. Ak je odpoveďou služba na zariadení, overte schopnosť klienta, podporovaný dialekt a cestu k údajom pred prvým pripojením, a potom rozhodnite, či je zariadenie naozaj správnym hostiteľom.
Overte pripojený pohľad a voľné miesto z routera samotného, pretože tam ich uvidí pracovné zaťaženie. Kontrolu zopakujte po opätovnom pripojení, nie len po čistom štarte.
findmnt -t cifs -o TARGET,SOURCE,OPTIONS
df -h /mnt/reports
ls -l /mnt/reports | headPripojenie, ktoré vypíše súbory, ale hlási plný alebo len na čítanie súborový systém, už vám povedalo, s akým zlyhaním sa o 2 hodine ráno stretnete. Overte aj cestu obnovy: čisto odpojte, spustite tunel, znova ho nahodte a pripojte sa bez reštartu zariadenia. Ak táto postupnosť zakaždým vyžaduje prípad u podpory, je router pre rolu klienta nesprávne miesto.