Mga marka ng nftables at VPN routing: aling tuntunin ang talagang nananalo
Ang markang itinakda sa firewall ay maaari pa ring makaligtaan ang tuntunin sa routing. Suriin ang mask ng tuntunin, uri ng object at iba pang manunulat bago magdagdag ng ikaapat.
Ang markang itinakda sa nftables ay dapat magpadala ng isang klase ng trapiko sa lagusan, at patuloy na lumalabas ang trapiko sa pisikal na interface. Mukhang tama ang hanay ng mga tuntunin kapag nag-iisa. Ang karaniwang nangyari ay may ibang nagsulat ng kaparehong marka, o tumutugma ang tuntunin sa routing sa isang mask na hindi na natutugunan ng bagong halaga.
Pagsusuri 1: basahin ang tuntuning tinutugma ng kernel
Magsimula sa tuntunin ng patakaran at hindi sa firewall. Sinusuri ng kernel ang mga tuntunin ayon sa pagkakasunod-sunod ng priyoridad at ang unang tugma ang nagpapasya ng talahanayan. Basahin ang halaga ng fwmark at ang mask mula sa tuntunin mismo, pagkatapos ay tiyakin na ang packet na may markang inilagay mo ay talagang tumutugma rito. Ang tuntuning umaasa ng buong halagang 32-bit ay hindi tutugma sa packet na may isang bit lamang.
Pagkatapos ay tiyakin kung aling talahanayan ang pinipili ng tuntuning iyon at ano ang laman ng talahanayan. Ang tuntuning tumuturo sa walang laman na talahanayan ay nagdudulot ng kabiguan sa paghahanap, na sa maraming sistema ay nangangahulugang bumabagsak ang packet sa susunod na tuntunin at lumalabas sa pisikal na interface.
Dalawang utos ang nagpapasya nito: ang listahan ng mga tuntunin, at ang paghahanap ng ruta para sa destinasyon sa talahanayang iyon.
Pagsusuri 2: marka ng packet o marka ng koneksyon
Maaaring maglagay ang nftables ng marka sa packet at marka sa entry ng pagsubaybay ng koneksyon, at magkaibang object ang mga ito. Ang marka ng packet ay nabubuhay sa pagdaan ng pagproseso ng packet, samantalang ang marka ng koneksyon ay nananatili para sa daloy at kailangang kopyahin nang sinasadya. Ang paglalagay ng isa at pag-asa sa isa pa ay karaniwang kalahating solusyon.
Kung ang tuntunin sa routing ay nakabatay sa marka ng packet, walang nagagawa ang pagpapanumbalik ng marka ng koneksyon sa huli ng landas para sa pasyang iyon, dahil naipasya na ito.
Magpasya kung aling object ang may-ari ng hudyat ng routing, pagkatapos ay ilagay ito sa puntong ginagawa ang pasya sa routing.
Pagsusuri 3: sino pa ang nagsusulat ng markang iyon
Ang sariling mga kagamitan ng WireGuard ay nagmamarka ng kanilang mga packet na UDP upang ang naka-encrypt na transportasyon ay hindi muling ma-routing pabalik sa lagusang kinabibilangan nito. Kung ang iyong hanay ng mga tuntunin ay nagtatalaga ng walang kaugnayang halaga sa parehong field, nawawala ang pagbubukod na iyon at sinusubukan ng panlabas na trapiko ng lagusan na pumasok sa sarili nito. Ang sintomas ay isang lagusang nabubuo at pagkatapos ay tumitigil sa pagpapadala ng trapiko.
Ginagamit din ang mga marka ng iba pang kagamitan sa firewall, ng networking ng container at ng routing na batay sa patakaran para sa iba pang layunin, kaya ang dalawang subsystem na nagsusulat ng buong field ay isang salungatan kahit tama ang bawat isa nang hiwalay.
Ilista ang mga manunulat bago magdagdag ng isa pa.
Pagsusuri 4: ang mask ang nagpapasya kung ano ang iyong pinapanatili
Ang marka ay isang field na 32-bit, at ang mga mask ang paraan ng pagbabahagi ng ilang may-ari nito. Ang paglalagay ng halaga na may mask ay nagpapanatili ng mga bit na hindi mo pag-aari; ang paglalagay ng buong field ay sumisira sa mga bit ng lahat ng iba. Basahin ang mask sa bawat tuntuning humahawak sa field, kabilang ang mga hindi mo isinulat.
Idokumento ang paghahati ng bit sa tabi ng hanay ng mga tuntunin.
Kung hindi, muling gagamitin ng susunod na tao ang halagang may may-ari na, at ang salungatan dito ay mukhang bug sa routing samantalang bug ito sa pagtatalaga ng address. Inilalarawan ng dokumentasyon ng nftables tungkol sa metadata ng packet ang mismong mga operasyon ng marka.
Pagsusuri 5: i-verify sa tunay na daloy, hindi sa paghahanap
Ang simpleng paghahanap ng ruta ay walang dalang marka, kaya maaari itong magpakita ng ibang landas kaysa sa tunay na packet. Gumawa ng trapikong mahalaga sa iyo at obserbahan ang mga counter, ang entry ng pagsubaybay ng koneksyon at ang interface na talagang nilalabasan nito. Subukan kapwa ang kasamang klase at ang ibinukod na klase, dahil ang markang masyadong malawak ay sumisira sa pagbubukod habang mukhang matagumpay. Kung gumagana ang kasamang klase at pumapasok din sa lagusan ang ibinukod na klase, ang marka ay masyadong malawak at hindi masyadong makitid.
Iwasan ang paglilinis ng estado ng koneksyon upang pilitin ang pag-refresh habang live ang sesyon, dahil ang bago at umiiral na mga daloy ay legal na maaaring tumahak ng magkaibang landas.
Itala ang marka, mask at talahanayan sa isang lugar, at ang susunod na pagbabago ay magiging masusuri.