ठीक है, यह सवाल इंटरनेट पर बार-बार पूछा जाता है और ज्यादातर समय एक (अर्ध) गलत जवाब होता है कि आप वह नहीं कर सकते जो मूल पोस्ट में वर्णित था। मुझे इसे एक बार और सभी के लिए स्पष्ट करने दें :)
संक्षिप्त उत्तर L2TP है (और उस मामले के लिए PPTP) में प्रोटोकॉल के अंदर मार्ग पुश करने के लिए सुविधाएं नहीं हैं, लेकिन इसे प्रोटोकॉल के बाहर प्राप्त किया जा सकता है।
चूंकि L2TP एक Microsoft आविष्कार है, जानकारी का सबसे अच्छा स्रोत उनका तकनीकी दस्तावेज है (और वे इस पर काफी अच्छे हैं, वैसे)। नीचे जो मैं समझाने जा रहा हूं उसका तकनीकी विवरण वीपीएन एड्रेसिंग और राउटिंग में पाया जा सकता है । सब कुछ ठीक से स्थापित करने के लिए कीवर्ड (यदि आप अपना खुद का शोध करने जा रहे हैं) हैं: DHCPINFORM और "क्लासलेस स्टैटिक रूट"।
सबसे पहले, यह कैसे काम करता है:
- एक ग्राहक वीपीएन सर्वर से जुड़ता है
- सफल प्रमाणीकरण के बाद एक सुरक्षित सुरंग स्थापित की जाती है
- डीएचसीपी क्लासलेस स्टैटिक रुट्स विकल्प का अनुरोध करने के लिए कनेक्शन के बाद क्लाइंट एक डीएचसीपीएफओआरएम संदेश का उपयोग करता है। इस डीएचसीपी विकल्प में उन मार्गों का एक सेट है जो स्वचालित रूप से अनुरोध करने वाले क्लाइंट के रूटिंग टेबल में जोड़े जाते हैं ( मैं इस लाइन को Microsoft प्रलेखन से सीधे कॉपी-पेस्ट करता हूं :))
- वीपीएन सर्वर मार्गों के उपयुक्त सेट के साथ उस संदेश का जवाब देता है
खैर, एक चेतावनी है:
- वहाँ 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) -> गुण -> उन्नत -> आईपी सेटिंग्स )। कुछ ग्राहकों पर 'विकल्प वर्ग आधारित मार्ग जोड़ अक्षम करें' नाम का एक विकल्प भी होता है - क्योंकि इसे स्पष्ट रूप से उस कार्यक्षमता को निष्क्रिय कर देना चाहिए जिसे हम लागू करने की कोशिश कर रहे हैं।