WireGuard: két fél útvonal szemben a 0.0.0.0/0-val a wg-quickben
Két /1 tartomány ugyanazokat a címeket fedi le, mint a /0, de a wg-quick másképp irányítja őket. Szerkesztés előtt ellenőrizze a házirend-szabályokat, a jelöléseket és a végpont útvonalát.
Két /1 előtag pontosan ugyanazokat az IPv4-címeket fedi le, mint egyetlen /0, és ez az egyenlőség csak a peer engedélyezett előtaglistáján belül érvényes. Abban a pillanatban megszűnik érvényes lenni, amikor a beállítóeszköz eldönti, hogyan irányítson, mert a Linux wg-quick az alapértelmezett előtagot különleges esetként kezeli, nem aritmetikaként. A különleges ág egy saját táblát, két házirend-szabályt, egy socket-jelölést és fordított útvonal beállításokat telepít, amelyeket két fél útvonal soha nem kap meg. Amikor tehát egy proxy vagy böngésző a módosítás után leáll, az előtagok a változás legkevésbé érdekes részei.
Az előtaglista nem a teljes konfiguráció
AllowedIPs egyszerre két feladatot lát el, és csak az egyik szól a lefedettségről. Magának a WireGuardnak a lista kriptokulcs-útválasztás: eldönti, mely célok titkosítódnak egy peer felé, és mely forráscímeket használhat az a peer. A wg-quick számára ugyanez a lista útvonal-specifikációként is szolgál, és az általa létrehozott útvonal attól függ, melyik ághoz illeszkedik éppen a lista. Az azonos lefedettség két különböző listaformánál ezért semmit sem mond az azonos hostállapotról.
Az alapértelmezett konfiguráció kiveszi ezt a döntést a kezéből, mert a Table alapértelmezés szerint automatikus, és az eszköz választja ki, hova kerülnek az útvonalak. Egy másik hálózatkezelő, egy disztribúciós csomagoló vagy egy egyéni Table érték újra megváltoztatja az eredményt, ezért az egyik hostra írt tanács a következőn hibásnak tűnhet.
Mit ad hozzá az alapértelmezett ág egy útvonalon túl
Egy /0 bejegyzés az alapértelmezett útvonal útjára küldi a wg-quick eszközt: külön útválasztási tábla kapja az alapértelmezést, egy házirend-szabály odairányítja a jelöletlen forgalmat, egy második szabály a főtábla konkrétabb útvonalait tartja mérvadónak, és az interfész a saját socketjére tűzfal-jelölést kap. Ez a jelölés a hurok őre. A tunnel forgalmát szállító titkosított datagramok beállított jelöléssel lépnek ki, hogy a minden mást az alagútba terelő szabály ne nyelje el az alagút saját szállítási csomagjait.
Két /1 bejegyzés párja ehelyett a szokásos útvonalutat választja. Két útvonal kerül a konfigurált táblába, és a környező gépezetből semmi sem jelenik meg, nem azért, mert felesleges, hanem azért, mert azt a kódutat soha nem járták be.
Ahol a két elrendezés elválik
Az eltérés először rekurzióként jelenik meg. Ha a fél útvonalak a főtáblában vannak, a peer saját szállítási címe egy alagút-előtagba esik, így az alagutat szállítani hivatott csomag egy az alagút belsejébe mutató útvonalhoz illeszkedik. Valaminek mentesítenie kell: egy host-útvonalnak az aktuális végponthoz, egy kézzel alkalmazott jelölésnek vagy egy interfészspecifikus szabálynak. A host-útvonal addig működik, amíg a végpont címe meg nem változik, ami DNS-alapú végpontoknál, barangoló klienseknél és több peert használó konfigurációknál fordul elő.
Másodszor, minden, ami jelölésekről következtet, megváltoztatja a viselkedését. Egy átlátszó proxy, amely helyben átirányítja a kapcsolatokat, új socketeket hoz létre, amelyek jelölései és forrásai eltérnek az eredeti kliensfolyamtól, és az alapértelmezett ág által generált házirend-szabályok részei voltak annak, ami ezeket a folyamokat szétválogatta. A proxy saját kimenő kapcsolatának olvasása más gyakorlat, mint annak tesztelése, hogy az eredeti cél elérhető-e.
Olvassa el a szabályokat és a jelöléseket módosítás előtt
Rögzítse az aktuális állapotot, amíg az alagút egészséges, majd újra a változás után, és hasonlítsa össze a két kiírást ahelyett, hogy a konfigurációs fájlból következtetne. Vegye bele a házirend-szabályokat, minden táblát, az interfész jelölését és a rögzített végpontokat.
ip rule show
ip -4 route show table all | grep -E 'default|wg1'
wg show wg1 fwmark
wg show wg1 endpoints
Ha a kimenet első sora elvesztette a jelöletlen forgalom szabályát, és a saját tábla üres, az alapértelmezett ág nem fut, és semmilyen előtag-aritmetika nem állítja vissza a hatásait. A nulla jelölés egy olyan interfészen, amely korábban viselt ilyet, ugyanaz a jel, egyetlen értékben látható.
Gyakorolja az alagút elvesztését szállítás előtt
Ha a fél útvonalas elrendezés a szándékos választás, annak kifejezetten biztosítania kell a hiányzó elemeket: a címváltozásokat túlélő végpontútvonalat, az alagút kiesésekor elvárt viselkedést és az IPv6 megfelelő kezelését. Írja ezeket követelményként, ahelyett hogy egy kimaradás alatt fedezné fel őket. Aztán gyakorolja a hibát, mert a csendben a fizikai uplinkre visszaeső teljes alagút rosszabb annál, amelyik leáll.
sudo ip -4 route add 198.51.100.20/32 via 192.0.2.1 dev eth0
ip -4 route get 198.51.100.20
sudo wg-quick down wg1
Az útvonalkeresésnek a fizikai interfészről kellene feloldania a végpontot anélkül, hogy átkelne az alagúton, az interfész leállításának pedig abban az állapotban kellene hagynia a hostot, amelyet a tervezés ígért. Egy proxy, amely a csere után működik, bizonyítja, hogy a létrehozott hostállapot számított; azt nem bizonyítja, hogy a hurok megelőzése és a leállított állapot viselkedése túlélte a módosítást.