المقدمة
يوضح هذا المستند الكيفية التي يمكن بها للتوجيه الثابت إلى الواجهة الخالية منع حلقات التوجيه.
المتطلبات الأساسية
المتطلبات
لا توجد متطلبات أساسية خاصة لهذا المستند.
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية:
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
الاصطلاحات
للحصول على مزيد من المعلومات حول اصطلاحات المستندات، ارجع إلى اصطلاحات تلميحات Cisco التقنية.
معلومات أساسية
يتم إستخدام الواجهة الخالية بشكل نموذجي لمنع حلقات التكرار للتوجيه. على سبيل المثال، يقوم بروتوكول توجيه العبارة الداخلي المحسن (EIGRP) دائما بإنشاء مسار إلى واجهة Null0 عندما يلخص مجموعة من المسارات. عندما يلخص بروتوكول توجيه، فإنه يعني أن الموجه يمكن أن يستقبل حركة مرور البيانات لأي عنوان IP داخل ذلك الملخص. لأن ليس كل عنوان IP يكون دائما قيد الاستخدام، هناك خطر يتمثل في تكرار الحزم في حالة إستخدام المسارات الافتراضية على الموجه الذي يستلم حركة مرور البيانات للملخص.
صياغة الأمر
المسار الثابت إلى Null0 هو مسار ثابت عادي، باستثناء أنه يشير إلى الواجهة Null0، وهي واجهة Cisco IOS الظاهرية. راجع قسم ip route من الفصل: ip routing protocol-independent يمر a through r للحصول على مزيد من المعلومات حول الأمر ip route. يعرض القسم التالي مثالا لكيفية إستخدام الأمر ip route لإنشاء مسار ثابت إلى Null0.
مثال
أحد السيناريوهات الشائعة التي قد تحتاج فيها إلى إضافة مسار ثابت إلى Null0 هو سيناريو خادم وصول يتصل به العديد من العملاء. يتسبب هذا السيناريو في تثبيت مسارات المضيف في جدول توجيه خادم الوصول. لضمان إمكانية الوصول إلى هؤلاء العملاء، دون إغراق الشبكة بالكامل بمسارات المضيف، عادة ما يكون للموجهات الأخرى في الشبكة مسار ملخص يشير إلى خادم الوصول. في هذا النوع من التكوين، يجب أن يحتوي خادم الوصول على نفس مسار الملخص الذي يشير إلى واجهة Access Server Null0. وإذا لم يكن الأمر كذلك، يمكن أن تحدث حلقات التوجيه عند محاولة مضيفين خارجيين الوصول إلى عناوين IP التي لم يتم تعيينها حاليا إلى عميل تم طلبه ولكنها جزء من المسار الموجز. وذلك لأن خادم الوصول سيقوم بإعادة الحزم عبر المسار الافتراضي لخادم الوصول إلى الشبكة الأساسية، نظرا لأن خادم الوصول يفتقر إلى مسار مضيف محدد للوجهة.
تأمل في هذا المثال:
طوبولوجيا الشبكة
يعطي بروتوكول ISP صغير (ISP-R1) أحد المستخدمين كتلة شبكة مقدارها 192.168.0.0/16. في هذا المثال، يقوم المستخدم بتقسيم 192.168.0.0/16 في /24 شبكة ويستخدم 192.168.1.0/24 و 192.168.2.0/24 فقط في الوقت الحالي. في موجه ISP-R1، يقوم ISP بتكوين مسار ثابت ل 192.168.0.0/16 نحو موجه المستخدم (cust-R2). وبعد ذلك يتصل ISP بموجه ISP أساسي، يتم تمثيله بالموجه BB-R3. يرسل الموجه BB-R3 مسارا افتراضيا إلى ISP-R1 ويستلم الشبكة 192.168.0.0/16 عبر BGP من ISP-R1.
تم ضمان إمكانية الوصول الآن من الإنترنت (موجه ISP الأساسي BB-R3) إلى موجه المستخدم cust-R2 لأن cust-R2 لديه مسار افتراضي تم تكوينه للإشارة إلى ISP-R1. ومع ذلك، إذا كانت الحزم موجهة إلى كتل الشبكة غير المستخدمة من نطاق 192.168.0.0/16، فعندئذ يستخدم الموجه cust-R2 المسار الافتراضي إلى ISP-R1 لإعادة توجيه هذه الحزم. ثم يتم تكرار الحزم بين ISP-R1 و cust-R2 حتى تنتهي صلاحية TTL. يمكن أن يكون لهذا تأثير كبير على وحدة المعالجة المركزية للموجه واستخدام الارتباط. قد يكون أحد الأمثلة على المكان الذي يمكن أن تأتي منه حركة المرور هذه إلى عناوين IP غير المستخدمة هجمات رفض الخدمة، وفحص كتل IP للعثور على مضيفين ضعفاء، وما إلى ذلك.
التكوينات ذات الصلة:
cust-R2 |
version 12.3
!
hostname cust-R2
!
ip subnet-zero
!
interface Loopback0
ip address 10.2.2.2 255.255.255.255
!
interface Ethernet0/0
ip address 192.168.1.1 255.255.255.0
!
interface Ethernet1/0
ip address 192.168.2.1 255.255.255.0
!
interface Serial2/0
ip address 10.0.0.2 255.255.255.252
!--- This interface leads to ISP-R1.
!
ip classless
ip route 0.0.0.0 0.0.0.0 10.0.0.1
!--- Default route going to ISP-R1.
!
end |
ISP-R1 |
version 12.3
!
hostname ISP-R1
!
ip subnet-zero
!
interface Loopback0
ip address 10.1.1.1 255.255.255.255
!
interface Serial0/0
ip address 10.0.0.1 255.255.255.252
!--- Interface to cust-R2.
!
interface Serial1/0
ip unnumbered Loopback0
!--- Interface going to BB-R3.
!
router bgp 65501
no synchronization
network 192.168.0.0 mask 255.255.0.0
!--- ISP-R1 injects 192.168.0.0/16 into BGP to !--- advertise it to BB-R3.
neighbor 10.3.3.3 remote-as 65503
neighbor 10.3.3.3 ebgp-multihop 255
no auto-summary
!
ip classless
ip route 10.3.3.3 255.255.255.255 Serial1/0
ip route 192.168.0.0 255.255.0.0 Serial0/0
!--- The first route is necessary for the eBGP !--- session to BB-R3 to come up.
!--- The route to 192.168.0.0/16 points towards cust-R2.
!
!
end |
بي بي-آر 3 |
version 12.3
!
hostname BB-R3
!
ip subnet-zero
!
!
interface Loopback0
ip address 10.3.3.3 255.255.255.255
!
interface Serial2/0
ip unnumbered Loopback0
!--- This interface goes to ISP-R1.
!
router bgp 65503
no synchronization
bgp log-neighbor-changes
neighbor 10.1.1.1 remote-as 65501
neighbor 10.1.1.1 ebgp-multihop 255
neighbor 10.1.1.1 default-originate
!--- BB-R3 injects a default route into BGP and !--- sends it to ISP-R1.
no auto-summary
!
ip classless
ip route 10.1.1.1 255.255.255.255 Serial2/0
!--- This route points to ISP-R1 and is !--- used to establish the eBGP peering.
!
end |
تدفق الحزمة
ملاحظة: تم تمكين بعض أوامر تصحيح الأخطاء على الموجهات لتوضيح تدفق الحزمة بشكل أفضل، وخاصة حزمة IP debug وdebug ip icmp. لا تقم بتمكين هذه الأوامر في بيئة إنتاج ما لم تفهم العواقب بشكل كامل.
BB-R3#ping ip 192.168.20.1 repeat 1
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 192.168.20.1, timeout is 2 seconds:
*Oct 6 09:36:45.355: IP: tableid=0, s=10.3.3.3 (local), d=192.168.20.1 (Serial2/0), routed via FIB
*Oct 6 09:36:45.355: IP: s=10.3.3.3 (local), d=192.168.20.1 (Serial2/0), len 100, sending.
Success rate is 0 percent (0/1)
BB-R3#
*Oct 6 09:36:50.943: ICMP: time exceeded rcvd from 10.0.0.1
يرسل BB-R3 طلبا واحدا من ICMP إلى عنوان IP داخل الكتلة 192.168.0.0/16 غير المستخدمة على Cust-R2. يستلم BB-R3 وقت ICMP تم تجاوزه مرة أخرى من ISP-R1.
في ISP-R1:
18:50:22: IP: tableid=0, s=10.3.3.3 (Serial1/0), d=192.168.20.1 (Serial0/0), routed via RIB
18:50:22: IP: s=10.3.3.3 (Serial1/0), d=192.168.20.1 (Serial0/0), g=192.168.20.1, len 100, forward
18:50:22: IP: tableid=0, s=10.3.3.3 (Serial0/0), d=192.168.20.1 (Serial0/0), routed via RIB
18:50:22: IP: s=10.3.3.3 (Serial0/0), d=192.168.20.1 (Serial0/0), g=192.168.20.1, len 100, forward
18:50:22: IP: tableid=0, s=10.3.3.3 (Serial0/0), d=192.168.20.1 (Serial0/0), routed via RIB
18:50:22: IP: s=10.3.3.3 (Serial0/0), d=192.168.20.1 (Serial0/0), g=192.168.20.1, len 100, forward
18:50:22: IP: tableid=0, s=10.3.3.3 (Serial0/0), d=192.168.20.1 (Serial0/0), routed via RIB
يتم تلقي الحزمة الأولية على التسلسل 1/0 على ISP-R1 من BB-R3 ويتم إعادة توجيهها إلى cust-R2 على التسلسل 0/0 كما هو متوقع. تصل الحزمة نفسها إلى ISP-R1 على serial0/0 وترسل فورا من نفس الواجهة، إلى cust-R2، بسبب هذا المسار:
ISP-R1#show ip route 192.168.20.1
Routing entry for 192.168.0.0/16, supernet
Known via "static", distance 1, metric 0 (connected)
Advertised by bgp 65501
Routing Descriptor Blocks:
* directly connected, via Serial0/0
Route metric is 0, traffic share count is 1
ماذا يحدث على cust-R2 الذي يجعلها ترسل حركة المرور هذه مرة أخرى إلى ISP-R1؟
في cust-R2:
*Oct 6 09:41:43.495: IP: s=10.3.3.3 (Serial2/0), d=192.168.20.1 (Serial2/0), g=10.0.0.1, len 100, forward
*Oct 6 09:41:43.515: IP: tableid=0, s=10.3.3.3 (Serial2/0), d=192.168.20.1 (Serial2/0), routed via RIB
*Oct 6 09:41:43.515: IP: s=10.3.3.3 (Serial2/0), d=192.168.20.1 (Serial2/0), g=10.0.0.1, len 100, forward
*Oct 6 09:41:43.555: IP: tableid=0, s=10.3.3.3 (Serial2/0), d=192.168.20.1 (Serial2/0), routed via RIB
أنت يستطيع رأيت أن cust-R2 يرسل هذا ربط مرة أخرى إلى ISP-R1، بسبب هذا طريق:
cust-R2#show ip route 192.168.20.1 longer-prefixes
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is 10.0.0.1 to network 0.0.0.0
cust-R2#
لا يحتوي الموجه cust-R2 على مسار إلى 192.168.20.1 لأن هذه الشبكة غير مستخدمة في شبكة المستخدم، لذلك فإن المسار الأفضل إلى 192.168.20.1 هو المسار الافتراضي الذي يشير إلى ISP-R1.
والنتيجة هي أن تكون حلقة الحزم بين ISP-R1 و cust-R2 حتى تنتهي صلاحية TTL.
إذا كان طلب ICMP قد انتقل إلى عنوان IP داخل شبكة قيد الاستخدام، فلن تحدث هذه النتيجة. على سبيل المثال، إذا كان طلب ICMP خاصا ب 192.168.1.x، المتصل مباشرة ب Cust-R2، فلن يحدث أي تكرار:
cust-R2#show ip route 192.168.1.1
Routing entry for 192.168.1.0/24
Known via "connected", distance 0, metric 0 (connected, via interface)
Routing Descriptor Blocks:
* directly connected, via Ethernet0/0
Route metric is 0, traffic share count is 1
الحل لهذه المشكلة هو تكوين مسار ثابت إلى Null0 ل 192.168.0.0/16 على cust-R2.
cust-R2#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
cust-R2(config)#ip route 192.168.0.0 255.255.0.0 Null0
cust-R2(config)#end
cust-R2#
*Oct 6 09:53:18.015: %SYS-5-CONFIG_I: Configured from console by console
cust-R2#show ip route 192.168.20.1
Routing entry for 192.168.0.0/16, supernet
Known via "static", distance 1, metric 0 (connected)
Routing Descriptor Blocks:
* directly connected, via Null0
Route metric is 0, traffic share count is 1
إذا قمت الآن بإعادة إرسال طلب ICMP من BB-R3 إلى 192.168.20.1، فإن cust-R2 يرسل حركة المرور هذه إلى Null0، والتي تقوم بتشغيل بروتوكول ICMP الذي يتعذر الوصول إليه لإنشاء.
BB-R3#ping ip 192.168.20.1 repeat 1
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 192.168.20.1, timeout is 2 seconds:
U
Success rate is 0 percent (0/1)
BB-R3#
*Oct 6 09:54:33.051: ICMP: dst (10.3.3.3) host unreachable rcv from 10.0.0.2
قد تكون هناك حالات يكون فيها إستخدام مسار ثابت ملخص إلى Null0 غير ممكن. على سبيل المثال، إذا كان في المثال السابق:
-
المجموعة 192.168.1.0/24 متصلة بموجه آخر يتم إدخاله إلى cust-R2 عبر ISDN
-
لا يخصص ISP-R1 الإصدار 192.168.0.0/16 بل الإصدار 192.168.1.0/24 فقط
-
يحدث قطع اتصال لارتباط ISDN
ملاحظة: ستكون النتيجة أن الحزم الموجودة في النقل أو التطبيقات التي تحاول الوصول إلى كتلة عناوين IP هذه تنشئ نفس حلقة التوجيه الموضحة سابقا.
ملاحظة: لإصلاح حلقة التوجيه هذه، يجب إستخدام الأمر ip route 192.168.1.0 255.255.255.0 null0 200 لتكوين مسار ثابت عائم إلى Null0 ل 192.168.1.0/24. ال 200 في القيادة هي المسافة الإدارية. ما هي المسافة الإدارية؟ للحصول على مزيد من المعلومات.
ملاحظة: لأننا نستخدم مسافة إدارية أعلى من أي بروتوكول توجيه، إذا أصبح المسار إلى 192.168.1.0/24 عبر إرتباط ISDN غير نشط، فإن cust-R2 يقوم بتثبيت مسار ثابت عائم. يتم بعد ذلك إرسال الحزم إلى Null0 حتى يصبح إرتباط ISDN نشطا.
معلومات ذات صلة