Miért fut még mindig időtúllépésbe egy jóváhagyott Tailscale-alhálózati útvonal
Az útvonal jóváhagyása csak egy alhálózati útvonalat oszt ki. Ha a szolgáltatás még mindig időtúllépésbe fut, ellenőrizze az útvonal elfogadását a kliensen, a továbbítást és a rá vonatkozó hozzáférési szabályt.
A jóváhagyás az adminisztrációs konzolon az utolsó lépésnek tűnik, és nem az. Először az alkalmazás fut időtúllépésbe, és csak utána találja meg a routert online állapotban és az útvonalat jóváhagyva. A jóváhagyás egy terjesztési lépés, nem engedély és nem a továbbítás garanciája. Négy szakasznak kell összeérnie ahhoz, hogy egy csomag eljusson egy alhálózati router mögötti gazdagéphez, és mindegyik sikerülhet, miközben a következő meghiúsul. Haladjon végig rajtuk sorrendben, és álljon meg az első szakasznál, amely nem tart.
Négy szakasz, egy hiba
A router meghirdeti az előtagot, a tailnet jóváhagyja ezt a hirdetést, a kliens elfogadja a kapott útvonalat, és a hozzáférési szabályzat engedélyezi az adott kapcsolatot. Ez négy külön döntés három különböző komponenstől. A jóváhagyott útvonal tehát csak azt jelenti, hogy a hálózat mostantól a tailnet útválasztási táblájának része.
A negyedik szakaszt hagyják ki a leggyakrabban, mert az első három látható állapotot hoz létre. Egy engedély, amely a router saját tailnet-címét fedi le, nem fedi le automatikusan az mögötte lévő privát alhálózatot. Ezek különböző célok, és a szabályzatot célonként értékelik.
Linuxon a harmadik szakasznak is van egy alapértelmezése, amely meglepi az embereket: az alhálózati útvonalak elfogadása opcionális. Több grafikus kliens alapértelmezés szerint elfogadja a meghirdetett útvonalakat, így egy vegyes flotta egy hibás gépet mutathat, miközben a többi működik.
Erősítse meg a beállítást a hibás gépen, ahelyett hogy platformot feltételezne. Az útvonal soha nem volt a hiányzó darab a működő gépeken, ezért hagyja, hogy azok bizonyítsák a tailnet oldal egészségét. A Tailscale alhálózati routerekről szóló dokumentációja lefedi a jóváhagyást, a kliens útvonal-elfogadását és a szabályzat szakaszát.
Ellenőrizze az útvonalat ott, ahol a kliens fut
A hibás klienssel kezdje, ne a routerrel. Erősítse meg, hogy az útvonal jelen van, és hogy a kliens beállítása egyáltalán engedi az útvonalak elfogadását.
tailscale status
tailscale debug prefs | grep -i route
ip route get 10.20.0.42
Az első parancs a társak listáját és azt mutatja, elérhető-e az alhálózati router, a második kiírja a kliens beállításait, beleértve az útvonal-elfogadás jelzőjét, a harmadik pedig megkérdezi a kernelt, melyik interfészt használná egy valódi gazdagéphez az alhálózaton. Ha az utolsó parancs a fizikai interfészt nevezi meg a Tailscale interfésze helyett, az útvonal soha nem került be a táblába. A hiányzó útvonal kliensoldali probléma, nem jóváhagyási probléma. Javítsa ki, mielőtt a szabályzatra néz.
Ha Linuxon útvonalakat akar elfogadni, kapcsolódjon újra a jelzővel, ahelyett hogy feltételezné, hogy be van állítva: tailscale up --accept-routes. A más jelzőkkel csatlakozott kliens megtartja azokat, amíg meg nem változtatják, ezért ellenőrizze a jelenlegi beállítást, mielőtt újat adna hozzá. Az első parancs újbóli futtatása a változtatás után megmutatja az útvonalat a táblában.
Bizonyítsa a továbbítást és a visszautat
A jóváhagyás nem állítja be a routert csomagok továbbítására, és nem intézi el a választ. Mindkettő gazdagépszintű kérdés a router LAN oldalán. A routeren tesztelje őket, ne a kliensen.
sysctl net.ipv4.ip_forward
iptables -t nat -L POSTROUTING -n -v
tcpdump -ni any host 10.20.0.42 and port 443
Az első parancsnak 1-et kell jelentenie, különben a kernel eldobja a továbbított csomagot. A második megmutatja, hogy az alhálózati útvonal maszkolása átírja-e a forrást, ami az alapértelmezett viselkedés és általában az, amit szeretne. A harmadik megmutatja, hogy a kérés eléri-e a célt, és hogy visszajön-e valami; a válasz nélküli kérés visszaút-probléma, nem jóváhagyási probléma. Olvassa el a három eredményt együtt, mielőtt bármelyiket megváltoztatja.
Ha a maszkolás le van tiltva, a célhálózatnak útvonalra van szüksége vissza a tailnet címeihez, és minden közbenső ugrásnak tudnia kell róla. A maszkolás visszakapcsolása a gyorsabb javítás egyetlen szolgáltatás esetén, de annak árán, hogy az eredeti klienscím elrejtőzik a cél elől. Ez a csere akkor számít, amikor a cél naplózza a forráscímeket ellenőrzéshez, ezért tudatosan döntse el, ahelyett hogy incidens közben átbillentené a jelzőt. Dokumentálja, melyik lehetőséget választotta, mert a következő ember csak a két viselkedés egyikét fogja látni.
Olvassa el az erőforrás hozzáférési szabályát
Ha az útvonal jelen van és a továbbítás bizonyított, a maradék gyanúsított a szabályzat. Olvassa el az engedélyt, amelynek engedélyeznie kellene a kapcsolatot, és ellenőrizze a célját, ne csak a forrását. A kliens saját identitásának is egyeznie kell a szabályzat szelektorával, ezért rögzítse ugyanarról a gépről, amelyik meghiúsul.
tailscale status --json | head -40
tailscale ping <router-name-or-tailnet-ip>
ping -c 3 10.20.0.42
Az állapotkimenet azonosítja a kliens saját címeit és az általa látható társakat, és a szabályzat forrás-szelektorának ezekhez kell illeszkednie. tailscale ping bizonyítja a tailnet útvonalát magához az alhálózati routerhez; társneveket és tailnet-címeket old fel, nem egy meghirdetett alhálózaton belüli gazdagépeket. A harmadik parancs normál ICMP-visszhangot küld az alhálózati útvonalon, ezért az eredménye a célt írja le, nem a routert. A tailnet szintű elutasítás általában elutasításként jön vissza, míg a kimenő és soha vissza nem térő csomag időtúllépésbe fut.
A sikertelen név más kérdés, mint a sikertelen cím; oldja fel a gazdagépet közvetlenül, mielőtt az útvonalat hibáztatja. Az engedélyt a tényleges erőforrás-igényhez írja, ne az egész alhálózathoz. Egy egész /24 megnyitása, hogy egy alkalmazás működjön, az az út, amelyen egy szűk kérés széles engedéllyé válik, amelyet később senki nem mer eltávolítani.
Ha a cél internetes kimenet volt, nem privát alhálózat, akkor a helyes komponens egy kilépési csomópont, nem alhálózati router, és a szabályzat valamint az útválasztás ennek megfelelően tér el. Ellenőrizze ezt a döntést, mielőtt szélesíti az engedélyt. A kilépési csomópont megváltoztatja az alapértelmezett útvonalat; az alhálózati router csak előtagot hirdet.