Yksisuuntainen liikenne, kun Tailscale-aliverkon SNAT poistetaan käytöstä
Kytke SNAT pois päältä Tailscale-aliverkon reitittimessä, niin vastaukset lakkaavat saapumasta. Todellinen lähdeosoite säilyy, joten LAN tarvitsee paluureitin 100.64.0.0/10-osoitteeseen.
Kytke lähde-NAT pois päältä Tailscale-aliverkon reitittimessä, niin tunneli jatkaa toimintaansa samalla kun sen läpi kulkevat yhteydet pysähtyvät. Pyynnöt saapuvat kohteeseen etäasiakkaan omalla overlay-osoitteella, mikä on juuri muutoksen tarkoitus, ja vastaukset tarvitsevat nyt reitin, jota LANin ei koskaan tarvinnut tuntea. Ilman tätä reittiä paketit laskeutuvat, vastaukset lähtevät tavallisen yhdyskäytävän kautta ja vika näyttäytyy palomuuriongelmana, jota mikään palomuurisääntö ei selitä. Tunneli on terve; paluuosuus puuttuu.
Mitä SNAT peitti
Kun SNAT on käytössä, reititin kirjoittaa lähdeosoitteen omaksi LAN-osoitteekseen ennen aliverkkoon välittämistä, joten kohde vastaa isännälle, jonne se jo tietää tien, eikä muuta tarvitse määrittää. Pois kytkeminen säilyttää alkuperäisen lähteen, ja kohde näkee silloin overlay-alueen sisällä olevan osoitteen eikä naapuria omalla kaapelillaan. Tämä osoite on todellinen ja reititettävissä tailnetin yli, mutta se ei ole tavoitettavissa LANista oletusyhdyskäytävän kautta. Dokumentoitu kytkin on --snat-subnet-routes=false, ja se kohdistetaan Linux-aliverkkoreitittimeen itseensä.
Se on pysyvä asetus eikä pakettikohtainen kytkin, joten paluureitin on oltava olemassa jokaiselle kohdeverkolle, jota reititin palvelee. Juuri siksi muutos on käyttöönoton päätös eikä valintaruutu. Kaikki, mitä kyseinen reititin palvelee, perii vaatimuksen samalla hetkellä.
Missä paluureitti voi sijaita
Kolme sijoittelua ovat tavallisia, ja ne eroavat kattavuudessa, eivät oikeellisuudessa. Kohdeisännän staattinen reitti on suorin ja vähiten skaalautuva, koska jokainen laite tarvitsee oman kopionsa. VPC:n tai toimipisteen reitittimen reittitaulukko kattaa koko verkon kerralla, ja luokattomia staattisia reittejä kuljettava DHCP-vaihtoehto saavuttaa asiakkaat automaattisesti mutta epäonnistuu hiljaisesti laitteissa, jotka jättävät sen huomiotta.
ip route add 100.64.0.0/10 via 192.168.1.10
ip route get 100.64.0.5
Minkä sijoittelun valitsetkaan, seuraava hyppy on reitittimen LAN-osoite eikä koskaan sen tailnet-osoite. LAN-isäntä ei pääse overlayssä ennen kuin sillä on tämä reitti, joten overlayn sisäinen seuraava hyppy on kehämäinen eikä lähetä pakettia minnekään. Tämä yksi virhe selittää useimmat kokoonpanot, jotka näyttävät oikeilta ja silti epäonnistuvat, ja se kestää jokaisen tarkistuksen, joka lukee vain reitittimen omaa taulukkoa. Kirjoita muistiin, mitä sijoittelua käytit, sillä muuten seuraava henkilö testaa väärää.
Vian lukeminen yksisuuntaiseksi liikenteeksi
Oire on helpompi tunnistaa kuin syy: palvelu vastaa reitittimellä itsellään ja pysyy hiljaisena etäasiakkaalta. Kohteen kaappaus näyttää saapuvat pyynnöt ja lähtevät vastaukset, mikä näyttää onnistumiselta, kunnes huomaat, minne nuo vastaukset ovat menossa. Ne menevät oletusyhdyskäytävälle, mikä tarkoittaa, että saapuva osuus toimi ja paluuosuus ei.
Kaappaa sen sijaan reitittimellä, koska se näkee yhden vaihdon molemmat suunnat ja näyttää, saapuiko vastaus koskaan. Jos vastaus ilmestyy kohteeseen mutta ei koskaan reitittimelle, reitti puuttuu tai on väärä kohteen puolella. Jos se ilmestyy reitittimelle ja pysähtyy siihen, ongelma on kauempana ja kuuluu toiseen tutkintaan.
sudo tcpdump -ni any host 100.64.0.5
ip route get 100.64.0.5
Kannattaako todellinen osoite reittiä
SNATin säilyttäminen on edelleen yksinkertaisempi vastaus aina, kun kohdeverkkoa ei voi määrittää uudelleen, ja hinta on, että jokainen asiakas näyttää reitittimeltä kohteen lokeissa ja käytännössä. Pois kytkeminen on perusteltua, kun sovellus tarvitsee todellisen lähdeosoitteen tai kun verkkokäytännön on eroteltava asiakkaat, jotka jakavat reitittimen. Molemmat ovat päteviä syitä eikä kumpikaan ole ilmainen. Hyödyn on oltava reitin ylläpitämisen arvoinen jokaisessa kohdeverkossa sekä alla kuvatun palomuurikatselmuksen arvoinen.
Yhden pienen LANin kohdalla vaihto yleensä kannattaa, kun taas laitejoukolle, joka ei voi ottaa staattista reittiä, se yleensä ei kannata. Kirjaa päätös ja syy reitittimen kokoonpanon viereen, jotta seuraava ylläpitäjä tietää, mikä toiminta on tarkoituksellista. Oletusta, jota kukaan ei kirjoittanut, ei voi erottaa huolimattomuudesta.
Palomuuri, lokitus ja kaksinkertainen rooli
Jokainen sääntö, joka täsmäsi reitittimen LAN-osoitteeseen, täsmää nyt eri lähteeseen, mukaan lukien sallintasäännöt ja jokainen lokikenttä, joka kirjasi reitittimen asiakkaaksi. Lue nämä säännöt ennen ensimmäistä testiä etkä ensimmäisen epäonnistumisen jälkeen, koska vain reitittimen osoitteen salliva sääntö estää uuden lähteen kokonaan. Rajaa korvaus asiakkaihin ja portteihin, jotka sitä tarvitsevat, ja varmista sitten, ettei se hiljaa päästä koko tailnetiä.
sudo nft list ruleset | grep -n '100\.64'
sudo iptables-save | grep -n '100\.64'
Solmu, joka palvelee sekä poistumissolmuna että aliverkkoreitittimenä, on dokumentoitu yhdistelmä, joka voi pudottaa ylävirran liikennettä, kun aliverkon SNAT on poistettu käytöstä. Näiden roolien erottaminen eri solmuille poistaa varauksen ja antaa jokaiselle reitille ja palomuurikäytännölle yhden omistajan. Jos roolien on pysyttävä yhdessä, odota tätä käyttäytymistä ja testaa se ennen asiakkaan syyttämistä. Pidä reitti, kytkimen asetus ja roolien määritys yhdessä muistiinpanossa, koska ne luetaan yhdessä, kun seuraava yhteys epäonnistuu.