المقدمة
يصف هذا وثيقة كيف أن يتحرى شبكة عنوان ترجمة (NAT) تشكيل على ال cisco تعديل أمن أداة (ASA) منصة.
المتطلبات الأساسية
المتطلبات
لا توجد متطلبات خاصة لهذا المستند.
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى الإصدار 8.3 من ASA والإصدارات الأحدث.
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
أستكشاف أخطاء تكوين NAT وإصلاحها على ASA
ملاحظة: للحصول على بعض الأمثلة الأساسية لتكوينات NAT، والتي تتضمن فيديو يعرض تكوين NAT أساسي، راجع قسم المعلومات ذات الصلة في أسفل هذا المستند.
عندما تقوم باستكشاف أخطاء تكوينات NAT وإصلاحها، فمن المهم فهم كيفية إستخدام تكوين NAT على ASA لبناء جدول سياسة NAT.
تفسر أخطاء التكوين هذه غالبية مشاكل NAT التي يواجهها مسؤولو ASA:
- قواعد تكوين NAT خارج الترتيب. على سبيل المثال، يتم وضع قاعدة NAT يدوية في أعلى جدول NAT، مما يؤدي إلى وضع قواعد أكثر تحديدا أكثر إلى أسفل جدول NAT حتى لا يتم الوصول إليها أبدا.
- تكون كائنات الشبكة المستخدمة في تكوين nat واسعة جدا، ما يتسبب في تطابق حركة المرور مع قواعد NAT هذه دون قصد، وتفويت قواعد NAT الأكثر تحديدا.
يمكن إستخدام أداة تعقب الحزم المساعدة لتشخيص معظم المشاكل المتعلقة ب NAT على ASA. راجع القسم التالي للحصول على مزيد من المعلومات حول كيفية إستخدام تكوين NAT لإنشاء جدول سياسة NAT، وكيفية أستكشاف أخطاء NAT المحددة وإصلاحها وحلها.
وبالإضافة إلى ذلك، يمكن إستخدام الأمر show nat detail لفهم قواعد NAT التي يتم الوصول إليها بواسطة الاتصالات الجديدة.
كيف يتم إستخدام تكوين ASA لإنشاء جدول سياسات NAT
يتم تقييم جميع الحزم التي تتم معالجتها بواسطة ASA مقابل جدول NAT. يبدأ هذا التقييم من الأعلى (القسم 1) ويعمل إلى أن تتم مطابقة قاعدة NAT.
بشكل عام، ما إن قارنت قاعدة nat، أن nat طبقت قاعدة إلى التوصيل وما من أكثر nat سياسة فحصت مع الربط غير أن هناك بعض التنبيهات تشرح بعد ذلك.
جدول سياسات NAT
تم إنشاء سياسة NAT على ASA من تكوين NAT.
الأقسام الثلاثة لجدول ASA NAT هي:
الباب 1 |
سياسات NAT اليدوية وتتم معالجة هذه العناصر بالترتيب الذي تظهر به في التكوين. |
الباب 2 |
سياسات NAT التلقائية تتم معالجة هذه استنادا إلى نوع NAT (الثابت أو الديناميكي) وطول البادئة (قناع الشبكة الفرعية) في الكائن. |
الباب 3 |
سياسات NAT اليدوية بعد التشغيل التلقائي وتتم معالجة هذه العناصر بالترتيب الذي تظهر به في التكوين. |
يوضح هذا رسم بياني مختلف nat قسم وكيف يتم ترتيبها:
مطابقة قاعدة NAT
الباب 1
- يتم تقييم التدفق أولا مقابل القسم 1 من جدول NAT الذي يبدأ بالقاعدة الأولى.
- إن المصدر والوجهة ip من الربط طابقت المعلم من الدليل nat قاعدة الترجمة طبقت والعمليات توقف ولا آخر nat قاعدة في أي قسم يكون قيمت.
- إن ما من nat قاعدة يكون طابقت، بعد ذلك قيمت التدفق مقابل قسم 2 من ال nat طاولة.
الباب 2
- يتم تقييم التدفق مقابل قواعد NAT للقسم 2 بالترتيب المحدد مسبقا، أولا قواعد NAT الثابتة، ثم قواعد NAT الديناميكية.
- إذا تطابقت قاعدة ترجمة مع IP المصدر أو الوجهة للتدفق، يمكن تطبيق الترجمة ويمكن مواصلة تقييم بقية القواعد لمعرفة ما إذا كانت تطابق IP الآخر في التدفق. مثلا، واحد mise à niveau قاعدة يستطيع ترجمت المصدر ip وآخر nat قاعدة يستطيع ترجمت الغاية.
- إذا تطابق التدفق مع قاعدة NAT تلقائي، فعندما يتم الوصول إلى نهاية القسم 2 توقفات بحث NAT، ولا يتم تقييم القواعد الموجودة في القسم 3.
- إذا لم تتم مطابقة قاعدة NAT من القسم 2 مع التدفق، فإن البحث ينتقل إلى القسم 3
الباب 3
- العملية الواردة في القسم 3 هي أساسا نفس العملية الواردة في القسم 1. إن المصدر والوجهة ip من الربط طابقت المعلم من الدليل nat قاعدة الترجمة طبقت والعمليات توقف ولا آخر nat قاعدة في أي قسم يكون قيمت.
يوضح هذا المثال كيفية تمثيل تكوين ASA NAT مع قاعدتين (عبارة NAT يدوية واحدة وتكوين NAT تلقائي) في جدول NAT:
كيفية أستكشاف أخطاء NAT وإصلاحها
إستخدام أداة Packet Tracer Utility
in order to تحريت مشكلة مع nat تشكيل، استعملت الربط tracer أداة مساعدة in order to دققت أن ربط يصطدم ال nat سياسة. تسمح لك أداة تتبع الحزم بتحديد حزمة نموذج تدخل في ASA، ويشير ASA إلى التكوين الذي ينطبق على الحزمة وإذا كان مسموحا به أو لا.
في المثال التالي، يتم تقديم عينة حزمة TCP التي تدخل الواجهة الداخلية ويتم توجيهها إلى مضيف على الإنترنت. تظهر الأداة المساعدة للحزمة tracer أن الحزمة تطابق قاعدة NAT ديناميكية وتترجم إلى عنوان IP الخارجي من 172.16.123.4:
ASA# packet-tracer input inside tcp 10.10.10.123 12345 192.168.200.123 80
...(output omitted)...
Phase: 2
Type: NAT
Subtype:
Result: ALLOW
Config:
object network 10.10.10.0-net
nat (inside,outside) dynamic interface
Additional Information:
Dynamic translate 10.10.10.123/12345 to 172.16.123.4/12345
...(output omitted)...
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow
ASA#
أخترت ال nat قاعدة وطقطقة ربط يتتبع in order to نشط الربط tracer من ال cisco يكيف أمن أداة مدير (ASDM). هذا يستعمل العنوان يعين في القاعدة nat بما أن المدخل ل الربط tracer أداة:
عرض مخرجات الأمر show nat
يمكن إستخدام إخراج الأمر show nat detail لعرض جدول نهج NAT. وعلى وجه التحديد، يمكن إستخدام عدادات translate_hits وuntranslate_hits لتحديد إدخالات NAT التي يتم إستخدامها على ASA.
إذا كنت ترى أن قاعدة nat الجديدة الخاصة بك لا تحتوي على translate_hits أو untranslate_hits، فهذا يعني أنه إما أن حركة المرور لا تصل إلى ASA، أو ربما قاعدة مختلفة لديها أولوية أعلى في جدول NAT تطابق حركة المرور.
هنا ال nat تشكيل وال nat سياسة طاولة من مختلف ASA تشكيل:
في المثال السابق، هناك ست قواعد nat مكونة على هذا ASA. يوضح إخراج show nat كيفية إستخدام هذه القواعد لإنشاء جدول سياسة NAT، بالإضافة إلى عدد translate_hits وuntranslate_hits لكل قاعدة.
تتزايد عدادات الوصول هذه مرة واحدة فقط لكل اتصال. بعد إنشاء الاتصال من خلال ASA، لا تزيد الحزم التالية التي تطابق ذلك الاتصال الحالي من خطوط NAT (مثل طريقة عمل تعدادات الوصول إلى قائمة الوصول على ASA).
translate_hits: عدد الاتصالات الجديدة التي تطابق قاعدة NAT في الإتجاه الأمامي.
"الإتجاه للأمام" يعني أن الاتصال تم إنشاؤه من خلال ASA في إتجاه الواجهات المحددة في قاعدة NAT.
إذا حددت قاعدة NAT أن الخادم الداخلي تتم ترجمته إلى الواجهة الخارجية، فإن ترتيب الواجهات في قاعدة NAT هو "nat (داخل، خارج)..."؛ إذا قام هذا الخادم بتهيئة اتصال جديد بمضيف على الخارج، يتزايد عداد translate_hit.
untranslate_hits: عدد الاتصالات الجديدة التي تطابق قاعدة NAT في الإتجاه العكسي.
إذا حددت قاعدة NAT أن الخادم الداخلي تمت ترجمته إلى الواجهة الخارجية، فإن ترتيب الواجهات في قاعدة NAT هو "nat (داخل، خارج)..."؛ إذا قام عميل على الجانب الخارجي من ASA بتهيئة اتصال جديد بالخادم على الداخل، فإن عداد untranslate_hit يتزايد.
ثانية، إن يرى أنت أن ك جديد nat قاعدة يتلقى ما من translate_hits أو untranslate_hits، ذلك يعني أن إما الحركة مرور لا يصل إلى ال ASA، أو ربما قاعدة مختلف أن يتلقى أعلى أولوية في ال nat طاولة يماثل الحركة مرور.
منهجية أستكشاف أخطاء NAT وإصلاحها
استعملت ربط tracer in order to أكدت أن عينة ربط يطابق المناسب nat تشكيل قاعدة على ال ASA. أستخدم الأمر show nat detail لفهم قواعد سياسة NAT التي يتم الوصول إليها. إن يطابق توصيل تشكيل nat مختلف من المتوقع، تحريت مع هذا سؤال:
- هل هناك قاعدة NAT مختلفة لها الأسبقية على قاعدة NAT التي تريد أن تصل إليها حركة المرور؟
- هل هناك قاعدة NAT مختلفة مع تعريفات الكائن التي تكون واسعة جدا (قناع الشبكة الفرعية قصير جدا، مثل 255.0.0.0) التي تتسبب في مطابقة حركة المرور هذه للقاعدة الخطأ؟
- هل سياسات NAT اليدوية خارج الترتيب، مما يتسبب في مطابقة الحزمة للقاعدة الخطأ؟
- هل تم تكوين قاعدة NAT الخاصة بك بشكل غير صحيح، مما يتسبب في عدم تطابق القاعدة مع حركة المرور الخاصة بك؟
راجع القسم التالي لعينة المشاكل والحلول.
المشاكل الشائعة مع تكوينات NAT
هنا بعض مشكلة المشتركة واجهت عندما يشكل أنت nat على ال ASA.
مشكلة: فشل حركة المرور بسبب خطأ فشل المسار العكسي (RPF) ل NAT: قواعد NAT غير المتماثلة المتطابقة للتدفقات الأمامية والعكسية
يضمن التحقق من إعادة توجيه المسار العكسي (NAT) ترجمة الاتصال الذي تتم ترجمته بواسطة ASA في الإتجاه الأمامي، مثل مزامنة TCP (SYN)، بواسطة قاعدة NAT نفسها في الإتجاه العكسي، مثل TCP SYN/Acknowledge (ACK).
بشكل عام، تكون هذه المشكلة بسبب الاتصالات الواردة الموجهة إلى العنوان المحلي (غير المترجم) في عبارة NAT. على المستوى الأساسي، تتحقق إعادة توجيه المسار العكسي (RPF) ل NAT من تطابق الاتصال العكسي من الخادم إلى العميل مع قاعدة NAT نفسها؛ وفي حالة عدم تطابق ذلك، يفشل التحقق من NAT RPF.
مثال: 209.165.200.225
عندما يرسل المضيف الخارجي في 192.168.200.225 حزمة موجهة مباشرة إلى عنوان IP المحلي (غير مترجم) 10.2.3.2، يقوم ASA بإسقاط الحزمة وتسجيل هذا syslog:
%ASA-5-305013: Asymmetric NAT rules matched for forward and reverse flows;
Connection for icmp src outside:192.168.200.225 dst inside:10.2.3.2 (type 8, code 0)
denied due to NAT reverse path failure
الحل:
أولا، ضمنت أن المضيف يرسل بيانات إلى الصحيح شامل nat عنوان. إذا كان المضيف يرسل حزم موجهة إلى العنوان الصحيح، فتحقق من قواعد NAT التي يتم الوصول إليها بواسطة الاتصال.
تحقق من تحديد قواعد NAT بشكل صحيح، ومن صحة الكائنات المشار إليها في قواعد NAT. تحقق أيضا من أن ترتيب قواعد NAT مناسب.
أستخدم الأداة المساعدة لتتبع الحزم لتحديد تفاصيل الحزمة المرفوضة. يجب أن يعرض متتبع الحزمة الحزمة التي سقطت بسبب فشل التحقق من إعادة توجيه المسار العكسي (RPF).
بعد ذلك، نظرت في الإنتاج من ربط tracer in order to رأيت أي nat قاعدة أن يكون ضربت في ال nat مرحلة وال nat-RPF مرحلة.
إذا تطابقت الحزمة مع قاعدة NAT في مرحلة التحقق من NAT RPF، والتي تشير إلى أن التدفق العكسي سوف يضرب ترجمة NAT، ولكنه لا يتطابق مع قاعدة في مرحلة NAT، مما يشير إلى أن التدفق الأمامي لن يضرب قاعدة NAT، ويتم إسقاط الحزمة.
يتطابق هذا الإخراج مع السيناريو المبين في المخطط السابق، حيث يرسل المضيف الخارجي حركة مرور البيانات بشكل غير صحيح إلى عنوان IP المحلي للخادم وليس عنوان IP العام (المترجم):
ASA# packet-tracer input outside tcp 192.168.200.225 1234 10.2.3.2 80
.....
Phase: 8
Type: NAT
Subtype: rpf-check
Result: DROP
Config:
object network inside-server
nat (inside,outside) static 172.18.22.1
Additional Information:
...
ASA(config)#
عندما تكون الحزمة موجهة إلى عنوان IP الصحيح الذي تم تعيينه ل 172.18.22.1، فإن الحزمة تطابق قاعدة NAT الصحيحة في مرحلة UN-NAT في الإتجاه الأمامي، ونفس القاعدة في مرحلة NAT RPF-check:
ASA(config)# packet-tracer input outside tcp 192.168.200.225 1234 172.18.22.1 80
...
Phase: 2
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
object network inside-server
nat (inside,outside) static 172.18.22.1
Additional Information:
NAT divert to egress interface inside
Untranslate 172.18.22.1/80 to 10.2.3.2/80
...
Phase: 8
Type: NAT
Subtype: rpf-check
Result: ALLOW
Config:
object network inside-server
nat (inside,outside) static 172.18.22.1
Additional Information:
...
ASA(config)#
المشكلة: تكون قواعد NAT اليدوية خارج الترتيب، مما يؤدي إلى عدم تطابق الحزم بشكل صحيح
تتم معالجة قواعد NAT اليدوية بناء على مظهرها في التكوين. إذا تم إدراج قاعدة NAT واسعة جدا أولا في التكوين، فيمكنها تجاوز قاعدة أخرى أكثر تحديدا في جدول NAT. استعملت ربط tracer in order to دققت أي قاعدة nat حركة المرور تصل؛ هو يستطيع كنت ضروري أن يعيد الربط اليدوي nat مدخل إلى ترتيب مختلف.
الحل:
إعادة ترتيب قواعد nat باستخدام ASDM.
الحل:
يمكن إعادة ترتيب قواعد NAT مع CLI إذا قمت بإزالة القاعدة وأعيد تعيينها في رقم سطر معين. لإدراج قاعدة جديدة في سطر معين، أدخل رقم السطر بعد تحديد الواجهات مباشرة.
مثال:
ASA(config)# nat (inside,outside) 1 source static 10.10.10.0-net
10.10.10.0-net destination static 192.168.1.0-net 192.168.1.0-net
المشكلة
قاعدة nat واسعة جدا وتطابق بعض حركة المرور دون قصد. في بعض الأحيان يتم إنشاء قواعد nat التي تستخدم كائنات عريضة جدا. إن وضعت هذا قاعدة قرب الأعلى من ال NAT طاولة (في أعلى قسم 1، مثلا)، هم يستطيع طابقت كثير حركة مرور أكثر من مقصود وسببت nat قاعدة أبعد إلى أسفل الجدول أن لا يطعن.
الحل
أستخدم أداة تعقب الحزم لتحديد ما إذا كانت حركة المرور الخاصة بك تطابق قاعدة مع تعريفات كائن واسعة جدا. إن هذا هو الحال، أنت ينبغي قلصت النطاق من هذا كائن، أو نقلت القواعد أبعد إلى أسفل ال nat طاولة، أو إلى بعد تلقائي قسم (قسم 3) من ال nat طاولة.
المشكلة
تقوم قاعدة NAT بتحويل حركة مرور البيانات إلى واجهة غير صحيحة. يمكن أن تكون لقواعد NAT الأولوية على جدول التوجيه عندما تحدد أي واجهة تصدر الحزمة ASA. إن يماثل ربط داخل عنوان يترجم في nat عبارة، ال nat استعملت قاعدة in order to حددت المخرج قارن.
ال nat تحويل تدقيق (أي هو ما يمكن أن يتجاوز التحشد طاولة) يتحقق أن هناك أي قاعدة nat أن يعين غاية عنوان ترجمة لحزمة واردة أن يصل على قارن.
إذا لم توجد قاعدة تحدد بشكل صريح كيفية ترجمة عنوان IP لوجهة الحزمة هذه، حينئذ تتم إستشارة جدول التوجيه العام لتحديد واجهة المخرج.
إذا كانت هناك قاعدة تحدد بشكل صريح كيفية ترجمة عنوان IP لوجهة الحزمة، فعندئذ تقوم قاعدة NAT بسحب الحزمة إلى الواجهة الأخرى في الترجمة ويتم تجاوز جدول التوجيه العام بشكل فعال.
غالبا ما تشاهد هذه المشكلة لحركة المرور الواردة، والتي تصل إلى الواجهة الخارجية، وعادة ما تكون نتيجة لقواعد nat غير الضرورية التي تحول حركة المرور إلى الواجهات غير المقصودة.
مثال:
الحلول:
يمكن حل هذه المشكلة باستخدام أي من هذين الإجرائن:
- أعدت ترتيب جدول nat بحيث يتم سرد المدخل الأكثر تحديدا أولا.
- أستخدم نطاقات عناوين IP العالمية غير المتداخلة لكشوف NAT.
لاحظ أنه إذا كانت قاعدة NAT عبارة عن قاعدة هوية، (مما يعني أن عناوين IP لا يتم تغييرها بواسطة القاعدة)، يمكن إستخدام الكلمة الأساسية route-lookup (لا تنطبق هذه الكلمة الأساسية على المثال السابق نظرا لأن قاعدة NAT ليست قاعدة هوية).
تتسبب الكلمة الأساسية route-lookup في أن يقوم ASA بفحص إضافي عندما يطابق قاعدة NAT. هو يتحقق أن التوجيه طاولة من ال ASA يرسل الربط إلى ال نفسه مخرج قارن إلى أي هذا تشكيل nat يحول الربط.
إذا لم تتطابق واجهة مخرج جدول التوجيه مع واجهة تحويل NAT، فإن قاعدة NAT غير متطابقة (يتم تخطي القاعدة) وتستمر الحزمة إلى أسفل جدول NAT لمعالجتها بواسطة قاعدة NAT لاحقة.
لا يكون خيار بحث المسار متاحا إلا إذا كانت قاعدة NAT قاعدة هوية nat، وهو ما يعني أن عناوين IP لا يتم تغييرها بواسطة القاعدة. يمكن تمكين خيار بحث المسار لكل قاعدة NAT إذا قمت بإضافة بحث المسار إلى نهاية سطر NAT، أو إذا قمت بالتحقق من جدول مسار البحث لتحديد موقع واجهة الخروج في تكوين قاعدة NAT في ASDM:
مشكلة: تتسبب قاعدة NAT في جعل ASA بروتوكول تحليل عنوان الوكيل (ARP) لحركة مرور البيانات على الواجهة المعينة
ARPs لوكيل ASA لنطاق عنوان IP العام في عبارة NAT على الواجهة العالمية. يمكن تعطيل وظيفة ARP للوكيل هذه على أساس قاعدة لكل NAT إذا قمت بإضافة الكلمة الأساسية no-proxy-arp إلى عبارة NAT.
تظهر هذه المشكلة أيضا عندما يتم إنشاء الشبكة الفرعية للعنوان العام بشكل غير مقصود لتكون أكبر بكثير من المخطط لها.
الحل
أضفت ال ما من وكيل-arp الكلمة المفتاح إلى ال nat خط إن يمكن.
مثال:
ASA(config)# object network inside-server
ASA(config-network-object)# nat (inside,outside) static 172.18.22.1 no-proxy-arp
ASA(config-network-object)# end
ASA#
ASA# show run nat
object network inside-server
nat (inside,outside) static 172.18.22.1 no-proxy-arp
ASA#
ويمكن تحقيق ذلك أيضا من خلال إدارة قاعدة بيانات المحول (ASDM). ضمن قاعدة NAT، حدد خانة الاختيار تعطيل ARP للوكيل على واجهة الخروج.
.
معلومات ذات صلة