Router jako klient SMB versus přeposílač paketů: co se hodí
Přeposílat provoz SMB a připojovat ho jsou oddělené role. Ověřte přihlašovací údaje, podporu jádra a ošetření selhání, než se router stane klientem.
Přeposílat provoz SMB není stejný úkol jako ho ukončovat, a router, který dělá jedno, nemusí zvládat druhé. Přeposílání znamená, že router přenáší pakety, jejichž obsah nikdy neanalyzuje. Připojení znamená, že se router stane souborovým klientem, se softwarem, který nemusí obsahovat, s údaji, které musí chránit, a s režimy selhání, které teď vlastní. Volba mezi tím je otázkou, kde jsou soubory potřeba, ne toho, co lze platformu pro směrování přemluvit, aby nainstalovala.
Přeposílání a ukončování jsou různé úkoly
V roli přeposílání má router jednu odpovědnost: doručovat pakety mezi klientem a serverem a přitom uplatňovat politiku, kterou cesta vyžaduje. Neautentizuje se vůči sdílenému zdroji, nekešuje souborová data a nezajímá ho, zda server mluví SMB2 nebo SMB3, protože nikdy nečte tak hluboko do toku. Pokud se zdroj stane nedostupným, uživatel vidí chybu a router dál směruje.
V roli klienta se router zapojí do konverzace protokolu. Vyjednává dialekt, autentizuje se, překládá jména, drží přípojný bod a předkládá lokální pohled na souborový systém všemu, co nad ním běží. To je skutečná služba s životním cyklem a mění bránu v závislost souborového pracovního postupu. Zdědí také všechny režimy selhání této závislosti, včetně čekání při startu a zastaralých údajů.
Srovnání není jen o schopnosti. Platforma, která umí připojit sdílený zdroj, není automaticky platforma, která by to měla dělat, a platforma, která ho připojit neumí, může být stále správným místem pro směrování provozu.
Co vlastně připojení CIFS v jádře potřebuje
Na zařízení s Linuxem jsou klientský CIFS modul v jádře a klientský program v uživatelském prostoru oddělené schopnosti a malé obrazy často neobsahují ani jednu. Podpora jádra musí být v běžícím obrazu, pomocník pro připojení musí existovat a dialekt SMB vyjednaný se serverem musí být takový, jaký přijímají obě strany. Píše o tom průvodce klientem CIFS pro Linux, který popisuje uspořádání jádra a jeho volby připojení, a je správným zdrojem, než předpokládáte, že ho sestavení výrobce obsahuje.
Ověřte schopnost, než kolem ní navrhnete řešení, a ověřte verzi, ne přítomnost názvu příkazu. Název modulu v seznamu balíčků není totéž jako fungující klient.
lsmod | grep -w cifs
modinfo cifs | head -5
mount.cifs --version
smbclient -L //fs02.corp.internal -U svc-router -m SMB3Modul jádra, který se načte, a nástroj v uživatelském prostoru, který vypíše verzi, ještě nezaručují, že připojení přežije obnovu klíčů VPN, takže test berte jako výchozí podmínku, ne jako důkaz. Pokud obraz dodává jen podporu SMB1, je to důvod zastavit, ne důvod ji zapnout na serveru.
Údaje a identita zdroje se liší od těch u notebooku
Přeposílaný požadavek nese identitu notebooku tunelem, zatímco požadavek vzniklý na routeru nese vlastní zdrojovou adresu routeru, cestu překladače a filtrování odchozího provozu. Může skončit v jiném pravidle firewallu, jiném pohledu DNS a jiném seznamu povolených na straně serveru. Kopie, která funguje z pracovní stanice, tedy nic nedokazuje o vlastním připojení routeru. Testujte připojení z vlastního shellu routeru, ne z pracovní stanice za ním.
Dejte routeru úzce oprávněnou identitu služby, pokud je role vůbec schválena. Nikdy nedávejte heslo přímo do příkazového řádku připojení, protože zůstává v historii shellu a objevuje se v tabulce procesů po dobu běhu připojení.
Uložte údaje přes chráněný mechanismus platformy a čtěte je ze souboru s omezujícími právy. Tento soubor má být nečitelný pro každý účet kromě toho, který připojení spouští.
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,roKdo vlastní selhání, když sdílený zdroj zmizí
Chybějící vzdálený souborový systém se chová jinak než chybějící trasa. Připojení může blokovat procesy, které se ho dotknou, může selhat při startu dřív, než tunel existuje, a zápis určený serveru může skončit na špatném místě, pokud pod přípojným bodem leží místní adresář. Jsou to selhání úložiště, která teď vlastní síťový tým, ať už je chtěl nebo ne. Nikdo s tím vlastnictvím nesouhlasil, ale přichází s připojením.
Navrhněte pořadí startu a volby připojení kolem této reality. Připojení jen pro čtení s krátkým časovým limitem a zdokumentovaným krokem obnovy se hájí snáz než zapisovatelné připojení, na kterém závisí všechno ostatní. Potvrďte, že tunel naskočí dřív, než se něco pokusí připojit, jinak první start po výpadku proudu zůstane viset.
Pro rozsáhlé zpracování souborů nebo pro cokoli, co data dál přeexportovává, obvykle samostatný hostitel dává jasnější hranici vlastnictví. Router dál směruje a souborový pracovní postup dostane stroj, který lze restartovat, aniž by s sebou vzal síť.
Ověřte rozhodnutí proti skutečnému úkolu
Zapište, který úkol soubory potřebuje a kde tento úkol běží. Pokud je odpovědí pracovní stanice, smerujte sdílený zdroj a tam skončete. Pokud je odpovědí služba na zařízení, ověřte schopnost klienta, podporovaný dialekt a cestu k údajům před prvním připojením, a pak rozhodněte, zda je zařízení opravdu správný hostitel.
Ověřte připojený pohled a volné místo z routeru samotného, protože tam je uvidí pracovní zátěž. Kontrolu zopakujte po opětovném připojení, ne jen po čistém startu.
findmnt -t cifs -o TARGET,SOURCE,OPTIONS
df -h /mnt/reports
ls -l /mnt/reports | headPřipojení, které vypíše soubory, ale hlásí plný nebo jen pro čtení souborový systém, už vám řeklo, se kterým selháním se ve 2 hodiny ráno setkáte. Ověřte i cestu obnovy: čistě odpojte, spusťte tunel, znovu ho nahoďte a připojte se bez restartu zařízení. Pokud tato posloupnost pokaždé vyžaduje případ u podpory, je router pro roli klienta špatné místo.