Zašto Linux Tailscale klijent ignoriše objavljene rute podmreže
Tabela 52 je znak: Linux Tailscale klijent instalira objavljenu rutu podmreže tek nakon --accept-routes, a odobrenje uređaja je odvojena kapija.
Na Linux prenosniku ste, tailscale status prikazuje ostale mašine, a NAS na 10.80.0.25 i dalje istekom vremena. Tailnet je zdrav, ruter podmreže je na mreži, i ništa u izlazu klijenta ne kaže zašto je LAN iza njega nedostupan. Vodič ispod kreće od tog simptoma prema van: zastavica na ovom klijentu, zatim objava na ruteru, zatim odobrenje, zatim pravila, i tek onda sama odredišna adresa. Svaka kapija pada s istim istekom, pa je redoslijed važniji od komandi.
Šta Linux klijent odbija da instalira
Tailscale klijenti na Linuxu ne prihvataju objavljene rute podmreže osim ako ih to zatražite. Bez te postavke klijent se pridružuje tailnetu i doseže adrese peerova, dok svaki prefiks koji ruter objavi ostaje neiskorišten. Zadana vrijednost je namjerna i zato simptom izgleda kao pokvaren ruter, a ne kao lokalna odluka.
Dvije različite stvari se ovdje zovu rutiranjem, a samo jedna je vaša. Ruter objavljuje prefiks u tailnet; vaša mašina odlučuje hoće li ga instalirati. Kvar u bilo kojoj od njih daje isti istek, zato nagađanje troši cijelo poslijepodne. Otkrijte koja strana odbija prije nego što bilo šta uredite.
Uključite prihvatanje ruta za ovu mašinu
Postavite preferenciju na klijentu, a zatim pogledajte šta se promijenilo umjesto da pretpostavite da je komanda djelovala. Trenutni oblik primjenjuje postavku bez ponavljanja prijave, što je važno kada ste usred sesije.
sudo tailscale set --accept-routes
tailscale status
ip route show table 52
Tailscale instalira prihvaćene rute u svoju tabelu na Linuxu, pa prefiks koji se pojavi u tabeli 52 izravan je dokaz da je ovaj klijent instalirao objavu. Ako vaš raspon nije u toj tabeli, zaustavite se: problem je lokalni i nikakav rad na ruteru ga neće promijeniti.
Stariji klijenti izlažu istu preferenciju kao zastavicu na komandi za prijavu, pa je sudo tailscale up --accept-routes rezervna opcija kada tailscale set nedostaje. Koristite je umjesto ručnog uređivanja ruta, jer demon prepisuje svoju tabelu i vaša izmjena nestaje pri sljedećem spajanju. Provjerite verziju prije nego što kopirate komandu iz starijeg teksta.
Provjerite objavu i odobrenje odvojeno
Na ruteru podmreže prefiks mora biti objavljen, a jezgro mora prosljeđivati pakete između interfejsa. Objava bez prosljeđivanja daje vam odobrenu rutu koja tiho odbacuje saobraćaj, a to je najčešća nedovršena postavka.
sudo tailscale up --advertise-routes=10.80.0.0/24
sysctl net.ipv4.ip_forward
ip -br addr
Uporedite objavljeni prefiks s adresom kojoj zaista pokušavate pristupiti, znak po znak. Ruter koji objavljuje 10.70.0.0/24 ne govori ništa o NAS-u na 10.80.0.25, a nepodudarnost je nevidljiva u svakom statusnom izlazu jer oba broja izgledaju jednako uvjerljivo. Većina izvještaja o pokvarenoj ruti završava ovdje. Popravite objavu prije nego što dirnete bilo šta nizvodno.
Odobrenje je sljedeća kapija i lako se preskoči kada je ruter konfigurisan iz ljuske. Objava mora biti omogućena za taj uređaj u administratorskoj konzoli prije nego što ga druge mašine smiju koristiti. Prihvatanje ruta na klijentu ništa ne odobrava i ne nadjačava nijedno pravilo pristupa.
Provjerite privatnu adresu prije imena hosta
Uspješna veza s vlastitom tailnet adresom rutera dokazuje da tailnet radi, što ste već znali. Koristan test je usluga koja vam zaista treba, prvo prema privatnoj adresi, kako se kvar DNS-a ne bi mogao predstaviti kao kvar rutiranja.
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
Ako adresa odgovara, a ime hosta ne, imate problem s razrješavanjem imena i trebate prestati tretirati to kao problem rute. Ako nijedno ne odgovara, vratite se sekciju nazad i potvrdite da objava pokriva adresu. Dva kvara izgledaju identično iz aplikacije i popravljaju se na različitim mjestima.
Jedna lokalna provjera vrijedi prije nego što okrivite tailnet. Kada vaš trenutni LAN koristi isti prefiks kao udaljena podmreža, jezgro preferira direktno povezanu rutu i saobraćaj nikad ne napušta mašinu; to se dešava kada kuća i ured oboje izaberu 192.168.1.0/24.
Zašto zastavica klijenta nije postavka rutera
To su različite uloge s različitim zahtjevima, a kopiranje klijentske zastavice na ruter je način na koji radni tailnet dobije petlju. Mašina koja objavljuje rute treba prosljeđivanje, firewall pravila koja dozvoljavaju proslijeđeni saobraćaj i odluku o tome koje prefikse objavljuje. Ništa od toga ne podrazumijeva --accept-routes.
Dokumentacija o ruterima podmreže upozorava da ne uključujete prihvatanje ruta na redundantnim ruterima koji objavljuju jedan prefiks, jer standby čvor može gurnuti saobraćaj koji je već lokalni kroz aktivni. Ako vodite HA par, tretirajte to kao projektno ograničenje, a ne fusnotu, i odlučite koji čvor posjeduje prefiks prije nego što ga odobrite na oba. Na jednom ruteru isto upozorenje čita se kao podsjetnik da prihvatanje pripada klijentima, a ne mašini koja objavljuje. Zapišite koja kapija je bila zatvorena.
Za običan klijent slijed završava testom aplikacije koji je pao na početku. Za ruter pregledajte prosljeđivanje, objavu, odobrenje i firewall tim redom, jer prvi koji nedostaje proizvodi tačno onaj istek s kojim ste počeli.