ब्लॅकहोल रूट विरुद्ध VPN किल स्विच: प्रत्येक काय करते
ब्लॅकहोल रूट जुळणाऱ्या रहदारीचा त्याग करते आणि अपयशाच्या वेळी बंद मार्ग लादते. त्याची व्याप्ती आणि अंध बिंदू पॅकेट फिल्टरवर आधारित किल स्विचशी तुलना करा.
एक पॅकेट लॅपटॉपमधून निघते, VPN गेटवेपर्यंत कधीही पोहोचत नाही, आणि कोणताही फायरवॉल काउंटर हलत नाही. रूट टेबलने पॅकेटचे नशीब आधीच ठरवले आहे: एक ब्लॅकहोल नोंद त्याच्याशी जुळली आणि कोणत्याही इंटरफेसने पाहण्यापूर्वी कर्नेलने ते टाकून दिले. गंतव्यस्थान बंद पद्धतीने अपयशी व्हायला हवे तेव्हा हे वर्तन उपयुक्त असते, पण ही अरुंद व्याप्तीची राउटिंग क्रिया आहे. याला संपूर्ण किल स्विच मानणे हेच डिझाइन चुकतात ते ठिकाण.
टाकून देण्याची क्रिया प्रत्यक्षात कशाशी जुळते
रूट शोध एक टेबल निवडतो, नंतर त्यात सर्वात लांब जुळणारा प्रीफिक्स निवडतो. ब्लॅकहोल रूट ही क्रिया टाकून देणे असलेली सामान्य नोंद आहे, म्हणून ती संपूर्ण निर्णयानंतर ती नोंद निवडली असती त्या पॅकेटवरच परिणाम करते. धोरण नियमाने टेबल बदला, किंवा अधिक विशिष्ट प्रीफिक्स जोडा, आणि टाकून देणे यापुढे लागू होत नाही.
म्हणूनच ब्लॅकहोलची व्याप्ती नेमकी आणि सांगायला सोपी आहे: ती प्रीफिक्स, टेबलमध्ये, त्या पत्ता कुटुंबासाठी व्यापते. दुसरे टेबल जिंकेल असे गंतव्य ती व्यापत नाही, आणि केवळ IPv4 प्रीफिक्स टाकून दिल्यामुळे ती IPv6 व्यापत नाही.
ip route get काहीही तैनात करण्यापूर्वी निर्णय दाखवते, टेबल आणि रूट प्रकारासह. तो आउटपुट वाचणे अपयशी विनंतीवरून कोणता नियम किंवा प्रीफिक्स लागू झाला याचा अंदाज बांधण्यापेक्षा वेगवान आहे.
ब्लॅकहोल unreachable किंवा prohibit सारखे नाही
Linux टाकून देण्यासारखे तीन रूट प्रकार देते, आणि ते प्रेषक काय पाहतो यात भिन्न आहेत. ब्लॅकहोल पॅकेटला उत्तराशिवाय टाकून देते, म्हणून क्लायंटला कालबाह्यता दिसते. unreachable रूट ICMP unreachable संदेश परत करते, म्हणून कनेक्शन होस्ट किंवा नेटवर्क त्रुटीने लवकर अपयशी होते. prohibit रूट प्रशासकीय प्रतिबंधाची त्रुटी परत करते, जी जाणूनबुजून धोरण नाकारण्याच्या जवळ आहे.
अॅप्लिकेशनला दाखवायचे असलेले वर्तन निवडा. धोरण उघड करायचे नसल्यास शांत टाकून देणे योग्य आहे, आणि गंतव्य का उपलब्ध नाही हे वापरकर्त्यांना समजायला हवे असेल तर तात्काळ त्रुटी बरी आहे. नेटवर्कभर प्रकार मिसळल्यास एकाच धोरणाचे तीन वेगवेगळे बिघाड असे वर्णन करणारी सहाय्य तिकिटे तयार होतात.
कनेक्शनचे निदान करताना प्रत्येक टाकून देणारी नोंद अदलाबदल करण्यायोग्य आहे असे गृहीत धरू नका. त्रुटी मजकूर, वेळ आणि पॅकेट कॅप्चर भिन्न असतात, आणि टेबलमधील रूट प्रकार तुम्ही कोणते पाहत आहात हे सांगतो. ip-route पुस्तिका प्रकार आणि त्यांचे त्रुटी वर्तन सूचीबद्ध करते.
किल स्विचशी ते कसे तुलना करते
किल स्विच म्हणजे पॅकेट फिल्टरिंग: बोगद्याबाहेर जाणारी बाहेरगामी रहदारी टाकून देणारा फायरवॉल नियम. ब्लॅकहोल रूट स्टॅकमध्ये आधी घेतलेला फॉरवर्डिंग निर्णय आहे. दोन्ही रहदारी थांबवू शकतात, पण ते वेगळ्या गोष्टी पाहतात आणि वेगळी प्रकरणे चुकवतात.
| Mechanism | What it blocks | What it misses | How failure looks |
|---|---|---|---|
| Blackhole route | Destinations matching the prefix and table | Other tables, other address families, traffic with a different route | Silent timeout |
| Firewall kill switch | Egress not bound to the tunnel interface | Rules that are too broad can break the endpoint or DHCP | Dropped packets with counters |
| WireGuard AllowedIPs | Destinations not routed into the interface | Traffic that never enters the interface at all | No tunnel route, direct egress |
तुलना महत्त्वाची असते ती व्याप्तीत. फायरवॉल मालक, पोर्ट किंवा इंटरफेस जुळवून अॅप्लिकेशनला अडवू शकतो आणि एंडपॉइंट पोहोचण्यायोग्य ठेवतो; रूट ते करू शकत नाही. उलट, रूट कोणतेही पॅकेट फिल्टर न लोड करता संपूर्ण प्रीफिक्स टाकून देण्याकडे पाठवू शकते, जे अत्यल्प प्रणालीवर उपयुक्त आहे.
WireGuard चे AllowedIPs क्रिप्टोकी राउटिंग आहे, फायरवॉल नाही. कोणते गंतव्य प्रीफिक्स इंटरफेसमध्ये स्वीकारले जातात हे ते ठरवते, आणि केवळ बोगदा उपजाळ सूचीबद्ध करणारी प्रोफाइल इतर गंतव्ये सामान्य डीफॉल्ट रूटवर सोडते. म्हणूनच पूर्ण बोगदा प्रोफाइल 0.0.0.0/0 वापरतात आणि म्हणूनच wg-quick शक्य तेव्हा फायरवॉल नियमही स्थापित करते.
बोगदा एंडपॉइंट टाकून देण्याबाहेर ठेवा
एंडपॉइंटचा बाह्य पत्ता भौतिक इंटरफेसद्वारे पोहोचण्यायोग्य राहिला पाहिजे. तो पत्ताही पकडणारे टाकून देणे हातमिळवणी बाहेर जाण्यास प्रतिबंध करते, आणि बोगदा कधीच वर येत नाही, जे राउटिंग धोरणाऐवजी VPN बिघाडासारखे दिसते. बदलापूर्वी आणि नंतर एंडपॉइंटचा रूट तपासा.
व्यवस्थापन प्रवेशही त्याच आढाव्यात येतो. राउटर किंवा क्लायंटपर्यंतचा एकमेव मार्ग बोगदा असेल, तर अती विस्तृत टाकून देणे तुम्हाला ते काढू देणाऱ्या मशीनपासून बाहेर ठेवू शकते. दस्तऐवजीकृत आउट-ऑफ-बँड रूट, कन्सोल किंवा वेळबद्ध रोलबॅक ठेवा.
IPv6 ला स्वतःची नोंद आणि स्वतःचा आढावा हवा. IPv4 ब्लॅकहोलमध्ये टाकून IPv6 डीफॉल्ट रूटवर ठेवणारी रचना धोरणाने थांबवायची होती तीच रहदारी गळते, आणि ती चूक केवळ IPv4 च्या चाचणीत अदृश्य असते.
टाइमर आणि रोलबॅकसह टप्प्याटप्प्याने लागू करा
रूट थोड्या स्वयंचलित काढण्यासह लागू करा जेणेकरून चूक रीबूटनंतर टिकणार नाही. खालील आदेश दस्तऐवजीकरण श्रेणी वापरतात; ती तुमची रचना प्रत्यक्षात टाकून देते त्या प्रीफिक्सने बदला:
sudo ip route replace blackhole 10.0.0.0/8
ip route get 10.1.2.3
sudo systemd-run --on-active=60 /sbin/ip route del blackhole 10.0.0.0/8दुसऱ्या आदेशाने ब्लॅकहोल रूट आणि ते कोणत्या टेबलमधून आले ते कळवावे. तिसरा एका मिनिटात काढण्याचे नियोजन करतो, जे धोरण पुष्टी करण्यासाठी पुरेसा वेळ आणि दूरच्या होस्टवरील चुकीतून सावरण्यासाठी पुरेसा थोडका आहे. वर्तन पुष्टी झाल्यावर, इतर रूटांचे मालक असलेल्या त्याच कॉन्फिगरेशन व्यवस्थापनाद्वारे नोंद कायमस्वरूपी करा.
प्रीफिक्स, टेबल, पत्ता कुटुंब आणि रोलबॅक पद्धत नोंदवून बदल बंद करा. टाकून देणे हे राउटिंग रचनेतील जाणूनबुजून केलेले अपवाद आहे, आणि पुढच्या अभियंत्याला ते अजूनही तिथे आहे का हे ठरवण्यापूर्वी कोणती रहदारी थांबवण्यासाठी होते हे माहीत असले पाहिजे.