DNS barots nftables komplekts uz WireGuard: kā darbojas nodošana
DNS atbilde var barot nftables komplektu, bet komplekts neko nemaršrutē. Izsekojiet četrām nodošanām un trim dzīves ilgumiem, kas nosaka, vai virzīšana darbosies.
Vārdi tiek atrisināti adresēs, un šīs adreses var nonākt ugunsmūra komplektā, kas vēlāk ietekmē maršrutēšanu, un tas ļauj virzīšanu pēc vārda bez starpnieka. Āķis ir tajā, ka četrām sastāvdaļām jānodod pareizi: atrisinātājs, komplekts, klasifikators, kas atzīmē jaunu plūsmu, un partneris, kas to nes. Katra nodošana neizdodas citādi, un katra tur savu laiku.
Uztveriet dizainu kā ķēdi, nevis konfigurāciju. Jautājums katrā solī ir, kura sastāvdaļa pārvalda lēmumu un kas notiek, kad tās ievade trūkst.
Ko DNS atbilde var un ko nevar
dnsmasq var kopēt adreses no atbildēm nftables komplektā, un tā ir barošana, nevis maršrutēšanas lēmums. Šī opcija, dokumentēta dnsmasq rokasgrāmatā, norāda saimi, tabulu un komplektu, un tās sākotnējais 4# izvēlas tikai A ierakstus, tāpēc v6 galamērķiem vajadzīga sava kārtība. Komplektam jau jāpastāv, jo atrisinātājs pievieno elementus tam, ko izveidojis ugunsmūra īpašnieks. Šajā solī nekas neizvēlas saskarni, tabulu vai partneri.
Klientam arī jāizmanto šis atrisinātājs vārdam. Programma ar savu šifrēto DNS vai kešatmiņā saglabāta atbilde no laika pirms politikas pieslēdzas, neizveidojot komplektā nevienu ierakstu.
Komplekts ir ievade, nevis maršruts
Elements komplektā ir atbilstības nosacījums. Kaut kam tas jāaplūko, jāizlemj, ka šis pakets sāk jaunu plūsmu, un jāpiemēro politika, kas plūsmu sūta pa tuneli. Linux tas parasti nozīmē maršrutēšanai spējīgu izejas ceļu, kas var uzlikt atzīmi, noteikumu, kas atzīmētos paketus sūta uz atsevišķu tabulu, un maršrutu šajā tabulā uz WireGuard ierīci. Vien dalība neuzstāda neko no tā.
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
Partneris piemēro otru pārklājuma pārbaudi, ko cilvēki aizmirst. WireGuard šifrē paketu tikai partnerim, kura atļautās adreses ietver galamērķi, tāpēc politikas maršruts uz saskarni nav pietiekams, ja partnera saraksts izslēdz šo prefiksu. Turiet sarakstu maršrutēšanas īpašnieka kontrolē, nevis paļaujieties uz to, kādu maršrutu izveidi pārvaldnieks nejauši veiks.
Atzīmes, tabulas un partnera pārklājums
Atzīmes ir kopīga nosaukumu telpa, tāpēc gan vērtība, gan maska jāsaskaņo ar visu citu, kas tās izmanto. Noteikumam, kas atzīmēto trafiku sūta uz atsevišķu tabulu, vajadzīgs definēts rezultāts, ja šajā tabulā nav atbilstoša maršruta, jo neatbildēta meklēšana var turpināties pie nākamā noteikuma un izsūtīt paketu pa fizisko saskarni. Blackhole noklusējuma maršruts atsevišķajā tabulā pārvērš to kluso bēgšanu redzamā nomešanā. Ko dizains joprojām nevar, ir aizvērties kļūmes gadījumā galamērķim, kas nekad nav nonācis komplektā.
Paša tuneļa ārējiem paketiem jāizvairās no klasifikatora. WireGuard rīki tieši tam nodrošina ligzdas atzīmi, un tās lietošana neļauj iekapsulējumam tikt maršrutētam atpakaļ saskarnē, kuru tas būvē.
Pārbaudiet katru dzīves ilgumu atsevišķi
Trīs krātuves noveco pēc trim grafikiem: atrisinātāja kešatmiņa, komplekta elementi un izsekotais savienojums. Pārbaudiet tās šajā secībā un vērojiet, vai katra kustas, kad vajag. Tālāk esošās komandas nolasa atrisinātāju, komplektu, savienojumu tabulu un politikas noteikumus, neko nemainot.
dig +short office.example
nft list set inet vpn_select office_v4
conntrack -L -d 10.60.8.15
ip rule show
Svaigs meklējums, kas pievieno elementu, pierāda, ka barošana strādā, bet novecojis elements, kas pārdzīvo savu atbildi, ir dzīves ilguma neatbilstība, ko ir vērts pierakstīt. Jauns savienojums savienojumu tabulā ar gaidīto atzīmi parāda, ka klasifikators darbojās, un vecs savienojums, kas saglabā sākotnējo atzīmi, ir pareiza uzvedība, nevis kļūda. Noteikumu saraksts atbild, vai politikas meklējums vispār pastāv, un tas ir cits jautājums nekā tas, vai tas atbilda. Izlasiet četras izvades šajā secībā, un neizdevusies nodošana pati sevi nodos.
Ja prasība ir, ka konkrēts vārds vienmēr izmanto vienu ceļu, DNS barots komplekts to nevar pierādīt, jo kopīgas adreses nes arī citus vārdus. Starpnieks vai lietotnes līmeņa mehānisms ir šīs garantijas rīks.