Zašto Linuxov Tailscale klijent ignorira objavljene rute podmreže
Tablica 52 je znak: Linuxov Tailscale klijent instalira objavljenu rutu podmreže tek nakon --accept-routes, a odobrenje uređaja je odvojena vrata.
Na Linux prijenosniku ste, tailscale status prikazuje ostala računala, a NAS na 10.80.0.25 i dalje završava istekom vremena. Tailnet je zdrav, usmjerivač 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 usmjerivaču, zatim odobrenje, zatim pravila, i tek onda sama odredišna adresa. Svaka vrata padaju s istim istekom, pa je redoslijed važniji od naredbi.
Što Linuxov klijent odbija instalirati
Tailscale klijenti na Linuxu ne prihvaćaju objavljene rute podmreže osim ako ih to zatražite. Bez te postavke klijent se pridružuje tailnetu i doseže adrese kolega, dok svaki prefiks koji usmjerivač objavi ostaje neiskorišten. Zadana vrijednost je namjerna i zato simptom izgleda kao pokvaren usmjerivač, a ne kao lokalna odluka.
Dvije različite stvari ovdje se zovu usmjeravanjem, a samo jedna je vaša. Usmjerivač objavljuje prefiks u tailnet; vaše računalo 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 što uredite.
Uključite prihvaćanje ruta za ovo računalo
Postavite preferenciju na klijentu, a zatim pogledajte što se promijenilo umjesto da pretpostavite da je naredba 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 tablicu na Linuxu, pa prefiks koji se pojavi u tablici 52 izravan je dokaz da je ovaj klijent instalirao objavu. Ako vaš raspon nije u toj tablici, zaustavite se: problem je lokalni i nikakav rad na usmjerivaču ga neće promijeniti.
Stariji klijenti izlažu istu preferenciju kao zastavicu na naredbi 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 tablicu i vaša izmjena nestaje pri sljedećem spajanju. Provjerite verziju prije nego što kopirate naredbu iz starijeg teksta.
Provjerite objavu i odobrenje odvojeno
Na usmjerivaču podmreže prefiks mora biti objavljen, a jezgra mora prosljeđivati pakete između sučelja. Objava bez prosljeđivanja daje vam odobrenu rutu koja tiho odbacuje promet, 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
Usporedite objavljeni prefiks s adresom kojoj zaista pokušavate pristupiti, znak po znak. Usmjerivač 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šća o pokvarenoj ruti završava ovdje. Popravite objavu prije nego što dirnete bilo što nizvodno.
Odobrenje su sljedeća vrata i lako se preskoči kada je usmjerivač konfiguriran iz ljuske. Objava mora biti omogućena za taj uređaj u administrativnoj konzoli prije nego što ga druga računala smiju koristiti. Prihvaćanje 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 usmjerivača 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 usmjeravanja.
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 to tretirati kao problem rute. Ako nijedno ne odgovara, vratite se odjeljak natrag 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, jezgra preferira izravno povezanu rutu i promet nikad ne napušta računalo; to se događa kada kuća i ured oboje izaberu 192.168.1.0/24.
Zašto zastavica klijenta nije postavka usmjerivača
To su različite uloge s različitim zahtjevima, a kopiranje klijentske zastavice na usmjerivač je način na koji radni tailnet dobije petlju. Računalo koje objavljuje rute treba prosljeđivanje, pravila vatrozida koja dopuštaju proslijeđeni promet i odluku o tome koje prefikse objavljuje. Ništa od toga ne podrazumijeva --accept-routes.
Dokumentacija o usmjerivačima podmreže upozorava da ne uključujete prihvaćanje ruta na redundantnim usmjerivačima koji objavljuju jedan prefiks, jer standby čvor može gurnuti promet 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 usmjerivaču isto upozorenje čita se kao podsjetnik da prihvaćanje pripada klijentima, a ne računalu koje objavljuje. Zapišite koja su vrata bila zatvorena.
Za običan klijent slijed završava testom aplikacije koji je pao na početku. Za usmjerivač pregledajte prosljeđivanje, objavu, odobrenje i vatrozid tim redom, jer prvi koji nedostaje proizvodi točno onaj istek s kojim ste počeli.