सवाल ओपनवीपीएन: वीपीएन के माध्यम से रूट केवल विशिष्ट सबनेटवर्क - एकल आईपी एड्रेस के लिए काम करता है


मैं खुले वीपीएन के माध्यम से केवल विशिष्ट सबनेट / एकल को रूट करने की कोशिश कर रहा था।

मैंने सुपरसियर पर इस तरह के कई प्रश्न पढ़े हैं, और यहां तक ​​कि पाए गए हैं अच्छा उत्तर मेरे प्रश्न के लिए।

तो अब मैं वीपीएन के माध्यम से एकल आईपी एड्रेस रूट करने में सक्षम हूं। ऐसा करने के लिए मैंने इस तरह कुछ जोड़ा है /etc/openvpn/client.conf:

route-nopull

route 1.2.3.4 255.255.255.255
route 5.6.7.8 255.255.255.255
route 9.10.11.12 255.255.255.255

हालांकि यह मेरी समस्या का केवल आधा हल करता है, क्योंकि मैं जो करना चाहता हूं वह वीपीएन के माध्यम से विशिष्ट सबनेटवर्क को रूट करना है, न केवल एक ही एड्रेस।

मैंने निम्नलिखित कोशिश की है

route x.y.19.178 255.255.255.0

जो, मुझे विश्वास है, vpn के माध्यम से x.y.19.178 / 24 सबनेटवर्क पर व्हाउल ट्रैफिक को रूट करना चाहिए, लेकिन ऐसा नहीं है। इसके बजाय मैं syslog में निम्न त्रुटि देख सकता हूं:

Dec 18 16:11:01 wi-dev ovpn-client[31421]: /sbin/ip route add x.y.19.178/24 via z.a.0.1
Dec 18 16:11:01 wi-dev ovpn-client[31421]: ERROR: Linux route add command failed: external program exited with error status: 2 

किसी भी विचार से मेरे क्लाइंट (या सर्वर) कॉन्फ़िगरेशन में क्या गलत हो सकता है?


2
2017-12-18 16:05


मूल


क्या आप अपना कॉन्फ़िगरेशन उदाहरण अपडेट कर सकते हैं ताकि आपके आईपी पते के अंतिम दो ऑक्टेट्स आपके कॉन्फ़िगरेशन में वास्तविक मान हों? वे संख्या प्रासंगिक हैं और यदि वे सही नहीं हैं तो त्रुटियां हो सकती हैं। - heavyd
मैंने इसे अपडेट किया है। हालांकि समस्या का सामना करने के दौरान मैंने नेटवर्क मास्क का उपयोग किया है। मैंने x.y.19.178 / 1 x.y.19.178 / 24 x.y.19.178 / 30 इत्यादि के लिए प्रयास किया है। - running.t


जवाब:


आपका नेटमास्क आपके द्वारा उपयोग किए जा रहे आईपी पते के लिए मान्य नहीं है। विशेष रूप से, यदि आप अपने आईपी पते लेते हैं और उन्हें बाइनरी में परिवर्तित करते हैं तो आपको मिलता है:

IP   = x.y.19.178            = XXXXXXXX.YYYYYYYY.00010011.10110010
MASK = 255.255.255.252 (/30) = 11111111.11111111.11111111.11111100

किसी आईपी पते को सबनेट के लिए मान्य होने के लिए, आईपी सबनेट की शुरुआत में होनी चाहिए, या बाइनरी शर्तों में, आईपी केवल हो सकता है 1एस जहां सबनेट मास्क है 1रों। तो, अगर हम अंतिम को हटा दें 1 आईपी ​​से हमें मिलता है:

IP   = x.y.19.176            = 00001010.00000000.00010011.10110000

तो, वास्तव में आपके सबनेट की शुरुआत होना चाहिए x.y.19.176। यदि आप एक सेनेट को अलग से अलग करना चाहते हैं तो आपको उचित आईपी की गणना करनी होगी /30। मैंनें इस्तेमाल किया यह उपकरण कुछ गणना करने के लिए।

यह भी ध्यान दें: यदि आप कमांड लाइन पर लॉग में दिए गए आदेश को चलाते हैं

/sbin/ip route add x.y.19.178/24 via z.a.0.1

आपको त्रुटि वापस मिल जाएगी। मेरी मशीन पर मुझे "अवैध तर्क" मिला, जबकि यह आदेश सफल हुआ:

/sbin/ip route add 192.168.19.176/24 via 192.168.0.1

3
2017-12-18 17:32