A nevek címekké oldódnak fel, és ezek a címek bekerülhetnek egy tűzfal-készletbe, amely később befolyásolja az útválasztást, ami név alapú irányítást tesz lehetővé proxy nélkül. A bökkenő, hogy négy összetevőnek helyesen kell átadnia: a feloldónak, a készletnek, az új folyamot megjelölő osztályozónak és a szállító peernek. Minden átadás másképp hibázik, és mindegyik a saját idejét tartja.

Tekintse a tervet láncnak, nem konfigurációnak. Minden lépésnél a kérdés az, melyik összetevő birtokolja a döntést, és mi történik, ha hiányzik a bemenete.

Mit tud és mit nem tud a DNS-válasz

A dnsmasq át tud másolni címeket a válaszokból egy nftables-készletbe, ami etetés, nem útválasztási döntés. Ez a beállítás, amelyet a dnsmasq kézikönyv dokumentál, megadja a családot, a táblát és a készletet, és a vezető 4# csak A rekordokat választ, ezért a v6 céloknak saját megoldás kell. A készletnek már léteznie kell, mert a feloldó elemeket ad valamihez, amit a tűzfal tulajdonosa hozott létre. Ebben a lépésben semmi nem választ interfészt, táblát vagy peert.

Az ügyfélnek is ezt a feloldót kell használnia a névhez. Egy saját titkosított DNS-sel rendelkező alkalmazás, vagy a szabályzat előtti gyorsítótárazott válasz, a készletben semmilyen bejegyzést nem hozva csatlakozik.

A készlet bemenet, nem útvonal

A készlet eleme egyezési feltétel. Valaminek meg kell néznie, el kell döntenie, hogy ez a csomag új folyamot indít, és alkalmaznia kell a szabályzatot, amely a folyamot az alagúton át küldi. Linuxon ez általában egy útválasztásra képes kimeneti útvonalat jelent, amely jelölést tud tenni, egy szabályt, amely a megjelölt csomagokat dedikált táblába küldi, és egy útvonalat abban a táblában a WireGuard-eszköz felé. A tagság önmagában ezek egyikét sem telepíti.

nft add set inet vpn_select office_v4 { type ipv4_addr\; }
ip rule add fwmark 0x40 table 200
ip route add default dev wg0 table 200
wg show wg0 allowed-ips

A peer egy második lefedettség-ellenőrzést alkalmaz, amelyet az emberek elfelejtenek. A WireGuard csak olyan peer számára titkosít egy csomagot, amelynek engedélyezett címei tartalmazzák a célt, ezért a szabályzati útvonal az interfészbe nem elég, ha a peer listája kizárja ezt az előtagot. Tartsa a listát az útválasztás tulajdonosának ellenőrzése alatt, ahelyett hogy bízna abban, milyen útvonalat a kezelő éppen létrehoz.

Jelölések, táblák és peer-lefedettség

A jelölések közös névtér, ezért az értéket és a maszkot is egyeztetni kell minden mással, ami használja őket. A megjelölt forgalmat dedikált táblába küldő szabálynak meghatározott eredményre van szüksége, ha abban a táblában nincs egyező útvonal, mert a megválaszolatlan keresés továbbléphet a következő szabályra, és a csomagot a fizikai interfészen kifelé küldheti. A dedikált táblán belüli blackhole alapértelmezett útvonal látható eldobássá alakítja azt a csendes menekülést. Amit a terv még mindig nem tud, az a lezárás hiba esetén egy olyan cél felé, amely soha nem került be a készletbe.

Az alagút saját külső csomagjainak ki kell kerülniük az osztályozót. A WireGuard eszközök éppen erre adnak socket-jelölést, és használata megakadályozza, hogy a beágyazás visszairányuljon abba az interfészbe, amelyet épít.

Minden élettartamot külön teszteljen

Három tár öregszik három ütemezés szerint: a feloldó gyorsítótára, a készlet elemei és a követett kapcsolat. Tesztelje őket ebben a sorrendben, és figyelje, mozdul-e mindegyik akkor, amikor kell. Az alábbi parancsok a feloldót, a készletet, a kapcsolattáblát és a szabályzati szabályokat olvassák anélkül, hogy bármit változtatnának.

dig +short office.example
nft list set inet vpn_select office_v4
conntrack -L -d 10.60.8.15
ip rule show

Egy friss keresés, amely elemet ad hozzá, bizonyítja, hogy az etetés működik, míg a válaszát túlélő elavult elem élettartam-eltérés, amelyet érdemes feljegyezni. A kapcsolattáblában a várt jelöléssel megjelenő új kapcsolat azt mutatja, hogy az osztályozó lefutott, a régi kapcsolat pedig, amely megtartja eredeti jelölését, helyes viselkedés, nem hiba. A szabálylista megválaszolja, létezik-e egyáltalán a szabályzatkeresés, ami más kérdés, mint hogy egyezett-e. Olvassa el a négy kimenetet ebben a sorrendben, és a hibás átadás magától megmutatkozik.

Ahol az a követelmény, hogy egy adott név mindig egy útvonalat használjon, egy DNS-sel etetett készlet nem tudja ezt bizonyítani, mert a megosztott címek más neveket is hordoznak. A proxy vagy egy alkalmazásszintű mechanizmus az eszköz erre a garanciára.

Kapcsolódó cikkek