क्या L2TP वीपीएन के लिए कनेक्ट के दौरान क्लाइंट के लिए ऑटो रूट कॉन्फ़िगरेशन करना संभव है?


13

हमने इस ट्यूटोरियल के साथ एक L2TP वीपीएन सर्वर सेटअप किया है , सब कुछ एक आकर्षण की तरह काम करता है।

एक ही मुद्दा है

  1. हम नहीं चाहते कि ग्राहक इस वीपीएन का उपयोग करके सभी ट्रैफ़िक को रूट करें, केवल एक विशेष सबनेट, जैसे 10.0.0.0/20

  2. मैक पर, हमें मैन्युअल रूप से कमांड का उपयोग करके मार्ग सेट करने की आवश्यकता है, लेकिन मोबाइल उपकरणों के लिए, ऐसा करने का कोई तरीका नहीं है?

तो, क्लाइंट के लिए सबनेट "10.0.0.0/20" के लिए स्वचालित रूप से कॉन्फ़िगर करना संभव है?


क्या आपने ग्राहक पर 'सभी ट्रैफ़िक को वीपीएन पर भेजने' या इसी तरह के विकल्प को अक्षम करने का प्रयास किया है?
बर्थ

जवाबों:


33

ठीक है, यह सवाल इंटरनेट पर बार-बार पूछा जाता है और ज्यादातर समय एक (अर्ध) गलत जवाब होता है कि आप वह नहीं कर सकते जो मूल पोस्ट में वर्णित था। मुझे इसे एक बार और सभी के लिए स्पष्ट करने दें :)

संक्षिप्त उत्तर L2TP है (और उस मामले के लिए PPTP) में प्रोटोकॉल के अंदर मार्ग पुश करने के लिए सुविधाएं नहीं हैं, लेकिन इसे प्रोटोकॉल के बाहर प्राप्त किया जा सकता है।

चूंकि L2TP एक Microsoft आविष्कार है, जानकारी का सबसे अच्छा स्रोत उनका तकनीकी दस्तावेज है (और वे इस पर काफी अच्छे हैं, वैसे)। नीचे जो मैं समझाने जा रहा हूं उसका तकनीकी विवरण वीपीएन एड्रेसिंग और राउटिंग में पाया जा सकता है । सब कुछ ठीक से स्थापित करने के लिए कीवर्ड (यदि आप अपना खुद का शोध करने जा रहे हैं) हैं: DHCPINFORM और "क्लासलेस स्टैटिक रूट"।

सबसे पहले, यह कैसे काम करता है:

  1. एक ग्राहक वीपीएन सर्वर से जुड़ता है
  2. सफल प्रमाणीकरण के बाद एक सुरक्षित सुरंग स्थापित की जाती है
  3. डीएचसीपी क्लासलेस स्टैटिक रुट्स विकल्प का अनुरोध करने के लिए कनेक्शन के बाद क्लाइंट एक डीएचसीपीएफओआरएम संदेश का उपयोग करता है। इस डीएचसीपी विकल्प में उन मार्गों का एक सेट है जो स्वचालित रूप से अनुरोध करने वाले क्लाइंट के रूटिंग टेबल में जोड़े जाते हैं ( मैं इस लाइन को Microsoft प्रलेखन से सीधे कॉपी-पेस्ट करता हूं :))
  4. वीपीएन सर्वर मार्गों के उपयुक्त सेट के साथ उस संदेश का जवाब देता है

खैर, एक चेतावनी है:

  • वहाँ RFC-3442 "DHCP वर्गहीन स्टेटिक रूट" का वर्णन है और यह वहाँ कहा गया है कि इस विकल्प के लिए कोड 121 माइक्रोसॉफ्ट (हमेशा की तरह) पहिया फिर से आविष्कार करने का फैसला किया है और का उपयोग करता है इस विकल्प के लिए कोड 249। इसलिए, ग्राहकों की एक विस्तृत श्रृंखला का समर्थन करने के लिए हमें दोनों कोडों के साथ प्रतिक्रिया करने की आवश्यकता है

मैं लिनक्स सर्वर का उपयोग करके एक विशिष्ट कॉन्फ़िगरेशन का वर्णन करने जा रहा हूं, जो वीपीएन सर्वर (आप Microsoft दस्तावेज़ के लिंक का उपयोग करके एमएस सर्वर को कॉन्फ़िगर कर सकते हैं)।

क्लाइंट्स पर रूट कॉन्फ़िगर करने के लिए हमें निम्नलिखित सामग्री की आवश्यकता होगी:

  • L2TP / IPSEC (या PPTP) = उदाहरण के लिए, acceler-ppp एक अच्छा खुला स्रोत L2TP / PPTP सर्वर है
  • DHCP सर्वर = कई हैं, लेकिन मैं dnsmasq के कॉन्फ़िगरेशन का वर्णन करने जा रहा हूं

निम्नलिखित एक कार्यशील गति-पीपीपी विन्यास का एक डंप है। मैं इसे इसकी संपूर्णता प्रदान कर रहा हूं, अन्यथा यह स्पष्ट करना मुश्किल होगा कि कहां जाता है। यदि आपके पास पहले से ही अपना वीपीएन काम कर रहा है तो आप इस कॉन्फ़िगरेशन फ़ाइल को छोड़ सकते हैं और नीचे वर्णित डीएचसीपी कॉन्फ़िगरेशन पर ध्यान केंद्रित कर सकते हैं।

[root@vpn ~]# cat /opt/accel-ppp/config/accel-ppp.conf
[modules]
log_syslog
pptp
l2tp
auth_mschap_v2
ippool
sigchld
chap-secrets
logwtmp

[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4

[ppp]
verbose=1
min-mtu=1280
mtu=1400
mru=1400
check-ip=1
single-session=replace
mppe=require
ipv4=require
ipv6=deny
ipv6-intf-id=0:0:0:1
ipv6-peer-intf-id=0:0:0:2
ipv6-accept-peer-intf-id=1

[lcp]
lcp-echo-interval=30
lcp-echo-failure=3

[auth]
#any-login=0
#noauth=0

[pptp]
echo-interval=30
echo-failure=3
verbose=1

[l2tp]
host-name=access-vpn
verbose=1

[dns]
dns1=192.168.70.251
dns2=192.168.70.252

[client-ip-range]
disable

[ip-pool]
gw-ip-address=192.168.99.254
192.168.99.1-253

[log]
log-file=/var/log/accel-ppp/accel-ppp.log
log-emerg=/var/log/accel-ppp/emerg.log
log-fail-file=/var/log/accel-ppp/auth-fail.log
log-debug=/var/log/accel-ppp/debug.log
copy=1
level=3

[chap-secrets]
gw-ip-address=192.168.99.254
chap-secrets=/etc/ppp/chap-secrets

[cli]
telnet=127.0.0.1:2000
tcp=127.0.0.1:2001

[root@vpn ~]# 
===

इस बिंदु पर हमारे ग्राहक L2TP (या PPTP) के माध्यम से जुड़ सकते हैं और वीपीएन सर्वर के साथ संवाद कर सकते हैं। तो, केवल लापता भाग एक डीएचसीपी सर्वर है जो बनाई गई सुरंगों पर सुन रहा है और जो आवश्यक जानकारी के साथ वापस प्रतिक्रिया करता है। नीचे dnsmasq कॉन्फ़िगरेशन फ़ाइल का एक अंश है (मैं केवल डीएचसीपी संबंधित विकल्प प्रदान कर रहा हूं):

[root@vpn ~]# grep -E '^dhcp' /etc/dnsmasq.conf 
dhcp-range=192.168.99.254,static
dhcp-option=option:router
dhcp-option=121,192.168.70.0/24,192.168.99.254,192.168.75.0/24,192.168.99.254,10.0.0.0/24,192.168.99.254
dhcp-option=249,192.168.70.0/24,192.168.99.254,192.168.75.0/24,192.168.99.254,10.0.0.0/24,192.168.99.254
dhcp-option=vendor:MSFT,2,1i
[root@vpn ~]#

उपरोक्त अंश में हम 192.168.99.254 (वीपीएन सर्वर) के माध्यम से 192.168.70.0/24, 192.168.75.0/24, और 10.0.0.0/24 मार्गों पर जोर दे रहे हैं।

अंत में, यदि आप नेटवर्क ट्रैफ़िक (जैसे वीपीएन सर्वर पर) को सूँघते हैं, तो आपको DHCPINFORM संदेश पर प्रतिक्रिया के लिए निम्न जैसा कुछ दिखाई देगा:

19:54:46.716113 IP (tos 0x0, ttl 64, id 10142, offset 0, flags [none], proto UDP (17), length 333)
    192.168.99.254.67 > 192.168.99.153.68: BOOTP/DHCP, Reply, length 305, htype 8, hlen 6, xid 0xa27cfc5f, secs 1536, Flags [none]
      Client-IP 192.168.99.153
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message Option 53, length 1: ACK
        Server-ID Option 54, length 4: 192.168.99.254
        Domain-Name Option 15, length 18: "vpn.server.tld"
        Classless-Static-Route-Microsoft Option 249, length 24: (192.168.70.0/24:192.168.99.254),(192.168.75.0/24:192.168.99.254),(10.0.0.0/24:192.168.99.254)
        Vendor-Option Option 43, length 7: 2.4.0.0.0.1.255

पीएस I उपरोक्त विन्यास के सफल उपयोग के लिए आवश्यक एक आवश्यक भाग को लगभग भूल गया। ठीक है, यह Microsoft डॉक्स में मुझे वर्णित किया गया था, लेकिन प्रलेखन किसने पढ़ा? :) ठीक है, ग्राहकों को वीपीएन कनेक्शन पर 'डिफ़ॉल्ट गेटवे का उपयोग करें' के बिना कॉन्फ़िगर किया जाना चाहिए (विंडोज पर यह कनेक्शन के गुणों में है -> नेटवर्किंग -> इंटरनेट प्रोटोकॉल संस्करण 4 (टीसीपी / आईपीवी 4) -> गुण -> उन्नत -> आईपी सेटिंग्स )। कुछ ग्राहकों पर 'विकल्प वर्ग आधारित मार्ग जोड़ अक्षम करें' नाम का एक विकल्प भी होता है - क्योंकि इसे स्पष्ट रूप से उस कार्यक्षमता को निष्क्रिय कर देना चाहिए जिसे हम लागू करने की कोशिश कर रहे हैं।


यह मेरी समझ है कि क्लासिक L2TP UDP से अधिक पीपीपी पैकेट को घेरता है। मैं गलत हो सकता हूं, लेकिन मुझे नहीं लगता कि डीएचसीपी पीपीपी पर समर्थित है, विशेष रूप से अतिरिक्त मार्ग भेज रहा है। L2TP संस्करण 3 (अभी भी लिनक्स कर्नेल भूमि में काफी नया है) आपको ईथरनेट फ्रेम को इनकैप्सुलेट करने देता है, इसलिए यह वहां संभव हो सकता है, फिर भी मुझे पूरा यकीन है कि माइलेज अलग-अलग हो सकती है जो मोबाइल उपकरणों पर अच्छी तरह से समर्थित है।
मैथ्यू इफ

मैथ्यू, मुझे वास्तव में नहीं पता है कि आपके प्रश्न को ठीक से कैसे संबोधित किया जाए क्योंकि आपने कई चीजों को एक वाक्य में मिलाया है :) खैर, आइए निम्नलिखित के साथ शुरू करें: प्रदान किया गया कॉन्फ़िगरेशन सैकड़ों सड़क-योद्धाओं पर काम कर रहा है जिनकी मैं देखरेख कर रहा हूं। तो, यह एक कार्यशील उदाहरण है। आप पीपीपी पर डीएचसीपी के लिए Google कर सकते हैं और सिस्को, जुनिपर, आदि द्वारा इसे लागू करने के तरीके पर बहुत सारे तकनीकी दस्तावेज पढ़ सकते हैं। यदि आप इसमें गोता नहीं लगाना चाहते हैं, तो बस कल्पना करें कि L2TP UDP पर PPP को एनकैप्सुलेट करता है, PPP एक बिंदु है- टू-पॉइंट प्रोटोकॉल जहां आप आईपी का उपयोग कर सकते हैं, डीएचसीपी आईपी पर एक प्रोटोकॉल है, इसलिए हम यहां अच्छे हैं :)
आकाशगंगा

1
इसके अलावा, इस तरह की टिप्पणियों को प्राप्त करना काफी अजीब है जब मैंने L2TP के लिए Microsoft तकनीकी दस्तावेज़ीकरण की एक कड़ी शामिल की जहां वे वर्णन करते हैं कि कैसे DHCPINFORM का उपयोग करके चीजों को ठीक से सेट किया जाए। मैं समझ सकता हूं कि जब लोग किसी के शोध के बाद से जवाब (हालांकि इसमें एक कार्य प्रणाली से कॉन्फ़िगर फ़ाइलें शामिल हैं) पढ़ना नहीं चाहते हैं, लेकिन "मुझे नहीं लगता कि डीएचसीपी पीपीपी पर समर्थित है" जब कोई तकनीकी विनिर्देश है। प्रोटोकॉल के निर्माता जहां यह बताता है कि यह जिस तरह से डिजाइन किया गया है वह अजीब है।
आकाशगंगा

मेरी बात को स्पष्ट करने के लिए "पीपीसी पीपीपी से अधिक समर्थित नहीं है", मेरा मतलब है कि पीपीपी लिंक कंट्रोल प्रोटोकॉल पर आईपी एड्रेस असाइनमेंट होता है (बिंदुओं में 'प्रसारण' पते की कोई धारणा नहीं है)। इसलिए मुझे लगता है कि आप गलत समझ रहे थे कि मुझे क्या मिल रहा था। मैं अब देखता हूं कि आपके कहने का मतलब यह है कि कनेक्शन स्थापना के बाद सुरंग के अंदर DHCPINFORM होता है और प्रारंभिक कनेक्शन से इसका कोई लेना-देना नहीं है। अब मैं मानता हूं कि यह योजना काम करती है, बशर्ते कनेक्शन सेटअप होने के बाद क्लाइंट एक डीएचसीपीएफओआरएम संदेश भेजेगा
मैथ्यू इफ

मैथ्यू, धन्यवाद :)। हां, हम पते के असाइनमेंट के लिए डीएचसीपी का उपयोग नहीं कर रहे हैं, यह आईपीसीपी द्वारा किया गया है (और एलसीपी के रूप में आपने कहा नहीं है, लेकिन यह अप्रासंगिक है), हालांकि, Microsoft तकनीकी दस्तावेज में कहा गया है कि एक वैध क्लाइंट को विकल्प के लिए डीएचसीपीएनओआरएफ संदेश 249 पर भेजना चाहिए मार्ग विन्यास, और यह वही है जो मैंने अपने उत्तर में वर्णित किया है। ठीक है, किसी ने पहले से ही मेरे जवाब को वोट दिया, हालांकि यह एक काम कर रहा है, मान्य उत्तर :)
आकाशगंगा

1

मुझे नहीं लगता कि आप एल 2 टीटीपी / आईपीएसईसी वीपीएन में क्लाइंट के लिए एक मार्ग को आगे बढ़ा सकते हैं। आपको कॉन्फ़िगरेशन सीधे क्लाइंट पर करना होगा।

आप किस मोबाइल क्लाइंट से परेशान हैं? यदि हम ऑपरेटिंग सिस्टम और सॉफ़्टवेयर का उपयोग कर रहे हैं, तो कुछ इनपुट प्रदान करना आसान है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.