Kāpēc Linux Tailscale klients ignorē izsludinātos apakštīkla maršrutus
52. tabula ir pavediens: Linux Tailscale klients izsludināto apakštīkla maršrutu instalē tikai pēc --accept-routes, un ierīces apstiprinājums ir atsevišķi vārti.
Jūs strādājat ar Linux portatīvo datoru, tailscale status uzskaita pārējās mašīnas, un NAS adresē 10.80.0.25 joprojām beidzas ar taimautu. Tailnet ir vesels, apakštīkla maršrutētājs ir tiešsaistē, un klienta izvadē nekas nepasaka, kāpēc aiz tā esošais LAN nav sasniedzams. Tālāk sniegtais ceļvedis virzās no šī simptoma uz āru: karodziņš šajā klientā, tad izsludināšana maršrutētājā, tad apstiprinājums, tad politika, un tikai tad pats galamērķis. Katri vārti neizdodas ar to pašu taimautu, tāpēc secība ir svarīgāka par komandām.
Ko Linux klients atsakās instalēt
Linux Tailscale klienti nepieņem izsludinātos apakštīkla maršrutus, ja vien jūs to nelūdzat. Bez šī iestatījuma klients pievienojas tailnet un sasniedz vienaudžu adreses, kamēr katrs maršrutētāja izsludinātais prefikss paliek neizmantots. Noklusējums ir apzināts, un tāpēc simptoms izskatās kā salūzis maršrutētājs, nevis kā vietējs lēmums.
Šeit divas dažādas lietas sauc par maršrutēšanu, un tikai viena no tām ir jūsējā. Maršrutētājs izsludina prefiksu tailnet tīklā; jūsu mašīna izlemj, vai to instalēt. Bojājums jebkurā no tām dod to pašu taimautu, tāpēc minēšana izšķiež pēcpusdienu. Noskaidrojiet, kura puse atsakās, pirms kaut ko labojat.
Ieslēdziet maršrutu pieņemšanu šai mašīnai
Iestatiet izvēli klientā, un tad apskatiet, kas mainījās, nevis pieņemiet, ka komanda nostrādāja. Pašreizējā forma piemēro iestatījumu, neatkārtojot pieteikšanās plūsmu, kas ir svarīgi, ja esat sesijas vidū.
sudo tailscale set --accept-routes
tailscale status
ip route show table 52
Tailscale Linux sistēmā pieņemtos maršrutus instalē savā tabulā, tāpēc prefikss, kas parādās 52. tabulā, ir tiešs pierādījums, ka šis klients ir instalējis izsludināšanu. Ja jūsu diapazona šajā tabulā nav, apstājieties: problēma ir vietēja, un nekas maršrutētājā to nemainīs.
Vecāki klienti to pašu izvēli piedāvā kā pieteikšanās komandas karodziņu, tāpēc sudo tailscale up --accept-routes ir rezerves variants, ja tailscale set nav. Izmantojiet to, nevis labojiet maršrutus ar roku, jo dēmons pārraksta savu tabulu un jūsu labojums pazūd nākamajā atkārtotajā savienojumā. Pārbaudiet versiju, pirms kopējat komandu no vecāka ieraksta.
Pārbaudiet izsludināšanu un apstiprinājumu atsevišķi
Apakštīkla maršrutētājā prefikss ir jāizsludina, un kodolam ir jāpārsūta paketes starp saskarnēm. Izsludināšana bez pārsūtīšanas dod apstiprinātu maršrutu, kas klusi izmet satiksmi, un tā ir visbiežāk sastopamā pusgatavā konfigurācija.
sudo tailscale up --advertise-routes=10.80.0.0/24
sysctl net.ipv4.ip_forward
ip -br addr
Salīdziniet izsludināto prefiksu ar adresi, kuru patiešām cenšaties sasniegt, burtu pa burtam. Maršrutētājs, kas izsludina 10.70.0.0/24, neko nepasaka par NAS adresē 10.80.0.25, un neatbilstība nav redzama nevienā statusa izvadē, jo abi skaitļi izskatās vienlīdz ticami. Lielākā daļa ziņojumu par salūzušu maršrutu beidzas šeit. Izlabojiet izsludināšanu, pirms aiztiekat kaut ko lejpus.
Apstiprinājums ir nākamie vārti, un to ir viegli izlaist, ja maršrutētājs konfigurēts no čaulas. Izsludināšanai ir jābūt iespējotai šai ierīcei administrācijas konsolē, pirms citas mašīnas to drīkst izmantot. Maršrutu pieņemšana klientā neko neapstiprina un neapiet nevienu piekļuves noteikumu.
Vispirms pārbaudiet privāto adresi, nevis resursdatora vārdu
Veiksmīgs savienojums ar paša maršrutētāja tailnet adresi pierāda, ka tailnet darbojas, ko jūs jau zinājāt. Noderīgais tests ir pakalpojums, kas jums patiešām vajadzīgs, vispirms pret privāto adresi, lai DNS kļūda nevarētu uzdoties par maršrutēšanas kļūdu.
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
Ja adrese atbild, bet resursdatora vārds ne, jums ir nosaukumu izšķiršanas problēma, un no tās vairs nav jāizturas kā pret maršruta problēmu. Ja neatbild neviens, atgriezieties vienu sadaļu atpakaļ un apstipriniet, ka izsludināšana aptver adresi. Abas kļūdas no lietotnes izskatās vienādi un tiek labotas dažādās vietās.
Pirms vainot tailnet, ir vērts veikt vienu vietēju pārbaudi. Kad jūsu pašreizējais LAN izmanto to pašu prefiksu kā attālais apakštīkls, kodols dod priekšroku tieši pievienotajam maršrutam, un satiksme nekad nepamet mašīnu; tas notiek, kad māja un birojs abi izvēlas 192.168.1.0/24.
Kāpēc klienta karodziņš nav maršrutētāja iestatījums
Tās ir dažādas lomas ar dažādām prasībām, un klienta karodziņa kopēšana uz maršrutētāju ir veids, kā strādājošs tailnet iegūst cilpu. Mašīnai, kas izsludina maršrutus, vajag pārsūtīšanu, ugunsmūra noteikumus, kas atļauj pārsūtīto satiksmi, un lēmumu par to, kādus prefiksus tā izsludina. Neko no tā neietver --accept-routes.
Apakštīkla maršrutētāju dokumentācija brīdina neieslēgt maršrutu pieņemšanu liekos maršrutētājos, kas izsludina vienu prefiksu, jo gaidīšanas mezgls var izstumt jau vietējo satiksmi caur aktīvo. Ja uzturat HA pāri, uzskatiet to par projektēšanas ierobežojumu, nevis zemsvītras piezīmi, un izlemiet, kuram mezglam pieder prefikss, pirms apstiprināt to abos. Vienā maršrutētājā tas pats brīdinājums lasāms kā atgādinājums, ka pieņemšana pieder klientiem, nevis izsludinošajai mašīnai. Pierakstiet, kuri vārti bija aizvērti.
Parastam klientam secība beidzas ar lietotnes testu, kas sākumā neizdevās. Maršrutētājam pārskatiet pārsūtīšanu, izsludināšanu, apstiprinājumu un ugunsmūri šajā secībā, jo pirmais trūkstošais rada tieši to taimautu, ar kuru sākāt.