GCP VM-іне Cloud VPN: NAT IP емес, ішкі IP қолданыңыз
Шлюздің соңғы нүктесі, VM-нің ішкі мекенжайы және сыртқы бір-біріне NAT мекенжайы үш түрлі жұмыс атқарады. Маршрутыңыз қайсын қолданатынын тексеріңіз.
Жергілікті желі Cloud VPN арқылы VPC-ге жеткенде, Compute Engine қызметінің межелі орны әдетте VM-нің ішкі мекенжайы болады. Сыртқы IPv4 мекенжайы сол жеке маршрутқа қоюға болатын екінші мекенжай емес. Бұл саладағы шатасудың көбі үш жұмысы бар үш мекенжайды өзара алмастырылатын деп қараудан туындайды, сондықтан белгілі бір пакеттің қайсын қолданатынын атаудан бастаңыз.
Үш мекенжай, үш жұмыс
Олардың кез келгенін жөндеуге кіріспес бұрын үшеуін де атаңыз, өйткені жауап келесі тексеретін нысанды өзгертеді.
| Address | Job |
|---|---|
| Cloud VPN endpoint | where the IPsec peers meet |
| Internal IP | the address your route and firewall must name |
| External IPv4 | the platform's inbound mapping, not a guest address |
Біріншісі туннельге тиесілі. Екіншісі сіздің маршрут және желіаралық қалқан дизайныңызға тиесілі. Үшіншісі кіріс интернет қатынасына тиесілі және ол салыстырылады, тіркелмейді. Олардың біреуі үшін жұмыс істейтін дизайн қалған екеуі туралы ештеңе айтпайды.
Неге сыртқы мекенжай екінші интерфейс емес
Мекенжайлау нұсқаулығы Compute Engine-де ішкі және сыртқы қолжетімділіктің қалай ерекшеленетіні туралы өкілетті дереккөз болып табылады. Compute Engine-нің сыртқы IPv4 мекенжайы дананың жалғыз ішкі NIC-іне бір-біріне салыстыру болып табылады, сондықтан қонақ сол NIC-те ешқашан екінші интерфейсті немесе екінші мекенжайды көрмейді. VM ішінен хабарлайтын нәрсе әлі де бір негізгі ішкі мекенжай.
Сондықтан туннель арқылы 10.24.1.7 мекенжайына маршруттайтын жеке клиент пен VM-нің сыртқы мекенжайын нысанаға алатын клиент әртүрлі жолдарда. Жалпыға ортақ мекенжай үшін желіаралық қалқан ережесін ашу туннель трафигін тасуы керек VPC маршрутында ештеңені өзгертпейді, ал қонақтағы маршрутты өңдеу платформаның салыстыруын жылжытпайды. Маршрутыңыз атайтын мекенжайды таңдаңыз, содан кейін оны басқаратын нысандарды ғана тексеріңіз. Бұл тәртіп осы ақаулықты жою жолынан болжамның көбін алып тастайды.
gcloud көмегімен жолды жүріп өтіңіз
Данадан бастап екі мекенжайды да сол нысаннан оқыңыз, сонда құжаттамаңыз қайсы туралы айтып тұрғанын білесіз:
gcloud compute instances describe app-1 --zone=europe-west1-b \
--format="value(networkInterfaces[0].networkIP,networkInterfaces[0].accessConfigs[0].natIP)"Содан кейін жол шынымен тәуелді болатын маршруттауды және рұқсатты растаңыз:
gcloud compute routes list --filter="destRange:10.24.1.0/24"
gcloud compute firewall-rules list --filter="sourceRanges:10.99.0.0/24"
gcloud compute vpn-tunnels describe TUNNEL_NAME --region=europe-west1Туннельдің жарияланған және үйренген ауқымдарын оқыңыз, жұмыс жүктемесінің қосалқы желісі үшін VPC маршрутын және жергілікті көзге рұқсат беретін желіаралық қалқан ережесін. Қонақтағы тыңдаушы маңызды болуы үшін бұл үшеуі келісуі керек.
Содан кейін қонақты тексеріңіз: қызмет ішкі мекенжайда тыңдап тұр ма, және оның қайтару жолы қайтадан VPC арқылы өте ме? Тек жалпыға ортақ мекенжайға байланған тыңдаушы бұл сынақтан сәтсіз өтеді, тіпті бұлт жағындағы әрбір нысан дұрыс болса да.
Жалпыға ортақ префикс басқа сұрақ
Жоғарыдағылардың ешқайсысы VPN ішінде тасымалданатын әрбір мекенжай RFC1918 болуы керек дегенді білдірмейді. Қашықтағы желіні жалпыға ортақ кеңістіктен заңды түрде нөмірлеуге болады, егер платформа маршруттауды қолдаса және операторда мекенжай өкілеттігі болса. Бұл қалыпты дизайн таңдауы.
Бұл қарапайым сыртқы NAT мекенжайын басқа ішкі қосалқы желі мекенжайы ретінде қараумен бірдей емес. Біреуі — сіз маршруттайтын префикс; екіншісі — платформа кіріс қатынасына қолданатын салыстыру.
Сыртқы IPv6 және арнайы жобаланған мекенжай құрылымдарының өз семантикасы бар. Жоспарыңыз солардың біріне тәуелді болса, IPv4 жағдайынан жалпылауға болмай, сол мүмкіндіктің платформа құжаттамасын оқыңыз. IPv4 салыстыруы кәдімгі жағдай, жалғыз емес, және әрбір ерекшеліктің өз ережелері бар.
Қабаттасатын ауқымдар басқа мәселе
Қабаттасатын жеке ауқымдар адамдардың жалпыға ортақ мекенжайға жүгінуінің нақты себебі, және бұл дұрыс емес тетік. Межелі орынды VM-нің NAT мекенжайына өзгерту қабаттасуды шешпейді; ол пакеттің қай мекенжайға арналғанын мәлімдейтінін өзгертеді, қайтару жолының қалай жұмыс істейтінін айқындамастан.
Қабаттасуды әдейі шешіңіз: қайта нөмірлеңіз, қолдау көрсетілетін трансляция дизайнын қолданыңыз немесе префикстер соқтығыспайтын желі арқылы маршруттаңыз. Олардың әрқайсысы иесі бар дизайн. NAT мекенжайы дизайн емес.
Екі өрісті бөлек құжаттаңыз
Туннель серіктесін және жұмыс жүктемесінің межелі орнын екі бөлек runbook өрісі ретінде жазыңыз, әрқайсысы оны қолдайтын маршрут пен желіаралық қалқан ережесімен бірге. Көтерілген IPsec туннелі тек тараптар келіскенін айтады; жұмыс жүктемесі қай мекенжайда қолжетімді екенін айтпайды, және оның жеке маршруты толық па екенін де айтпайды.
Арғы жақтағы нақты клиентпен тексеріңіз: атауды шешіңіз, ішкі мекенжайды қайтаратынын растаңыз, қосылыңыз және қайтару трафигін тексеріңіз. Compute Engine IP мекенжайларының құжаттамасы жоғарыда қолданылған ішкі-сыртқы айырмашылығының анықтамасы болып табылады.