يصف هذا المستند التجزئة وإعادة التجميع على إرتباطات L2TP ويشرح كيف يمكن أن يساعد ضبط وحدة الإرسال القصوى (MTU) في تخفيف بعض المشاكل المرتبطة.
يجب أن يكون لدى قراء هذا المستند معرفة بما يلي:
أوامر تكوين شبكة الاتصال الخاصة الظاهرية العامة (VPDN)
مواضيع IP العامة مثل التجزئة، إعادة التجميع، MTU، التضمين، الرؤوس، وهكذا.
تتوفر معظم تحسينات التكوين والميزات التي تمت مناقشتها هنا في إصدارات برنامج Cisco IOS® Software 12.1T أو 12.2T والإصدارات الأحدث. ومع ذلك، ارجع إلى الأقسام الفردية أدناه للحصول على مزيد من المعلومات.
تم إنشاء المعلومات المُقدمة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كنت تعمل في شبكة مباشرة، فتأكد من فهمك للتأثير المحتمل لأي أمر قبل استخدامه.
للحصول على مزيد من المعلومات حول اصطلاحات المستندات، ارجع إلى اصطلاحات تلميحات Cisco التقنية.
أنت في بعض الأحيان يجب أن يجزئ نفق يغلف ربط in order to كنت بثتهم على السلك. هنا مثال على ذلك.
في حالة L2TP عبر UDP، تتضمن النفقات العامة لجميع البروتوكولات مجموعة إضافية من رؤوس IP و UDP و L2TP. رأس IP هو 20 بايت، ورأس UDP هو 8 بايت، وعموما يكون رأس L2TP هو 12 بايت. ال 12 بايت من ال L2TP رأس يتضمن:
الإصدار وحقول العلامة (2 بايت)
حقول معرف النفق ومعرف جلسة العمل (2 بايت لكل منهما)
2 بايت من إزاحة الحشو
4 بايت من تضمين بروتوكول الاتصال من نقطة إلى نقطة (PPP)
يوضح هذا المخطط المزيد من التفاصيل:
إذا قمت بتمكين تسلسل البيانات (يتم تعطيله بشكل افتراضي على أجهزة Cisco)، فيجب إضافة 4 بايت إضافية لحقول Ns و Nr. قم بإضافة رؤوس IP و UDP و L2TP لرؤية أن L2TP عبر UDP يضيف 40 بايت من تضمين البروتوكول إلى الحزمة.
عندما تقوم بتضمين حزمة IP بحجم 1500 بايت في L2TP، تصبح الحزمة التي يتم تغليفها 1540 بايت (1500 + 40 بايت من رؤوس IP و UDP و L2TP). أنت ينبغي كسرت الربط in order to بثتها عبر قياسي إثرنيت نوع قارن (أي يتلقى MTU 1500 بايت). تتم تجزئة الحزمة المغلفة في حزمتين. يتكون الجزء الأول من 1500 بايت (1460 بايت من حزمة IP الأصلية + 40 بايت من تضمين L2TP). يتكون الجزء الثاني من 60 بايت (آخر 40 بايت من حزمة IP الأصلية + 20 بايت من مصروفات IP العامة).
ملاحظة: يحتوي الجزء الأول فقط على رأس L2TP، بينما يحتوي الجزء الثاني فقط على رأس IP. وهذا يسمح لنظير L2TP، سواء كان LAC أو LNS، بإعادة تجميع الجزأين في الحزمة الأصلية التي يغلف بها النفق 1540 بايت.
أحد المشاكل التي تواجه بروتوكول الاتصال النفقي للطبقة 2 (L2TP) عبر بروتوكول مخطط بيانات المستخدم (UDP) وبروتوكولات الاتصال النفقي المستندة إلى IP من الطبقة 2 والطبقة 3 الأخرى هي أن المصروفات الإضافية لبروتوكول الاتصال النفقي تزيد من حجم الحزمة التي يتم تغليف النفق. عندما تكون الحزمة الأصلية كاملة الحجم بالفعل، أنت ينبغي كسرت الربط المغلف نفقا in order to بثتها على السلك.
من بين المشاكل التي تتسبب في تجزئة حزمة L2TP وإعادة تجميعها على مركز الوصول إلى L2TP (LAC) وخادم شبكة L2TP (LNS) أن التجزئة وإعادة التجميع يتم على مستوى العملية في برنامج Cisco IOS software. عند تجميع أعداد كبيرة من جلسات عمل L2TP وتدفق حركة مرور البيانات على نظام LNS، يمكن أن يقلل تحويل العمليات بشكل كبير من الأداء. ولهذا السبب، من المرغوب فيه بشدة تقليل أو إزالة الحاجة إلى التجزئة وإعادة التجميع في مسار تحويل L2TP.
أستخدم إحدى الطرق الموضحة في هذا المستند لضبط وحدة الإرسال القصوى (MTU) لحل هذه المشكلة.
تم تصميم مجموعة متنوعة من التكوينات والميزات في برنامج Cisco IOS software لتجنب التجزئة وإعادة التجميع في مسار تحويل L2TP من خلال ضبط وحدة الحد الأقصى للنقل (MTU).
قم بتكوين وحدة الحد الأقصى للنقل (MTU) لبروتوكول IP أقل على واجهة القالب الظاهري باستخدام الأمر ip mtu. يفرض تكوين IP MTU أقل على الموجه إسقاط أي حزم IP التي تتجاوز IP MTU وتعيين بت DF (عدم التجزئة) في رأس IP. بعد ذلك يقوم الموجه بإنشاء بروتوكول رسائل التحكم في الإنترنت (ICMP) النوع 3 للمضيف الذي يتعذر الوصول إليه، وتجزئة الرمز 4 الرسالة المطلوبة نحو مصدر الحزمة (المضيف الأصلي). يشير هذا رسالة إلى IP MTU من القارن، لذلك أن المصدر يستطيع خفضت الربط حجم أن يلائم من خلال القارن. تعرف هذه العملية أيضا باكتشاف مسار وحدة الحد الأقصى للنقل (MTU) (PMTUD). لمزيد من المعلومات، ارجع إلى RFC 1191 . قم بتكوين IP MTU إلى أكبر حجم لحزم IP الذي لن يتجاوز PMTU بين LAC و LNS عند إضافة رأس L2TP بالكامل. للحصول على PMTU سعة 1500 بايت ورأس L2TP قياسي سعة 40 بايت، قم بتعيين IP MTU إلى 1460 (1500-40 بايت في الرأس).
إذا كانت PMTU غير معروفة (أو تتغير) بين LAC و LNS، فيمكنك تكوين الأمر ip pmtu ضمن مجموعة VPDN. تمت إضافة الأمر ip pmtu في الإصدار 12.2(4)T من برنامج Cisco IOS Software باستخدام معرف الخطأ CSCds72714 (غير قابل للعرض إلى المستخدمين الخارجيين). تنسخ ميزة ip pmtu وحدة بت DF من الحزمة الداخلية إلى رأس L2TP الخارجي وتشغل PMTUD بين الموجه ونقطة نهاية نفق L2TP الخاص به.
يحتوي Microsoft Windows على إعداد تسجيل يسمح لك بتمكين ميزة التراجع لاكتشاف PMTU الخاص بهم. للحصول على معلومات حول Windows NT، راجع المقالة التالية على موقع Microsoft على الويب: تغيير خوارزمية اكتشاف الثقب الأسود PMTU ل Windows NT 3.51 (Q136970) .
بالنسبة لنظام التشغيل Windows 2000/XP، تصف مقالة Microsoft كيفية أستكشاف أخطاء موجه الثقب الأسود وإصلاحها (Q314825) أساليب متنوعة في Windows لتجنب هذه المشكلة. تعرف هذه المقالة موجه "الثقب الأسود"، وتصف طريقة لتحديد مكان موجهات الثقب الأسود، وتقترح ثلاث طرق لتجنب فقدان البيانات الذي يمكن أن يحدث بسبب موجه الثقب الأسود.
يمكنك أيضا تمكين المعايرة التلقائية ل IP MTU. تتيح هذه الميزة للموجه إمكانية ضبط IP MTU تلقائيا على واجهة الوصول الظاهري للتعويض عن حجم رأس L2TP و MTU الخاص بواجهة الخروج. تمت إضافة هذه الميزة في الإصدار 12.1(5)T من برنامج Cisco IOS Software باستخدام معرف الخطأ CSCdr01713 (للعملاء المسجلين فقط).
ملاحظة: يتم تعديل وحدة الحد الأقصى للنقل (MTU) الخاصة ب IP تلقائيا فقط في حالة عدم وجود وحدة الحد الأقصى للنقل (MTU) الخاصة ب IP يدويا على واجهة القالب الظاهري (باستخدام الخيار الموجود في القسم السابق).
في البداية، تم تمكين هذه الميزة بشكل افتراضي بدون طريقة لتعطيلها. أضاف معرف الخطأ CSCdt67753 (العملاء المسجلون فقط) في الإصدار 12.2(3) من برنامج Cisco IOS و 12.2(4)T لاحقا الأمر [no] ip mtu adjust ضمن VPDN-group لتمكين الميزة وتعطيلها. الإعداد الافتراضي هو تمكين الميزة. لا تحتوي هذه الميزة على واجهة سطر الأوامر (CLI) لتغيير الإعداد الافتراضي فقط لاتصالات L2X، والتي لا ترتبط بمجموعة VPDN (مثل نفق L2F أو L2TP الذي تم إنشاؤه بواسطة SGBP). تسبب عدم القدرة على تعطيل تقنية المعلومات بسبب طبعات الارتباطات المتعددة للهياكل (MMPPP)، بالإضافة إلى مشاكل PMTUD الموضحة أدناه، في العديد من شكاوى المستخدم. ولهذا السبب، تم تغيير الإعداد الافتراضي لجعل ميزة الضبط التلقائي ل IP MTU معطلة بدءا من الإصدارين 12.2(6) و 12.2(8)T من البرنامج Cisco IOS Software والإصدارات الأحدث باستخدام معرف الخطأ CSCdu69834 (للعملاء المسجلين فقط).
يعتمد كل من التعديل اليدوي والتلقائي لوحدة الحد الأقصى للنقل (MTU) على PMTUD بين الأجهزة المضيفة النهائية. وعلى الرغم من أنه جيد من الناحية النظرية، إلا أن PMTUD لا يعمل بشكل جيد على الإنترنت. راجع RFC 2923 للحصول على وصف تفصيلي لكيفية انقطاع PMTUD على الإنترنت. المشكلة الكبرى هي وجود "الثقوب السوداء" التي تتسبب في ظهور تنزيلات صفحة الويب في منتصف الدفق. تحدث هذه الثقوب السوداء بشكل عام بسبب جدران الحماية أو الموجهات التي تم تكوينها لتصفية رسائل ICMP. عندما يكون مصدر الحزم الكبيرة غير قادر على تلقي الرسالة "مضيف ICMP الذي يتعذر الوصول إليه" من الموجه، تشير إلى أنه تم تجاوز MTU، فلا يمكنه تقليل حجم الحزمة. بدلا من ذلك، يستمر في محاولة وإعادة إرسال نفس الحزمة مرارا وتكرارا مع مجموعة بت DF. يتم إسقاط هذه الحزم بواسطة LNS نظرا لتجاوزها PMTU ويتوقف الاتصال عن الاستجابة.
بسبب المشاكل التي تعتمد على PMTUD لاكتشاف أن IP MTU أصغر عبر نفق L2TP، أضافت Cisco ميزة ضبط الحد الأقصى لحجم مقطع TCP (MSS) في برنامج Cisco IOS الإصدار 12.2(4)T.
ميزة ضبط الحد الأقصى لحجم مقطع TCP - التي تمت إضافتها بواسطة معرف الخطأ CSCds69577 (العملاء المسجلون فقط) المتوفرة في برنامج Cisco IOS الإصدار 12.2(4)T والإصدارات الأحدث تسمح للموجه بتعديل TCP MSS المعلن عنه في حزم المزامنة الواردة والصادرة (SYN) التي يتم إرسالها بواسطة المضيفين النهائيين. من خلال تعديل TCP MSS إلى قيمة أقل من القيمة الافتراضية المعتادة لعام 1460، يمكنك القضاء على TCP كمصدر للحزم كاملة الحجم. يجب ضبط TCP MSS إلى قيمة بحيث لا يتجاوز مقطع TCP مع رأس TCP/IP ويتم تضمينه في L2TP عبر UDP IP MTU الخاص بواجهة الخروج. عادة ما يكون رأس TCP/IP هو 40 بايت ويكون L2TP عبر رأس UDP هو 40 بايت إضافية. لذلك، بشكل عام، يجب تعديل TCP MSS إلى 1420 (1500 - 40 بايت TCP/IP Header - 40 بايت L2TP عبر رأس UDP).
الأمر المستخدم لهذا الأمر ip tcp adjust-mss <mss>، وهو أمر على مستوى الواجهة.
يتطلب الخيار الأخير لتقليل التجزئة في شبكة L2TP دعم تفاوض وحدة الاستقبال القصوى (MRU) على عميل بروتوكول الاتصال من نقطة إلى نقطة. يسمح خيار MRU في PPP للنظير بالإعلان عن وحدة الاستقبال القصوى الخاصة به. على سبيل المثال، إذا قام النظير بالإعلان عن وحدة معالجة مركزية (MRU) تبلغ 1460، فلن يقوم هذا النظير بمعالجة إطار بروتوكول الاتصال من نقطة إلى نقطة (PPP) بحمولة يزيد طولها عن 1460 بايت. يستخدم تنفيذ Cisco PPP وحدة الحد الأقصى للنقل (MTU) للواجهة كقيمة MRU التي أعلن عنها أثناء تفاوض PPP. إذا تم تعيين وحدة الحد الأقصى للنقل (MTU) على أنه الإعداد الافتراضي الذي يبلغ 1500 بايت، فلن يتم الإعلان عن وحدة الحد الأقصى للنقل (MRU)، حيث إن هذا هو الإعداد الافتراضي القياسي لبروتوكول الاتصال من نقطة إلى نقطة (PPP). ومع ذلك، إذا تم تعيين وحدة الحد الأقصى للنقل (MTU) على 1460، يتم الإعلان عن وحدة الحد الأقصى للنقل (MRU) الخاصة ب PPP رقم 1460. وإذا استمع نظير بروتوكول الاتصال من نقطة إلى وحدة المعالجة المركزية (MRU) المعلن عنها أثناء تفاوض بروتوكول الاتصال من نقطة إلى نقطة (PPP) وقام بتعديل وحدة الحد الأقصى للنقل (MTU) الخاصة به (وبوجه غير مباشر وحدة الحد الأقصى للنقل (IP MTU) لارتباط بروتوكول الاتصال من نقطة إلى نقطة (PPP)) هذا، فيمكننا تجنب التجزئة. باستخدام وحدة الحد الأقصى للنقل (MRU) عبر بروتوكول الاتصال من نقطة إلى نقطة (PPP) المعلن عنها لعام 1460، يجب أن يقوم النظير بتعيين وحدة الحد الأقصى للنقل (MTU) عبر بروتوكول الإنترنت (IP) إلى 1460. وهذا، بدوره، يعدل TCP MSS الذي يعلن عنه النظير عند فتح إتصالات TCP وتجنب التجزئة عبر شبكة L2TP.
أستخدم الأمر mtu <bytes>لتكوين وحدة الحد الأقصى للنقل (MTU) أقل على واجهة القالب الظاهري. ومرة أخرى، يتطلب هذا دعما من عميل PPP للاستماع إلى وحدة الإدارة عن بعد (MRU) المعلن عنها أثناء تفاوض PPP. أحد العملاء المعروفين الذين يستمعون إلى خيار MRU هو عميل Windows XP PPP. ولكن من المؤسف أن عملاء بروتوكول الاتصال من نقطة إلى نقطة (PPP) الآخرين الذين يشيع نشرهم لا يلتزمون بالنقاط الاشرافية الاشرافية الاشرافية على نقاط الوصول من نقطة إلى نقطة (MRU) على النحو الواجب. ارجع إلى وثائق عميل PPP لتحديد ما إذا كان يستخدم PPP MRU المعلن عنه بشكل صحيح. عند تشغيل L2TP باستخدام بروتوكول LCP للوكيل، يلزم إعادة التفاوض على بروتوكول LCP نظرا لأنه يتم التفاوض على خيار وحدة الحد الأقصى للنقل (MRU) أثناء مرحلة بروتوكول LCP. لتمكين إعادة تفاوض LCP، قم بتكوين إعادة تفاوض LCP عند عدم تطابق أو إعادة تفاوض LCP دائما ضمن مجموعة VPDN.
هناك مشكلة واحدة تتعلق بخفض وحدة الحد الأقصى للنقل (MTU) وهي أن وحدة الحد الأقصى للنقل (MTU) التابعة لبروتوكول الإنترنت يتم خفضها تلقائيا أيضا. لا يمكن حاليا تكوين IP MTU أكبر من MTU على واجهة قالب ظاهري. يتم تعقب هذا الإجراء من خلال معرف الخطأ CSCdx39828 كطلب ميزة/تحسين (لا يمكن عرضه للمستخدمين الخارجيين).
تتطلب هذه الطريقة من العملاء الاستماع إلى خيار MRU أثناء تفاوض LCP. وغالبا ما يكون هناك خليط من الزبائن: بعضهم يستمع إلى وحدة الاستجابة السريعة، والبعض الآخر لا يستمع. يقع العملاء الذين يتجاهلون وحدة الحد الأقصى للنقل (MRU) في مشاكل PMTUD الموضحة في القسم مما يعمل على ضبط وحدة الحد الأقصى للنقل (MTU) لبروتوكول IP تلقائيا. بالنسبة لهؤلاء العملاء، يمكنك إستخدام حل بديل عن طريق إيقاف تشغيل PMTUD بشكل فعال عن طريق مسح وحدة بت DF على حزمة IP الداخلية. يمكنك القيام بذلك باستخدام التكوين التالي:
interface virtual-template1 ip policy route-map clear-df ! route-map clear-df permit 10 match ip address 101 set ip df 0 ! access-list 101 permit tcp any any
يوفر برنامج Cisco IOS العديد من الطرق لزيادة أداء التحويل إلى الحد الأقصى ل L2TP. يعتبر PMTUD حلا مثاليا. غير أنه لا يمكن الاعتماد عليه دائما نظرا لمشاكل الإنترنت. يوفر برنامج Cisco IOS بعض الآليات البديلة لإبقاء أداء تحويل L2TP مرتفعا وزيادة اتصال المستخدم إلى الحد الأقصى.