host-only अडॅप्टर स्थानिक व्हर्च्युअल नेटवर्क तयार करतात, आणि राउट केलेल्या TUN टनेल पत्त्यांमध्ये IP पॅकेट वाहतात। यापैकी कोणतेही दुसऱ्यासाठी ब्रिज नाही, म्हणून कार्यरत कॉन्फिगरेशनने कोण फॉर्वर्ड करते आणि परतीचा रूट कोणाचा आहे हे सांगितले पाहिजे। या दोन जबाबदाऱ्या चुकल्या तर गेस्ट टनेलला अशा स्त्रोताने उत्तर देतो जो टनेल क्लायंटने कधीही मागितला नाही। खालील रचना दोन्ही उपसर्ग वेगळे ठेवते आणि परतीचा मार्ग स्पष्ट करते।

दोन नेटवर्क, दोन उपसर्ग

टनेल पूल आणि host-only नेटवर्कला वेगवेगळे उपसर्ग द्या आणि एकाचा दुसऱ्यासाठी कधीही पुनर्वापर करू नका। या उदाहरणात VPN पूल 10.44.0.0/24 आहे आणि host-only नेटवर्क 192.168.99.0/24 आहे, होस्ट 192.168.99.1 वर आणि गेस्ट 192.168.99.20 वर आहे। एकच उपसर्ग TUN उपकरणाला आणि host-only अडॅप्टरला दिल्याने ते जोडले जात नाहीत। ते एका पत्ता-श्रेणीवर दोन दावे निर्माण करते, आणि राउटिंग टेबल नंतर अपघाताने राखलेल्या दाव्याच्या बाजूने उत्तर देते।

host-only अडॅप्टर होस्टवर आणि गेस्टच्या आत दोन्ही ठिकाणी असतो, आणि त्याला स्वतःहून मशीनबाहेर जाण्याचा मार्ग नाही। ब्रिज आणि NAT कनेक्शनचा धोका वेगळा असतो, आणि एका गेस्ट सेवेपर्यंत पोहोचण्यासाठी ब्रिज मोडमध्ये जाणे आवश्यक नाही।

होस्टकडे मार्ग आधीच आहे

काहीही जोडण्यापूर्वी काय आहे ते पहा। होस्टकडे host-only नेटवर्कवर इंटरफेस आणि त्या उपसर्गासाठी रूट आहे, दोन्ही अडॅप्टर उभा राहिल्यावर तयार झाले।

ip -br addr show
ip route show 192.168.99.0/24
sysctl net.ipv4.ip_forward

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

रूट पुश करा, नंतर तो जिथपर्यंत पोहोचतो ते फिल्टर करा

पुश केलेले रूट स्वीकारणाऱ्या क्लायंटना सर्व्हर host-only उपसर्ग देऊ शकतो, जी टनेलच्या मागील इतर कोणत्याही सबनेटसाठी वापरली जाणारी तीच यंत्रणा आहे।

push "route 192.168.99.0 255.255.255.0"
iptables -A FORWARD -i tun0 -o vboxnet0 -d 192.168.99.20 -p tcp --dport 5432 -j ACCEPT
iptables -A FORWARD -i vboxnet0 -o tun0 -s 192.168.99.20 -p tcp --sport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPT

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

गेस्टला परतीचा मार्ग हवा

10.44.0.x वरून पोहोचणाऱ्या गेस्टने आपली उत्तरे होस्टच्या host-only पत्त्यावर पाठवली पाहिजेत, किंवा होस्टने स्त्रोताचे भाषांतर केले पाहिजे। VirtualBox DHCP कडून पत्ता मिळणे या दोन्ही व्यवस्थांबद्दल काहीही सांगत नाही।

ip route add 10.44.0.0/24 via 192.168.99.1 dev enp0s8
ip route get 10.44.0.15

गेस्टच्या आत तो रूट जोडल्याने मूळ स्त्रोत टिकून राहतो, ज्यामुळे प्रत्येक क्लायंटचे धोरण आणि लॉग अर्थपूर्ण राहतात। होस्टवर मर्यादित स्त्रोत भाषांतर हा पर्याय आहे, आणि तो कार्य करतो, पण कोणता क्लायंट जोडला हे लपवण्याच्या किंमतीवर। ओव्हरलॅप ही दुसरी अयशस्वी पद्धत आहे। ज्याच्या घरातील LAN आधीच 192.168.99.0/24 वापरते असा दूरचा क्लायंट पुश केलेल्या रूटला स्वतःचे नेटवर्क म्हणून वाचेल, आणि सर्व्हरच्या बाजूचा कोणताही बदल ती अस्पष्टता सोडवत नाही। एक बाजू पुन्हा क्रमांकित करा किंवा टक्कर होण्याची शक्यता कमी असलेला उपसर्ग निवडा।

TUN उपकरण IP पॅकेट वाहते, म्हणून गेस्टच्या आत डीफॉल्ट गेटवे जोडल्याने टनेल host-only अडॅप्टरसह इथरनेट विभाग होत नाही। TAP ब्रिजिंग ही स्वतःचे क्लायंट समर्थन आणि पत्ता-मालकी असलेली वेगळी रचना आहे, आणि दोन्ही वर्णने मिसळल्याने कधीही एकत्र न येणारी कॉन्फिगरेशन तयार होतात।

पडताळणी करा, नंतर ते रीस्टार्टला टिकून राहील असे करा

सामान्य दूरच्या क्लायंटवरून एक निरुपद्रवी सेवा तपासा, गेस्टचा परतीचा रूट पहा, आणि तुम्ही परवानगी न दिलेली सेवा संथ नसून नाकारली जाते याची खात्री करा।

ss -lntp '( sport = :5432 )'
conntrack -L | grep 192.168.99.20

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

संबंधित लेख