Jste na linuxovém notebooku, tailscale status vypisuje ostatní stroje a NAS na 10.80.0.25 přesto vyprší. Tailnet je zdravý, router podsítě je online a nic ve výstupu klienta neříká, proč je LAN za ním nedostupná. Následující postup jde od tohoto příznaku směrem ven: přepínač na tomto klientu, pak inzerce na routeru, pak schválení, pak zásady a teprve potom samotný cíl. Každá brána selhává se stejným vypršením, takže pořadí je důležitější než příkazy.

Co linuxový klient odmítá nainstalovat

Klienti Tailscale na Linuxu nepřijímají inzerované trasy podsítí, dokud o to nepožádáte. Bez tohoto nastavení se klient připojí k tailnetu a dosáhne adres protějšků, zatímco každý prefix, který router inzeruje, zůstává nevyužitý. Výchozí hodnota je záměrná, a proto příznak vypadá jako rozbitý router, ne jako místní rozhodnutí.

Dvě různé věci se tu nazývají směrováním a jen jedna z nich je vaše. Router inzeruje prefix do tailnetu; váš stroj rozhoduje, zda jej nainstaluje. Selhání v kterékoli z nich dává stejné vypršení, proto hádání promarní odpoledne. Zjistěte, která strana odmítá, dřív než cokoli upravíte.

Zapněte přijímání tras pro tento stroj

Nastavte předvolbu na klientu a pak se podívejte, co se změnilo, místo abyste předpokládali, že příkaz zabral. Současná podoba aplikuje nastavení bez opakování přihlašovacího toku, což je důležité, když jste uprostřed relace.

sudo tailscale set --accept-routes
tailscale status
ip route show table 52

Tailscale instaluje přijaté trasy do své vlastní tabulky na Linuxu, takže prefix, který se objeví v tabulce 52, je přímým důkazem, že tento klient inzerci nainstaloval. Pokud váš rozsah v této tabulce chybí, zastavte se: problém je místní a žádná práce na routeru jej nezmění.

Starší klienti vystavují stejnou předvolbu jako přepínač přihlašovacího příkazu, takže sudo tailscale up --accept-routes je náhradou, když tailscale set chybí. Použijte jej místo ruční úpravy tras, protože démon přepisuje svou tabulku a vaše úprava zmizí při dalším připojení. Ověřte verzi, než zkopírujete příkaz ze staršího článku.

Ověřte inzerci a schválení odděleně

Na routeru podsítě musí být prefix inzerován a jádro musí předávat pakety mezi rozhraními. Inzerce bez předávání vám dá schválenou trasu, která tiše zahazuje provoz, což je nejčastější nedokončené nastavení.

sudo tailscale up --advertise-routes=10.80.0.0/24
sysctl net.ipv4.ip_forward
ip -br addr

Porovnejte inzerovaný prefix s adresou, na kterou se skutečně snažíte dostat, znak po znaku. Router ohlašující 10.70.0.0/24 neříká nic o NAS na 10.80.0.25 a nesoulad je ve výstupu stavu neviditelný, protože obě čísla vypadají stejně věrohodně. Většina hlášení o rozbité trase končí tady. Opravte inzerci, než se dotknete čehokoli níž.

Schválení je další brána a snadno se přeskočí, když byl router nakonfigurován ze shellu. Inzerce musí být pro toto zařízení povolena v administrátorské konzoli, než jej jiné stroje smějí použít. Přijímání tras na klientu nic neschvaluje a nepřebíjí žádné přístupové pravidlo.

Otestujte privátní adresu dřív než název hostitele

Úspěšné připojení k vlastní tailnet adrese routeru dokazuje, že tailnet funguje, což jste už věděli. Užitečný test je služba, kterou skutečně potřebujete, nejprve proti privátní adrese, aby se selhání DNS nemohlo vydávat za selhání směrování.

tailscale ping 10.80.0.1
ping -c 2 10.80.0.25
nc -vz 10.80.0.25 445
getent hosts nas.internal.example

Pokud adresa odpovídá a název hostitele ne, máte problém s překladem jmen a měli byste přestat s ním zacházet jako s problémem trasy. Pokud neodpovídá ani jedno, vraťte se o sekci zpět a potvrďte, že inzerce adresu pokrývá. Obě selhání vypadají z aplikace stejně a opravují se na různých místech.

Jedna místní kontrola stojí za to, než obviníte tailnet. Když vaše současná LAN používá stejný prefix jako vzdálená podsíť, jádro upřednostní přímo připojenou trasu a provoz nikdy neopustí stroj; to se stane, když si domov i kancelář vyberou 192.168.1.0/24.

Proč přepínač klienta není nastavení routeru

Jsou to různé role s různými požadavky a kopírování přepínače klienta na router je způsob, jak funkční tailnet získá smyčku. Stroj, který inzeruje trasy, potřebuje předávání, pravidla firewallu, která předávaný provoz povolí, a rozhodnutí, které prefixy ohlašuje. Nic z toho --accept-routes neimplikuje.

Dokumentace k routerům podsítí varuje před zapnutím přijímání tras na redundantních routerech, které ohlašují jeden prefix, protože záložní uzel může protlačit už místní provoz přes aktivní uzel. Pokud provozujete pár HA, berte to jako návrhové omezení, ne jako poznámku pod čarou, a rozhodněte, který uzel prefix vlastní, než jej schválíte na obou. Na jediném routeru zní stejné varování jako připomínka, že přijímání patří klientům, ne stroji, který inzeruje. Zapište si, která brána byla zavřená.

U běžného klienta sekvence končí testem aplikace, který na začátku selhal. U routeru projděte předávání, inzerci, schválení a firewall v tomto pořadí, protože první chybějící přesně vytváří vypršení, se kterým jste začali.

Související články