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 pod-mrež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 spolja: 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 redosled važniji od komandi.

Šta Linux klijent odbija da instalira

Tailscale klijenti na Linuxu ne prihvataju objavljene rute pod-mrež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šćen. Zadana vrednost je namerna i zato simptom izgleda kao pokvaren ruter, a ne kao lokalna odluka.

Dve različite stvari se ovde 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 celo popodne. Otkrijte koja strana odbija pre nego što bilo šta uredite.

Uključi prihvatanje ruta za ovu mašinu

Postavite preferenciju na klijentu, a zatim pogledajte šta se promenilo umesto da pretpostavite da je komanda delovala. Trenutni oblik primenjuje 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 promeniti.

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 umesto ručnog uređivanja ruta, jer demon prepisuje svoju tabelu i vaša izmena nestaje pri sledećem spajanju. Proverite verziju pre nego što kopirate komandu iz starijeg teksta.

Proveri objavu i odobrenje odvojeno

Na ruteru pod-mreže prefiks mora biti objavljen, a jezgro mora prosleđivati pakete između interfejsa. Objava bez prosleđ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 uverljivo. Većina izveštaja o pokvarenoj ruti završava ovde. Popravite objavu pre nego što dirnete bilo šta nizvodno.

Odobrenje je sledeć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 pre nego što ga druge mašine smeju koristiti. Prihvatanje ruta na klijentu ništa ne odobrava i ne nadjačava nijedno pravilo pristupa.

Proveri privatnu adresu pre imena hosta

Uspeš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 razrešavanjem imena i treba da prestanete da to tretirate 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 mestima.

Jedna lokalna provera vredi pre nego što okrivite tailnet. Kada vaš trenutni LAN koristi isti prefiks kao udaljena pod-mreža, jezgro preferira direktno povezanu rutu i saobraćaj nikad ne napušta mašinu; to se dešava kada kuća i kancelarija oboje izaberu 192.168.1.0/24.

Zašto zastavica klijenta nije postavka rutera

To su različite uloge s različitim zahtevima, a kopiranje klijentske zastavice na ruter je način na koji radni tailnet dobije petlju. Mašina koja objavljuje rute treba prosleđivanje, firewall pravila koja dozvoljavaju prosleđeni saobraćaj i odluku o tome koje prefikse objavljuje. Ništa od toga ne podrazumeva --accept-routes.

Dokumentacija o ruterima pod-mrež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 poseduje prefiks pre nego što ga odobrite na oba. Na jednom ruteru isto upozorenje čita se kao podsetnik da prihvatanje pripada klijentima, a ne mašini koja objavljuje. Zapišite koja kapija je bila zatvorena.

Za običan klijent sled završava testom aplikacije koji je pao na početku. Za ruter pregledajte prosleđivanje, objavu, odobrenje i firewall tim redom, jer prvi koji nedostaje proizvodi tačno onaj istek s kojim ste počeli.

Povezani članci