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-д хүрэхгүй туннель үүснэ, учир нь таны тохируулсан хөрш бол таны өөрийн интерфейс аль хэдийн эзэмшиж буй хаяг юм.
Mark болон 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, зарлагдсан префиксүүдийг нэг хүснэгтэд бич. Тэр хүснэгт л дараагийн өөрчлөлтийг хянах боломжтой болгодог.