Miksi hyväksytty Tailscale-aliverkon reitti yhä päättyy aikakatkaisuun
Reitin hyväksyntä jakaa vain aliverkon reitin. Jos palvelu yhä päättyy aikakatkaisuun, tarkista asiakkaan reitin hyväksyntä, edelleenlähetys ja sitä koskeva käyttösääntö.
Hallintakonsolin hyväksyntä näyttää viimeiseltä vaiheelta, eikä se sitä ole. Ensin sovellus päättyy aikakatkaisuun, ja vasta sen jälkeen huomaat reitittimen olevan verkossa ja reitin hyväksytyn. Hyväksyntä on jakeluvaihe, ei lupa eikä edelleenlähetyksen tae. Neljän vaiheen on osuttava kohdakkain ennen kuin paketti saavuttaa aliverkkoreitittimen takana olevan isäntäkoneen, ja jokainen voi onnistua, kun seuraava epäonnistuu. Käy ne järjestyksessä läpi ja pysähdy ensimmäiseen vaiheeseen, joka ei pidä.
Neljä vaihetta, yksi vika
Reititin mainostaa etuliitettä, tailnet hyväksyy mainoksen, asiakas hyväksyy saamansa reitin ja käyttösääntö sallii kyseisen yhteyden. Nämä ovat neljä erillistä päätöstä, jotka tekevät kolme eri komponenttia. Hyväksytty reitti kertoo siis vain, että verkko on nyt osa tailnetin reititystaulukkoa.
Neljäs vaihe ohitetaan useimmin, koska kolme ensimmäistä tuottavat näkyvän tilan. Lupa, joka kattaa reitittimen oman tailnet-osoitteen, ei automaattisesti kata sen takana olevaa yksityistä aliverkkoa. Ne ovat eri kohteita, ja käyttösääntö arvioidaan kohde kerrallaan.
Linuxissa kolmannella vaiheella on myös oletusarvo, joka yllättää: aliverkon reittien hyväksyminen on valinnaista. Useat graafisen käyttöliittymän asiakkaat hyväksyvät mainostetut reitit oletuksena, joten sekalainen laivue voi näyttää yhden vioittuneen koneen, kun muut toimivat.
Vahvista asetus vioittuneella koneella sen sijaan, että olettaisit alustan. Reitti ei koskaan ollut puuttuva pala toimivilla koneilla, joten anna niiden todistaa, että tailnetin puoli on terve. Tailscalen dokumentaatio aliverkkoreitittimistä kattaa hyväksynnän, asiakkaan reittihyväksynnän ja käyttösääntövaiheen.
Tarkista reitti siellä, missä asiakas toimii
Aloita epäonnistuvasta asiakkaasta, älä reitittimestä. Vahvista, että reitti on olemassa ja että asiakkaan asetus ylipäätään sallii reittien hyväksymisen.
tailscale status
tailscale debug prefs | grep -i route
ip route get 10.20.0.42
Ensimmäinen komento näyttää vertaisluettelon ja sen, onko aliverkkoreititin tavoitettavissa, toinen tulostaa asiakkaan asetukset mukaan lukien reittihyväksynnän lipun, ja kolmas kysyy ytimeltä, mitä liittymää se käyttäisi aliverkon todelliseen isäntäkoneeseen. Jos viimeinen komento nimeää fyysisen liittymän Tailscale-liittymän sijaan, reitti ei koskaan päätynyt taulukkoon. Puuttuva reitti on asiakkaan puolen ongelma, ei hyväksynnän ongelma. Korjaa se ennen kuin katsot käyttösääntöä.
Hyväksyäksesi reitit Linuxissa yhdistä uudelleen lipun kanssa sen sijaan, että olettaisit sen olevan asetettu: tailscale up --accept-routes. Muilla lipuilla liittynyt asiakas säilyttää ne, kunnes ne muutetaan, joten tarkista nykyinen asetus ennen toisen lisäämistä. Ensimmäisen komennon uudelleenajo muutoksen jälkeen näyttää reitin taulukossa.
Todista edelleenlähetys ja paluupolku
Hyväksyntä ei määritä reititintä välittämään paketteja eikä järjestä vastausta. Molemmat ovat isäntätason asioita reitittimen LAN-puolella. Testaa ne reitittimellä, ei asiakkaalla.
sysctl net.ipv4.ip_forward
iptables -t nat -L POSTROUTING -n -v
tcpdump -ni any host 10.20.0.42 and port 443
Ensimmäisen komennon on ilmoitettava 1, muuten ydin pudottaa välitetyn paketin. Toinen näyttää, kirjoittaako aliverkkoreitin maskaus lähteen uudelleen, mikä on oletuskäyttäytyminen ja yleensä se, mitä haluat. Kolmas näyttää, saapuvatko pyynnöt kohteeseen ja tuleeko jotain takaisin; vastaamaton pyyntö on paluupolun ongelma, ei hyväksynnän ongelma. Lue kolme tulosta yhdessä ennen kuin muutat mitään niistä.
Jos maskaus on poistettu käytöstä, kohdeverkko tarvitsee reitin takaisin tailnetin osoitteisiin, ja jokaisen välissä olevan hypyn on tiedettävä se. Maskauksen kytkeminen takaisin on nopeampi korjaus yhdelle palvelulle, mutta kustannuksena alkuperäisen asiakasosoitteen piilottaminen kohteelta. Tämä vaihtokauppa on merkityksellinen, kun kohde kirjaa lähdeosoitteita auditointia varten, joten päätä se tietoisesti sen sijaan että kääntäisit lipun kesken tapahtuman. Dokumentoi valintasi, koska seuraava henkilö näkee vain toisen kahdesta käyttäytymisestä.
Lue resurssin käyttösääntö
Kun reitti on paikallaan ja edelleenlähetys todistettu, jäljellä oleva epäilty on käyttösääntö. Lue lupa, jonka pitäisi sallia yhteys, ja tarkista sen kohde, ei vain lähde. Myös asiakkaan oma identiteetti on vastattava käyttösäännön valitsinta, joten tallenna se samalta koneelta, joka epäonnistuu.
tailscale status --json | head -40
tailscale ping <router-name-or-tailnet-ip>
ping -c 3 10.20.0.42
Tilatuloste tunnistaa asiakkaan omat osoitteet ja vertaiset, jotka se näkee, ja niitä käyttösäännön lähdevalitsimen on vastattava. tailscale ping todistaa tailnet-reitin itse aliverkkoreitittimelle; se ratkaisee vertaisnimet ja tailnet-osoitteet, ei mainostetun aliverkon sisäisiä isäntiä. Kolmas komento lähettää tavallisen ICMP-kaiun aliverkkoreitin kautta, joten sen tulos kuvaa kohdetta eikä reititintä. Tailnet-tason kieltäytyminen palaa yleensä kieltäytymisenä, kun taas paketti, joka lähtee eikä koskaan palaa, päättyy aikakatkaisuun.
Epäonnistuva nimi on eri kysymys kuin epäonnistuva osoite; ratkaise isäntä suoraan ennen kuin syytät reittiä. Kirjoita lupa resurssin todellisen tarpeen mukaan, ei koko aliverkon mukaan. Koko /24:n avaaminen, jotta yksi sovellus toimii, on tapa, jolla kapeasta pyynnöstä tulee laaja lupa, jota kukaan ei myöhemmin uskalla poistaa.
Jos tavoite oli internet-yhteys eikä yksityinen aliverkko, oikea komponentti on poistumissolmu, ei aliverkkoreititin, ja käyttösääntö sekä reititys eroavat vastaavasti. Tarkista tuo päätös ennen luvan laajentamista. Poistumissolmu muuttaa oletusreittiä; aliverkkoreititin vain mainostaa etuliitettä.