المقدمة
يقدم هذا المستند نظرة عامة على بروتوكول TCP متعدد المسارات (MPTCP)، وتأثيره على فحص التدفق، ومنتجات Cisco التي تتأثر به ولا تتأثر به.
نظرة عامة على MPTCP
معلومات أساسية
غالبا ما تكون البيئات المضيفة المتصلة بالإنترنت أو داخل بيئة مركز البيانات متصلة بمسارات متعددة. ومع ذلك، عند إستخدام بروتوكول TCP لنقل البيانات، يتم تقييد الاتصال بمسار شبكة واحد. من المحتمل أن بعض المسارات بين المضيفين تكون مزدحمة، بينما المسارات البديلة تكون غير مستغلة بالشكل الكافي. يمكن إستخدام موارد الشبكة بشكل أكثر كفاءة إذا تم إستخدام هذه المسارات المتعددة في نفس الوقت. وبالإضافة إلى ذلك، فإن إستخدام إتصالات متعددة يعمل على تحسين تجربة المستخدم، لأنه يوفر إنتاجية أعلى ومرونة محسنة ضد أعطال الشبكة.
MPTCP هي مجموعة من الملحقات لبروتوكول TCP العادي التي تمكن من فصل تدفق بيانات واحد ونقله عبر إتصالات متعددة. راجع RFC6824: ملحقات TCP للعملية متعددة المسارات ذات العناوين المتعددة للحصول على مزيد من المعلومات.
كما هو موضح في هذا المخطط، يمكن ل MPTCP فصل تدفق البيانات بسرعة 9 ميجابت في الثانية إلى ثلاثة تدفقات فرعية مختلفة على عقدة المرسل، والتي يتم تجميعها بعد ذلك مرة أخرى إلى تدفق البيانات الأصلي على العقدة المتلقية.
تعمل البيانات التي تدخل اتصال MPTCP تماما كما تفعل من خلال اتصال TCP منتظم؛ وقد ضمنت البيانات المرسلة عملية تسليم بالترتيب. ونظرا لأن بروتوكول MPTCP يعدل مكدس الشبكة ويعمل داخل طبقة النقل، فإنه يتم إستخدامه بشكل شفاف بواسطة التطبيق.
إنشاء الجلسة
يستخدم MPTCP خيارات TCP من أجل التفاوض حول فصل البيانات وإعادة تجميعها وتنظيمها عبر التدفقات الفرعية المتعددة. يتم حجز خيار TCP رقم 30 بواسطة سلطة الأرقام المعينة للإنترنت (IANA) للاستخدام الحصري بواسطة MPTCP. راجع معلمات بروتوكول التحكم في الإرسال (TCP) للحصول على مزيد من المعلومات. في إنشاء جلسة TCP عادية، يتم تضمين خيار MP_CAPABLE في حزمة التزامن الأولي (SYN). إذا كان المستجيب يدعم MPTCP ويختار التفاوض عليه، فإنه يستجيب أيضا باستخدام خيار MP_ABLE في حزمة SYN-Acknowledge (ACK). يتم إستخدام المفاتيح التي يتم تبادلها ضمن هذه المصافحة في المستقبل لمصادقة الانضمام إلى جلسات عمل TCP الأخرى وإزالتها في تدفق MPTCP هذا.
الانضمام إلى التدفقات الفرعية الإضافية
قد تبدأ المضيف A تدفقات فرعية إضافية مستمدة من واجهة أو عنوان مختلف إلى المضيف-B عندما يعتبر ذلك ضروريا. كما هو الحال مع التدفق الفرعي الأولي، يتم إستخدام خيارات TCP للإشارة إلى الرغبة في دمج هذا التدفق الفرعي مع التدفق الفرعي الآخر. يتم إستخدام المفاتيح التي يتم تبادلها داخل المؤسسة الأولية للتدفق الفرعي (مع خوارزمية التجزئة) من قبل المضيف-B لتأكيد إرسال طلب الانضمام بالفعل من قبل المضيف-A. التدفق الفرعي الثانوي 4-tuple (المصدر IP، والوجهة IP، والمنفذ المصدر، ومنفذ الوجهة) مختلف عن ذلك الخاص بالتدفق الفرعي الأساسي؛ قد يأخذ هذا التدفق مسار مختلف من خلال الشبكة.
إضافة عنوان
يحتوي المضيف-A على واجهات متعددة، ومن الممكن أن يحتوي المضيف-B على إتصالات شبكة متعددة. يتعرف المضيف-B على العنوانين A1 و A2 ضمنيا نتيجة لاستيراد التدفقات الفرعية للمضيف-A من كل عنوان من عناوينه الموجهة إلى B1. ومن الممكن أن يعلن المضيف - باء عنوانه الإضافي (B2) إلى المضيف - ألف بحيث يتم إجراء تدفقات فرعية أخرى إلى B2. يتم إكمال هذا الإجراء عبر خيار TCP 30. كما هو موضح في هذا المخطط، يعلن المضيف-B عن عنوانه الثانوي (B2) إلى المضيف-A، ويتم إنشاء تدفقات فرعية إضافية. نظرا لأن بروتوكول MPTCP يعمل فوق طبقة الشبكة من مكدس اتصال النظام المفتوح (OSI)، يمكن أن تكون عناوين IP المعلن عنها هي IPv4 أو IPv6 أو كليهما. من المحتمل أن يتم نقل بعض التدفقات الفرعية بواسطة IPv4 في نفس الوقت حيث يتم نقل التدفقات الفرعية الأخرى بواسطة IPv6.
التقسيم متعدد المسارات وإعادة التجميع
يجب تقسيم تدفق البيانات الذي يتم توفيره ل MPTCP بواسطة التطبيق وتوزيعه عبر التدفقات الفرعية المتعددة بواسطة المرسل. ثم يجب إعادة تجميعها في دفق البيانات الوحيد قبل تسليمها مرة أخرى إلى التطبيق.
تقوم بروتوكول MPTCP بفحص أداء كل تدفق فرعي وزمن الوصول إليه، كما تعمل على ضبط توزيع البيانات بشكل ديناميكي للحصول على أعلى إنتاجية إجمالية. أثناء نقل البيانات، يتضمن خيار رأس TCP معلومات حول تسلسل/أرقام الإقرار MPTCP، ورقم الإقرار/تسلسل التدفق الفرعي الحالي، والرقم الاختباري.
التأثير على فحص التدفق
قد تؤدي العديد من أجهزة الأمان إلى إلغاء الوصول إلى النظام أو إستبدال خيارات TCP غير المعروفة بقيمة "لا خيار" (NOOP). إذا قام جهاز الشبكة بذلك على حزمة نظام TCP على التدفق الفرعي الأولي، تتم إزالة إعلان MP_CAPABLE. ونتيجة لذلك، يبدو للخادم أن العميل لا يدعم بروتوكول MPTCP، وأنه يرجع إلى عملية TCP العادية.
إذا تم الاحتفاظ بالخيار وكان MPTCP قادرا على إنشاء تدفقات فرعية متعددة، فقد لا يعمل تحليل الحزم المضمنة بواسطة أجهزة الشبكة بشكل موثوق. وذلك لأن أجزاء فقط من تدفق البيانات يتم نقلها إلى كل تدفق فرعي. قد يختلف تأثير فحص البروتوكول على بروتوكول MPTCP من لا شيء إلى التعطيل الكامل للخدمة. يختلف التأثير بناء على ما يتم فحصه من بيانات وكميتها. قد يتضمن تحليل الحزمة بوابة طبقة تطبيق جدار الحماية (ALG أو الإصلاح) أو شبكة ALG لترجمة عنوان الشبكة (NAT) أو إمكانية رؤية التطبيق والتحكم (AVC) أو التعرف على التطبيق المستند إلى الشبكة (NBAR) أو خدمات اكتشاف الاقتحام (IDS/IPS). إذا كان فحص التطبيق مطلوبا في بيئتك، فيوصى بتمكين مسح خيار TCP رقم 30.
إذا تعذر فحص التدفق بسبب التشفير أو إذا كان البروتوكول غير معروف، فيجب ألا يكون للجهاز المضمن أي تأثير على تدفق MPTCP.
منتجات Cisco المتأثرة ب MPTCP
تتأثر هذه المنتجات ب MPTCP:
- أجهزة الأمان المعدلة (ASA)
- Cisco Firepower Threat Defense
- نظام منع التسلل (IPS)
- IOS-XE و IOS® من Cisco
- محرك التحكم في التطبيق (ACE)
يتم وصف كل منتج بالتفصيل في الأقسام التالية من هذا المستند.
ASA
عمليات TCP
بشكل افتراضي، يستبدل جدار حماية Cisco ASA خيارات TCP غير المدعومة، والتي تتضمن خيار MPTCP رقم 30، مع خيار NOOP (خيار 1). للسماح بخيار MPTCP، أستخدم هذا التكوين:
- قم بتحديد السياسة للسماح بخيار TCP رقم 30 (المستخدم من قبل MPTCP) من خلال الجهاز:
tcp-map my-mptcp
tcp-options range 30 30 allow
- تحديد تحديد حركة المرور:
class-map my-tcpnorm
match any
- تعريف خريطة من حركة المرور إلى الإجراء:
policy-map my-policy-map
class my-tcpnorm
set connection advanced-options my-mptcp
- تنشيطه على المربع أو لكل واجهة:
service-policy my-policy-map global
تفتيش البروتوكول
يدعم ASA فحص العديد من البروتوكولات. يختلف التأثير الذي قد يكون لمحرك الفحص على التطبيق. يوصى بعدم تطبيق خريطة TCP الموضحة سابقا، في حالة الحاجة إلى الفحص.
Cisco Firepower Threat Defense
عمليات TCP
بما أن FTD يجري تفتيشا عميقا للحزم لخدمات IPS/IDS، فمن غير المستحسن تعديل خريطة TCP للسماح بخيار TCP بالمرور.
جدار حماية Cisco IOS
التحكم في الوصول المستند إلى السياق (CBAC)
لا يزيل CBAC خيارات TCP من تدفق TCP. يقوم MPTCP بإنشاء اتصال من خلال جدار الحماية.
جدار الحماية المستند إلى المنطقة (ZBFW)
لا يزيل Cisco IOS و IOS-XE ZBFW خيارات TCP من تدفق TCP. يقوم MPTCP بإنشاء اتصال من خلال جدار الحماية.
إيس
بشكل افتراضي، يقوم جهاز ACE بشطب خيارات TCP من إتصالات TCP. يرجع اتصال MPTCP إلى عمليات TCP العادية.
قد يتم تكوين جهاز ACE للسماح بخيارات TCP عبر الأمر tcp-options ، كما هو موضح في قسم تكوين كيفية معالجة ACE لخيارات TCP في دليل الأمان vA5(1.0)، و Cisco ACE Application Control Engine. ومع ذلك، لا يوصى دائما بذلك، لأن التدفقات الفرعية الثانوية قد تكون متوازنة مع الخوادم الحقيقية المختلفة، ويفشل الانضمام.
منتجات Cisco غير متأثرة ب MPTCP
وبشكل عام، لا يقوم أي جهاز لا يفحص تدفقات TCP أو معلومات الطبقة 7 أيضا بتغيير خيارات TCP، ونتيجة لذلك يجب أن يكون شفافا مع MPTCP. قد تتضمن هذه الأجهزة ما يلي:
- Cisco 5000 Series ASRs (أساسي)
- خدمات التطبيقات الواسعة (WAAS)
- NAT (CGN) من فئة الناقل (الخادم النصلي لمحرك الخدمات من فئة الناقل (CGSE) في نظام توجيه الناقل (CRS)-1)
- جميع منتجات محولات إيثرنت
- جميع منتجات الموجهات (ما لم يتم تمكين وظيفة جدار الحماية أو NAT؛ راجع قسم منتجات Cisco المتأثرة ب MPTCP في المستند للحصول على مزيد من التفاصيل)