ASA hairpin: مخرج إلى الإنترنت أم مسار VPN بين موقعين؟
يمكن لمجموعة العملاء أن تخرج نحو الإنترنت أو إلى VPN موقعي. حدّد المسار الذي تحتاجه قبل كتابة NAT، ثم تحقّق من المسار والمحدِّد ومسار الردّ.
يمكن لمستخدمَي وصول بعيد خلف الجهاز ASA نفسه أن يرسلا حركة من الواجهة الخارجية نفسها وأن يُعامَلا معاملة مختلفة تمامًا. أحدهما متّجه إلى موقع ويب عام، لذا تحتاج الحزمة إلى ترجمة المصدر ومسار إنترنت. والآخر متّجه إلى خادم خلف نفق بين موقعين ينتهي أيضًا على تلك الواجهة، لذا تحتاج الحزمة إلى هوية ومحدِّد نفق مطابق ومسار عودة إلى مجموعة العملاء. إذن الحركة على الواجهة نفسها شرط مسبق لكليهما وليست حلًّا لأيّ منهما.
مسارَان، واجهة واحدة
حدّد المسار الذي تبنيه قبل أن تكتب قاعدة NAT، لأن القواعد ليست قابلة للتبادل. المسار A هو من العميل إلى الإنترنت: عنوان المجموعة يدخل، والعنوان العام المترجَم يخرج، عودةً عبر الواجهة نفسها. والمسار B هو من العميل إلى بادئة خاصة على الجانب الآخر من نظير IPsec آخر: يبقى عنوان المجموعة محفوظًا، ويُعاد تشفيره، ويُسلَّم إلى نظير يجب أن يعرف كيف يردّ على المجموعة.
ما يحتاجه الاثنان أولًا هو إذن الواجهة نفسها. فبدونه يرفض الجهاز ASA تمرير حزمة خارج الواجهة التي وصلت منها، ويبدو الفشل مشكلة توجيه لا مشكلة سياسة:
same-security-traffic permit intra-interface
يمنح ذلك السطر ترتيبَ تمرير، كما تصفه مرجع NAT في ASA لمسارات الواجهة نفسها. وهو لا يضيف مسار عميل، ولا يصرّح بمورد، ولا يترجم عنوانًا، ولا يتفاوض على محدِّد IPsec، لذا توقّع إضافة ثلاثة أو أربعة أشياء أخرى بعده، ولا تقرأ قبوله على أنه تقدّم.
المسار A: العميل يريد الإنترنت
في مخرج الإنترنت يجب أن يتوقّف عنوان المجموعة عن كونه خاصًّا قبل أن تغادر الحزمة. وفي تصميم PAT عادي تترجم القاعدة المجموعة إلى عنوان الواجهة الخارجية، وتعيد حالة العودة تدفّق جهة العميل:
object network VPN_POOL
subnet 10.80.0.0 255.255.255.0
nat (outside,outside) after-auto source dynamic VPN_POOL interface route-lookup
ثم تأكّد أن العميل طلب فعلًا من الجهاز ASA حمل تلك الحركة. فاستثناء النفق المنقسم يرسل الوجهة العامة عبر اتصال الهاتف نفسه، ولا يصل إلى ASA إطلاقًا، ولا تصلح أي قاعدة NAT حزمةً لم تُرسل قط. قارن قائمة النفق المنقسم في سياسة المجموعة بالوجهة التي تختبرها.
بقية المسار عادية: مسار افتراضي أو محدّد صالح للخروج من الواجهة الخارجية، وسياسة وصول تسمح بالتدفّق، وDNS يُعالَج وفق سياسة المُحلِّل التي اخترتها. أضف route-lookup هنا للسبب نفسه المذكور أدناه، لأن واجهة الدخول وواجهة الخروج متطابقتان.
المسار B: العميل يريد موقعًا خاصًّا
يفشل هذا المسار في مواضع أكثر، لذا اكتبه بالترتيب. أولًا مسار العميل: يجب أن تكون بادئة الوجهة في قائمة النفق المنقسم، وإلا فلن يضعها العميل في النفق. ثانيًا محدِّد النفق: يجب أن تغطّي قائمة ACL التشفيرية للموقعين عنوان المجموعة إلى البادئة البعيدة، لا الشبكة المحلية إلى البادئة البعيدة فقط. ثالثًا الهوية، كي لا يُترجَم عنوان المجموعة إلى PAT الإنترنت أثناء المرور.
nat (outside,outside) source static VPN_POOL VPN_POOL
destination static SITE_PREFIX SITE_PREFIX route-lookup
الجانب البعيد هو الجزء الذي ينسى الناس اختباره. يحتاج النظير إلى مسار عودة إلى المجموعة وإلى محدِّد يشملها، و يجب أن تسمح سياسته الخاصة بعناوين المصدر التي سيراها. وإذا استُخدم الموقع عبر رؤية مترجَمة بدلًا من ذلك، فهذا تصميم صالح، لكن حينها يجب أن يتفق النظيران والمحدِّدان وجدولا التوجيه على العناوين المترجَمة.
تحقّق أيضًا من ترتيب القواعد. فقاعدة PAT عريضة فوق قاعدة الهوية ستترجم التبادل الخاص قبل أن تُقيَّم قاعدة الهوية أصلًا، والعَرَض حينها نفق موقعي بلا SA مطابق لا خطأ NAT.
الاختبار الذي يخبرك أي مسار بنيت
استخدم تقييم المسار في الجهاز ASA نفسه بدلًا من قراءة الإعداد والأمل. packet-tracer input outside tcp 10.80.0.25 40000 203.0.113.10 443 detailed يُظهر قرار NAT والمسار ونتيجة ACL لتدفّق واحد؛ أعِده بوجهة خاصة. وإذا أعادت مرحلة NAT كتابة تدفّق من خاص إلى خاص، فأنت بنيت المسار A لحزمة كانت تحتاج المسار B.
أمران آخران يسدّان الفجوة. show nat detail يطبع ترتيب القواعد الذي اتبعه packet-tracer، و show crypto ipsec sa يُظهر ما إذا كان هناك محدِّد للزوج الذي تتوقعه. غياب SA مسألة إعداد محدِّد أو نظير، وليست شيئًا تستطيع قاعدة NAT إصلاحه.
تحقّق من كل مسار بالحركة التي يخدمها
اقبل المسار A بطلب عام عادي من العميل، واقبل المسار B بطلب إلى مورد خاص موجود فعلًا. ثم أعِد كلًّا منهما بمورد مرفوض، لأن «مسموح» و«مصرَّح به بسياسة الوصول» ليسا الدليل نفسه، كما أن ping ينشأ عند المحور لا يختبر أيًّا من مساري العميل.
احفظ سجلَّي الاختبار منفصلين في التذكرة: عنوان المصدر، والوجهة، وقاعدة NAT التي طابقت، والنتيجة. وحين يقول التقرير التالي إن «VPN معطّل»، يخبرك هذا الزوج خلال دقيقة أي مسار تراجع، والجواب عادةً مسار أو محدِّد لا سطر الواجهة نفسها الذي يشك فيه الجميع أولًا.