Trije ûntwerpen lossen itselde laboratoariumprobleem op: in lyts LAN moat troch in WireGuard-pear nei bûten, wylst de gateway sels syn gewoane ferbining omheech hâldt. De ferliedlike koarte wei is de standertrûte fan de router de tunnel yn te skowen, mar dat brekt it eigen behearspaad fan 'e kast en alles oars dat it trochstjoert. De nijsgjirrige opsje is beliedsrouting beheind ta ien ynterface en ien foarheaksel. Kies tusken harren troch trije fragen oer de masine te beantwurdzjen dy't jo echt hawwe.

Bepale wêr't de útgong wennet

Earste fraach: stjoert dizze host ek foar eat oars troch? In tawijde laboratoariumgateway kin libje mei in trochstjoerbelied dat by standert alles weilûkt. In router mei produksjeplichten kin dat net, en in konkurrearjend regelset oer in beheard firrewâl hinne lizze is krekt de manier hoe't ûnderbrekkings pland wurde. Twadde: kinne jo twa beliedsobjekten en har folchoarder oer werstarts hinne besitte? Tredde: machtiget it pear dat jo hawwe jo tunnelboarneadres en biedt it internetútgong? In pear dat allinnich in priveenetwurk bleatleit is in oar produkt, en gjin pleatslike routingferoaring makket dat goed. As ien antwurd nee is, set de útgong dan yn in nammeromte of in weismiten firtuele masine.

In nammeromte of in VM kostet ûnthâld en jout jo in skjinne ûntploffingsradius. Beliedsrouting kostet twa regels en lit jo ien kast oer om te ûntfâljen.

Kies de útgong dy't jo boarne machtiget

De measte flaters yn dit laboratoarium barre foardat der ek mar ien firrewâlregel bestiet. De operator fan 'e útgong moat it boarneadres akseptearje dat jo pakketten nei oersetting drage, en yn dit ûntwerp is dat it tunneladres en net it LAN-foarheaksel. Dêrom heart maskerjen fan it begjin ôf yn it ûntwerp en net as in lette tafoeging.

Befêstigje trije dingen by de operator: it pear machtiget jo tunneladres, it stjoert IPv4 troch ynstee fan by himsels te einigjen, en it past útgeande NAT ta. Sûnder it earste komme jo pakketten oan en ferdwine. Sûnder it tredde geane se fuort mei in priveeboarne en stjerre op 'e folgjende hop. Kontrolearje dan dat wg-quick net syn eigen standertrûte ynstallearret, wat Table = off foarkomt; dy ynstelling ûnderdrukt it meitsjen fan rûtes, net de AllowedIPs-kontrôles fan it pear of syn DNS-ôfhanneling.

Twa beliedsobjekten dogge it stjoeren

Stjoeren hat in tabel en in regel nedich. De tabel hâldt twa rûtes: it LAN-foarheaksel út 'e LAN-ynterface wei en in standert út 'e tunnel wei. De regel stjoert ferkear dat op 'e LAN-ynterface oankomt en dat foarheaksel draacht de tabel yn. Brûk de iif-selektor njonken de boarnematch, want de eigen WireGuard-pakketten fan 'e gateway ûntsteane lokaal en matche nea in ynkommende ynterface.

De wachter komt foar it sykjen, net dernei. Dy folchoarder is de hiele feiligensdigens fan it ûntwerp.

De wachter is in twadde regel op deselde selektor waans útspraak unreachable is. Jou him in heger nûmerike prioriteit sadat it sykjen noch altyd wint wylst de tunnel omheech is. As de tunnelrûte ferdwynt, jout it sykjen neat werom en de wachter stopet it sykjen ynstee fan it trochfalle te litten nei de WAN-standert yn 'e haadtabel.

ip rule add from 192.168.50.0/24 iif lan0 lookup 51861 pref 1000
ip rule add from 192.168.50.0/24 iif lan0 unreachable pref 1001
ip route add table 51861 default dev wg0

Slút de weromfalskuol foardat jo him iepenje

Ynstallearje de wachter earst en it sykjen dêrnei. Oarsom litte jo in finster fan sekonden wêryn't it ferkear fan in testkliïnt de ferbining omheech berikke kin.

It filter makket it byld kompleet. Yn 'e forward-heak akseptearje jo de rjochting fan LAN nei tunnel foar it testfoarheaksel en de fêstige weromrjochting, en dêrnei smite jo al it oare weilûke; NAT foar dat foarheaksel op 'e tunnel-ynterface giet yn postrouting. Krekt policy drop op 'e trochstjoerkeatling litte is wat in ûntbrekkende rûte yn stilte feroaret ynstee fan yn in lek. Filterjen fan 'e omkearde wei hat losse modus nedich op 'e tunnel-ynterface, want in iepenbiere boarne dy't ûntkapsle oankomt hat syn bêste omkearde rûte oan 'e WAN-kant. Linux nimt de heechste fan 'e wearden all en per ynterface, dus it ynstellen fan 'e tunnel-ynterface is net itselde as falidearring oeral ferswakje.

Bewiis it mei it flatergefal

Freegje de kernel in krekte fraach troch it boarneadres fan 'e kliïnt en de ynterface dêr't it op oankomt te neamen. In sykjen sûnder beide beantwurdet in oare fraach en sil der yn beide gefallen goed útsjen. Sjoch dan nei de firrewâltellers, de oerdrachtsstatus fan it pear en de eigen tsjinst fan 'e kliïnt.

Test it fuortheljen goed. Stop de tunnel wylst de regel en it filter op har plak bliuwe: de kliïnt heart te stûken en it eigen ferkear fan 'e gateway heart te bliuwen wurkjen. Stop dan it pear sûnder de pleatslike ynterface oan te reitsjen, en dat is it gefal dat ûntwerpen fangt dy't allinnich op it bestean fan 'e rûte fertrouwe. Start as lêste opnij en kontrolearje de regelfolchoarder nochris, want in ôfbrekheak dy't de wachter fuorthellet jout it hiele ûntwerp werom oan 'e haadtabel. Skriuw it tafelnûmer, de prioriteiten en de ynterfacenammen op 'e feroaringskaart, want de folgjende persoan dy't in regel tafoeget is dejinge dy't dit brekt.

Relatearre artikelen