host-only નેટવર્ક પરના VM ટ્રાફિકને TUN OpenVPN સર્વર દ્વારા રૂટ કરો
ટનલ અને host-only પ્રીફિક્સ અલગ રાખો, ગેસ્ટ રૂટ પુશ કરો, અને પછી દરેક વર્ચ્યુઅલ મશીનને હોસ્ટ દ્વારા જાણી જોઈને પરત માર્ગ આપો.
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 સેવા અને વર્ચ્યુઅલ મશીનનું નેટવર્કિંગ રીસ્ટાર્ટ કરો અને એ જ ત્રણ ચકાસણી ફરીથી કરો. હાથે ઉમેરાયેલો રૂટ આગલા રીબૂટ સુધી ટકે છે, અને જે કન્ફિગરેશન ફક્ત ગરમ સેશનમાં જ કામ કરે તે રચના નથી. બંને પ્રીફિક્સ, ફોરવર્ડિંગ નીતિ અને ગેસ્ટ રૂટ સાથે મળીને નોંધો. આગલું વર્ચ્યુઅલ મશીન ઉમેરનારને ત્રણેયની જરૂર પડશે અને નહીં તો તે દરેક નિષ્ફળ જોડાણે તેમને ફરી શોધશે.