Eenweg-Verkehr nom Ofschalten vum Tailscale-Subnetz-SNAT
Schalt SNAT op engem Tailscale-Subnetzrouter aus, an d'Äntwerten héieren op ze kommen. D'real Quelladress bleift, dofir brauch d'LAN eng Retourroute op 100.64.0.0/10.
Schalt Quell-NAT op engem Tailscale-Subnetzrouter aus, an den Tunnel schafft weider, während d'Verbindungen duerch hien ophalen. D'Ufroen erreechen d'Destinatioun mat der eegener Overlay-Adress vum wäitem Client, wat genau de Sënn vun der Ännerung ass, an d'Äntwerten brauchen elo e Wee, deen d'LAN ni misst wëssen. Ouni dee Wee landen d'Paketen, d'Äntwerten verloossen iwwer de gewéinlechen Gateway, an de Feeler weist sech als Firewall-Problem, deen keen Firewall-Reeg erkläert. Den Tunnel ass gesond; de Retourwee feelt.
Wat SNAT verstoppt huet
Mat SNAT aktiv schreift den Router d'Quelladress ëm op seng eege LAN-Adress, éier en an d'Subnetz weiderleet, sou datt d'Destinatioun engem Host äntwert, deen et schonn erreeche kann, an nach eppes anescht konfiguréiert misst ginn. Ausschalten erhält déi ursprénglech Quell, an d'Destinatioun gesäit dann eng Adress am Overlay-Beräich amplaz vun engem Noper op sengem eegene Kabel. Déi Adress ass real an iwwer den Tailnet routbar, awer si ass vun der LAN iwwer de Standard-Gateway net erreechbar. Den dokumentéierte Schalter ass --snat-subnet-routes=false, ugewannt op den Linux-Subnetzrouter selwer.
Et ass eng stänneg Astellung an net en Schalter pro Paket, dofir muss de Retourwee fir all Destinatiounsnetz existéieren, déi dee Router servéiert. Dat mécht d'Ännerung zu enger Deployment-Entscheedung amplaz vun enger Këscht zum Ofkreizen. Alles, wat dee Router servéiert, ierft d'Ufuerderung am selwechten Ament.
Wou de Retourwee kënne wunnen
Dräi Placéierunge si gewéinlech, an si ënnerscheede sech am Erreechen, net an der Richtegkeet. Eng statesch Route um Destinatiounshost ass déi direktst an am mannsten skalierbar, well all Apparat seng eege Kopie brauch. Eng Routentabell an der VPC oder am Site-Router deckt en ganzt Netz op eemol, an eng DHCP-Optioun mat klasslosen stattesche Routen erreecht d'Clienten automatesch, awer versot stëll op Apparater, déi se ignoréieren.
ip route add 100.64.0.0/10 via 192.168.1.10
ip route get 100.64.0.5
Wéi eng Placéierung Dir och wielt, den nächsten Hop ass d'LAN-Adress vum Router an ni seng Tailnet-Adress. En LAN-Host kann den Overlay net erreechen, bis hien dës Route huet, dofir ass en nächsten Hop am Overlay zirkulär an schéckt de Paket néierens. Dee eenzege Feeler erkläert déi meescht Konfiguratiounen, déi richteg ausgesinn an awer versoen, an hie lieft duerch all Kontroll, déi nëmmen d'Tabelle vum Router selwer liest. Schreif op, wéi eng Placéierung s du benotzt hues, well soss testt déi nächst Persoun déi falsch.
De Feeler als Eenweg-Verkehr liesen
D'Symptom ass méi einfach z'erkennen wéi d'Ursaach: de Service äntwert um Router selwer a bleift stëll vun engem wäite Client. Eng Opnam op der Destinatioun weist Ufroen, déi kommen, an Äntwerten, déi fortgoen, wat wéi en Erfolleg ausgesäit, bis Dir mierkt, wouhin déi Äntwerten ginn. Si ginn zum Standard-Gateway, wat heescht, datt de bannenzege Been geschafft huet an de Retourbeen net.
Huelt amplaz um Router op, well hien zwou Richtunge vun engem Austausch gesäit a weist, ob eng Äntwert iwwerhaapt ukomm ass. Wann d'Äntwert op der Destinatioun erschéngt, awer ni um Router, feelt d'Route oder si ass op der Destinatiounssäit falsch. Wann se um Router erschéngt an do stoppt, läit de Problem weider an et gehéiert zu enger anerer Enquête.
sudo tcpdump -ni any host 100.64.0.5
ip route get 100.64.0.5
Ass déi real Adress eng Route wäert
SNAT ze behalen bleift déi méi einfache Äntwert, ëmmer wann d'Destinatiounsnetz net nei konfiguréiert ka ginn, an de Präis ass, datt all Client am Log an an der Politik vun der Destinatioun wéi de Router ausgesäit. Ausschalten ass gerechtféiert, wann eng Applikatioun déi real Quelladress brauch oder wann d'Netzpolitik Clienten, déi sech ee Router deelen, muss ënnerscheeden. Béid sinn legitim Grënn an keen ass gratis. De Benefice muss et wäert sinn, op all Destinatiounsnetz eng Route z'erhalen, plus d'Firewall-Iwwerpréiwung, déi ënnen beschriwwe gëtt.
Fir eng kleng LAN bezilt sech den Austausch meeschtens, während et sech fir eng Verstreet vun Apparater, déi keng statesch Route huelen, meeschtens net bezilt. Halt d'Entscheedung an de Grond nieft der Routerkonfiguratioun fest, sou datt den nächsten Administrateur weess, wéi eng Verhalensweis bewosst ass. Eng Standardastellung, déi keen opgeschriwwen huet, ass net vun enger Iwwersiicht z'ënnerscheeden.
Firewall, Logging an déi duebel Roll
All Reegel, déi op d'LAN-Adress vum Router gepasst huet, passt elo op eng aner Quell, dorënner Erlaabnesregelelen an all Logfeld, dat de Router als Client festgehalen huet. Liest déi Reegelen éier dem éischten Test an net no dem éischten Ausfall, well eng Reegel, déi nëmmen d'Adress vum Router erlaabt, déi nei Quell ganz blockéiert. Verengt d'Ersetzung op déi Clienten a Porten, déi se brauchen, a bestätegt dann, datt se net stëll den ganzen Tailnet erlaabt.
sudo nft list ruleset | grep -n '100\.64'
sudo iptables-save | grep -n '100\.64'
Een Node, deen zugläich als Exit-Node an als Subnetzrouter déngt, ass eng dokumentéiert Kombinatioun, déi Upstream-Verkehr verléiere kann, soubal Subnetz-SNAT ausgeschalt gëtt. Dës Rolle op verschidde Node ze trennen eliminéiert dee Virbehalt an gëtt all Route a Firewall-Politik een eenzegen Eegentumer. Wann d'Rolle mussen zesumme bleiwen, rechent mat dësem Verhalen a testt et, éier Dir e Client beschëllegt. Halt d'Route, d'Schalterastellung an d'Rollzouweisung an enger Notiz fest, well se zesumme gelies ginn, wann déi nächst Verbindung versot.