Azure Point-to-Site VPN എന്തുകൊണ്ട് നിങ്ങളുടെ പൊതു IP മാറ്റുന്നില്ല
പോയിന്റ്-ടു-സൈറ്റ് ടണൽ വെർച്വൽ നെറ്റ്വർക്ക് റൂട്ടുകൾ മാത്രം വഹിക്കുന്നു, അതിനാൽ നിർബന്ധിത ടണലിംഗും ഫയർവാൾ SNAT-ഉം എഗ്രെസ് Azure-ലേക്ക് മാറ്റുന്നതുവരെ നിങ്ങളുടെ പൊതു IP പ്രാദേശികമായി തുടരും.
ഞാൻ Windows ലാപ്ടോപ്പിൽ Azure VPN ക്ലയന്റ് ബന്ധിപ്പിച്ച്, വിലാസ-പ്രതിധ്വനി പേജ് തുറന്ന്, എന്റെ വീട്ടിലെ റൂട്ടർ നൽകിയ അതേ പൊതു വിലാസം കാണുന്നു. അതിനിടയിൽ 10.20.0.4-ലെ ജംപ് ബോക്സ് പ്രതികരിക്കുന്നു, സ്വകാര്യ എൻഡ്പോയിന്റ് നാമം പരിഹരിക്കപ്പെടുന്നു, അതിനാൽ ടണൽ തകർന്നിട്ടില്ല. പോയിന്റ്-ടു-സൈറ്റ് ഗേറ്റ്വേ അതിന്റെ ഡിഫോൾട്ട് കോൺഫിഗറേഷൻ പറയുന്നത് കൃത്യമായി ചെയ്യുന്നു: സ്വകാര്യ പ്രിഫിക്സുകൾ വഹിക്കുന്നു, ബാക്കിയെല്ലാം പ്രാദേശിക ലിങ്കിൽ വിടുന്നു. Azure-ന്റെ ഉടമസ്ഥതയിലുള്ള എഗ്രെസ് വിലാസം നേടുന്നത് റൂട്ടിംഗ് ഡിസൈനിന്റെ മാറ്റമാണ്, അറ്റകുറ്റപ്പണിയല്ല.
ഗേറ്റ്വേ ഡിഫോൾട്ടായി എന്ത് പ്രഖ്യാപിക്കുന്നു
ഗേറ്റ്വേ വെർച്വൽ നെറ്റ്വർക്കിന്റെ വിലാസ സ്ഥലത്തിന് റൂട്ടുകൾ പുഷ് ചെയ്യുന്നു, കൂടാതെ ഗേറ്റ്വേ ട്രാൻസിറ്റ് അനുവദിച്ചിട്ടുള്ള പിയർ നെറ്റ്വർക്കുകൾക്കും സൈറ്റ്-ടു-സൈറ്റ് കണക്ഷൻ അല്ലെങ്കിൽ BGP വഴി പഠിച്ച പ്രാദേശിക പ്രിഫിക്സുകൾക്കും. ആ ഗണത്തിൽ 0.0.0.0/0 ഇല്ല. നിങ്ങളുടെ ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ഡിഫോൾട്ട് റൂട്ട് Wi-Fi അല്ലെങ്കിൽ Ethernet-ൽ നിലനിർത്തുന്നു, അതിനാൽ പൊതു API-യിലേക്കുള്ള പാക്കറ്റ് ടണലിൽ പ്രവേശിക്കുന്നേയില്ല.
ക്ലയന്റ് ടണലിനുള്ളിൽ സ്വീകരിക്കുന്ന വിലാസം പോയിന്റ്-ടു-സൈറ്റ് പൂളിൽ നിന്നുള്ള സ്വകാര്യ ലീസ് ആണ്. അത് VNet-ലെ റിസോഴ്സുകൾക്ക് ക്ലയന്റിനെ തിരിച്ചറിയിക്കുന്നു; അത് ഇന്റർനെറ്റിന് കാണാനാകുന്ന വിലാസമല്ല, SaaS API-യിലേക്കുള്ള ഔട്ട്ബൗണ്ട് അഭ്യർത്ഥനയുടെ ഉറവിടമായി അത് ഒരിക്കലും പ്രത്യക്ഷപ്പെടുകയുമില്ല. ആ ലീസിനെ ചുറ്റിപ്പറ്റി നിർമ്മിച്ച അനുവദനീയ ലിസ്റ്റ് എൻട്രിക്ക് പ്രവർത്തിക്കാനാവില്ല, വെണ്ടർ ലോഗുകളിൽ അത് പ്രത്യക്ഷപ്പെടാൻ നിങ്ങൾ എത്ര കാത്തിരുന്നാലും.
സ്പ്ലിറ്റ് ടണലും നിർബന്ധിത ടണലിംഗും അടുത്തടുത്ത്
| Split tunnel, the default | Forced tunneling | |
|---|---|---|
| Internet traffic exits through | local ISP or office router | firewall or appliance inside Azure |
| Source address the API sees | your home or office IP | the firewall public IP |
| Inspection and logging in Azure | none | policy rules plus flow logs |
| Ongoing cost | gateway only | gateway, firewall hours, data processing |
| What usually breaks | nothing on the egress path | DNS, on-premises routes, overlapping local ranges |
ദൂര സേവനം കാണുന്ന വിലാസം മാറ്റുന്നത് രണ്ടാം വരി മാത്രമാണ്. ആ പട്ടികയിലെ മറ്റെല്ലാം എഗ്രെസ് Azure-നുള്ളിൽ പരിശോധിക്കുകയോ വിവർത്തനം ചെയ്യുകയോ വേണ്ടിവരുമ്പോൾ നിങ്ങൾ സ്വീകരിക്കുന്ന ചെലവും പ്രവർത്തന ഉപരിതലവുമാണ്. പൊതു IP മാറ്റാൻ ആരെങ്കിലും ആവശ്യപ്പെട്ടാൽ, അവർ മുഴുവൻ വലത് നിരയും ആവശ്യപ്പെടുകയാണ്, ക്ലയന്റിലെ ഒരു ചെറിയ ക്രമീകരണമല്ല.
എന്തെങ്കിലും പുനർനിർമ്മിക്കുന്നതിന് മുമ്പ് പേരിടാൻ യോഗ്യമായ ഒരു ഇടവേള ഓപ്ഷനുണ്ട്. VNet-നുള്ളിലെ പ്രോക്സി അല്ലെങ്കിൽ ഗേറ്റ്വേ VM അതിലേക്ക് ചൂണ്ടാനാകുന്ന അപ്ലിക്കേഷനുകൾക്ക് നിയന്ത്രിത ഉറവിട വിലാസം നൽകുന്നു, ക്ലയന്റിന്റെ ഡിഫോൾട്ട് റൂട്ട് നീക്കാതെ. ഇത് സാധാരണ ബ്രൗസിംഗ് പ്രാദേശികമായി നിർത്തുകയും Azure-ൽ നിന്ന് ഒരു API കോൾ മാത്രം വരണമെന്ന് ആവശ്യമുള്ള പങ്കാളിയെ തൃപ്തിപ്പെടുത്തുകയും ചെയ്യുന്നു. ആവശ്യകത യഥാർത്ഥത്തിൽ എല്ലാ ട്രാഫിക്കിനെയും കുറിച്ചാണെങ്കിൽ ഇത് പരാജയപ്പെടുന്നു, കാരണം പ്രോക്സി ക്രമീകരണം അവഗണിക്കുന്നതെല്ലാം ഇപ്പോഴും പ്രാദേശികമായി പുറത്തുപോകുന്നു.
ടണൽ ഡിഫോൾട്ട് റൂട്ട് വഹിക്കാൻ അനുവദിക്കുക
വെർച്വൽ നെറ്റ്വർക്ക് ഗേറ്റ്വേയിൽ, ക്ലയന്റിന്റെ എല്ലാ ഇന്റർനെറ്റ് ട്രാഫിക്കും ടണലിലേക്ക് നയിക്കാനുള്ള പിന്തുണയുള്ള മാർഗ്ഗം പോയിന്റ്-ടു-സൈറ്റ് കോൺഫിഗറേഷനിൽ കസ്റ്റം റൂട്ടുകൾ ചേർക്കുകയാണ്. രണ്ട് പകുതികൾ മുഴുവൻ IPv4 ഇടവും ഉൾക്കൊള്ളുന്നു, ഓരോന്നും പ്രാദേശിക ഡിഫോൾട്ട് റൂട്ടിനെക്കാൾ കൃത്യമാണ്, അതിനാൽ ക്ലയന്റ് ഒന്നും ഇല്ലാതാക്കാതെ അവയ്ക്ക് മുൻഗണന നൽകുന്നു:
Set-AzVirtualNetworkGateway -VirtualNetworkGateway GWOBJ -CustomRoute 0.0.0.0/1,128.0.0.0/1
ആ വരി ഉദാഹരണമാണ്, പകർത്താൻ പൂർണ്ണമല്ല: ആദ്യം Get-AzVirtualNetworkGateway ഉപയോഗിച്ച് ഗേറ്റ്വേ ഒബ്ജക്റ്റ് എടുത്ത് GWOBJ-ന് പകരം അത് ഇടുക, കൂടാതെ പ്രവർത്തിപ്പിക്കുന്നതിന് മുമ്പ് SKU-ഉം വിന്യാസ മാതൃകയും കസ്റ്റം റൂട്ടുകൾ സ്വീകരിക്കുന്നുവെന്ന് ഉറപ്പാക്കുക. അതേ പ്രിഫിക്സുകൾ പോർട്ടലിലെ പോയിന്റ്-ടു-സൈറ്റ് കോൺഫിഗറേഷൻ പേജിലും കാണാം, ഗേറ്റ്വേ ഇതിനകം സ്ക്രിപ്റ്റ് ചെയ്യുന്നില്ലെങ്കിൽ അവ സജ്ജീകരിക്കാൻ സുരക്ഷിതമായ സ്ഥലം അതാണ്.
ആ പ്രിഫിക്സുകൾ മാറ്റുന്നത് ക്ലയന്റ് പാക്കേജിനെ അസാധുവാക്കുന്നു. VPN ക്ലയന്റ് പാക്കേജ് വീണ്ടും ഡൗൺലോഡ് ചെയ്ത് വീണ്ടും ഇൻസ്റ്റാൾ ചെയ്യുക, കാരണം റൂട്ടുകൾ പ്രൊഫൈലിനുള്ളിൽ യാത്ര ചെയ്യുന്നു. പഴയ പ്രൊഫൈലുമായി വീണ്ടും ബന്ധിപ്പിക്കുന്ന ക്ലയന്റ് പഴയ റൂട്ട് സെറ്റ് നിലനിർത്തും, അതിലേക്ക് ഒരിക്കലും എത്താത്ത ഒരു മാറ്റം ഡീബഗ് ചെയ്യാൻ നിങ്ങൾക്ക് ഒരു മണിക്കൂർ നഷ്ടപ്പെടാം.
സുരക്ഷിത വെർച്വൽ WAN ഹബ്ബിൽ തുല്യമായത് പോയിന്റ്-ടു-സൈറ്റ് ഗേറ്റ്വേയുമായി ബന്ധിപ്പിച്ച ഹബ്ബ് റൂട്ട് പട്ടികയിലെ ഡിഫോൾട്ട് റൂട്ടാണ്, ട്രാഫിക് ഹബ്ബിലെ Azure Firewall ഏറ്റെടുക്കുന്നു. ഫയർവാൾ ഇന്റർനെറ്റിലേക്കുള്ള കണക്ഷനുകളെ സ്വന്തം പൊതു IP വിലാസങ്ങളിലേക്ക് വിവർത്തനം ചെയ്യുന്നു, ആ വിവർത്തനത്തിൽ നിന്നാണ് പുതിയ എഗ്രെസ് വിലാസം വരുന്നത്. ഒരു ഫയർവാളിന് നിരവധി പൊതു IP ഉണ്ടെങ്കിൽ, അവയിലേതെങ്കിലും ഉറവിടമായി പ്രത്യക്ഷപ്പെടാം, അതിനാൽ അനുവദനീയ ലിസ്റ്റിൽ എല്ലാം ഉണ്ടായിരിക്കണം.
മുകളിലെ രണ്ട് ഡിസൈനുകളും IPv4 ആണ്. രണ്ട് /1 പ്രിഫിക്സുകൾ IPv6-ന് ഒന്നും ചെയ്യുന്നില്ല, പോയിന്റ്-ടു-സൈറ്റ് IPv6 പിന്തുണ വളരെ ഇടുങ്ങിയതാണ്, അതിനാൽ തുല്യത വാഗ്ദാനം ചെയ്യുന്നതിന് മുമ്പ് സംയോജനം പരിശോധിക്കണം.
ആദ്യം റൂട്ട് പരിശോധിക്കുക, പിന്നെ എക്സിറ്റ്
പാക്കേജ് വീണ്ടും ഇൻസ്റ്റാൾ ചെയ്ത് വീണ്ടും ബന്ധിപ്പിച്ച ശേഷം ക്ലയന്റ് യഥാർത്ഥത്തിൽ പകുതികൾ ഇൻസ്റ്റാൾ ചെയ്തുവെന്ന് ഉറപ്പാക്കുക. Windows-ൽ Get-NetRoute -DestinationPrefix 0.0.0.0/1 ഉം 128.0.0.0/1-നുള്ള അതേ ക്വറിയും ടണൽ ഇന്റർഫേസ് പേര് നൽകണം, route print നിങ്ങളുടെ യഥാർത്ഥ ഡിഫോൾട്ടിന് അരികിൽ രണ്ടും കാണിക്കുന്നു. Linux-ൽ ip route show രണ്ട് പ്രിഫിക്സുകൾ ലിസ്റ്റ് ചെയ്യണം; ഇല്ലെങ്കിൽ പ്രൊഫൈൽ അവ ഒരിക്കലും വഹിച്ചിട്ടില്ല.
തുടർന്ന് ക്ലയന്റിൽ നിന്ന് പൊതു വിലാസം വീണ്ടും പരിശോധിച്ച് അതേ കണക്ഷനുള്ള ഫയർവാൾ ലോഗ് വായിക്കുക. ഉറവിടം വിവർത്തനം ചെയ്ത പോർട്ടോടുകൂടിയ ഫയർവാളിന്റെ പൊതു IP ആയിരിക്കണം. രണ്ട് റൂട്ടുകളും ഉണ്ടായിരിക്കെ ഇപ്പോഴും പ്രാദേശികമായി പുറത്തുപോകുന്ന ക്ലയന്റ് എന്നാൽ പാക്കറ്റുകൾ Azure-ൽ എത്തി മറ്റൊരു വഴിയിലൂടെ പുറത്തുപോയി: ഗേറ്റ്വേ സബ്നെറ്റിലെ ഉപയോക്തൃ-നിർവചിത റൂട്ട്, സ്വയം പ്രാദേശിക നെറ്റ്വർക്കിലേക്ക് നിർബന്ധിത ടണലിലുള്ള ഫയർവാൾ, അല്ലെങ്കിൽ വിവർത്തനത്തിന് മുമ്പ് ഫ്ലോ ഉപേക്ഷിക്കുന്ന നയം.
അതേ സെഷനിൽ ഒരു സ്വകാര്യ ലക്ഷ്യം വീണ്ടും പരീക്ഷിക്കുക. മാറ്റത്തിന് ശേഷം പ്രതികരിക്കുന്നത് നിർത്തുന്ന ജംപ് ഹോസ്റ്റ് പുതിയ പ്രിഫിക്സുകൾ എന്തെങ്കിലും മാറ്റിവെച്ചു എന്നതിന്റെ സാധാരണ സൂചനയാണ്: മുമ്പ് പ്രഖ്യാപിച്ചിരുന്ന ഇടുങ്ങിയ പ്രാദേശിക റൂട്ട്, അല്ലെങ്കിൽ ഇപ്പോൾ നിങ്ങളുടെ സ്വകാര്യ സോണുകൾക്ക് ഫോർവേഡർ ഇല്ലാത്ത റിസോൾവറിലേക്ക് പോകുന്ന നാമ പരിഹാരം.
സ്പ്ലിറ്റ് ടണൽ എപ്പോൾ വിട്ടേക്കണം
ലക്ഷ്യം സ്വകാര്യ API, സ്വകാര്യ എൻഡ്പോയിന്റ് അല്ലെങ്കിൽ ആന്തരിക അഡ്മിൻ പേജ് എത്തുക മാത്രമാണെങ്കിൽ, ഡിഫോൾട്ട് സ്വഭാവം കൂടുതൽ വിലകുറഞ്ഞതും ശാന്തവുമാണ്. നിർബന്ധിത ടണലിംഗ് ഫയർവാൾ മണിക്കൂറുകളും ഡാറ്റ പ്രോസസ്സിംഗ് നിരക്കുകളും, നീണ്ട പാതയും, ഓരോ ക്ലയന്റ് ഫ്ലോയും പരാജയപ്പെടാവുന്ന ഒരു സ്ഥലം കൂടി ചേർക്കുന്നു. നിങ്ങൾ ശ്രദ്ധിച്ച ഒരു ലക്ഷ്യത്തെക്കാൾ എത്രയോ കൂടുതൽ ട്രാഫിക്കും ഇത് പിടിക്കുന്നു.
എഗ്രെസിന്റെ അടിസ്ഥാനത്തിൽ ആവശ്യകത പറയുമ്പോൾ ഇത് ഉപയോഗിക്കുക: പങ്കാളി സ്ഥിരമായ Azure വിലാസം കാണണം, സുരക്ഷ കണക്ഷനുകൾ ലോഗ് ചെയ്ത് പരിശോധിക്കണമെന്ന് ആഗ്രഹിക്കുന്നു, അല്ലെങ്കിൽ ഡാറ്റ ഒരു നിയന്ത്രിത പോയിന്റിലൂടെ പുറത്തുപോകണം. അപ്പോഴും ഡിസൈൻ ഓരോ ഉപയോക്താവിനും പങ്കിട്ട എക്സിറ്റ് നൽകുന്നു, അതിനാൽ ഉപയോക്താവിന് തോറും ഉത്തരവാദിത്തം ഉറവിട വിലാസത്തിൽ നിന്നല്ല, അപ്ലിക്കേഷനിലെ ഐഡന്റിറ്റിയിൽ നിന്ന് വരണം.
മാറ്റം അടയ്ക്കുന്നതിന് മുമ്പ് നാല് കാര്യങ്ങൾ ഉറപ്പാക്കുക: ഇൻസ്റ്റാൾ ചെയ്ത ക്ലയന്റ് പാക്കേജ് പുതിയതാണ്, രണ്ട് /1 റൂട്ടുകൾ ടണൽ ഇന്റർഫേസിലുണ്ട്, ഒരു സ്വകാര്യ ലക്ഷ്യം ഇപ്പോഴും പ്രതികരിക്കുന്നു, കൂടാതെ ദൂര സേവനത്തിന്റെ ലോഗ് ഫയർവാൾ വിലാസം കാണിക്കുന്നു.