උමග අන්ත ලක්ෂ්‍යයක් පිටුපස ඇති උපජාලයකට ඔබට ආකාර තුනකින් ළඟා විය හැක, සහ විනාඩියක කරුණු රැස්කිරීම සාමාන්‍යයෙන් දෙකක් ඉවත් කරයි. කරුණු වන්නේ එහි ඇති සේවාදායකයන්ට පරිශීලකයන් වෙන්කර හඳුනාගත යුතුද, එහි සිට යමෙකු කවදා හෝ ඔබේ පරාසය දෙසට අමතනු ඇත්ද, සහ දුරස්ථ රවුටරය සංස්කරණය කළ හැක්කේ කාටද යන්නයි. මේ තුනට පිළිතුරු දෙන්න, නිර්මාණය තමන්ම තෝරා ගනු ඇත. ඉතිරිය ඔබ අන්ත ලක්ෂ්‍යය ක්‍රියාත්මක කරන අතර එහි ෆයර්වෝලය සංස්කරණය කළ හැකි යැයි උපකල්පනය කරයි.

විකල්ප තුනක්, සහ එක් එක් එක සැබවින්ම වෙනස් කරන දේ

ප්‍රිෆික්ස් මැපින්, එක් එක් හෝස්ට් සඳහා DNAT, සහ රූට් කළ ප්‍රිෆික්ස් යන සියල්ලම එකම පරාස දෙක අතර පැකට් ගෙන යයි, නමුත් වෙනස් දේවල් වෙනස් කරයි. මැපින් අලියාස් පරාසයක් නිර්මාණය කර ගමන් කරන අතරතුර ලිපින ගණිතමය වශයෙන් නැවත ලියයි. එක් එක් හෝස්ට් සඳහා නීති ද නැවත ලියයි, නමුත් සෑම ගමනාන්තයක්ම අතින් නම් කෙරේ. රූට් කළ ප්‍රිෆික්ස් කිසිවක් නැවත ලියන්නේ නැත: පැකට් සැබෑ ලිපින රඳවා ගනී, දෙකෙළවරම එම ලිපින කොහේ පිහිටා ඇත්ද යන්නට එකඟ වේ.

What the far side needsPrefix mappingPer-host DNATRouted prefix
Users visible to its logsOnly without source NATSame conditionYes, unchanged
To start a connection toward youNo, alias is localNo, same reasonYes, both ends route
To absorb a new hostYes, arithmetic onlyNo, one rule per addressYes, it simply routes
To require no config changeYes, with source NATYes, same conditionNo, it needs a route back

ඉවත් කිරීම දුරස්ථ පැත්තෙන් ආරම්භ කරන්න, එහිදී සීමා වෙනස් කිරීම වඩාත් අපහසුය. එහි ඇති සේවාදායකය පරිශීලක ලිපින ලොගවලට ලියයි නම්, ඒවා අවසර ලැයිස්තුවක් සමඟ පරීක්ෂා කරයි නම්, හෝ වෙනත් පද්ධතියකට භාර දෙයි නම්, මූලාශ්‍රය පරිවර්තනය කිරීම එහි එකම හඳුනාගැනීම විනාශ කරයි. දුරස්ථ පැත්තට ද ඇතුළට අමතන්නට සිදුවේ නම්, පරිවර්තනය සම්පූර්ණයෙන්ම ඉවත් වේ, මන්ද එහි කිසිවෙකු දන්නේ අලියාසය පවතින බව නොවේ. දුරස්ථ පැත්ත ඉල්ලීම්වලට පිළිතුරු දෙන විට පමණක් ලාභදායී විකල්ප ආරක්ෂිත වේ.

ප්‍රිෆික්ස් යුගල, සහ ප්‍රමාණ ගැළපිය යුත්තේ ඇයි

NETMAP යනු සමාන දිගකින් යුත් ප්‍රිෆික්ස් යුගලයක් මත ක්‍රියා කරන nat වගුවේ ඉලක්කයකි. එහි ඇතුළත එක් එක් ලිපිනය සඳහා වගුවක් නැත: එය ප්‍රිෆික්සය ඉවත් කර, හෝස්ට් බිටු රඳවා, නව ප්‍රිෆික්සයට නැවත සම්බන්ධ කරයි, එබැවින් /24 /24 මතට මැප් වන අතර කිසිදා /25 මතට නොවේ. ස්ථානය දිශාව තීරණය කරයි: PREROUTING හි ගමනාන්ත ගැළපීමක් පැකට් යන්නේ කොහේද යන්න නැවත ලියයි, POSTROUTING හි මූලාශ්‍ර ගැළපීමක් එය පැමිණියේ කොහෙන්ද යන්න නැවත ලියයි.

192.168.2.17 හි ඇති හෝස්ට් ඔබේ සේවාලාභීන්ට 10.50.1.17 ලෙස පෙනේ, අවසාන අෂ්ටකය සැරසිල්ලක් නොවේ — එය දෙපැත්තේම එකම සංඛ්‍යාවයි. හෙට 192.168.2.40 හි හෝස්ට් එකක් එකතු කරන්න, එහි අලියාසය 10.50.1.40 වනු ඇත, සංස්කරණය කළ යුතු නීතියක් නැත.

සේවාලාභීන්ට අලියාස් පරාසය සඳහා ඔබේ පෙට්ටිය දෙසට යොමු වන රූටයක් තවමත් අවශ්‍යය, ඔවුන් දැනටමත් ළඟා වන උපජාලයක් තුළ අලියාසය නොවැටේ නම් මිස. ගේට්වේ එකට අලියාසය සඳහා රූටයක් අවශ්‍ය නැත, මන්ද ගමනාන්ත පරිවර්තනය රූට් සෙවීමට පෙර PREROUTING හි ක්‍රියාත්මක වේ. ෆෝවර්ඩිං ද සක්‍රීය විය යුතුය, නැතහොත් නැවත ලිවීමෙන් පසු කර්නලය පැකට් ඉවත දමයි. පහත ඇති විධාන තුන සේවාලාභීන් br0 හි, අලියාසය 10.50.1.0/24 හි සහ උමග tun0 හි ඇති Debian විලාසයේ ගේට්වේ එකක සම්පූර්ණ වින්‍යාසයයි.

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -i br0 -d 10.50.1.0/24 -j NETMAP --to 192.168.2.0/24
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

පිළිතුරට තමන්ම ආපසු යන මාර්ගය සොයාගත යුතුය

ගමනාන්තය නැවත ලිවීම තීරණය කරන්නේ පැකට් එක ලබා දෙන්නේ කොහේද යන්න පමණි. දුරස්ථ සේවාදායකය තවමත් තමාට ළඟා විය හැකි ලිපිනයකට පිළිතුරු දිය යුතුය, එය සකස් කිරීමට ක්‍රම දෙකක් ඇත. පිළිතුරු ඔබේ පෙට්ටියට ආපසු එන පරිදි මූලාශ්‍රය පරිවර්තනය කරන්න, නැතහොත් මූලාශ්‍රය එලෙසම තබා දුරස්ථ පැත්තට සේවාලාභී පරාසය සඳහා රූටයක් දෙන්න.

පිටතට යන මාර්ගයේ masquerade කෙටි මාර්ගයයි: POSTROUTING හි එක් නීතියක් සහ දුරස්ථ පැත්තට ඔබේ උමග ලිපිනය පෙනේ, එබැවින් එයටම රූටයක් අවශ්‍ය නැත. මිල වන්නේ සෑම පරිශීලකයෙකුම එක් ලිපිනයකට සංකෝචනය වීමයි, පරිශීලක-අනුව ලොගවල අර්ථය නැති වී යාමයි. මූලාශ්‍රය නොවෙනස්ව තැබීම එම තොරතුරු රඳවා ගනී, නමුත් එවිට දුරස්ථ අඩවිය සේවාලාභී පරාසයේ පිළිතුරු උමග හරහා ආපසු යැවිය යුතුය.OpenVPN සේවාදායකයේ එය push කරන ලද push "route 10.50.9.0 255.255.255.0", අමතරව route 192.168.2.0 255.255.255.0 පේළියකි.

මිල අධික අසාර්ථකත්වය යනු එක් එක් දෙකේ අඩක් කිරීමයි. ඔබ යම් ට්‍රැෆික් masquerade කරන අතරතුර දුරස්ථ පැත්ත වෙනත් ට්‍රැෆික් සඳහා ආපසු රූටයක් ද රැගෙන යයි නම්, පිළිතුරු සම්බන්ධතා ලුහුබැඳීමේ සටහන කිසිදා නොදුටු අතුරුමුහුණතකට පැමිණේ. සේවාදායකය සේවය කළ ලෙස සටහන් කළ ඉල්ලීමකට සේවාලාභියා කාල ඉකුත්වීමක් වාර්තා කරයි. ප්‍රවාහයක දිශා දෙකම එකම netfilter අවස්ථාව හරහා යා යුතුය: එක් ගේට්වේ එකක් පරිවර්තනය කරයි, ශ්‍රේණියේ ෆයර්වෝල දෙකක් නොවේ.

conntrack -L -d 10.50.1.17
iptables -t nat -L PREROUTING -v -n

සටහන දිශා දෙකෙන්ම කියවන්න: මුල් tuple ගමනාන්තයේ ඔබේ අලියාසය රඳවා ගනී, පිළිතුරු tuple සැබෑ ලිපිනය දරයි. පිළිතුරු tuple නොමැති නම්, ගැටලුව නීතිය නොව ආපසු මාර්ගයයි. PREROUTING කවුන්ටර කිසිදා නොසැලුණේ නම්, පැකට් එම hook වෙත කිසිදා නොපැමිණියේය.

ගැටුම් සහ පළමුව ක්‍රියාත්මක වන සෙවීම

විවිධ පරාස දෙකක් ගැටිය හැක, දෙකම අසාර්ථකත්වයන් නරක නීතියක් නොව කැඩුණු උමගක් ලෙස පෙනේ. ඔබ නිර්මාණය කරන අලියාසය මුළු මාර්ගයේම භාවිත නොකළ එකක් විය යුතුය, සැබෑ දුරස්ථ පරාසය දැනටමත් ඔබේ ජාලයේ නොතිබිය යුතුය. අනුපිටපතක් වරින් වර වැරදි හෝස්ට් වෙත ට්‍රැෆික් ඇති කරයි, එය ප්‍රතික්ෂේපිත සම්බන්ධතාවයකට වඩා රෝග විනිශ්චය කිරීම අපහසුය. නීතියක් එකතු කිරීමට පෙර රූටිං වගුවෙන් අසන්න.

ගේට්වේ එකේදී, ip route get 192.168.2.17 උමග උපාංගය නම් කළ යුතුය; දේශීය bridge යනු දුරස්ථ පරාසය සෙවනැලි වී ඇති අතර කිසිදු nat නීතියක් එය අලුත්වැඩියා නොකරන බවයි. ඔබේ ජාලය දැනටමත් 192.168.2.0/24 භාවිතා කරයි නම්, ගැටුම මත මැපින් ගොඩ ගැසීම වෙනුවට දුරස්ථ අඩවිය නැවත අංකනය කරන්න.

සැබෑ සේවාලාභියෙකුගෙන් පරීක්ෂා කර, පසුව රඳවා ගැනීම

අලියාසය සැබවින්ම භාවිතා කරන යන්ත්‍රයකින් පරීක්ෂා කරන්න, ගේට්වේ එකෙන් නොව, මන්ද දේශීයව ජනනය වන ට්‍රැෆික් PREROUTING හරහා කිසිදා එලෙසම ගමන් නොකරයි. අලියාස් සහිත හෝස්ට් එකකට සම්බන්ධතාවයක් විවෘත කර කවුන්ටර සහ conntrack සටහන එකට දිස්වන ආකාරය බලන්න, පසුව එය වසා සටහන යන බව තහවුරු කරන්න. පැරණි සටහනක් අඩක් විවෘත සම්බන්ධතාවයක් පෙන්වයි, එය සාමාන්‍යයෙන් අදහස් වන්නේ පිළිතුර කිසිදා ආපසු නොපැමිණි බවයි.

curl -sv http://10.50.1.17/ -o /dev/null
ss -tn dst 10.50.1.17
conntrack -L -d 10.50.1.17

සාර්ථක සම්බන්ධතා දෙකක් හෝ තුනක් ගණිතය ඔප්පු කරයි, නමුත් ස්ථාවරත්වය හෝ ඊළඟ ඉංජිනේරුවා ගැන කිසිවක් නොකියයි. නීති බූට් ක්‍රියාවලිය කියවන තැන සුරකින්න, Debian සහ Ubuntu හි එය iptables-save > /etc/iptables/rules.v4 netfilter-persistent සක්‍රීය කර යන්නයි. නැවත ඇරඹීමේදී අතුරුදහන් වන මැපින් එකක් නොමැති වීමට වඩා නරකය, මන්ද බාධාව දොස් පැවරිය හැකි මෑත වෙනසක් නොමැතිව පැමිණේ.

නීති අසල සටහනක් තබන්න: අලියාස් පරාසය, සැබෑ පරාසය, යුගලයට හේතුව සහ කුමන පැත්තට ආරම්භ කළ හැකිද. එම සටහන නිර්මාණයක් කිසිවෙකු මකන්නට නොබියවන නීති ගොඩකින් වෙන් කරයි. එය පසුව එන ප්‍රශ්නය ද විසඳයි, දුරස්ථ අඩවිය හෝස්ට් එකක් එකතු කරන විට කිසිවෙකු වින්‍යාස නොකළ ලිපිනයක් දැනටමත් පිළිතුරු දෙන විට. සටහනේ දුරස්ථ පැත්තට ආපසු රූටයක් අවශ්‍ය යැයි සඳහන් නම්, masquerade නීතිය ඉවත් කිරීම සම්බන්ධතාවය බිඳ දමන බව ඊළඟ පුද්ගලයා දනී. මෙහි ලේඛනකරණය ලාභදායීය; රාත්‍රී තුනට NAT යැපීම නැවත සොයා ගැනීම ලාභදායී නොවේ.

අදාළ ලිපි