രണ്ട് ക്ലയന്റ് പൂളുകൾ, ഒരു ഗേറ്റ്‌വേ, എന്നാൽ പദ്ധതി നിസ്സാരമായി തോന്നുന്നു: ഒരു നിയമം ആദ്യ പൂളിനെ വേഗതയേറിയ അപ്‌ലിങ്കിലൂടെ പുറത്തയക്കുന്നു, മറ്റൊന്ന് രണ്ടാമത്തെ പൂളിനെ പങ്കാളി ടണലിലൂടെ അയക്കുന്നു. പിന്നീട് നിയമങ്ങൾ സ്ഥലത്താണ്, എന്നിട്ടും രണ്ടാം പൂൾ സ്ഥിരം റൂട്ടിലൂടെ തന്നെ പുറത്തുപോകുന്നു. നിയമം തകർന്നിട്ടില്ല. ലുക്കപ്പിന്റെ നിമിഷത്തിൽ രചയിതാവ് പ്രതീക്ഷിച്ചതല്ല പാക്കറ്റിന്റെ ഉറവിടം, കാരണം വിവർത്തനവും ലുക്കപ്പും ഒരേ പാക്കറ്റിന്റെ യാത്രയുടെ വ്യത്യസ്ത ഘട്ടങ്ങളിൽ നടക്കുന്നു, ഒപ്പം ക്രമം മിക്കവരും വരയ്ക്കുന്ന മാനസിക രേഖാചിത്രത്തിന് വിപരീതമാണ്.

ഉറവിടം വീണ്ടും എഴുതുന്നതിന് മുൻപ് ലുക്കപ്പ് നടക്കുന്നു

VPN ക്ലയന്റിൽ നിന്ന് കൈമാറ്റം ചെയ്യുന്ന പാക്കറ്റിന് കേർണൽ ഒരു നിശ്ചിത ക്രമം പ്രവർത്തിപ്പിക്കുന്നു. അത് ടണൽ ഇന്റർഫേസിൽ എത്തുന്നു, conntrack ഉം DNAT ഉം ഉള്ള prerouting കടക്കുന്നു, പിന്നീട് റൂട്ടിംഗ് തീരുമാനം എടുക്കുന്നു, പിന്നീട് ഫോർവേഡിംഗ്, പിന്നീട് SNAT അവസാനമായി പ്രയോഗിക്കുന്ന postrouting. from രൂപത്തിലുള്ള നിയമം ആ റൂട്ടിംഗ് തീരുമാനത്തിനിടയിൽ പരിശോധിക്കുന്നു, അതായത് അത് ക്ലയന്റിന്റെ യഥാർത്ഥ വിലാസം കാണുന്നു, വിവർത്തനം ചെയ്തതല്ല.

അതിനാൽ masquerade നിയമം ചേർക്കുന്നത് പുറത്തുപോകുന്ന ഫ്ലോയുമായി ഏത് നയം പൊരുത്തപ്പെടുന്നു എന്നത് മാറ്റുന്നില്ല. മാറുന്നത് ദൂരെയുള്ള അറ്റം കാണുന്നതും, അതുവഴി ഏത് തിരിച്ചുവരവ് പാത നിലനിൽക്കുന്നു എന്നതുമാണ്. ഇവ രണ്ട് വ്യത്യസ്ത ഫലങ്ങളാണ്, മാറ്റ അവലോകനങ്ങൾ ഇവയെ നിരന്തരം കൂട്ടിക്കുഴയ്ക്കുന്നു. ഇവ വേർതിരിച്ചാൽ രൂപകൽപ്പന സാധാരണയായി ഒരു മിനിറ്റിനുള്ളിൽ വ്യക്തമാകും.

മറുപടിയുടെ ദിശയിലാണ് വിവർത്തനം ചെയ്ത വിലാസം നിയമങ്ങളിൽ പ്രത്യക്ഷപ്പെടുന്നത്. ഗേറ്റ്‌വേയിലേക്ക് തിരിച്ചുവരുന്ന പാക്കറ്റ് വിവർത്തനം ചെയ്ത വിലാസത്തിലേക്കാണ് അയക്കുന്നത്, ലക്ഷ്യസ്ഥാനത്തിന്റെയോ അത് കടന്നുവന്ന ഇന്റർഫേസിന്റെയോ അടിസ്ഥാനത്തിൽ നയ നിയമങ്ങൾ ഉണ്ടെങ്കിൽ, നിങ്ങൾ പൊരുത്തപ്പെടുത്തുന്നത് അതേ മൂല്യമാണ്. ഒരേ കണക്ഷൻ, ഓരോ ദിശയിലും സത്യത്തിന്റെ വ്യത്യസ്ത ഉറവിടം.

StageSource the kernel seesWhat it means for your rule
PreroutingClient address, 172.31.7.42Where marks and DNAT are applied
Routing decisionStill 172.31.7.42This is where from rules match
PostroutingBecomes 198.51.100.9What the far end and its return route see

അതിനാൽ വ്യത്യസ്ത ഉറവിടങ്ങളുള്ള രണ്ട് പൂളുകൾക്ക് യഥാർത്ഥത്തിൽ വ്യത്യസ്ത പട്ടികകൾ വേണം, രൂപകൽപ്പന ശരിയാണ്. മുകളിലെ പട്ടിക ഒഴിവാക്കുന്നത് ദൂരെയുള്ള സൈറ്റിന് എന്ത് ലഭിച്ചു എന്ന് നോക്കി നിയമം അനുമാനിക്കുന്ന എളുപ്പവഴിയാണ്.

ഗേറ്റ്‌വേയിൽ നിന്നുള്ള പരിശോധന പൂളിന്റെ പരിശോധനയല്ല

ഗേറ്റ്‌വേ തന്നെ സൃഷ്ടിക്കുന്ന ട്രാഫിക് ഒരിക്കലും prerouting കടക്കുന്നില്ല, കാരണം അത് ഒരു ഇന്റർഫേസിലും എത്തിയിട്ടില്ല. അത് ഔട്ട്പുട്ട് പാതയിൽ റൂട്ട് ചെയ്യുന്നു, ഉറവിടമായി ഗേറ്റ്‌വേയുടെ സ്വന്തം വിലാസം, ക്ലയന്റ് ശ്രേണിയെ അടിസ്ഥാനമാക്കിയ from നിയമം പൊരുത്തപ്പെടുകയില്ല. ഈ മേഖലയിലെ ഓരോ ടിക്കറ്റും, ബോക്സിൽ നിന്ന് പ്രവർത്തിക്കുന്നു എന്നാൽ ക്ലയന്റിൽ നിന്ന് ഇല്ല എന്ന് പറയുന്നത് ആ വസ്തുതയുടെ ആവർത്തനമാണ്.

ക്ലയന്റിനെ ഏകദേശിക്കുന്നതിനുപകരം അനുകരിക്കുക. റൂട്ടിംഗ് ലുക്കപ്പിനോട് നേരിട്ട് ചോദിക്കാം, ഉറവിടവും ഇൻഗ്രസ് ഇന്റർഫേസും നൽകി:

ip route get 198.51.100.9 from 172.31.7.42 iif tun0
ip route get 198.51.100.9 from 172.31.8.42 iif tun0
ip route show table 201

ഓരോ പൂളിനും ഒരിക്കൽ പ്രവർത്തിപ്പിക്കുക. രണ്ട് കമാൻഡുകളും ഒരേ ഇന്റർഫേസ് തിരികെ നൽകിയാൽ, നിയമങ്ങൾ പൂളുകളെ വേർതിരിക്കുന്നില്ല, കാരണം കാണാത്ത നിയമമോ രണ്ടിനും പൊരുത്തപ്പെടുന്ന ഉയർന്ന മുൻഗണനയുള്ള നിയമമോ ആണ്. വ്യത്യസ്ത ഇന്റർഫേസുകൾ നൽകിയിട്ടും ക്ലയന്റ് പരാജയപ്പെടുന്നെങ്കിൽ, തകരാർ ലുക്കപ്പിന് ശേഷമാണ്, നിയമങ്ങൾ നോക്കുന്നത് നിർത്താം.

മുൻഗണന, ഫയലിലെ സ്ഥാനമല്ല

നിയമങ്ങൾ മുൻഗണനയുടെ കയറ്റത്തിൽ വിലയിരുത്തുന്നു, പ്രധാനം സംഖ്യയാണ്, നിങ്ങൾ ടൈപ്പ് ചെയ്ത ക്രമമല്ല. local പട്ടിക മുൻഗണന 0 ലാണ്, main പട്ടിക 32766 ലും സ്ഥിരം നിയമം 32767 ലും, അതിനാൽ സ്ഥിരം മുൻഗണനയിൽ ചേർത്ത നിയമം പട്ടികയുടെ അവസാനത്തോട് അടുത്ത് വീഴുന്നു, മിക്കതിനോടും തോൽക്കുന്നു.

ip rule show
ip rule add from 172.31.8.0/24 lookup 201 priority 1000
ip -4 route show table 201

വ്യക്തമായ മുൻഗണന ഉദ്ദേശിച്ച ക്രമം ഫയലിലും അവലോകനത്തിലും ദൃശ്യമാക്കുന്നു. പിന്നീടുള്ള കൂട്ടിച്ചേർക്കൽ നിലവിലുള്ള നിയമത്തിന് മുന്നിലേക്ക് നിശബ്ദമായി കടക്കുന്നതും അത് തടയുന്നു, അസംബന്ധമായ മാറ്റത്തിന് ശേഷം പ്രവർത്തിച്ചിരുന്ന നയം നിലയ്ക്കുന്നതിന്റെ ഏറ്റവും സാധാരണ കാരണം അതാണ്.

അപൂർണ്ണമായ പട്ടികയിലേക്ക് ചൂണ്ടുന്ന പൊരുത്തമുള്ള നിയമമാണ് മറ്റൊരു കെണി. പട്ടിക 201 ൽ സ്ഥിരം റൂട്ട് ഉണ്ടെങ്കിലും ലക്ഷ്യസ്ഥാനത്തേക്ക് റൂട്ട് ഇല്ലെങ്കിൽ, പാക്കറ്റ് ഉപേക്ഷിക്കപ്പെടുന്നു അല്ലെങ്കിൽ തെറ്റായ സ്ഥലത്തേക്ക് അയക്കപ്പെടുന്നു, നിയമം ഒറ്റപ്പെട്ട് പൂർണ്ണമായി ശരിയായി തോന്നുന്നു. നിയമമല്ല, പട്ടിക വായിക്കുക. നിയമം ഒരു സൂചകമാണ്, ഒഴിഞ്ഞ പട്ടിക ഒന്നും ഇല്ലാത്തിടത്തേക്കുള്ള സൂചകമാണ്.

തിരിച്ചുവരവ് പാത ഇപ്പോഴും ഉണ്ടായിരിക്കണം

ഉറവിട നയം ഒരു പുറത്തുകടക്കൽ തിരഞ്ഞെടുക്കുന്നു. അത് തിരിച്ചുവരവ് പാത സൃഷ്ടിക്കുന്നില്ല. രണ്ടാം പൂൾ പങ്കാളി ടണലിലൂടെ പുറത്തുപോകുന്നെങ്കിൽ, പങ്കാളി 172.31.8.0/24 എങ്ങനെ എത്തിച്ചേരണം എന്ന് അറിയണം, ഗേറ്റ്‌വേയിലേക്ക് തിരികെയുള്ള റൂട്ടിലൂടെയോ ഇതിനകം അറിയുന്ന വിവർത്തന വിലാസങ്ങൾ സ്വീകരിച്ചോ.

ഇവയ്ക്കിടയിലെ തിരഞ്ഞെടുപ്പ് ദൃശ്യമായ ഫലങ്ങളുള്ള രൂപകൽപ്പന തീരുമാനമാണ്. ക്ലയന്റ് ശ്രേണി തിരികെ റൂട്ട് ചെയ്യുന്നത് പങ്കാളിയിൽ ഓരോ ക്ലയന്റിന്റെയും ഐഡന്റിറ്റി നിലനിർത്തുന്നു, നിങ്ങളുടെ പ്രിഫിക്സ് സ്വീകരിക്കാൻ ആവശ്യപ്പെടുന്നു. വിവർത്തനം പൂളിനെ ഒരു വിലാസത്തിന് പിന്നിൽ മറയ്ക്കുന്നു, പങ്കാളി ആ വിലാസം മാത്രം സ്വീകരിക്കണമെന്ന് ആവശ്യപ്പെടുന്നു, ആരാണ് കണക്ട് ചെയ്തത് എന്നതിൽ നിങ്ങളുടെയും അവരുടെയും ലോഗുകൾ ഇനി ഒത്തുപോകില്ല എന്ന വിലയ്ക്ക്.

നിങ്ങൾ എന്ത് തിരഞ്ഞെടുത്താലും, അത് പൂളിന്റെ നിർവചനത്തിന് അടുത്ത് എഴുതുക. ആരുടെയോ ഓർമ്മയിൽ മാത്രം നിലനിൽക്കുന്ന തിരിച്ചുവരവ് റൂട്ട്, പങ്കാളി ഫയർവാൾ മാറ്റുന്നതുവരെ നിലനിൽക്കുകയും പിന്നീട് പുനർനിർമ്മിക്കാൻ ഒരു ദിവസം എടുക്കുകയും ചെയ്യുന്ന കാര്യമാണ്.

നയത്തിൽ ഗേറ്റ്‌വേയുടെ സ്വന്തം ടണൽ പിടിക്കരുത്

ക്ലയന്റുകൾക്കായി എഴുതുന്ന നിയമങ്ങൾ ഗേറ്റ്‌വേ സൃഷ്ടിക്കുന്ന ട്രാഫിക്കിനും ബാധകമാണ്, നിങ്ങൾ അത് ഒഴിവാക്കുന്നില്ലെങ്കിൽ. മാർക്കിലോ ഔട്ട്പുട്ട് ഇന്റർഫേസിലോ അധിഷ്ഠിതമായ വിശാല നിയമം ഗേറ്റ്‌വേയുടെ പങ്കാളിയുമായുള്ള സ്വന്തം ബന്ധം പിടിച്ചെടുക്കാം, അപ്പോൾ നയം വഹിക്കുന്ന ടണൽ നയം കൊണ്ട് റൂട്ട് ചെയ്യപ്പെടുന്നു. ഇത് സേവനദാതാവിന്റെ തകരാറിനോട് സദൃശ്യമായ ലൂപ്പോ തടസ്സമോ ഉണ്ടാക്കുന്നു.

രൂപകൽപ്പന അനുവദിക്കുന്നത്ര ഇടുങ്ങിയതാക്കി ഓരോ നിയമവും പരിമിതപ്പെടുത്തുക: ഉറവിട പ്രിഫിക്സ്, ഇൻഗ്രസ് ഇന്റർഫേസ്, പിന്തുണയുള്ളിടത്ത് ക്ലയന്റ് പാക്കറ്റുകൾ മാത്രം വഹിക്കുന്ന മാർക്ക്. പിന്നീട് ഓരോ നിയമ മാറ്റത്തിനും ശേഷം ഗേറ്റ്‌വേയുടെ സ്വന്തം കണക്റ്റിവിറ്റി പരിശോധിക്കുക, കാരണം തകരാർ സ്വയം-റഫറൻസ് ചെയ്യുന്നതും ക്ലയന്റ് പരിശോധനയിൽ കാണാത്തതുമാണ്.

ip-rule കൈപ്പുസ്തക പേജ് സെലക്ടറിന്റെയും മുൻഗണനയുടെയും അർത്ഥം രേഖപ്പെടുത്തുന്നു. ഓരോ പൂളിന്റെയും ലുക്കപ്പ് പരിശോധനയുമായി അത് ചേർക്കുക, രൂപകൽപ്പന പരിശോധനായോഗ്യമാകും, ഒരു വർഷം നിലനിൽക്കുന്ന നയ റൂട്ടിംഗും എല്ലാവരും തൊടാൻ ഭയപ്പെടുന്നതും തമ്മിലുള്ള വ്യത്യാസം അതാണ്.

അനുബന്ധ ലേഖനങ്ങൾ