AWS Site-to-Site VPN: сыртқы, ішкі және LAN префиксі
Бір AWS VPN-де үш адрес рөлі шатасады: сыртқы серіктестер, ішкі /30 байланысы және қорғалған LAN префикстері. Оларды жүктелген конфигурациядан оқыңыз.
AWS Site-to-Site VPN қателерінің көбі адрес қателері және олар бірде-бір пакет қозғалмай тұрып жасалады. Туннельдің сыртқы адрестері IPsec серіктестеріне жетеді, ішкі адрестер олардың арасындағы маршруттау байланысын құрайды, ал қорғалған префикстер сол байланыстың мақсаты. Бір рөлді екіншісіне көшірсеңіз, туннель көтеріледі, бірақ ештеңе маршрутталмайды. Міне, BGP клиент қақпасында қолданатын оқу-тексеру-конфигурациялау реті; мәндер жадтан емес, жүктелген құрылғы конфигурациясынан алынады.
Үш адрес рөлі, бір туннель
Сыртқы адрестер жария және IPsec серіктестеріне тиесілі: AWS жағында әр туннельге бір, ал сіздің жағыңызда клиент қақпасының қолжетімді сәйкестігі, нақты NAT құрылымыңызға сәйкестендірілген. Ішкі адрестер жеке және логикалық байланысқа тиесілі, оны AWS 169.254.0.0/16 ішінен алынған /30 деп құжаттайды. Қорғалған префикстер — сол байланыс арқылы маршруттайтын және жариялайтын VPC, жергілікті немесе транзиттік желілер.
LAN префиксін туннель интерфейсінің адресі ретінде беру — бұл қатенің классикалық түрі. Интерфейс конфигурацияланған болып көрінеді, LAN жарияланбайды, ал қарсы жақта оған маршрут жоқ. Туннель өзінің ішкі ping-ін өткізе алады, бірақ әр қолданба атауы уақыт шегіне жетеді. Туннель параметрлерінің анықтамалығы ішкі CIDR шектеулерін, оның ішінде қай адрес ауқымынан болуы керегін тізімдейді.
Мәндерді жүктелген конфигурациядан оқыңыз
Нақты құрылғы үлгіңізге арналған конфигурацияны қосылымнан жүктеп алыңыз, содан кейін оның адрес кестесін ақиқат көзі деп санаңыз. Консоль әр туннель үшін бірдей мәндерді көрсетеді: сыртқы IP, ішкі CIDR және AWS жағындағы BGP серіктесінің адресі. Екі туннель — жеке сыртқы соңғы нүктелері және жеке ішкі /30-дары бар бөлек нысандар, екеуі де бірдей қорғалған желілерді тасымалдаса да.
aws ec2 describe-vpn-connections --vpn-connection-ids vpn-0123456789abcdef0 \
--query 'VpnConnections[0].Options.TunnelOptions[].[OutsideIpAddress,TunnelInsideCidr]'
aws ec2 describe-customer-gateways --customer-gateway-ids cgw-0123456789abcdef0 \
--query 'CustomerGateways[0].[IpAddress,BgpAsn]'Егер жүктелген файл мен тікелей консоль сәйкес келмесе, файл ескірген. Адрестерді қолмен өңдеудің орнына қайта жүктеңіз, өйткені ішкі жұп пен серіктестің конфигурацияланған көршісі арасындағы сәйкессіздік — үнсіз BGP ақауы.
Байланысты дұрыс адреспен құрыңыз
Linux қақпасында туннель — VTI немесе XFRM интерфейсі, ал ішкі /30 сол интерфейске орналасады. Екі туннель екі интерфейс пен екі BGP көршісін білдіреді, әр AWS соңғы нүктесіне бір. AWS жүктелген құрылғы конфигурациясында басатын конвенция виртуалды жеке қақпаны әр ішкі /30-ның бірінші адресіне, ал сіздің клиент қақпаңызды екіншісіне қояды, сондықтан сіз жоғары адресті аласыз және төменгімен көршілесесіз. Бұл жерде ештеңеге LAN адресі қажет емес.
ip tunnel add tun0 mode vti local 203.0.113.10 remote 18.230.1.1 key 42
ip addr add 169.254.10.2/30 dev tun0
ip link set tun0 up mtu 1400
ip tunnel add tun1 mode vti local 203.0.113.10 remote 18.230.2.1 key 43
ip addr add 169.254.10.6/30 dev tun1
ip link set tun1 up mtu 1400Егер құрылғы үлгіңіздің файлы кері жұпты басса, оның сандарын қолданыңыз және ережені ұстаныңыз: интерфейстегі адрес — сіздің, серіктес адресі AWS-ке тиесілі. Керісінше жасау ешқашан Established күйіне жетпейтін туннель береді, өйткені сіз конфигурациялаған көрші — өз интерфейсіңізде әлдеқашан бар адрес.
Белгі мен VTI кілтін IKE демонының еншілес SA-ны интерфейске байлау үшін қолданатынымен үйлестіріп ұстаңыз, әйтпесе трафик туннельге келеді, бірақ қонуға интерфейс болмайды. MTU-ды басқа сайттан сан көшірмей, жолға және IKE демонының өз параметрлеріне қарсы тексеріңіз.
Маршруттарды тексермес бұрын BGP-ны тексеріңіз
IPsec-тің көтерілуі серіктестердің қауіпсіздік ассоциациясы туралы келіскенін дәлелдейді, одан басқа ештеңе емес. BGP сессиясы — ішкі байланыс үстіндегі жеке келіссөз, сондықтан көрші күйі мен префикс есептегіштерін оқып, одан кейін жарияламақ болғаныңызбен салыстырыңыз.
ip -s addr show dev tun0
vtysh -c 'show bgp summary'
vtysh -c 'show bgp neighbors 169.254.10.1'
vtysh -c 'show ip bgp neighbors 169.254.10.1 advertised-routes'Established күйі және нөл қабылданған префикс — бұл саясат немесе жариялау мәселесі, туннель мәселесі емес. Бүкіл тексеруді екінші туннельде қайталаңыз; жұмыс істеп тұрған бірінші туннель адрестердің сенімді екенін айтады, екінші туннельдің мүлдем конфигурацияланғанын емес.
Маршрутталған пакетті қадағалаңыз, содан кейін тоқтаңыз
Сессия префикстерді тасымалдаған кезде, маршрутты қақпадан екі бағытта да тексеріңіз: бастау адресі, келесі қадам және трафикке рұқсат беретін қауіпсіздік саясаты. BGP сессиясы көтерілген болуы мүмкін, ал қолданбаңызға қажет нақты префикс сүзілген, жинақталған немесе дұрыс емес интерфейске бағытталған болуы мүмкін.
Reachability Analyzer — AWS жағындағы құрал, ол бастау, меже және жолды алып, қолдау көрсетілетін конфигурацияда қай компонент оны бөгетенін хабарлайды. Оны VPC-ден клиент қақпаңыздың адресіне дейінгі жолды тексеру үшін қолданыңыз, қолданба хостынан емес. Ол конфигурацияны талдайды және жергілікті желіаралық қорған арқылы пакет жібермейді, сондықтан оның үкімін өз интерфейс есептегіштеріңіз бен пакет түсірілімдеріңізден бөлек ұстаңыз.
Әр туннель үшін сыртқы жұпты, ішкі /30-ды және жарияланған префикстерді бір кестеге жазыңыз. Дәл сол кесте келесі өзгерісті қарауға қолайлы етеді.