معظم أخطاء AWS Site-to-Site VPN هي أخطاء عناوين، وتُرتكب قبل أن تتحرك أي حزمة. عناوين النفق الخارجية تصل إلى أقران IPsec، والعناوين الداخلية تشكّل رابط التوجيه بينها، والبادئات المحمية هي الغاية من ذلك الرابط. انسخ دورًا في دور آخر وسيرتفع النفق بينما لا شيء يُوجَّه. هذا هو تسلسل اقرأ-تحقق-اضبط الذي أستخدمه على بوابة عميل BGP، والقيم مأخوذة من إعداد الجهاز المنزّل لا من الذاكرة.

ثلاثة أدوار للعناوين، ونفق واحد

العناوين الخارجية عامة وتخص أقران IPsec: واحد لكل نفق على جانب AWS، وهوية بوابة العميل القابلة للوصول على جانبك، معدّلة حسب ترتيب NAT الذي لديك فعلًا. العناوين الداخلية خاصة وتخص الرابط المنطقي، الذي توثّقه AWS كـ /30 مأخوذ من 169.254.0.0/16. البادئات المحمية هي شبكات VPC أو الشبكات المحلية أو شبكات العبور التي توجّهها وتعلنها عبر ذلك الرابط.

إسناد بادئة LAN كعنوان لواجهة النفق هو الصورة الكلاسيكية لهذا الخطأ. تبدو الواجهة مضبوطة، وLAN غير معلنة، والجانب الآخر لا يملك مسارًا لها. قد ينجح النفق حتى في ping الداخلي الخاص به بينما تنتهي مهلة كل اسم تطبيق. ويسرد مرجع خيارات النفق قيود CIDR الداخلي، بما فيها نطاق العناوين الذي يجب أن يأتي منه.

اقرأ القيم من الإعداد المنزّل

نزّل إعداد طراز جهازك تحديدًا من الاتصال، ثم اعتبر جدول عناوينه مصدر الحقيقة. تعرض وحدة التحكم القيم نفسها لكل نفق: IP الخارجي، وCIDR الداخلي، وعنوان قرين BGP على جانب AWS. النفقان كائنان منفصلان بنقطتي نهاية خارجيتين منفصلتين وشبكتي /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 الداخلي، والبادئات المعلنة لكل نفق في جدول واحد. هذا الجدول هو ما يجعل التغيير التالي قابلًا للمراجعة.

مقالات ذات صلة