Неге AWS Client VPN сәйкес маршрутсыз трафикті тастайды
Соңғы нүкте пакетті тек маршрут кестесі межеліні қамтығанда ғана жібереді. Маршруттарды оқыңыз, префикстерді for_each арқылы жариялаңыз, қайтару жолын тексеріңіз.
Client VPN клиентке мекенжай береді, қол алысу аяқталады, бірақ байланыс ешқайда бармайды. Сертификаттарға немесе клиент нұсқаларына тимес бұрын соңғы нүктенің өз маршрут кестесін қараңыз. AWS Client VPN соңғы нүктесі пакетті тек өз маршруттарының бірі межелі префиксін қамтығанда ғана жібереді; ештеңе сәйкес келмесе, пакет соңғы нүктеде тасталады және мақсатты хост SYN-ді ешқашан көрмейді.
Бұл жіберу шешімі, аутентификация шешімі емес. Ол туннель көтерілгеннен және авторизация ережелері бағаланғаннан кейін қабылданады, сондықтан жарамды сертификат пен жарамды топ әлі де өлі байланыс бере алады.
Соңғы нүкте тек маршрут кестесі қамтитынын жібереді
Әр маршрут — межелі CIDR және трафикті қабылдауға тиіс ішкі желі. Соңғы нүкте клиенттің межелісін сол тізіммен салыстырады, сәйкес жазбаны таңдайды және пакетті байланысқан ішкі желіге жібереді. Жазба жоқ болса, келесі секіріс те жоқ.
Маршруттың не еместігіне назар аударыңыз. Ол VPC маршрут кестесінің жазбасы емес және ештеңеге рұқсат бермейді. Авторизация ережелері топтың межеліге жете алатынын шешеді; маршруттар соңғы нүктенің пакетті жіберер жері бар-жоғын шешеді. Екеуі де сәйкесуі керек, ал олар әртүрлі белгілермен істен шығады, сондықтан қайсысы бұзылғанын болжау түстен кейінгі уақытты ысырап етеді.
Классикалық сәйкессіздік — peer VPC. Біреу 10.20.0.0/24 үшін маршрут қосады, ал хост 10.20.4.0/24 ішінде тұрады, сондықтан мекенжай әрбір жазбадан тыс қалады. Клиент жағындағы түсірілім жауапсыз қайталанатын SYN көрсетеді, ал мақсаттың журналдары мүлдем ештеңе көрсетпейді.
Сертификаттан бұрын маршруттар тізімін оқыңыз
Соңғы нүктенің маршруттары жеке нысан, сондықтан VPC кестесін оқудың орнына оларды тікелей сұраңыз:
aws ec2 describe-client-vpn-routes --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0 --query 'Routes[].{Dest:DestinationCidr,Target:TargetSubnet,Origin:Origin}'Сәтсіз клиенттен нақты мекенжай мен префикс ұзындығын алыңыз, содан кейін қамтуды таңба-таңбамен тексеріңіз. Ең ұзын префикс сәйкестігі қолданылады, сондықтан тар маршрут басқа жерді нұсқаса, кең маршрут сізді құтқармайды.
for_each арқылы әр межеліге бір ресурс
Қолмен жазылған маршрут блоктары біреу консольде префикс қосқан сәтте ауытқиды. Межелілерді картада ұстап, әр кілтке бір ресурс жасаңыз, сонда әр қосу немесе жою оқшау қалады.
variable "client_vpn_routes" {
type = map(string)
default = {
"10.20.0.0/16" = "subnet-0aa11bb22cc33dd44"
"172.31.0.0/20" = "subnet-0aa11bb22cc33dd44"
}
}
resource "aws_ec2_client_vpn_route" "this" {
for_each = var.client_vpn_routes
client_vpn_endpoint_id = var.client_vpn_endpoint_id
destination_cidr_block = each.key
target_vpc_subnet_id = each.value
depends_on = [aws_ec2_client_vpn_network_association.this]
}Желілік байланыстыруға тәуелділікті сақтаңыз. Маршрутқа байланысқан ішкі желі қажет, сондықтан екеуін де жасайтын apply алдымен байланыстыруды реттеуі керек, ал бұл сілтемесіз Terraform маршрутты бірінші көруге ерікті. Содан кейін жоспарды оқыңыз: маршрут қосу саны сіз қосқан префикстерге сәйкес болуы керек. Егер жоспар соңғы нүктені де ауыстырса, соңғы нүкте ресурсы қате жазылған, және оны қолдану барлық қосылған клиентті ажыратады.
Өзіңіз жасамаған соңғы нүктені қабылдау
Көп команда консольде салынған соңғы нүктені мұраға алады, сондықтан маршрут коды жоқ. Тек маршруттарды Terraform-ға кіргізу үшін екінші соңғы нүкте тұрғызбаңыз.
Оның орнына импорттаңыз, немесе id-лерді айнымалы ретінде беріп, мұраға қалған нысандарды басқарусыз қалдырыңыз. Импорт әр ресурс түрі үшін провайдер құжаттайтын идентификатор пішімін қажет етеді; ол соңғы нүктені, межелі префиксін және мақсатты ішкі желіні кодтайды. Бұл жолды жадтан құрастырудың орнына ресурс құжаттамасынан көшіріңіз, жоспарды іске қосыңыз және жаңа нәрсе қоспас бұрын ешқандай өзгеріс күтпеңіз.
Пакетті жүретін ретімен бақылаңыз
Маршрут бар болып, байланыс әлі де сәтсіз болса, жоғарғы қабатта болжамай, жолды ретімен жүріп өтіңіз.
- Маршрут: префикс межеліні қамтып, соңғы нүктеге байланысқан ішкі желіні нұсқайды.
- Авторизация: авторизация ережесі сол межеліге пайдаланушы тобына рұқсат береді. Тек маршрут ешқашан кіру бермейді.
- Қайтару жолы: мақсатты ішкі желінің маршрут кестесі жауаптарды соңғы нүктеге қарай қайтарады, ал қауіпсіздік тобы клиент мекенжай пулынан портқа рұқсат береді.
- Қолданба: клиенттен нақты TCP байланысын ашыңыз, содан кейін мақсаттың журналдары пулдан күтілген бастапқы мекенжайды көрсететінін растаңыз.
Әр apply сайын бір префиксті өзгертіңіз, содан кейін маршруттар тізімін қайта оқыңыз және межеліні, рұқсат беретін ережені және қайтару жолын бірге жазып алыңыз. Келесі адам қабылданбаған байланысты жөндеуге осы тізімнен бастауы керек, сертификат туралы теориядан емес.