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

ठाउँमै प्रतिस्थापन र समानान्तर कटओभर फरक काम हुन्

ठाउँमै प्रतिस्थापनले होस्ट, कुञ्जी, राउटिङ तालिका र प्रयोगकर्ता सूची राख्छ; केवल ठेगाना बदलिन्छ। फ्लोटिङ IP को पुनः बाँडफाँटले यही गर्छ, र धेरै प्रदायकमा अतिथिले थाहै पाउँदैन, किनकि अनुवाद इन्स्ट्यान्सको अगाडि हुन्छ। पुनर्निर्माण वा प्रदायकको पुनः बाँडफाँट कडा हुन्छ: अतिथिले परिवर्तन देख्छ, र पुरानो मान क्यास गरेको सबैले त्यही क्षणमा थाहा पाउँछ।

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

QuestionIn-place swapParallel endpoint
Rollback in one step?Only if you can get the old address backPoint DNS back; old host still up
Blast radiusEvery client at onceOnly the clients you moved
Best whenThe address is yours to reassignThe old address is gone for good

पुरानो ठेगाना लेखिएको हरेक ठाउँ खोज्नुहोस्

पाठ खोजबाट सुरु गर्नुहोस्, किनकि कन्फिगरेसन फाइल सजिलो आधा हुन्। डेमन कन्फिग, फायरवाल टुक्रा, अनुगमन लक्ष्य र डिस्कमा बनाइएको कुनै पनि क्लाइन्ट बन्डल खोज्नुहोस्। तपाईंले IPv6 ठेगाना प्रकाशित गर्नुहुन्छ भने त्यो पनि समावेश गर्नुहोस्; केवल A रेकर्ड पछ्याउने साराइले दोहोरो स्ट्याक क्लाइन्टलाई पुरानो मार्गमा छोड्छ।

OLD=203.0.113.10
grep -RIn -- "$OLD" /etc /root
ss -lunpt | grep -F "$OLD"
nft list ruleset | grep -F "$OLD"
iptables-save | grep -F "$OLD"
wg show all endpoints

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

केही परिवर्तन गर्नुअघि सूची लेख्नुहोस्; यसले रोलब्याक स्क्रिप्टको काम पनि गर्छ।

होस्टनाम भएका क्लाइन्ट सँभाल्छन्; शाब्दिक IP भएका क्लाइन्ट चुप हुन्छन्

क्लाइन्टहरू होस्टनामबाट सर्भरमा पुग्छन् भने, कटओभर मुख्यतः DNS समस्या हो, र हिजो सेट गरेको TTL ले कति नराम्रो हुने निर्धारण गर्छ। रिजोल्भरहरू क्यास गर्छन्, स्टब रिजोल्भर फेरि क्यास गर्छन्, र धेरै क्लाइन्टले नाम नयाँ जडानमा मात्र खोज्छन्, त्यसैले स्थापित टनेलले आफ्नो सुरुवाती ठेगाना राख्छ।

एन्डपोइन्ट शाब्दिक ठेगाना भए, केही पनि पुनः समाधान हुँदैन र केही पनि उजुरी दर्ता गर्दैन। WireGuard ले समाधान भएको सकेट ठेगाना भण्डारण गर्छ: Endpoint = vpn.example.net:51820 wg-quick up चलेको क्षणमै IP बन्छ र तपाईंले बदलेसम्म त्यही IP रहन्छ। OpenVPN बढी सहिष्णु छ: यसले जडानको समयमा remote होस्टनाम समाधान गर्छ र resolv-retry infinite सहित पुनः जडानमा फेरि DNS प्रयास गर्छ। शाब्दिक IP दिइएमा दुवै अब नभएको मेसिनमा डायल गरिरहन्छन्।

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

विश्वास ठेगानासँगै सर्दैन

WireGuard ले पहिचानलाई पहुँचबाट अलग गर्छ, जसले ठेगाना सार्ने काम झन्डै निःशुल्क बनाउँछ। peer हरू सार्वजनिक कुञ्जीद्वारा पहिचान गरिन्छन्, र एन्डपोइन्ट भनेको प्याकेट अहिले जाने ठाउँ मात्र हो; होस्टले अन्तिम प्रमाणित प्याकेटको स्रोत ठेगानाबाट peer को एन्डपोइन्ट अद्यावधिक गर्छ। निष्क्रिय peer लाई पनि नयाँ ठाउँसँग बोल्न कारण चाहिन्छ, र त्यसले ठेगाना तब मात्र सिक्छ जब यसको सत्र पुरानो हुन्छ र handshake का पुनःप्रयास कतै देखिने ठाउँमा असफल हुन्छन्। WireGuard को द्रुत मार्गदर्शिका ले एन्डपोइन्ट फिल्ड समेट्छ।

TLS आधारित सर्भरहरू विपरीत अवस्था हुन्। प्रमाणपत्र नामसँग बाँधिएको हुन्छ, र ठेगाना डायल गर्ने क्लाइन्टले डायल गरेको कुरालाई विषयका वैकल्पिक नामसँग तुलना गर्छ। केवल DNS SAN बोकेको प्रमाणपत्रसँग IP बाट जोडिनुहोस्, र प्रमाणीकरण असफल हुन्छ: क्लाइन्टले प्रयोग गरेको नाम प्रमाणपत्रमा छैन। IP SAN सहित पुनः जारी गर्दा त्यो एउटा जडान सुधारिन्छ र अर्को साराइ अझ नराम्रो बन्छ। प्रोफाइलमा होस्टनाम राख्नु र verify-x509-name लाई ठाउँमै छोड्नुले तलको ठेगाना बदलिँदा पनि जाँच कडा राख्छ।

त्यसपछि डेमन केमा बाँधिएको छ जाँच्नुहोस्; पुरानो ठेगानामा पिन गरिएको सकेट चुपचाप असफल हुन्छ। local 203.0.113.10 सँग सुरु गरिएको OpenVPN सर्भर त्यो ठेगाना गएपछि माथि आउन इन्कार गर्छ, जबकि 0.0.0.0 मा रहेको श्रोता परिवर्तन निःशुल्क पछ्याउँछ। NAT पनि त्यसै गरी फुट्छ: MASQUERADE ले मेसिनसँग अहिले भएको जुनसुकै ठेगाना पछ्याउँछ, र स्थिर SNAT --to-source 203.0.113.10 ले अब तपाईंको नभएको ठेगानामा फेरि लेखिरहन्छ, त्यसैले फर्कने ट्राफिक हराउँछ। नयाँ ठेगाना फरक upstream गेटवेसँग आए, rp_filter जाँच्नुहोस्: उल्टो मार्ग फिल्टरिङले कर्नेलले नअपेक्षा गरेको इन्टरफेसमा आउने फर्कने ट्राफिक फ्याँक्छ।

कटओभरको क्रम र यो काम लागेको प्रमाण

एक दिन अघि TTL घटाउनुहोस्, नयाँ श्रोता खडा गर्नुहोस्, र तपाईंसँग मात्र भएको प्रोफाइलले प्रमाणित गर्नुहोस्। एउटै सञ्जालको भित्रबाट गरिने परीक्षणले झन्डै केही प्रमाणित गर्दैन, त्यसैले सेलुलरमा फोन प्रयोग गर्नुहोस् र एन्डपोइन्टमा ping गर्नुको सट्टा टनेलले बोक्नुपर्ने कुरा जाँच्नुहोस्।

पूरै अवधिभर दुवै ठेगाना हेर्नुहोस्। नयाँ होस्टमा wg show all latest-handshakes, वा OpenVPN स्थिति फाइल, ले कति peer साँच्चै सरे भन्छ। नयाँ एन्डपोइन्टमा अपेक्षित peer भए र पुरानोमा पछि परेका मात्र भए, पुरानो श्रोता अवकाश दिनुहोस्, पुरानो NAT नियम हटाउनुहोस् र प्रदायकको फायरवालबाट ठेगाना निकाल्नुहोस्। पुरानो श्रोता हटाउनु नै छुट्ने चरण हो, र यसले पुरानो प्रोफाइल अझै पुरानो सञ्जालमा पुग्ने खाडल बन्द गर्छ।

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

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