Ien /24 foar in laboratoariumprinter ferdwynt tusken twa ip route show-opropen, en it kliïntloch seit allinnich dat it netwurk feroare is. Der wie neat mis mei it kommando, it foarheaksel of jo rjochten. In bedriuwsclient dy't it rûtearringsmodel fan de gasthear besit, set dat model opnij troch as immen oars it bewurket, sadat de yngong dy't jo tafoege hawwe as ynkringer ferwidere wurdt. Der tsjin fjochtsje yn deselde tabel is in ferlerne posysje. De oplossing is om hielendal op te hâlden mei it konkurrearjen om dy tabel en de útsûndering te pleatsen dêr't de monitor nea sjocht.

De monitor ferklearret de fermiste rûte

Lit dat sjen foardat jo wat opnij ûntwerpe: lês de tabel, foegje it foarheaksel ta, wachtsje in pear sekonden, lês opnij. As de yngong ûntbrekt en jo hawwe neat typt om dy te ferwiderjen, dan wachtet in agent. Fyn it proses dat dat gedrach besit en lês syn loch om it momint hinne dat de rûte ferdwynt, want deselde tsjinst ûnderhâldt meastentiids de tunnel, de pakketfilters en de resolver-konfiguraasje. It deadzjen om jo rûte te behâlden is in ruil dêr't jo by de folgjende werferbining spyt fan krije.

ip route show
ip route add 192.168.2.0/24 dev enp0s31f6
sleep 5; ip route show

It foarheaksel en de interface hjirboppe binne plakferfangers. In interfacenamme kopiearje út in wurkjend foarbyld op in oare masine is de meast foarkommende reden dat dizze demonstraasje hielendal neat oplevert.

In twadde tabel is ûnsichtber foar de monitor

De agent bout allinnich de tabel opnij dy't er besit. Jou de útsûndering in eigen tabel plus in regel dy't oerienkommende bestimmingen dêrhinne stjoert, en de haadtabel feroaret nea, sadat de agent neat te korrigearjen hat. Dat is it hiele idee: ien nammeromte fan rûtes dy't immen oars ûnderhâldt, en ien dy't allinnich jo oanreitsje.

De ruil is ûnderhâld. Twa objekten kinne útinoar driuwe, en de posysje fan 'e regel yn 'e list is like wichtich as de rûte yn 'e tabel dy't er kiest.

Bou de útsûndering en lit dy dan winne

Meitsje de tabel, ynstallearje de rûte en foegje in regel ta dy't de tabel foar dy bestimming kiest. De prioriteit beslút oft jo regel foar of nei de regels fan 'e klient besjoen wurdt, en in regel dy't letter sortearret wurdt nea berikt, dus it nûmer is diel fan it ûntwerp en net fersiering. Freegje dan de kernel wat er wier dwaan soe, wat in oare fraach is as wat jo konfigurearre hawwe.

ip rule add to 192.168.2.0/24 table 110 pref 30010
ip route add 192.168.2.0/24 dev enp0s31f6 table 110
ip route get 192.168.2.50

ip route get lost de rûte op dy't de kernel brûke soe, ynklusyf it apparaat en it boarneadres. It printsje de tabelidentifikaasje net, dus keppelje it oan ip rule show as jo befêstigje moatte hokker tabel wûn hat. Tegearre beantwurdzje se de iennige fraach dy't telt: ferlit ferkear nei dat adres it plak dêr't jo it bedoelden?

Oare foarmen fan itselde idee

It patroan generalisearret sadree't jo ophâlde yn bestimmingen te tinken. In lokaal subnet kin berikber bliuwe wylst de tunnel de standertrûte hâldt. Antwurden fan in SSH-tsjinner oan 'e LAN kinne fuortgean fia de interface dêr't se op oankamen ynstee fan yn 'e tunnel te ferdwinen. En in op interface basearre regel kin alles wat op in draadloaze interface oankomt de tunnel yn triuwe, wylst ferkear dat de gasthear sels generearret op Ethernet bliuwt:

ip rule add iif wlan0 table 10
ip route add default dev tun0 table 10

Dat lêste gefal komt oerien mei de ynkommende interface ynstee fan 'e bestimming, wat in oar regeltype en in oar tinkmodel is. Trochstjoerd ferkear hat ek net.ipv4.ip_forward ynskeakele nedich, en de fiere kant moat it boarneberik weromrûtearje of oersetse; in regel op ien masine makket nea de oare helte fan it paad.

Behannelje de regel as ferfangber

Regels en tabelrûtes libje yn it ûnthâld. Nei in werferbining kin it tunnelapparaat omneamd wurde, it tawiisde adres kin ferpleatse, en in regel mei de âlde wearde hâldt stil op te passen. Pas de hiele feroaring opnij ta fanút ien skript dat it besit, en kontrolearje dan ip rule show, de hjoeddeistige apparaatnamme en in nij ip route get tsjin in echte bestimming foardat jo de útsûndering fertrouwe.

Twa grinzen oerlibje alle soarch. De klient kontrolearret noch hieltyd syn eigen filterregels en de resolver-konfiguraasje, en in rûtearringsútsûndering giet oer gjin fan beide. As de klient ek jo beliedsregel smyt, binne de stipe paden syn eigen split-tunnelbelied of in klient dy't jo rûtes beheare lit, lykas OpenConnect; in binary fan in leveransier patches om syn monitor stil te meitsjen is in ûnderhâldsferplichting mei in yntegriteitskontrôle derby.

Skriuw it tabelnûmer, de prioriteit en de bestimming yn in notysje njonken it skript. Oars fynt de folgjende persoan in regel dy't de tunnel oertreft en hat gjin manier om te witten wêrom.

Relatearre artikelen