DNS-хрането nftables множество кон WireGuard: како функционира предавањето
DNS одговорот може да храни nftables множество, но множеството не рутира ништо. Следете ги четирите предавања и трите животни века што одлучуваат дали насочувањето ќе работи.
Имињата се разрешуваат во адреси, а тие адреси можат да завршат во множество на огнениот ѕид што подоцна влијае на рутирањето, што го прави насочувањето по име возможно без прокси. Закачката е што четири компоненти мора правилно да предадат: разрешувачот, множеството, класификаторот што означува нов тек и партнерот што го носи. Секое предавање неуспева поинаку и секое го држи своето време.
Гледајте на дизајнот како на синџир, а не како конфигурација. Прашањето на секој чекор е која компонента ја поседува одлуката и што се случува кога нејзиниот влез недостига.
Што може и што не може DNS одговорот
dnsmasq може да копира адреси од одговорите во nftables множество, што е хранење, а не одлука за рутирање. Таа опција, документирана во прирачникот на dnsmasq, ги наведува фамилијата, табелата и множеството, а нејзиниот водечки 4# избира само A записи, па за v6 одредиштата треба сопствено уредување. Множеството мора веќе да постои, бидејќи разрешувачот додава елементи во нешто што го создал сопственикот на огнениот ѕид. Ништо во тој чекор не избира интерфејс, табела или партнер.
Клиентот исто така мора да го користи тој разрешувач за името. Апликација со сопствен шифриран DNS, или кеширан одговор од пред да постои политиката, се поврзува без да создаде ниту еден запис во множеството.
Множеството е влез, а не рута
Елементот во множество е услов за совпаѓање. Нешто мора да го погледне, да одлучи дека овој пакет започнува нов тек и да ја примени политиката што го праќа текот низ тунелот. На Linux тоа обично значи излезна патека способна за рутирање што може да постави ознака, правило што означените пакети ги праќа во посебна табела и рута во таа табела кон уредот WireGuard. Самото членство не инсталира ништо од тоа.
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
Партнерот применува втора проверка на покриеноста што луѓето ја забораваат. WireGuard шифрира пакет само за партнер чии дозволени адреси го вклучуваат одредиштето, па рута по политика во интерфејсот не е доволна кога списокот на партнерот го исклучува тој префикс. Држете го списокот под контрола на сопственикот на рутирањето наместо да се потпирате на тоа какво создавање рути случајно ќе направи менаџерот.
Ознаки, табели и покриеност на партнерот
Ознаките се заеднички именски простор, па и вредноста и маската мора да се усогласат со сè друго што ги користи. Правилото што означен сообраќај го праќа во посебна табела бара дефиниран резултат кога таа табела нема соодветна рута, бидејќи неодговореното пребарување може да продолжи на следното правило и да го испрати пакетот надвор низ физичкиот интерфејс. Стандардна рута од типот blackhole во посебната табела го претвора тоа тивко бегство во видлив отфрлање. Она што дизајнот сè уште не може е да се затвори при отказ за одредиште што никогаш не влегло во множеството.
Сопствените надворешни пакети на тунелот мора да го избегнат класификаторот. Алатките на WireGuard даваат ознака на сокет токму за таа цел, а нејзината употреба спречува капсулирањето да се рутира назад во интерфејсот што го гради.
Тестирајте го секој животен век одделно
Три складишта стареат по три распореди: кешот на разрешувачот, елементите на множеството и следената врска. Тестирајте ги по тој ред и гледајте дали секое се поместува кога треба. Командите подолу ги читаат разрешувачот, множеството, табелата со врски и правилата на политиката без да сменат нешто.
dig +short office.example
nft list set inet vpn_select office_v4
conntrack -L -d 10.60.8.15
ip rule show
Свежото пребарување што додава елемент докажува дека хранењето работи, додека застарениот елемент што го надживува својот одговор е несовпаѓање на животниот век што вреди да се запише. Нова врска во табелата со врски со очекуваната ознака покажува дека класификаторот работел, а старата врска што ја задржува првобитната ознака е правилно однесување, а не дефект. Списокот на правила одговара на прашањето дали пребарувањето на политиката воопшто постои, што е друго прашање од тоа дали се совпаднало. Прочитајте ги четирите излези по тој ред и неуспешното предавање само ќе се издаде.
Кога барањето е одредено име секогаш да користи една патека, множество хранато од DNS не може тоа да го докаже, бидејќи заедничките адреси носат и други имиња. Прокси или механизам на ниво на апликација е алатката за таа гаранција.