Egy /24 egy labornyomtatóhoz eltűnik két ip route show hívás között, és a kliens naplója csak annyit mond, hogy a hálózat megváltozott. Semmi sem volt hibás a parancsban, az előtagban vagy a jogosultságaiban. Egy vállalati kliens, amely a gazdagép útválasztási modelljének tulajdonosa, újra érvényesíti ezt a modellt, valahányszor valaki más szerkeszti, így a hozzáadott bejegyzés betolakodóként eltávolításra kerül. Ugyanabban a táblában harcolni ellene vesztes pozíció. A megoldás, hogy teljesen felhagy a tábláért folytatott versenyzéssel, és a kivételt oda teszi, ahová a monitor soha nem néz.

A monitor megmagyarázza az eltűnt útvonalat

Mutassa be ezt, mielőtt bármit újratervez: olvassa el a táblát, adja hozzá az előtagot, várjon néhány másodpercet, olvassa el újra. Ha a bejegyzés hiányzik, és semmit nem gépelt be az eltávolításához, egy ügynök figyel. Keresse meg az ezt a viselkedést birtokló folyamatot, és olvassa el a naplóját az útvonal eltűnésének pillanata körül, mert ugyanaz a szolgáltatás általában az alagutat, a csomagszűrőket és a feloldó beállításait kezeli. Ha megöli, hogy az útvonala megmaradjon, olyan csere, amelyet a következő újracsatlakozáskor megbán.

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

A fenti előtag és interfész helyőrzők. Az interfész nevének átmásolása egy másik gépen működő példából a leggyakoribb oka annak, hogy ez a bemutató egyáltalán semmit nem ad.

Egy második tábla láthatatlan a monitor számára

Az ügynök csak a saját tábláját építi újra. Adjon a kivételnek saját táblát, valamint egy szabályt, amely az egyező célokat oda küldi, és a fő tábla soha nem változik, így az ügynöknek nincs mit javítania. Ez az egész ötlet: az útvonalak egy névtere, amelyet valaki más tart fenn, és egy, amelyhez csak ön nyúl.

A csere a karbantartás. Két objektum eltávolodhat, és a szabály helye a listában ugyanannyit számít, mint az útvonal a kiválasztott táblában.

Építse fel a kivételt, majd nyertesse meg

Hozza létre a táblát, telepítse az útvonalat, és adjon hozzá egy szabályt, amely az adott célhoz kiválasztja a táblát. A prioritás dönti el, hogy a szabályát a kliens által beszúrt szabályok előtt vagy után vizsgálják-e, és a később sorolt szabály soha nem érhető el, ezért a szám a tervezés része, nem dekoráció. Ezután kérdezze meg a kernelt, mit tenne valójában, ami más kérdés, mint amit beállított.

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 feloldja az útvonalat, amelyet a kernel használna, beleértve az eszközt és a forrás címet. Nem nyomtatja ki a tábla azonosítóját, ezért párosítsa ip rule show-gyel, amikor meg kell erősítenie, melyik tábla nyert. Együtt válaszolnak az egyetlen fontos kérdésre: az adott címre irányuló forgalom onnan lép ki, ahonnan szánta?

Ugyanez az ötlet más formákban

A minta általánosít, amint abbahagyja a célokban való gondolkodást. Egy helyi alhálózat elérhető maradhat, miközben az alagút megtartja az alapértelmezett útvonalat. Egy LAN-hoz kapcsolt SSH-kiszolgáló válaszai azon az interfészen léphetnek ki, amelyen érkeztek, ahelyett hogy eltűnnének az alagútban. Egy interfészalapú szabály pedig mindent, ami vezeték nélküli interfészen érkezik, az alagútba toloncolhat, miközben a gazdagép által maga előállított forgalom Etherneten marad:

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

Az utolsó eset a bejövő interfészre illeszkedik, nem a célra, ami más szabálytípus és más gondolkodási modell. A továbbított forgalomhoz engedélyezett net.ipv4.ip_forward is kell, és a távoli félnek vissza kell irányítania a forrástartományt vagy le kell fordítania; egy gépen lévő szabály soha nem hozza létre az útvonal másik felét.

Tekintse a szabályt eldobhatónak

A szabályok és a táblabeli útvonalak a memóriában élnek. Újracsatlakozás után az alagút eszköze átnevezhető, a hozzárendelt cím elmozdulhat, és a régi értéket tartó szabály csendben megszűnik illeszkedni. Alkalmazza újra a teljes változtatást egyetlen szkriptből, amely birtokolja, majd ellenőrizze újra a ip rule show kimenetét, az aktuális eszköznevet és egy friss ip route get eredményt egy valódi cél ellen, mielőtt megbízik a kivételben.

Két határ minden gondosság ellenére megmarad. A kliens továbbra is a saját szűrőszabályait és a feloldó beállításait vezérli, és az útválasztási kivétel egyiket sem írja felül. Ha a kliens a házirend-szabályát is törli, a támogatott utak a saját osztott alagút házirendje vagy egy kliens, amely engedi az útvonalak kezelését, például az OpenConnect; egy szállítói bináris javítása a monitor elnémítására karbantartási kötelezettség, amelyhez integritásellenőrzés kapcsolódik.

Írja fel a táblaszámot, a prioritást és a célt a szkript mellé egy jegyzetbe. Különben a következő ember olyan szabályt talál, amely felülmúlja az alagutat, és semmi módja nincs megtudni, miért.

Kapcsolódó cikkek