नामहरू ठेगानामा समाधान हुन्छन्, र ती ठेगानाहरू पछि मार्गनिर्देशनमा प्रभाव पार्ने फायरवाल सेटमा पर्न सक्छन्, जसले प्रोक्सी बिना नाम-आधारित स्टियरिङ सम्भव बनाउँछ। पेच यो हो कि चार घटकले ठीकसँग हस्तान्तरण गर्नुपर्छ: रिजोल्भर, सेट, नयाँ प्रवाह चिन्ह लगाउने वर्गीकरणकर्ता, र त्यसलाई बोक्ने पियर। प्रत्येक हस्तान्तरण फरक तरिकाले असफल हुन्छ र प्रत्येकले आफ्नै समय राख्छ।

डिजाइनलाई कन्फिगरेसन नभई शृंखलाका रूपमा लिनुहोस्। हरेक चरणको प्रश्न यो हो कि कुन घटक निर्णयको मालिक छ र त्यसको इनपुट नभएमा के हुन्छ।

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 ले भरिने सेटले त्यो प्रमाणित गर्न सक्दैन, किनकि साझा ठेगानाले अरू नाम पनि बोक्छन्। प्रोक्सी वा अनुप्रयोग-स्तरको संयन्त्र त्यो ग्यारेन्टीको साधन हो।

सम्बन्धित लेखहरू