WireGuard habiaratua: erdiko jauziak ezin du bere portuari erantzun
Erdiko jauziak dena tunel bakarrera bidaltzen duenean, sarrerako zerbitzuari erantzunek bide okerra hartzen dute. Interfazean iturburu-portuko arauak konpontzen du.
Hiru WireGuard jauzik helbide publikorik ez duen sare batera iristen dira, eta orduan erdiko makinak entzun behar zuen portuan erantzuteari uzten dio. Aurrerako tunelak oraindik funtzionatzen du, urrutiko ostalariak oraindik erantzuten du, eta erdiko zerbitzaria bakarrik isildu da kanpotik. Konbinazio hori nahasgarria da hain zuzen bere buruari eragindakoa delako: erdiko jauziak bere bideratze-taula obeditzen du, eta taulak erantzunak bide okerretik bidaltzen ditu.
Erdiko kaxarekin hitz egin arte funtzionatzen duen katea
Hartu kate adierazgarri bat: A bezeroak B zerbitzarira iristen da UDP 500 bidez, eta Bk C zerbitzarira egiten du aurrera UDP 500 bidez. Ck bere pare bakarraren helbidetik bakarrik onartzen du trafikoa, eta horrek hosto bihurtzen du eta bere portaera sinple mantentzen du. B ez da hosto bat, eta hutsegite honetan interesgarria den guztia han gertatzen da.
Bereizketa garrantzitsua da hosto eta erdiko rolek kontrako norabideetara tiratzen dutelako. Hosto batek dena tunel bakarrera bidal dezake ondoriorik gabe, ez baita beste ezer hartaz mendekotasunik. Erdiko jauzi bat aldi berean bezeroentzako mutur-puntua eta urruneko alderako bezeroa da, eta bi lan horiek bideratze desberdina nahi dute.
Zergatik irteten da erantzuna tunelatik
Bn, Cra begira dagoen interfazeak AllowedIPs = 0.0.0.0/0 darama dagokion bide lehenetsiarekin batera. Beraz, Bk sortzen duen pakete bakoitza tunel horretara doa, zerbait zehatzagoak lehentasuna lortzen ez badu behintzat.
A-tik Bra bidalitako pakete bat iristen da eta onartu egiten da, B helmuga delako eta tokiko entrega lehenengo gertatzen delako. Erantzuna tokian bertan sortutako pakete erabat berria da, Aren helbide publikora zuzendua, eta helmuga hori tunelera doan bide lehenetsiarekin bat dator. Ck jasotzen du, ez du helbide horren jabetza, eta baztertu egiten du.
Sintoma suebaki-arazo edo gako-desadostasun gisa irakurtzen da, eta hemen ez da bat ere egia. Cra bidean den tunelean egindako kapturak erantzunak norabide okerrean doazela erakusten du. Behaketa bakar horrek konfigurazioa irakurtzeak baino denbora gehiago aurrezten du, beraz idatzi ezazu gakoak aldatzen hasi aurretik. Kaptura ikusi ez duen edonork tunela bera hondatuta dagoela pentsatuko du.
Konponketa estua: iturburu-portu batekin bat datozen politika-arauak
Bren entzuten duen socket-etik erantzunak 500 iturburu-portuarekin irteten dira. Politika-arau batek horrekin bat egin dezake eta pakete horiek taula arruntera itzuli:
ip rule add sport 500 table main priority 100
ip rule add sport 8080 table main priority 101
Politika-arauak lehentasun-ordenan kontsultatzen dira, eta taula nagusia 32766n dago, beraz 100eko araua tunelaren bide lehenetsiak hitzik esan baino lehen galdetzen da. Gehitu sarrera bat kanpotik irisgarri egon behar duen portu bakoitzeko eta besterik ez, birbidalitako trafikoak eraiki zen tunela erabiltzen jarrai dezan.
Ezagutu trikimailu honen muga. sport hautatzaileak tokian sortutako paketeei egiten die bat, eta horrek erantzun-kasua zehazki estaltzen du eta nahita ez du estaltzen Bk besterik gabe beste norbaitek ordezkatzen duen trafikoa. Bren atzean ostatatutako zerbitzu batek oraindik behar du bere erantzuna, eta kontrakoa planteatzeak lehen zerbitzuarentzat funtzionatzen duen eta bigarrenarentzat huts egiten duen konponketa bat sortzen du.
Eman arauari jabe bat
Idatzitako araua ez da hurrengoan agertuko interfazea berreraikitzean. WireGuard ezarpen batean, jarri interfazea sortzen eta kentzen den tokian:
PostUp = ip rule add sport 500 table main priority 100
PostDown = ip rule del sport 500 table main priority 100
Interfazearen jabea NetworkManager, banaketa-kako bat edo edukiontziaren sarrera-puntu bat bada, bikotea jabe horri dagokio, eta ez eskuz editatu den fitxategi bati. Egiaztatu arau eraginkorrak berriz konektatu ondoren, ez soilik lehen abiaraztearen ondoren, lehen abiaraztea beti funtzionatzen duen kasua baita.
Konparatu alternatibak zintzotasunez
Iturburu-portuko araua lau irtenbideetatik bat da, eta horietan estuena. Abantaila du tunelaren politikari batere ez diola ukitzen, eta horregatik geroagoko aldaketekin irauten du. Konponketa estuek ozenki huts egiten dute aplikatzeari uzten diotenean, aldiz salbuespen zabalak isilka funtzionatzen jarraitzen du haren zergatia desagertu eta askoz geroago. Aldea hori dotoretasuna baino garrantzitsuagoa da bi urte barru beste norbaitek kaxaren jabe egiten denean.
| Approach | What it costs | Where it breaks |
|---|---|---|
| Source-port policy rule | One rule per exposed port | Anything B forwards rather than originates |
| Destination exception route | A route pinned to specific client addresses | Clients whose address changes |
| Stop full-tunnelling on B | Loses the catch-all path toward C | Designs that depend on it |
| Split into two tunnels | More interfaces and more policy | Nothing, at the cost of complexity |
Egiaztatu bi muturretatik aukeratu ondoren. Atik, hasi konexio bat Bren portura eta eutsi okupatuta denbora batez. Bn, egin nukleoari erantzun-bidea ip route get <address-of-A> sport 500 bezalako zerbait erabiliz justifikatzeko, eta berretsi tunela ez ezik WAN interfazea aipatzen duela. Ondoren, egiaztatu Cren atzean ezerk oraindik katean zehar erantzuten duela, eta horrek frogatzen du salbuespena estua mantendu zela saihesbide bihurtu ordez. Azkenik, idatzi portuak diseinu-oharretan, bestela hurrengo operadoreak beste zerbitzu batean berraurkituko du.