Üks /24 laboriprinteri jaoks kaob kahe ip route show kutse vahel ja kliendi logi ütleb ainult, et võrk muutus. Käsus, eesliideses ega teie õigustes polnud midagi valesti. Ettevõtteklient, kellele kuulub hosti marsruutimismudel, surub selle mudeli uuesti peale alati, kui keegi teine seda muudab, nii et teie lisatud kirje eemaldatakse tungijana. Sama tabeli sees temaga võidelda on kaotav positsioon. Lahendus on lõpetada täielikult selle tabeli pärast võistlemine ja panna erand sinna, kuhu monitor kunagi ei vaata.

Monitor selgitab kadunud marsruuti

Näidake seda enne, kui midagi ümber kujundate: lugege tabelit, lisage eesliide, oodake paar sekundit, lugege uuesti. Kui kirje puudub ja te ei kirjutanud midagi selle eemaldamiseks, valvab agent. Leidke protsess, kellele see käitumine kuulub, ja lugege selle logi hetke ümbruses, mil marsruut kaob, sest sama teenus haldab tavaliselt tunnelit, paketifiltreid ja resolveri seadistust. Selle tapmine, et teie marsruut püsiks, on vahetus, mida järgmisel taasühendamisel kahetsete.

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

Ülaltoodud eesliide ja liides on kohatäited. Liidese nime kopeerimine teise masina töötavast näitest on kõige tavalisem põhjus, miks see demonstratsioon üldse mitte midagi ei anna.

Teine tabel on monitori jaoks nähtamatu

Agent ehitab uuesti ainult tabelit, mida ta omab. Andke erandile oma tabel pluss reegel, mis saadab sobivad sihtkohad sinna, ja peamine tabel ei muutu kunagi, nii et agentil pole midagi parandada. See ongi kogu mõte: üks marsruutide nimeruum, mida haldab keegi teine, ja üks, mida puudutate ainult teie.

Vahetuseks on hooldus. Kaks objekti võivad lahku triivida ja reegli asukoht loendis loeb sama palju kui marsruut tabelis, mille see valib.

Ehitage erand ja laske sellel seejärel võita

Looge tabel, paigaldage marsruut ja lisage reegel, mis valib selle sihtkoha jaoks tabeli. Eelistus otsustab, kas teie reeglit vaadatakse enne või pärast neid, mille klient lisas, ja hiljem sorteeruv reegel ei jõua kunagi kohale, seega on number disaini osa, mitte ehteks. Seejärel küsige tuumalt, mida see tegelikult teeks, mis on erinev küsimus sellest, mida te seadistasite.

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 lahendab marsruudi, mida tuum kasutaks, sealhulgas seadme ja lähteaadressi. See ei prindi tabeli identifikaatorit, seega siduge see ip rule show-ga, kui peate kinnitama, milline tabel võitis. Koos vastavad need ainsale olulisele küsimusele: kas liiklus sellele aadressile lahkub sealt, kuhu te kavatsesite?

Sama idee teised vormid

Muster üldistub, kui lõpetate sihtkohtades mõtlemise. Kohalik alamvõrk võib jääda kättesaadavaks, samal ajal kui tunnel hoiab vaikimisi marsruuti. LAN-iga ühendatud SSH-serveri vastused võivad väljuda liidesest, mille kaudu need saabusid, selle asemel et tunnelisse kaduda. Ja liidesepõhine reegel võib suruda kõik juhtmevabale liidesele saabuva tunnelisse, samal ajal kui host ise tekitab liiklust, mis jääb Etherneti:

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

Viimane juhtum vastab sissetulevale liidesele, mitte sihtkohale, mis on teist tüüpi reegel ja teine mõttemudel. Edastatav liiklus vajab ka lubatud net.ipv4.ip_forward-t ja kaugots peab lähtepiirkonna tagasi marsruutima või tõlkima; reegel ühes masinas ei loo kunagi tee teist poolt.

Käsitlege reeglit ühekordselt kasutatavana

Reeglid ja tabeli marsruudid elavad mälus. Pärast taasühendamist võib tunneliseadet ümber nimetada, määratud aadress võib liikuda ja vana väärtust hoidnud reegel lakkab vaikselt sobimast. Rakendage kogu muudatus uuesti ühest skriptist, mis seda omab, seejärel kontrollige uuesti ip rule show, praegust seadme nime ja värsket ip route get-t reaalse sihtkoha vastu enne, kui erandit usaldate.

Kaks piiri jäävad püsima igasuguse hoolega. Klient kontrollib endiselt oma filtreerimisreegleid ja resolveri seadistust ning marsruudierand ei tühista kumbagi. Kui klient kustutab ka teie poliitikareegli, on toetatud teed tema enda poolitatud tunneli poliitika või klient, mis laseb teil marsruute hallata, näiteks OpenConnect; tarnija binaari lappimine selle monitori vaigistamiseks on hoolduskohustus koos integriteedikontrolliga.

Kirjutage tabeli number, eelistus ja sihtkoht skripti kõrvale märkmesse. Muidu leiab järgmine inimene reegli, mis ületab tunneli, ega saa kuidagi teada, miks.

Seotud artiklid