සෑම කුඩා OpenVPN ද්වාරයකම නම් ගැටළු දෙකක් මතු වේ. සම්බන්ධිත ලැප්ටොප් එකක් එහි සහතිකයේ ඇති නමින් ළඟා කරගත නොහැක, උමං පිටුපස ඇති සේවාවන්ට නම් කිසිසේත් නැත. ඒවා එක් ගැටළුවක් ලෙස පෙනේ, නමුත් විරුද්ධ ප්‍රතිකාර අවශ්‍ය වේ, මන්ද එක් ලිපිනයක් සෑම සැසියකදීම ගමන් කරන අතර අනෙක ගමන් නොකරයි. යමක් සංස්කරණය කිරීමට පෙර ඔබ එකතු කරන්නේ කුමන ආකාරයේ නමක් දැයි තීරණය කරන්න.

ද්වාරය අනුව නොව, නම අනුව තීරණය කරන්න

පරීක්ෂණය සරලයි: ග්‍රාහකයා නැවත සම්බන්ධ වන විට මෙම ලිපිනය වෙනස් වේ ද? ඔව් නම්, නම VPN සැසියෙන් ජනනය කළ යුතුය. නැත නම්, එය ඔබට කියවා සමාලෝචනය කළ හැකි ස්ථිතික සටහනකට අයත් වේ.

Name kindSource of truthWhere it lives
Connected clientThe address OpenVPN just assignedGenerated hosts file, rewritten per session
Service behind the tunnelA fixed address you choseStatic address= drop-in
Anything with a certificate nameThe certificate, not the poolEither, but the name must match the certificate

ඒවා මිශ්‍ර කිරීම සුලබ අසාර්ථකත්වයයි. ජනනය කළ ගොනුවේ සවි කළ සේවාවක් ස්ක්‍රිප්ට් එය පළමු වරට නැවත ලියන විට අතුරුදන් වේ, ස්ථිතික සටහනක ලියූ ග්‍රාහකයා එම ලිපිනය අවසන් වරට තිබූ අය දෙසට යොමු වේ. දෙකම නමක් වැරදි යන්ත්‍රයකට විසඳෙන තෙක් නොපෙනී පවතී. එතෙක් නිදොස් කරන්නා DNS කැඩී ඇතැයි සිතයි, ගොනුව නොවේ.

ගතික මාර්ගය: learn-address සහ තටාකය

OpenVPN පැවරුම දනී, එබැවින් එය ඔබට කියන්නට සලස්වන්න. මෙම සේවාදායක විකල්ප පැවරුම කල් පවතින සහ ස්ක්‍රිප්ට් කළ හැකි එකක් කරයි:

client-config-dir /etc/openvpn/ccd
ifconfig-pool-persist /etc/openvpn/ip-pool 60
script-security 2
learn-address /etc/openvpn/learn-address.sh

learn-address ලිපිනයක් එකතු කරන, යාවත්කාලීන කරන හෝ මකන සෑම අවස්ථාවකම ඔබේ ස්ක්‍රිප්ටය ධාවනය කරයි, සහ ක්‍රියාව, ලිපිනය සහ පොදු නම ලබා දෙයි. අවම ස්ක්‍රිප්ටයක් සෑම ග්‍රාහකයකුටම එක් පේළියක් එකතු කර මැකීමේදී එය ඉවත් කරයි:

#!/bin/sh
HOSTS=/etc/openvpn/hosts.lan
case "$1" in
  add|update) echo "$2 $3" >> "$HOSTS" ;;
  delete)     sed -i "/^$2 /d" "$HOSTS" ;;
esac
kill -HUP $(cat /var/run/dnsmasq.pid)

tun උපාංගයක දෙවන තර්කය ග්‍රාහකයාගේ උමං ලිපිනය වේ, එබැවින් පේළිය සෘජුවම භාවිතා කළ හැක. tap උපාංගයක OpenVPN ඒ වෙනුවට ග්‍රාහකයාගේ MAC ලිපිනය ලබා දෙයි, මන්ද tap කොටසකට IPv4 හැර වෙනත් ප්‍රොටොකෝල ද ගෙන යා හැකි බැවිනි, එවිට යමක් ලිවීමට පෙර පොදු නමින් තටාක ගොනුවේ ලිපිනය සොයා ගත යුතුය.

ජනනය කළ ගොනුව කුමක් දැයි පැහැදිලි වන්න: දැන් සම්බන්ධිත කවුරුන් ද යන්නේ ඡායාරූපයකි. සම්බන්ධතාව බිඳෙන විට නම් අතුරුදන් වේ, එය ජාල අතර ගමන් කරන ලැප්ටොප් සඳහා ඔබට අවශ්‍ය දෙයම වන අතර රාත්‍රිය පුරා ක්‍රියාත්මක සේවාදායකයකට ඔබට අවශ්‍ය නොවන දෙයම වේ.

ස්ථිතික මාර්ගය: address= සහ වසම් විස්තරණය

පද්ධතියේ hosts ගොනුව වෙනුවට dnsmasq ජනනය කළ ගොනුව වෙත යොමු කරන්න, සහ කෙටි නම් සම්පූර්ණ සුදුසුකම් ලත් නම් බවට විස්තරණය වන පරිදි එයට වසමක් දෙන්න:

domain=corp.example
no-hosts
addn-hosts=/etc/openvpn/hosts.lan
listen-address=127.0.0.1,10.8.0.1
bind-interfaces

domain සකසා ඇති විට, 10.8.0.6 alice වැනි පේළියක් alice සහ alice.corp.example යන දෙකටම පිළිතුරු දෙයි. listen-address උමං ද්වාරයට සහ loopback වෙත පමණක් සීමා කරන්න, මන්ද අහම්බෙන් LAN අතුරුමුහුණතේ පළ කරන ලද විසඳුම්කරුවක් යනු ඔබ ඉදිරිපත් කිරීමට අදහස් නොකළ සේවාවකි.

තටාකයෙන් කිසිදා නොඑන සේවාවන්ට තමන්ගේම සටහන් ලැබේ. ඒවා බෙදාහැරීමේ වින්‍යාස නාමාවලියේ වෙනම drop-in ගොනුවක තබන්න, එවිට පැකේජ උත්ශ්‍රේණි කිරීමකට ඒවා උඩින් ලිවීමට නොහැකි වේ:

address=/files.corp.example/10.8.0.20
address=/db.corp.example/10.9.0.5

විසඳුම්කරු භාර දෙන්න, නැතිනම් කිසිවක් සිදු නොවේ

කිසිවෙකු නොඅසන විසඳුම්කරුවක් කිසිවක් වෙනස් නොකරයි. සේවාදායකය එය ප්‍රකාශ කළ යුතුය:

push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DOMAIN corp.example"

Windows ග්‍රාහකයන් විකල්ප දෙකම තමන්ම යොදයි. බොහෝ Linux ග්‍රාහකයන් එසේ නොකරයි: ඔවුන්ට සහාය දක්වන විසඳුම්කරු ඒකාබද්ධතාවයක් අවශ්‍ය වේ, උදාහරණයක් ලෙස බෙදාහැරීමේ update-resolv-conf කොක්ක හෝ NetworkManager හි DNS හැසිරවීම, නැතහොත් අතින් සකසන ලද සෙවුම් වසමක් සහ නාම සේවාදායකයක්. push ගරු කරන ලදැයි උපකල්පනය කරනවාට වඩා ග්‍රාහකයාගේ සැබෑ විසඳුම්කරු පරීක්ෂා කරන්න, මන්ද නොසලකා හරින ලද push පිළිතුරු නොදෙන සේවාදායකයක් මෙන්ම පෙනේ.

ස්ථර තුනකින් සත්‍යාපනය කරන්න

මුලින්ම සේවාදායකයාගෙන් සෘජුවම අසන්න, පසුව ග්‍රාහකයකුගෙන්, පසුව යෙදුමෙන්:

dig +short @10.8.0.1 alice.corp.example
getent hosts files.corp.example

සෘජු විමසුම් පිළිතුරු දෙන නමුත් යෙදුම නොදෙන්නේ නම්, වරද කලාපයේ නොව ග්‍රාහකයාට භාර දීමේ ය. නම විසඳී නමුත් සම්බන්ධතාව තවමත් අසාර්ථක නම්, නම හොඳයි සහ ඊළඟට බැලිය යුත්තේ මාර්ගය හෝ ගිනිපවුරයි.

කාණ්ඩ දෙක වින්‍යාසය අසල ලියා තබන්න: කුමන නම් ජනනය වේ ද, කුමන ඒවා සවි කර ඇත් ද, සහ එක් එක් ඒවා ගැලපිය යුත්තේ කුමන සහතිකයකට ද. ඊළඟට සේවාදායකයක් එකතු කරන පුද්ගලයා පළමුව හමුවන රටාව පිටපත් කරනු ඇත.

අදාළ ලිපි