दोन्ही रचना एकाच रहदारीचे संरक्षण एकाच IPsec यंत्रणेने करतात आणि कोणते पॅकेट बोगद्यात प्रवेश करते हे काय ठरवते यात त्या वेगळ्या आहेत। नियम-आधारित जोडणीत वाटाघाटी केलेले रहदारी निवडक ते काम करतात; रूट-आधारित जोडणीत बोगदा इंटरफेसकडे निर्देश करणारा मार्ग ते करतो। दोन्हींची गल्लत केल्यास बोगदा स्थापित असल्याचे सांगतो पण अनुप्रयोग कुठेही पोहोचत नाही अशी परिचित सहाय्यता चर्चा तयार होते। हा फरक सर्वात महत्त्वाचा तेव्हा असतो जेव्हा तुम्ही नेटवर्क जोडता, मार्गनिर्देशन प्रोटोकॉल चालवता किंवा चुकीच्या बाहेर पडण्याच्या मार्गाने शांतपणे बाहेर जाणारा मार्ग डीबग करता।

बोगद्यात काय प्रवेश करते हे ठरवण्याचे दोन मार्ग

नियम-आधारित VPN स्रोत आणि गंतव्य उपसर्गांशी जुळणारे सुरक्षा नियम तयार करते आणि नंतर जुळणारे सर्व एन्क्रिप्ट करते। सहकार्याला सुसंगत निवडकांवर वाटाघाटी करावी लागते, म्हणून प्रभावी व्याप्ती शेवटी दोन्ही बाजूंनी सुचवलेल्याचा छेद बनते। त्या छेदाबाहेर काहीही संरक्षित नाही, मार्गनिर्देशन तक्ता काहीही सांगो।

रूट-आधारित VPN बोगद्याचे प्रतिनिधित्व करणारा इंटरफेस तयार करते आणि मार्गनिर्देशन तक्त्याला त्यात रहदारी पाठवू देते। IKE डेमन अजूनही स्थिती आणि प्रत्येक इंटरफेसचा नियम स्थापित करतो, आणि मार्गांनी एन्क्रिप्शन बदलले असे ठरवताना लोक हाच तपशील वगळतात। दोन्ही रचना IPsec ने एन्क्रिप्ट करतात; फक्त निवडीची यंत्रणा वेगळी आहे।

खालील तुलना गुणतक्ता म्हणून नव्हे तर अपयशाच्या खुणांचा संच म्हणून वाचा, कारण कोणताही स्तंभ स्वतःहून जिंकत नाही।

AspectPolicy-basedRoute-based
What selects trafficNegotiated selectorsA route into the tunnel interface
Adding a networkEdit selectors on both peersAdd a route, widen the selector once
Dynamic routingAwkward to run over the tunnelRuns over the interface directly
Typical failureTunnel up, host outside the selectorTunnel up, no route or wrong source

नियम-आधारित: निवडक हाच करार

निवडकांवर वाटाघाटी होते, केवळ संरचना केली जात नाही। एका बाजूला 10.10.0.0/16 आणि दुसऱ्या बाजूला 10.10.1.0/24 सुचवा, मग संलग्नता वाटाघाटी जिथे थांबली ते व्यापेल आणि इतर प्रत्येक यजमान बाहेर राहील।

संरचना फाइलऐवजी स्थापित स्थिती वाचा। Linux सहकार्यावर कर्नलची स्वतःची तक्ते ही मूळ सत्यता आहेत आणि वाटाघाटीतून काय टिकले ते दाखवतात। योग्य उपसर्ग सांगणारा पण जुळणारी स्थिती नसलेला नियम म्हणजे संलग्नता कधीच उभी राहिली नाही। चुकीच्या उपसर्गासाठीच्या नियमासोबत जोडलेली स्थिती ही उलट समस्या आहे आणि ती निरोगी दिसणारा बोगदा निर्माण करते जेव्हा एक उपजाळ कुठेही पोहोचत नाही।

sudo ip xfrm state
sudo ip xfrm policy
sudo swanctl --list-sas

तुम्ही संरक्षण करत आहात असे वाटणाऱ्या उपसर्गांशी दोन्ही आउटपुटची तुलना करा। ही एकच तुलना कार्यरत बोगदा आणि अगम्य सर्व्हर याबद्दलच्या बहुतेक तक्रारी सोडवते। कोणत्या सहकार्याला बदलावे हेही ती दाखवते, कारण विसंगती सहसा एकाच दिशेने दिसते।

रूट-आधारित: इंटरफेस हाच करार

XFRM इंटरफेस बोगद्याला नाव आणि ओळख देतो आणि मार्गनिर्देशन तक्ता तसे सांगत असल्याने रहदारी त्याला पोहोचते। अनेक दूरचे उपसर्ग मग निवडकाच्या समस्येऐवजी मार्गनिर्देशनाची समस्या बनतात आणि मार्गनिर्देशन प्रोटोकॉल त्यांची जाहिरात करू शकतो। हाच खरा फायदा, एन्क्रिप्शन नव्हे।

इंटरफेस नियमाची गरज काढून टाकत नाही। डेमन इंटरफेसच्या ओळखीशी बांधलेले नियम प्रत्येक इंटरफेससाठी स्थापित करतो, त्यामुळे चुकीच्या इंटरफेसवर आलेले पॅकेट तरीही अपयशी होते। सहकार्य स्वीकारणार नाही असा स्रोत पत्ताही पूर्ण मार्ग असूनही अपयशी होतो। रूट-आधारित म्हणजे प्रवेश मार्ग ठरवतो, नियम नाहीसा झाला असे नव्हे।

sudo ip link add xfrm0 type xfrm dev eth0 if_id 42
sudo ip route add 10.20.0.0/16 dev xfrm0
ip -s link show xfrm0
ip route get 10.20.5.10

मार्ग जागेवर आल्यावर इंटरफेस मोजण्यांचे निरीक्षण करा। मार्ग अस्तित्वात आहे पण मोजण्या शून्यावर आहेत म्हणजे बोगद्यात काहीही जुळवले जात नाही, जे सहसा नसलेल्या मार्गाऐवजी नसलेल्या स्थितीकडे निर्देश करते।

दोन्ही रचना खरोखर कुठे वेगळ्या होतात

नेटवर्क जोडणे ही कोणते मॉडेल तुम्हाला साजेल याची सर्वात स्वच्छ चाचणी आहे। रूट-आधारित रचना एक मार्ग जोडते आणि जास्तीत जास्त एकदा निवडक रुंदावते, तर नियम-आधारित रचना दोन्ही सहकार्यांवर उपसर्ग जोड्या संपादित करते आणि पुन्हा वाटाघाटी करते। दोन स्थिर उपजाळ ते संपादन क्षुल्लक करतात आणि वीस ते प्रकल्प करतात।

कोणतेही मॉडेल फायरवॉलची जागा घेत नाही आणि तुलना सहसा या टप्प्यापूर्वी थांबतात। रुंद निवडक किंवा रुंद मार्ग काय एन्क्रिप्ट होते हे ठरवतो, काय परवानगी आहे ते नव्हे।

MTUचे वर्तनही प्रत्यक्षात वेगळे आहे। एन्कॅप्स्युलेशन उपयुक्त पेलोड कमी करते आणि रूट-आधारित इंटरफेस स्वतःचे MTU वाहते, त्यामुळे दोन्ही गेटवेवर MSS क्लॅम्प केल्यास लहान उत्तरे येतात आणि मोठी गायब होतात हे काळ्या भोकाचे लक्षण टळते। नियम-आधारित बोगदे दुसऱ्या बाजूने त्याच भिंतीवर आदळतात, कारण निवडक पॅकेटच्या आकाराबद्दल काहीही सांगत नाही। सहकार्याला दोष देण्याऐवजी क्लॅम्प जाणीवपूर्वक सेट करा।

परतीचा मार्ग न गमावता स्थलांतर

काहीही बदलण्यापूर्वी विद्यमान उपसर्ग जोड्या नोंदवा, नंतर एक अनुप्रयोग मार्ग हलवा आणि तो सुरुवातीपासून शेवटपर्यंत पाहा। स्थापित होणारा बोगदा पुढे पाठवणारा बोगदा नसतो आणि फरक उत्तरेच्या दिशेने दिसतो।

सहकार्य जोडतात पण LAN यजमान जोडू शकत नाहीत तेव्हा परतीचा मार्ग आणि दूरचा यजमान वापरणारा स्रोत पत्ता तपासा। दोन इंटरफेस असलेला यजमान चुकीच्या इंटरफेसने उत्तर देऊ शकतो आणि कोणताही निवडक बदल ते दुरुस्त करत नाही। अल्गोरिदम संपादित करण्यापूर्वी दोन्ही टोकांवर रहदारी पकडा।

ip route get 10.20.5.10
sudo tcpdump -ni any host 10.20.5.10 and icmp
sudo swanctl --list-conns

काम करताना बोगद्यावर अवलंबून नसलेला व्यवस्थापन मार्ग ठेवा। गेटवेचा स्वतःचा प्रवेश तुम्ही डीबग करत असलेल्या जोडणीवर नसेल तर मागे फिरणे सोपे जाते।

संबंधित लेख