VPN-kliënt verwyder jou bygevoegde roete? Gebruik 'n beleidstabel
Die kliënt herstel die roetes wat hy besit, so 'n handmatig bygevoegde inskrywing is binne sekondes weg. Sit die uitsondering in 'n beleidstabel met 'n reëlvoorkeur wat wen.
Een /24 vir 'n laboratoriumdrukker verdwyn tussen twee ip route show-oproepe, en die kliënt se log sê net dat die netwerk verander het. Niks was verkeerd met die opdrag, die prefix of jou regte nie. 'n Korporatiewe kliënt wat die gasheer se roetemodel besit, herstel daardie model wanneer iemand anders dit wysig, so die inskrywing wat jy bygevoeg het, word as 'n indringer verwyder. Om dit in dieselfde tabel te beveg, is 'n verlore posisie. Die oplossing is om heeltemal op te hou om om daardie tabel mee te ding en die uitsondering te plaas waar die monitor nooit kyk nie.
Die monitor verduidelik die vermiste roete
Demonstreer dit voordat jy iets herontwerp: lees die tabel, voeg die prefix by, wag 'n paar sekondes, lees weer. As die inskrywing afwesig is en jy het niks getik om dit te verwyder nie, is daar 'n agent wat kyk. Vind die proses wat daardie gedrag besit en lees sy joernaal rondom die oomblik wanneer die roete verdwyn, want dieselfde diens onderhou gewoonlik die tonnel, die pakkisfilters en die resolver-konfigurasie. Om dit dood te maak sodat jou roete bly staan, is 'n ruil wat jy by die volgende herverbinding sal berou.
ip route show
ip route add 192.168.2.0/24 dev enp0s31f6
sleep 5; ip route showDie prefix en koppelvlak hierbo is plekhouers. Om 'n koppelvlaknaam uit 'n werkende voorbeeld op 'n ander masjien te kopieer, is die algemeenste rede waarom hierdie demonstrasie heeltemal niks oplewer nie.
'n Tweede tabel is onsigbaar vir die monitor
Die agent bou net die tabel wat hy besit weer op. Gee die uitsondering 'n eie tabel plus 'n reël wat ooreenstemmende bestemmings daarheen stuur, en die hooftabel verander nooit, so daar is niks vir die agent om reg te maak nie. Dit is die hele idee: een naamruimte van roetes wat iemand anders onderhou, en een wat net jy aanraak.
Die ruil is instandhouding. Twee objekte kan uitmekaar dryf, en die reël se posisie in die lys maak net soveel saak as die roete in die tabel wat dit kies.
Bou die uitsondering en laat dit dan wen
Skep die tabel, installeer die roete en voeg 'n reël by wat die tabel vir daardie bestemming kies. Die voorkeur bepaal of jou reël voor of ná die reëls wat die kliënt ingevoeg het, geraadpleeg word, en 'n reël wat later sorteer, word nooit bereik nie, so die nommer is deel van die ontwerp en nie 'n versiering nie. Vra dan die kernel wat hy werklik sou doen, wat 'n ander vraag is as wat jy gekonfigureer het.
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.50ip route get los die roete op wat die kernel sou gebruik, insluitend die toestel en bronadres. Dit druk nie die tabelidentifiseerder nie, so koppel dit aan ip rule show wanneer jy moet bevestig watter tabel gewen het. Saam beantwoord hulle die enigste vraag wat saak maak: verlaat verkeer na daardie adres waar jy bedoel het?
Ander vorms van dieselfde idee
Die patroon veralgemeen sodra jy ophou om in bestemmings te dink. 'n Plaaslike subnet kan bereikbaar bly terwyl die tonnel die verstekroete hou. Antwoorde van 'n SSH-bediener wat aan die LAN gekoppel is, kan via die koppelvlak waarmee hulle aangekom het, vertrek in plaas daarvan om in die tonnel te verdwyn. En 'n koppelvlakgebaseerde reël kan alles wat op 'n draadlose koppelvlak aankom, in die tonnel instoot terwyl verkeer wat die gasheer self genereer, op Ethernet bly:
ip rule add iif wlan0 table 10
ip route add default dev tun0 table 10Daardie laaste geval pas by die inkomende koppelvlak eerder as die bestemming, wat 'n ander reëltipe en 'n ander denkmodel is. Deurgestuurde verkeer benodig ook net.ipv4.ip_forward geaktiveer, en die ander kant moet die bronreeks terugroeteer of dit vertaal; 'n reël op een masjien skep nooit die ander helfte van die pad nie.
Behandel die reël as wegdoenbaar
Reëls en tabelroetes leef in die geheue. Na 'n herverbinding kan die tonneltoestel hernoem word, die toegewysde adres kan verskuif, en 'n reël wat die ou waarde hou, hou op om stilweg te pas. Pas die hele verandering weer toe vanuit 'n enkele script wat dit besit, en herkontroleer dan ip rule show, die huidige toestelnaam en 'n nuwe ip route get teen 'n werklike bestemming voordat jy die uitsondering vertrou.
Twee grense oorleef enige mate van sorg. Die kliënt beheer steeds sy eie filterreëls en die resolver-konfigurasie, en 'n roete-uitsondering oorheers nie een van die twee nie. As die kliënt ook jou beleidsreël uitvee, is die ondersteunde paaie sy eie split-tonnel-beleid of 'n kliënt wat jou toelaat om roetes te bestuur, soos OpenConnect; om 'n verskaffer se binêre lêer te patch om sy monitor stil te maak, is 'n instandhoudingsverbintenis met 'n integriteitskontrole daarby.
Skryf die tabelnommer, die voorkeur en die bestemming in 'n nota langs die script. Anders vind die volgende persoon 'n reël wat die tonnel oortref en het geen manier om te weet hoekom nie.