Az nftablesben beállított jelölésnek egy forgalmi osztályt az alagúton kellene átküldenie, a forgalom mégis a fizikai interfészen hagyja el a rendszert. A szabálykészlet önmagában helyesnek tűnik. Általában az történt, hogy valami más írta ugyanazt a jelölést, vagy az útválasztási szabály olyan maszkra illeszkedik, amelyet az új érték már nem teljesít.

Ellenőrzés 1: olvassa el a szabályt, amelyre a kernel illeszkedik

Kezdje a házirend-szabállyal, ne a tűzfallal. A kernel prioritási sorrendben vizsgálja a szabályokat, és az első egyezés dönti el a táblát. Olvassa ki az fwmark értékét és a maszkot magából a szabályból, majd erősítse meg, hogy a beállított jelöléssel rendelkező csomag valóban illeszkedik rá. Egy teljes 32 bites értéket váró szabály nem illeszkedik arra a csomagra, amely csak egyetlen bitet hordoz.

Ezután erősítse meg, melyik táblát választja ez a szabály, és mit tartalmaz a tábla. Az üres táblára mutató szabály sikertelen keresést eredményez, ami sok rendszeren azt jelenti, hogy a csomag a következő szabályra esik, és a fizikai interfészen kifelé megy.

Két parancs rendezi ezt: a szabálylista és az útvonalkeresés a célállomásra abban a táblában.

Ellenőrzés 2: csomagjelölés vagy kapcsolatjelölés

Az nftables jelölést állíthat a csomagra és jelölést a kapcsolatkövetési bejegyzésre, és ezek különböző objektumok. A csomagjelölés a csomag feldolgozási menete alatt él, míg a kapcsolatjelölés a folyam számára marad meg, és szándékosan kell átmásolni. Az egyiket beállítani és a másikat várni gyakori félmegoldás.

Ha az útválasztási szabály a csomagjelölésre támaszkodik, a kapcsolatjelölés későbbi visszaállítása az útvonalon semmit nem tesz ehhez a döntéshez, mert a döntés már megszületett.

Döntse el, melyik objektum birtokolja az útválasztási jelet, majd állítsa be azon a ponton, ahol az útválasztási döntés megszületik.

Ellenőrzés 3: ki más írja még ezt a jelölést

A WireGuard saját eszközei megjelölik UDP-csomagjaikat, hogy a titkosított átvitel ne legyen visszairányítva abba az alagútba, amelyhez tartozik. Ha a szabálykészlete ugyanahhoz a mezőhöz független értéket rendel, ez a kizárás eltűnik, és az alagút külső forgalma önmagába próbál belépni. A tünet egy alagút, amely felépül, majd abbahagyja a forgalom átengedését.

A jelöléseket más tűzfal-eszközök, a konténerhálózat és a házirend-alapú útválasztás is használja más célokra, ezért a teljes mező két alrendszer általi írása ütközés akkor is, ha külön-külön mindegyik helyes.

Sorolja fel az írókat, mielőtt még egyet hozzáad.

Ellenőrzés 4: a maszk dönti el, mit tart meg

A jelölés 32 bites mező, a maszkok pedig azt szabályozzák, hogyan osztozik rajta több tulajdonos. A maszkkal beállított érték megőrzi azokat a biteket, amelyek nem az Önéi; a teljes mező beállítása mindenki másét elpusztítja. Olvassa el a maszkot minden szabályban, amely érinti a mezőt, még azokban is, amelyeket nem Ön írt.

Dokumentálja a bitek felosztását a szabálykészlet mellett.

Különben a következő ember újrahasznál egy értéket, amelynek már van tulajdonosa, és az itteni ütközés útválasztási hibának látszik, miközben címzési hiba. Az nftables csomag-metaadatokról szóló dokumentációja magukat a jelölési műveleteket írja le.

Ellenőrzés 5: valódi folyammal ellenőrizze, ne kereséssel

Egy egyszerű útvonalkeresés nem hordoz jelölést, ezért a valódi csomagtól eltérő útvonalat mutathat. Állítsa elő az Önt érdeklő forgalmat, és figyelje a számlálókat, a kapcsolatkövetési bejegyzést és az interfészt, amelyen valóban kilép. Tesztelje a benne lévő és a kizárt osztályt is, mert a túl széles jelölés elrontja a kizárást, miközben sikeresnek látszik. Ha a benne lévő osztály működik, és a kizárt osztály is belép az alagútba, a jelölés túl széles, nem pedig túl szűk.

Kerülje a kapcsolati állapot törlését, hogy élő munkamenetben frissítést kényszerítsen, mivel az új és a meglévő folyamok jogosan járhatnak eltérő útvonalakon.

Rögzítse a jelölést, a maszkot és a táblát egy helyen, és a következő szerkesztés ellenőrizhetővé válik.

Kapcsolódó cikkek