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-થી ખોરાક મેળવતો સેટ તે સાબિત કરી શકતો નથી, કારણ કે વહેંચાયેલાં સરનામાં બીજાં નામ પણ વહન કરે છે. પ્રોક્સી અથવા એપ્લિકેશન-સ્તરીય પદ્ધતિ તે બાંયધરીનું સાધન છે.