لماذا لا يستطيع EC2 الوصول إلى حاسوبك المحمول عبر AWS Client VPN
يترجم Client VPN مصادر العميل IPv4 إلى واجهة نقطة النهاية. لهذا ينجح الرد ولا تنجح اتصالات جديدة من EC2.
يتصل حاسوب محمول عبر AWS Client VPN بتطبيق يعمل على EC2 من دون أي مشكلة. ثم تحاول العكس، من EC2 إلى العنوان الذي مُنح للعميل، فيتوقف الاتصال أو يُرفض. نادرًا ما يكون هذا التفاوت بسبب قاعدة مفقودة في مجموعة الأمان. على نقطة نهاية Client VPN مرتبطة بشبكات فرعية داخل VPC، تترجم AWS مصادر العميل IPv4 إلى واجهة الشبكة الخاصة بنقطة النهاية، لذلك لا يوجد عنوان وارد داخل VPC يمثل حاسوبك المحمول.
ابدأ بما يُظهره التقاط الحزم
التقط الحزم على مضيف EC2 أثناء اتصال العميل، واقرأ عنوان المصدر الذي يراه التطبيق فعليًا. إذا كان واجهة نقطة النهاية على جانب VPC وليس عنوانًا من مجمع العملاء، فقد تأكدت الترجمة قبل أن تغيّر أي قاعدة.
مجمع العملاء هو نطاق تخصيص، وليس شبكة فرعية لها مسار عودة. هذا التمييز هو حيث تخطئ معظم هذه التحقيقات.
الترجمة التي تفسر التفاوت
تُخلط ثلاثة مسارات ببعضها، وواحد فقط منها هو ما يختبره الناس.
| Flow | Started by | What the VPC sees | Outcome |
|---|---|---|---|
| Client to EC2 service | The client | A translated source at the endpoint interface | Works, with a stateful reply |
| EC2 host to client pool address | The EC2 host | A destination with no route and no translation state | No usable path |
| Client to client | A client, when the feature is configured | Traffic mediated by the endpoint | Works only with that feature and its authorisation |
وصف مكوّنات Client VPN يوضح أن مصادر العميل IPv4 تُترجم إلى واجهة نقطة النهاية، وهذا يكفي لمعرفة لماذا لا يجد الصف الأوسط ما يطابقه.
يحتاج الاتصال الجديد إلى مسار، وخطوة لتحليل العنوان، وقرار تصريح. حالة الترجمة من جلسة شخص آخر لا توفر أيًا من الثلاثة.
لماذا الرد ليس اتصالًا جديدًا
تُطابق حزمة رد TCP قيدًا قائمًا، ولهذا يعمل مسار العودة دون أي قاعدة واردة. أما حزمة SYN جديدة من مضيف EC2 فلا تجد قيدًا تطابقه، فتصبح محاولة صادرة عادية نحو وجهة لا تعرف VPC كيف تصل إليها.
ولهذا أيضًا يكون وصف هذا بأنه حركة تسير في اتجاه واحد مضلّلًا. فحركة العودة تتدفق باستمرار في هذه الجلسات. الابتداء هو الجزء الذي لا مسار له.
ما لا يزال يُفسد جلسة يفترض أن تعمل
تؤثر مجموعات الأمان وقوائم ACL للشبكة وجدار الحماية على الحاسوب المحمول في الاتصالات التي يُفترض أن تنجح. أما ping الفاشل فيخبرك بأقل قدر، لأن سياسة ICMP غالبًا منفصلة عن سياسة TCP التي تهمك.
اكتب هذه القواعد بحسب المصدر المترجم، لا عنوان العميل. القواعد المرتبطة بالعنوان الذي لا يظهر أبدًا على الشبكة هي أكثر الأخطاء التي يوقعها المرء بنفسه في هذا التصميم.
حين يجب على VPC فعلًا أن يبدأ المحادثة
إذا كان على خدمة ما أن تُخطر محطة عمل، فاعكس الاتجاه واجعل العميل يحتفظ بقناة صادرة مستمرة ترد عليها الخدمة. وإذا كان يجب الوصول إلى شبكة بعيدة كاملة من VPC، فاختر معمارية تنشر بادئاتها وسياسة الوصول الخاصة بها بدلًا من افتراض أن Client VPN تفعل ذلك أصلًا. الوصول بين العملاء هو حالة ثالثة أضيق لها كائنات المسار والتصريح الخاصة بها. لا شيء من هذه مجرد خيار في نقطة النهاية القائمة.
أبقِ نطاق شرح IPv4 صادقًا أيضًا. توثيق AWS الحالي يفصل IPv6، حيث لا تُطبق تلك الترجمة، ونماذج الربط الأخرى التي توجّه بشكل مختلف.
اختبر في ثلاث خطوات مُسمّاة: يفتح العميل جلسة مسموحًا بها، وتجيب خدمة VPC تلك الجلسة، ويفتح مضيف داخل VPC جلسة جديدة نحو العميل. نجاح الخطوتين الأوليين وفشل الثالثة هو الشكل المتوقع لهذا التصميم، وليس عيبًا تتبعه بقواعد جدار الحماية.