ल्याब प्रिन्टरका लागि एउटा /24 दुई ip route show कलबीच हराउँछ, र क्लाइन्ट लगले नेटवर्क बदलियो भनेर मात्र भन्छ। कमाण्ड, प्रिफिक्स वा तपाईंको विशेषाधिकारमा केही गलत थिएन। होस्टको राउटिङ मोडेलको स्वामित्व राख्ने कर्पोरेट क्लाइन्टले अरू कसैले सम्पादन गर्दा त्यो मोडेल पुनः लागू गर्छ, त्यसैले तपाईंले थपेको प्रविष्टि घुसपैठियाको रूपमा हटाइन्छ। उही तालिकामा यससँग लड्नु हारेको स्थिति हो। समाधान त्यो तालिकाका लागि प्रतिस्पर्धा पूरै छोड्नु र अपवादलाई मोनिटरले कहिल्यै नहेर्ने ठाउँमा राख्नु हो।

मोनिटरले हराएको रुटको व्याख्या गर्छ

केही पुनः डिजाइन गर्नुअघि यो देखाउनुहोस्: तालिका पढ्नुहोस्, प्रिफिक्स थप्नुहोस्, केही सेकेन्ड पर्खनुहोस्, फेरि पढ्नुहोस्। यदि प्रविष्टि छैन र हटाउन तपाईंले केही टाइप गर्नुभएन भने, कुनै एजेन्ट निगरानी गर्दैछ। त्यो व्यवहारको स्वामित्व भएको प्रक्रिया खोज्नुहोस् र रुट हराउने क्षणको वरिपरि त्यसको जर्नल पढ्नुहोस्, किनकि सामान्यतया त्यही सेवाले टनेल, प्याकेट फिल्टर र रिजोल्भर कन्फिगरेसन राख्छ। रुट टिकाइराख्न त्यसलाई मार्नु अर्को पुनः जडानमा पछुताउने साटासाट हो।

ip route show
ip route add 192.168.2.0/24 dev enp0s31f6
sleep 5; ip route show

माथिको प्रिफिक्स र इन्टरफेस प्लेसहोल्डर हुन्। अर्को मेसिनमा चल्ने उदाहरणबाट इन्टरफेसको नाम प्रतिलिपि गर्नु यो प्रदर्शनले केही पनि नदिनुको सबैभन्दा सामान्य कारण हो।

दोस्रो तालिका मोनिटरका लागि अदृश्य छ

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

साटासाट भनेको मर्मत हो। दुई वस्तु टाढा हुन सक्छन्, र सूचीमा नियमको स्थानले त्यसले छान्ने तालिकाभित्रको रुटजत्तिकै महत्त्व राख्छ।

अपवाद बनाउनुहोस्, त्यसपछि जिताउनुहोस्

तालिका बनाउनुहोस्, रुट स्थापना गर्नुहोस् र त्यो गन्तव्यका लागि तालिका छान्ने नियम थप्नुहोस्। प्राथमिकताले तपाईंको नियम क्लाइन्टले घुसाएका नियमभन्दा अघि वा पछि जाँचिने निर्धारण गर्छ, र पछि क्रमबद्ध हुने नियमसम्म कहिल्यै पुगिँदैन, त्यसैले संख्या सजावट होइन, डिजाइनको भाग हो। त्यसपछि कर्नेललाई यसले वास्तवमै के गर्छ भनेर सोध्नुहोस्, जुन तपाईंले कन्फिगर गरेकोभन्दा फरक प्रश्न हो।

ip rule add to 192.168.2.0/24 table 110 pref 30010
ip route add 192.168.2.0/24 dev enp0s31f6 table 110
ip route get 192.168.2.50

ip route get कर्नेलले प्रयोग गर्ने रुट समाधान गर्छ, उपकरण र स्रोत ठेगानासमेत। यसले तालिका पहिचानकर्ता प्रिन्ट गर्दैन, त्यसैले ip rule show सँग जोड्नुहोस् जब कुन तालिका जित्यो भनी पुष्टि गर्न आवश्यक पर्दा। सँगै तिनीहरू एकमात्र महत्त्वपूर्ण प्रश्नको उत्तर दिन्छन्: त्यो ठेगानातर्फको ट्राफिक तपाईंले चाहेको ठाउँबाट बाहिर जान्छ?

उही विचारका अन्य रूपहरू

गन्तव्यहरूमा सोच्न छोड्नेबित्तिकै ढाँचा सामान्य हुन्छ। टनेलले पूर्वनिर्धारित रुट राख्दा पनि स्थानीय सबनेट पुग्नयोग्य रहन सक्छ। LANमा जोडिएको SSH सर्भरका प्रतिक्रियाहरू टनेलमा हराउनुको सट्टा आएको इन्टरफेसबाट बाहिर जान सक्छन्। र इन्टरफेस-आधारित नियमले वायरलेस इन्टरफेसमा आउने सबैलाई टनेलमा धकेल्न सक्छ, जबकि होस्ट आफैंले उत्पादन गर्ने ट्राफिक Ethernetमा रहन्छ:

ip rule add iif wlan0 table 10
ip route add default dev tun0 table 10

त्यो अन्तिम केस गन्तव्यको सट्टा आउँदो इन्टरफेससँग मिल्छ, जुन फरक नियम प्रकार र फरक मानसिक मोडेल हो। फर्वार्ड गरिएको ट्राफिकलाई net.ipv4.ip_forward सक्षम हुनु पनि आवश्यक छ, र टाढाको छेउले स्रोत दायरा फर्काएर रुट गर्नुपर्छ वा अनुवाद गर्नुपर्छ; एउटा मेसिनको नियमले कहिल्यै बाटोको अर्को आधा बनाउँदैन।

नियमलाई एकपटक प्रयोग हुने मान्नुहोस्

नियम र तालिका रुट मेमोरीमा बाँच्छन्। पुनः जडानपछि टनेल उपकरणको नाम बदलिन सक्छ, तोकिएको ठेगाना सर्न सक्छ, र पुरानो मान राख्ने नियम चुपचाप मिल्न छोड्छ। पूरै परिवर्तन यसको स्वामित्व भएको एउटै स्क्रिप्टबाट पुनः लागू गर्नुहोस्, त्यसपछि अपवादमा भरोसा गर्नुअघि ip rule show, हालको उपकरण नाम र नयाँ ip route get वास्तविक गन्तव्यसँग फेरि जाँच्नुहोस्।

जति ध्यान दिए पनि दुई सीमा टिकिरहन्छन्। क्लाइन्टले अझै आफ्नै फिल्टर नियम र रिजोल्भर कन्फिगरेसन नियन्त्रण गर्छ, र राउटिङ अपवादले दुवैमध्ये कुनैलाई पनि अगाडि पार्दैन। यदि क्लाइन्टले तपाईंको नीति नियम पनि मेटाउँछ भने, समर्थित बाटोहरू उसको आफ्नै स्प्लिट-टनेल नीति वा OpenConnectजस्तो रुट व्यवस्थापन गर्न दिने क्लाइन्ट हुन्; मोनिटर चुप बनाउन विक्रेताको बाइनरी प्याच गर्नु अखण्डता जाँचसँग जोडिएको मर्मत प्रतिबद्धता हो।

तालिका नम्बर, प्राथमिकता र गन्तव्य स्क्रिप्टको छेउमा रहेको नोटमा लेख्नुहोस्। नत्र अर्को व्यक्तिले टनेललाई उछिन्ने नियम भेट्टाउनेछ र किन भनेर जान्ने कुनै उपाय हुनेछैन।

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