ترجمة عنوان الشبكة
ترجمة عُنوان الشَّبكة[عر 1] (بالإنجليزية: Network Address Translation) اختصاراً NAT، هو مصطلح يُستعمل لوصف عدد من الآليات التي تستخدم لتبديل مُعرِّفات شبكيَّة، مثل عنوان بروتوكول الإنترنت أو أرقام المنافذ، في رزم البيانات اللاتي تتنقل بين نطاقي عناوين مختلفين يسميان النطاق الداخلي والخارجيّ.[1] طُوِّرت هذه الآلية في عام 1994م بصفتها جُزءاً من الاستراتيجية قصيرة الأمد لمعالجة مشكلة استنفاد عناوين بروتوكول الإنترنت.[2] ترجمة عنوان الشبكة ليست بروتوكولاً بل هي آليَّة عمل، تحصل في موجه يربط بين نطاقي عناوين.[3] تسبق ترجمة العناوين عملية تهيئة للموجه، قد يُزوَّد فيها بثنائيات من المُعرفات، تضمُّ شطراً من النطاق الداخلي وشطراً من النطاق الخارجي، وقد يزود بنهجٍ وشروطٍ مُحددة لتشكيل الثنائيات آليَّاً ويحدد أيضاً الاتجاه الذي يُسمح فيه بإنشاء جلسة الترجمة.[4] يراقب الموجه بعدها حركة البيانات بين النطاقين، ويبدأ بإنشاء جلسة ترجمة وفقاً للشروط متى ما توافقت مُعرفات رزمة بيانات ما مع أحد الثنائيات، وتستمر عملية الترجمة بعد ذلك على رزم الجلسة المتدفقة بكلا الاتجاهين كُلِّها، وتُغلق الجلسة لاحقاً، وتتوقف عملية الترجمة بعدها.[5] تُصنَّف هذه الآلية إلى أنواع وفقاً لطريقة تشكيل ثنائيات المُعرِّفات وللاتجاه الذي يُسمح فيه بإنشاء الجلسة، وأول هذه الأنواع هو الترجمة الأساسيَّة، وهي طريقة يُمكن فيها إعداد ثنائيات ثابتة البِنية من عناوين بروتوكول الإنترنت بين النطاقين، وثانيها هو الترجمة المُتغيَّرة، وفيها يُحدد فضاءٌ للعناوين لكل نطاق، ويجري تشكيل ثنائياتٍ من النطاقين آليَّاً، وثالثُها هو ترجمة العناوين وأرقام المنافذ، وفيها تشمل الثنائيات أيضاً أرقام منافذَ بين النطاقين، وتنضوي الأنواع الثلاثة تحت تصنيف واحد هو الترجمة التقليديَّة، وفيها يمكن إنشاء الجلسة باتجاه واحد فقط، وغالباً ما يكون من النطاق الداخلي إلى الخارجي. ومن الأنواع أيضاً الترجمة ثُنائِيَّة الاتجاه، وهي تستعمل إحدى تقنيات الترجمة التقليديَّة، ولكنَّها تسمح بإنشاء الجلسات بكلا الاتجاهين. في جميع ما سبق، يُمكن أن تترجم مُعرِّفات مصدر الرزمة أو مُعرفات وجهتها، وفقاً لاتجاه حركة الرزمة، ولكن يوجد نوعٌ آخر يسمح بإجراء الترجمة للإثنين معاً، ويُسمَّى بالترجمة المُضاعَفة.[6] توجد مُشكلات عديدة في تطبيق هذه الآليَّة، منها ما هو فلسفيٌ في طبيعته ومنها ما هو تقنيّ. أمَّا الفلسفيّ، ففيه تُحلُّ هذه التقنية بمبدأ الطرفين، وهو أحد المبادئ الرئيسة التي قامت الإنترنت على أساسها.[7] وأمَّا التقنيّ، فمثاله اعتماد تطبيقات عديدة في عملها على المُعرفات التي يجري تبديلها، ويتطلب حل إشكالٍ كهذا إجراء تغيرات عديدة أخرى في ترويسات بروتوكولات هذه التطبيقات.[8] يُثار جدلٌ لم يُحسَم حول جدوى استخدام هذه الآليَّة مع الإصدار السادس من بروتوكول الإنترنت.[9] خلفية عامةالإصدار الرابع من بروتوكول الإنترنتالإصدار الرابع من بروتوكول الإنترنت (بالإنجليزية: Internet Protocol version 4 اختصاراً IPv4) هو بروتوكول تشبيك يعمل في طبقة الشبكة بحسب نموذج الاتصالات المعياري. طوّر هذا البروتوكول في عام 1981م كجزء من عمل وكالة مشاريع البحوث المتطورة الدفاعية، وكان أحد الركائز التي قامت شبكة الإنترنت على أساسها.[10] يُعنى هذا البروتوكول بوظيفتين أساسيتين هما العنونة والتقطيع. والعنونة هي منح مُعرفات لتمييز مضيف أو مجموعة من المضيفين في الشبكة المحلية أو في الإنترنت، ويُسمَّى العنوان الممنوح عنوان برتوكول الإنترنت.[11] قد يُستخدم العنوان لتمييز مُضيفٍ ما بشكلٍ فريد بعينه، أو لتحديد أعضاء مجموعة من المضيفين الذين يستضيفون العنوان في الوقت نفسه، ولا مانع من استضافة المُضيف لأكثر من عنوان بروتوكول إنترنت في الوقت نفسه.[12] يُعرِّف الإصدار الرابع من بروتوكول الإنترنت فضاءً من العناوين يبلغ طول كل منها 32 بتاً، وقسِّم هذا الفضاء حسب العنونة الصنفية إلى عدد من الأصناف على أساس رياضي، وشمل الصنف الأول، والذي يُسمّى الصنف A، جميع العناوين التي تبدأ بالبت (0) في الخانة الأكثر أهمية، وقُسِّم فضاء هذا الصنف إلى 128 فضاءً جزئياً في كل منها 16777216. أما فضاء الصنف B، فضم جميع العناوين التي تبدأ بالبتين (10)، وقُسِّم فضاء هذا الصنف إلى 16384 فضاءً جزئياً في كل منها 65536 عنواناً. وأما فضاء الصنف C، فضم جميع العناوين التي تبدأ بالبتات (110)، ثم قسم هذا الفضاء إلى 2097152 فضاءً جزئياً في كل منها 255 عنواناً. كما اقتطع من الفضاء الأصلي فضاء مخصص للبث المجموعاتي، وهو الفضاء الذي تبدأ جميع عناوينه بالبتات (1110)، في حين حجز الفضاء الذي تبدأ عناوينه بالبتات (1111) لاستخدامات مستقبلية.[12][13] بالإجمال، يوجد 232 عنواناً أي ما يعادل تقريباً 109x 4.3 عنواناً في فضاء الإصدار الرابع من بروتوكول الإنترنت.[عر 2] استنفاد فضاء عناوين الإصدار الرابعاستنفاد فضاء عناوين الإصدار الرابع (بالإنجليزية: IPv4 address space exhaustion) هو نضوب العناوين الحرة في فضاء الإصدار الرابع من بروتوكول الإنترنت. بدأت هذه المشكلة في مطلع التسعينات مع انتشار الاستخدام التجاري للإنترنت، حيث لوحظ نمو معدل استهلاك فضاء الإصدار الرابع من بروتوكول الإنترنت بشكل أسي، وكانت التوقعات تشير إلى استنفاد الفضاء كاملاً في منتصف التسعينات من القرن العشرين.[14] شكَّلت مجموعة مهندسي الإنترنت مجموعة عمل التوجيه والعنونة والمعروفة اختصاراً باسم رُوْد (بالإنجليزية: Routing and Addressing اختصاراً ROAD) لمعالجة هذه المشكلة،[15] حددت هذه المجموعة ثلاث مشكلات رئيسة ستعيق نمو الإنترنت في المدى القصير والمتوسط، وهي كالتالي:[16]
وُصفت المشكلتان الأولى والثانية بأنهما قصيرتا الأمد، وكان من المتوقع استفحالهما في الفترة بين العامين 1993 و1995م، على عكس المشكلة الثالثة التي وُصِفت بأنَّها طويلة الأمد.[17] من أجل المشكلتين الأولى والثانية، بدأت مجموعة رُوْد العمل على تطوير إستراتيجية قصيرة الأمد لحل هذه المشكلة، فطوَّرت تقنية التوجيه غير الصنفي بين النطاقات، التي نُشر مبدؤها في يونيو من العام 1992م في وثيقة طلب التعليقات RFC 1338،[18] وفي شهر مايو من العام 1994م، طُوِّرت تقنية ترجمة عنوان الشبكة لتكون حلاً آخر قصير الأمد لمشكلة الاستنفاد،[2] واعتمد هذا الحل اعتماداً رئيساً على استعمال أفضية عناوين محددة سُميت الشبكات الخاصةاستعمالاً غير فريد في عنونة الشبكات المحلية، والاقتصار على استعمال العناوين العامة عند النفاذ إلى الإنترنت فقط.[19] أمَّا في إطار الاستراتيجية طويلة الأمد فقد طوِّر إصدار جديد من بروتوكول الإنترنت، هو الإصدار السادس من بروتوكول الإنترنت، نشر المعيار الأول للبروتوكول في شهر ديسمبر من العام 1995م ووصف بوثيقة طلب التعليقات RFC 1883.[20] كانت الحلول قصيرة الأمد شديدة الفعاليَّة، فأطالت من عمر الإصدار الرابع من بروتوكول الإنترنت لأكثر من عقدين من الزمن، ولكن الهيئة الناظمة لتحصيص فضاء الإصدار الرابع من بروتوكول الإنترنت، وهي أيانا، استنفدت الفضاء كاملاً في شهر يناير من العام 2011م.[وب-إنج 1] الشبكات الخاصةالشبكات الخاصة (بالإنجليزية: Private network) هي أفضية جزئيَّة من فضاء الإصدار الرابع من بروتوكول الإنترنت، وهي محجوزة من أجل الاستعمال المحلي فقط ولا يُعلن عنها في الإنترنت.[21] حجزت أيانا، وهي الهيئة الناظمة لتحصيص فضاء بروتوكول الإنترنت، ثلاثة أفضية جزئية هي 10.0.0.0/8 و172.16.0.0/12 و192.168.0.0/16.[22] يُسمَّى الفضاء الأول المجال ذي البتات الأربعة والعشرين (بالإنجليزية: 24 bit block)، والثاني بالمجال ذي البتات العشرين والثالث بالمجال ذي البتات الست عشرة، وهذه الأطوال هي أطوال قسم المُضيف في تمثيل البادئة للمجالات الثلاثة. يُكافِئ المجال الأول شبكة قياسية من الصنف A ويُكافئ الثاني 16 شبكة قياسية متتاليَّة من الصنف B، ويُكافِئ الثالث 256 شبكة جزئية قياسيَّة من الصنف C.[23]
أرقام المنافذرقم المنفذ (بالإنجليزية: Port number) هو مُعرِّف رقمي يُستخدم لتمييز الاتصال وفق حزمة بروتوكولات الإنترنت، يبلغ طوله 16 بتاً أي بالإمكان توليد 216 = 65536 رقم منفذ متمايز.[24] بصورةٍ عامَّةٍ، في شبكات البيانات، تخدم المنافذ غرضين أساسيين، أولهما إتاحة آلية للتمييز بين جلسات الاتصال المختلفة التي قد تجري بين طرفين، وثانيها مساعدة بروتوكول النقل في تحديد بروتوكول التطبيق الذي يستخدمه،[25] ولهذا أهمية خاصة في عمليتي التغليف وفك التغليف. بالإضافة لذلك، يُستعمل رقم المنفذ جنباً إلى جنب مع عنوان بروتوكول الإنترنت لإنشاء مقبس الاتصال (بالإنجليزية: Socket)، ويمكن تمييز أي اتصال بشكل فريد وفقاً لقيم المقبسين على طرفيه.[26] يُقسَّم مجال أرقام المنافذ إلى ثلاث أقسام فرعيَّة هي: أرقام منافذ النظام ومجالها (0-1023)، وأرقام منافذ المستخدم ومجالها (1024-49151)، وأرقام المنافذ الخاصة (49152-65535). تشرف المجموعة التوجيهية لهندسة الإنترنت (IESG) على منح أرقام منافذ النظام، في حين تدير هيئة أرقام الإنترنت المُخصصة، أي أيانا، عملية منح أرقام منافذ المستخدم، وأمَّا أرقام المنافذ الخاصة فلا تُمنح.[وب-إنج 2] الوصفتعاريف واصطلاحاتتُعرِّف وثيقة طلب التعليقات RFC 2663، المعنونة: «اعتبارات واصطلاحات لترجمة عنوان الشبكة»[ا] المفاهيم التاليَّة:[27]
مبدأ العملتعمل ترجمة عناوين الشبكة على تغيير قيم حقول محددة في ترويسات رزم البيانات التي تمر عبر الموجه المُترجِم، يُمكن أن تحصل عملية الترجمة على رزم البيانات التي تعبر الموجه بكلا الاتجاهين.[28] تشمل الحقول التي يُبدل محتواها حقول عناوين المصدر أو الوجهة أو كليهما في ترويسة بروتوكول الإنترنت وحقول عناوين رقم منفذ المصدر أو الوجهة أو كليهما في ترويسة بروتوكول النقل المستعمل، وحقل معرِّف الاستعلام في ترويسة بروتوكول رسائل التحكم في الإنترنت.[27] يُسبب تغيير محتوى ترويسة بروتوكول الإنترنت أو بروتوكول النقل المستعمل الحاجة إلى إعادة حساب قيمة حقل التحقق الجمعي (بالإنجليزية: Checksum) في أي ترويسة جرى تعديل قيمة أحد حقولها.[29] تعمل تقنية ترجمة عنوان الشبكة عبر آلية مكونة من ثلاث مراحل كما يأتي:[5]
أنماط الترجمةيتضمن أبسط أشكال الترجمة تبديل عنوان مصدر رزمة بروتوكول الإنترنت، وتحديداً استبدال عنوان المصدر الخاصّ المحليّ بعنوان فريد عالميَّاً، وتبدو الرزمة بعد ذلك وكأنَّها قادمة من العنوان الجديد. وفي شكل أكثر تعقيداً، بإمكان عملية الترجمة أن تستبدل عنوان مصدر الرزم القادمة من شبكة الإنترنت إلى شبكة محليَّة خاصَّة، فتبدو بعد ذلك كأنَّها قادمة من وجهة محليَّة فيها، ويُمكن أيضاً أن تشمل العملية استبدال عنواني المصدر والوجهة معاً.[30] الترجمة التقليديةترجمة العناوين التقليدية (بالإنجليزية: Traditional NAT): هي الشكل الأبسط من ترجمة العناوين، وهي تسمح لمُضيفي عناوين نطاق داخليّ بالاتصال مع مضيفي عناوين نطاق خارجيّ. تحصل عملية الترجمة في مُوجِّه يصل بين النطاقين، وينجز التوجيه غير المرئي بالنسبة للمُضيفين. في هذا النوع من الترجمة، تكون الجلسات المنشأة وحيدة الاتجاه، أي بالإمكان إنشاؤها باتجاه واحد فقط، وغالباً ما يكون من النطاق الداخلي نحو الخارجي. يجب الانتباه إلى أن حركة رزم بيانات وعملية ترجمة العناوين بعد إنشاء الجلسة تكون بكلا الاتجاهين، أي أن الشرط السابق هو لاتجاه إنشاء الجلسة وليس لحركة رزم البيانات فيها.[31] تشمل ترجمة العناوين التقليدية النمطين التاليين:[32]
الثابتةفي الترجمة الثابتة، يُهيَّأ المُوجِّه المُترجِم بعددٍ صحيح N من ثنائيات عناوين بروتوكول الإنترنت، أي (X1,Y1) و (X2,Y2) حتى (XN,YN)، حيث X هو عنوان بروتوكول الإنترنت من نطاق العناوين الداخليّ وY هو عنوان بروتوكول إنترنت من نطاق العناوين الخارجيّ. بالإضافة لذلك، يُهيَّأ المُوجِّه أيضاً بالاتجاه المسموح لإنشاء الجلسة، وهو في حالة الترجمة التقليديَّة من النطاق الداخليّ إلى الخارجي. يراقب المُوجِّه بعدها حركة البيانات المارة عبره لأجل إنشاء جلسة ترجمة متوافقة مع ثنائيات العناوين والاتجاه المسموح. بعد الإنشاء، يُعدِّل المُوجِّه عنوان المصدر في رزم البيانات القادمة من النطاق الداخلي ويغير قيمته إلى العنوان الخارجيَّ وفقاً لقيم الثنائيات التي هُيِّئ بها، أما في الرزم القادمة من النطاق الخارجي إلى الموجه، والتي تكون وجهتها العنوان الخارجي، فيُعدِّل عنوان الوجهة فيها ويُغيّره إلى العنوان الداخلي وفقاً لقيم الثنائيات السابقة نفسها، وذلك بشرط أن تكون الجلسة قد أُنشِئَت قبلاً.[34][35] يُوصف هذا النوع من الترجمة بأنَّه ثابِت، لأنَّ ثنائيات العناوين التي تجري الترجمة بمقتضاها ثابتة البِنية لا تتغير آليّاً، ويُوصَف أيضاً بأنَّه ترجمةُ واحدٍ إلى واحدٍ (بالإنجليزية: One-to-one) لأنَّ المُوجِّه يترجم عنواناً خاصَّاً واحداً من النطاق الداخليّ إلى عنوان عام واحد من النطاق الخارجيّ والعكس بالعكس.[36] المتغيرةتُنْشَأ جلسات الترجمة المُتغيَّرة انطلاقاً من النطاق الداخليّ فقط، ويشترط لتنفيذها توفُّر عناوين من النطاق الخارجي (Y1... YN)، بالإضافة إلى مجموعة من عناوين النطاق الداخلي (X1... XM) حيث M وN هي أعداد صحيحة موجبة تُمثِّل عدد العناوين في النطاقين الداخليّ والخارجيّ على الترتيب. ويكون شرط بدء الجلسة هو أن ينتمي عنوان مصدر الرزمة إلى النطاق الداخليّ، أي (X1... XM). وعند بدء جلسة ترجمة، انطلاقاً من النطاق الداخلي، يختار المُوجِّه الذي ينفذ عملية الترجمة عنوان ما من مجموعة عناوين الخارجي Yk ويربطها مع عنوان مصدر الرزمة Xi، ثُمّ يُشكِّل منها ثنائية (Xi,Yk) آليَّاً، ويحتفظ به في جدول الترجمة الآلية، وتجري عملية تبديل عناوين مصادر الرزم البيانات في الجلسة ذات الصلة بناءً على قيم هذه الثنائية، وعند إغلاق الجلسة، يجري تحرير العناوين لإعادة استخدامها مرة أخرى في تشكيل ثنائيات جديدة. يكون زوجا أي ثنائية غير ثابتين، أي بالإمكان أن يرتبط أحد الشطرين مع عدة أشطر أخرى، في جلسات متنوعة متتالية، والعكس بالعكس فيما يخص الزوج الآخر، وذلك عوضاً عن اعتماد ثنائيات محددة الأشطر، كما هو الحال في الترجمة الثابتة.[37] قد تكون عناوين المجموعتين السابقتين مُختلِفة العدد، وغالباً ما تكون أعداد العناوين المتاحة لتشكيل الثنائيات في النطاق الداخليّ أكبر من تلك المتاحة في النطاق الخارجيّ، ويبني المُوجِّه عندها الثنائيات من عناوين النطاقين وفق ما سبق حتى استنفاد النطاق الأصغر حجماً، ولا يمكن بعدها إنشاء أيّ جلسةٍ جديدةٍ حتى يتحرر وة جا ثنائية محجوزة من جلسةٍ سابقةٍ. تُوصف هذه الترجمة أيضاً بأنَّها ترجمة واحد إلى واحد، لأنَّها تقوم بترجمة عنوان خاص واحد من النطاق الداخلي إلى عنوان عام واحد من النطاق الخارجي.[38] العناوين وأرقام المنافذفي ترجمة أرقام المنافذ، ومن أجل الرزم الواردة إلى الموجه من نطاق العناوين الداخليّ باتجاه النطاق الخارجيّ، يُبدَّل عنوان المصدر في الرزمة X مع رقم منفذ المصدر فيها x بعنوان مصدر جديد هو Y ورقم منفذ آخر هو y، أخذاً بالحسبان أن العنوان X من النطاق الداخلي والعنوان Y هو عنوان من النطاق الخارجي، ويُعبَّر عن عملية الترجمة السابقة بالشكل: X:x → Y:y. يمكن أن تجري العملية السابقة على فضاء محدد من النطاقين الداخلي والخارجي، وأن تُحدَد الثنائيات تحديداً ثابتاً أو آليّ.[39] يوجد شكلٌ خاصٌّ من ترجمة أرقام المنافذ، يُسمَّى التحميل الزائد لترجمة أرقام المنافذ (بالإنجليزية: PAT overloading)، وفيها يُستخدم عنوان مصدر واحد فقط من النطاق الخارجيّ في عملية الترجمة. فلو كانت ثنائيات العناوين وأرقام المنافذ في النطاق الداخليّ هي X1:x1 وX2:x2 وX3:x3، وبدأ كل منها جلسةً ترجمة، فإنَّها ستترجم وفقاً لعملية التحميل الزائد إلى Y:y1 وY:y2 وY:y3 على الترتيب. ويمكن لهذه الطريقة من الترجمة أن تسمح، نظريَّاً، بترجمة ما يزيد عن 65 ألفاً من العناوين الداخلية باستعمال عنوان خارجيّ وحيد، وتقلل بذلك من استنفاد فضاء عناوين الإصدار الرابع من بروتوكول الإنترنت.[40] يُمكن أن تجري عملية الترجمة على رسائل المعلومات في ترويسة بروتوكول رسائل التحكم في الإنترنت بالطريقة السابقة نفسها أيضاً.[41] الترجمة ثنائية الاتجاهترجمة العناوين ثُنائيَّة الاتجاه (بالإنجليزية: Bidirectional NAT أو Two-way NAT) وهي شكل من أشكال ترجمة عناوين الشبكة يسمح بإنشاء الجلسات بدءاً من مُضيفين في نطاقي العناوين كليهما، أي انطلاقاً من النطاق الداخليّ والخارجيّ. مع أخذ ذلك بالحسبان، فإنَّ عملية الترجمة ثُنائيَّة الاتجاه تخضع لنفس القواعد المستعملة في الترجمة التقليديَّة سواءً لجهة كيفيَّة إنشاء ثنائيات العناوين التي ستُترجم أو لجهة ما يجري ترجمته، أي عناوين أو أرقام منافذ أو كليهما.[42] الترجمة المُضاعفةترجمة العناوين المضاعفة (بالإنجليزية: Twice NAT)[د] وهي شكل من أشكال ترجمة عناوين الشبكة، وفيه يُعدَّل عنوانا المصدر والوجهة معاً في رزمة البيانات التي يجري ترجمتها، وهي تُوصف بالمُضاعفة تمييزاً لها عن الترجمة التقليديَّة وعن الترجمة ثُنائيَّة الاتجاه.[42] تضيف هذه الترجمة بُعداً جديداً لتصنيف العناوين، وهو النطاق الذي تستخدم فيه العناوين، فإذا كان العنوان مستخدماً في نطاقه فهو عنوان محليّ، وإن كان مُستخدماً خارج نطاقه فهو عنوان عالميّ، وبإضافة هذا للتصنيف الذي يقسم العناوين على أساس موقع مُضيفها يمكن تعريف التصانيف التالية:[44][ه]
يُهيَّأ الموجه بثنائيتين من عناوين المصدر والوجهة، الأولى هي (X1,Y1) حيث X1 هو عنوان داخلي محلي وهو عنوان مصدر الرزمة التي ستترجم، وY1 هو عنوان داخلي عالمي، وهو عنوان وجهة الرزمة التي ستتُرجم. والثانية هي (X2,Y2) حيث X2 هو عنوان داخلي عالمي وهو عنوان مصدر الرزمة بعد الترجمة، وY2 هو عنوان خارجي عالمي، وهو عنوان وجهة الرزمة بعد الترجمة. بعد ذلك، إذا وردت للموجه رزمة من النطاق الداخلي نحو النطاق الخارجي، وكان عنوان مصدرها هو X1 وعنوان وجهتها هو Y1، فإن الموجه سيعدل العنوانين إلى X2 وY2 على الترتيب، أي (X2,Y2) → (X1,Y1).[45] اعتبارات إضافيةطبقة الشبكةبروتوكول رسائل التحكم في الإنترنتبروتوكول رسائل التحكم في شبكة الإنترنت هو (بالإنجليزية: Internet Control Message Protocol اختصاراً ICMP) هو بروتوكول تبليغ عن الأخطاء يعمل مع بروتوكول الإنترنت ويقدّم مجموعة من الوظائف التي تُستخدم في إدارة الشبكة والتحري عن الأخطاء فيها، أشهرها أمر التحقق من الاتصال تُصنَّف رسائل هذا البروتوكول إلى صنفين: رسائل الأخطاء ورسائل الإعلام. قد تحتوي رسائل الأخطاء على ترويسة بروتوكول إنترنت كاملة أو جزئية تضمّ فيها عناوين بروتوكول إنترنت، وإذا انتقلت الرسالة بين نطاقين، وأجريت ترجمة عناوين الشبكة عليها، يجب ترجمة عناوين الشبكة المحمولة فيها أيضاً. أما في رسائل الإعلام، فيجب ترجمة مُعرِّف الاستعلام بشكل مشابه لترجمة أرقام المنافذ. في كلتا الحالتين، ونتيجة لتغيير محتويات الترويسة، يجب إعادة حساب حقل التحقق الجمعي فيها.[48] وُصِفت المتطلبات السلوكية اللازمة لعمل ترجمة عنوان الشبكة مع بروتوكول رسائل التحكم في الإنترنت في وثيقة طلب التعليقات RFC 5508.[49] الإصدار السادس من بروتوكول الإنترنتيثار الجدل حول استعمال ترجمة عنوان الشبكة مع الإصدار السادس من بروتوكول الإنترنت، يحاجج البعض أن استعمال الترجمة يلغي مبدأً أساسيَّاً من المبادئ التي قامت عليها الإنترنت، وهو مبدأ الطرفين، ويقول بأنَّ تطوير واستعمال ترجمة عنوان الشبكة كان حلاً آنيَّاً لمشكلة استنفاد فضاء عناوين الإصدار الرابع من بروتوكول الإنترنت. أمَّا الفريق المؤيد للاستعمال فيجادل بأنَّ استعمال الترجمة يُقدِّم عددًا من المنافع والتسهيلات لا بديل آخر لها أو يصعب التخليّ عنها.[9][50] يشير الفريق المعارض لاستخدام تقنية الترجمة مع الإصدار السادس إلى زوال السبب الذي أدى إلى تطويرها أساساً، وهو محدودية فضاء عناوين الإصدار الرابع من بروتوكول الإنترنت وسرعة استنفاذه، ويستندون في دفاعهم إلى حقيقة أن تطبيق ترجمة عناوين الشبكة تخلق حاجزاً يوضع في وجه شفافية الشبكة، ولذلك فإنَّ وثيقة طلب التعليقات RFC 4924 توصي بتجنب استعمال ترجمة عنوان الشبكة مع الإصدار السادس من بروتوكول الإنترنت ما دام ذلك ممكناً.[7] تُقدِّم ترجمة عناوين الشبكة مجموعةً من المنافع والتسهيلات المرتبطة بمسائل العنونة في الإصدار الرابع من بروتوكول الإنترنت، ولكنَّها تصلح أيضاً عند العنونة بالإصدار السادس منه، ومنها على سبيل المثال تجنُّب عملية إعادة العنونة إذا انتقلت مؤسسة ما من موقع جغرافي إلى آخر، وعندها يمكن للمؤسسة أن تحافظ على نطاق العناوين القديم بوصفه نطاقاً داخليَّاً محليَّاً، وتتصل مع العالم الخارجي بوصفه نطاقاً خارجيَّاً عبر عملية ترجمة عناوين الشبكة.[51] ومنها أيضاً مسألة المؤسسات مُتعدِدة المواقع، والتي تكون أماكن استضافتها مُتباعدة جغرافيَّاً لكنَّ المُضيفين فيها معنونون بفضاء العناوين ذاته، ويمكن في حالة كهذه، السماح للمضيفين بتبادل البيانات فيما بينهم باستعمال ترجمة العناوين المُضاعَفة دون الحاجة لإعادة العنونة.[51][52] ومنها أيضاً مسألة توحيد إعدادات التهيئة، فلو عُنونت الشبكات المحليَّة كلها باستعمال فضاء العناوين الخاصّ نفسه واتصلت مع العالم الخارجي عبر عملية ترجمة مُوحَّدة، لأمكن إعداد تهيئة مُوحدة تُستعمل في أي شبكة محليَّة مُعنونة بذلك الفضاء.[53] طُوِّرت تقنية خاصة لترجمة عناوين الشبكة من أجل الإصدار السادس من بروتوكول الإنترنت، ووصفت في الوثيقة RFC 6296، ولكنّ العمل ظل في الإطار التجريبيّ ولم ينتقل إلى مرحلة المعيار الرسمي.[54] طبقة النقلبروتوكول التحكم بالإرسالبروتوكول التحكم بالنقل (بالإنجليزية: Transprot control Protocol اختصاراً TCP) هو بروتوكول نقل يؤمن توصيلاً موثوقاً للبيانات عبر قنوات اتصال مهيأ.[55] تعمل آلية ترجمة العناوين على مراقبة محتويات ترويسة البروتوكول الموجودة داخل رزم البيانات المُتبادلة بين طرفي الاتصال من أجل تحديد بداية الجلسة.[56] وفقاً لبروتوكول التحكم بالنقل، يُنشَئ الاتصال بين طرفين بعد إنجاز عملية المصافحة الثلاثيّة، وهي تشمل تبادلاً لمعلومات ذات صلة بالاتصال، مثل رقم التتابع. يمكن تحديد حصول المصافحة الثلاثية من خلال تمييز نمط محدد لقيم علمين من أعلام البروتوكول موجودين في ترويسته داخل الرسائل المُتبادَلة بين الطرفين. وهذان العلمان هما علما المُزامنة SYN وإشعار التأكيد ACK.[57] تراقب آلية الترجمة محتويات الترويسة مراقبةً مُشابهةً لما سبق، لتحديد نهاية الجلسة. يُمكن تحديد النهاية، إذا كانت بالتراضي، من خلال مراقبة قيم علم النهاية FIN في ترويسة البروتوكول، أو من مراقبة قيمة علم إعادة الضبط RST في حال كان الإنهاء قسريَّاً ومباشراً.[58] تصف الوثيقة RFC 5382 المتطلبات السلوكية اللازمة لآلية ترجمة عنوان الشبكة من أجل العمل الصحيح مع بروتوكول التحكم بالنقل.[59] تُحدِّد الوثيقة السابقة أيضاً كيفية التعامل مع حالات انقطاع الاتصال، وهي الحالات التي يتوقف فيها الطرف الآخر عن المشاركة في الجلسة من غير إنهائها، أو تلك التي يتعذر فيها تحديد حالة الطرف الآخر، ويجب على المُوجِّه الذي يترجم العناوين عندها أن ينهي الجلسة من تلقاء ذاته. تحدد الوثيقة زمناً للانتظار في حال غياب أي نشاط من الطرف الآخر وهو 4 دقائق بعد آخر نشاط إذا كان إنشاء الاتصال قد بدأ ولكنَّه لم يكتمل، وساعتان وأربع دقائق إذا كان الاتصال مُنشأً ونشيطاً.[60] بالإضافة لذلك، تتناول الوثيقة أيضاً كيفية التعامل مع حالة إنشاء الاتصال بين الأقران،[61] وهي حالة خاصَّة يحاول فيها طرفا الاتصال إنشاءَه في الوقت نفسه، ويكون التغيير في تتابع قيم الأعلام مُختلفاً عن النمط الموجود في المصافحة الثلاثيَّة.[62] بروتوكول حزم بيانات المُستخدمبروتوكول حزم بيانات المستخدم (بالإنجليزية: User Datagram protocol اختصاراً UDP) هو بروتوكول نقل غير موثوق يُؤمِّن اتصالاً لنقل البيانات عبر قنوات غير مهيأة.[63] يدعم هذا البروتوكول عملية نقل البيانات من غير تأسيس اتصال، وهو لا يطلب إشعاراً لتأكيد استلام البيانات المُرسَلة، ولذلك تكون ترويسته أصغر حجماً.[64] نتيجةً لذلك، لا أعلام في الترويسة تساعد على تحديد بداية ونهاية الجلسة، فهي الجلسة عند وصول أول رزمة بيانات تُحدد محتوياتها اتصالاً جديداً، وتجري عملية الترجمة عليها بحسب التهيئة، ويُرفع علم بيان الحالة الخاص بثنائية المُعرفات المستخدم للدلالة على حجزه لمدة زمنية، هي دقيقتين على الأقل [و]، وهي تُجدد آليَّاً كُلما استقبل المُوجِّه المُترجِم رزمةً جديدةً من نفس الجلسة، فإذا انتهت المدة ولم تستقبل أي رزمة بعدُ، عدّ المُوجه أن الاتصال مقطوعٌ، وُحرَّر زوجي المُعرِّفات المُستخدمين في الترجمة.[65] تظهر مشكلة مُرتبطة بعملية تقطيع رزم البيانات عند استعمال البروتوكول، فالقطع الناتجة، جميعها خلا الأولى، لا تحتوي ترويسة بروتوكول النقل، وبسبب ذلك، لا يُمكن إجراء عملية ترجمة أرقام المنافذ ما لم يُعاد تجميع الرزمة الأصليَّة كاملةً. في هذه الحالة، غالباً ما يجري التخلص من الرزمة من غير إجراء عملية الترجمة، وتحصل هذه المشكلة نفسها لو اُستخدم بروتوكول التحكم بالإرسال أيضاً.[67] بروتوكولات أخرىتستعمل بروتوكولات نقل أخرى في شبكات البيانات وهي أقل شيوعاً من البروتوكولين السابقين، منها مثلاً بروتوكول التحكم بازدحام الرزم [الإنجليزية] DCCP الموصُوف بوثيقة طلب التعليقات RFC 4340.[68] تصف الوثيقة 5597 RFC المتطلبات السلوكية اللازمة لاستعمال ترجمة عناوين الشبكة مع هذا البروتوكول.[69] أمَّا بروتوكول التحكم بتدفق النقل SCTP فهو بروتوكول نقل طُوِّر أساساً لنقل رسائل التأشير الخاصة بشبكات الهاتف العامَّة عبر شبكة معنونة ببروتوكول الإنترنت، وله تطبيقاتٌ أخرى في مجال نقل الصوت عبر الإنترنت[70]، وهو موصوف بالوثيقة 4960 RFC.[71] لا يوجد وثيقة طلب تعليقات تصف المُتطلبات السلوكية لاستعمال ترجمة عناوين الشبكة معه، ولكن يتوفر مسودة لوثيقة صيغت في سنة 2009م، ولم تُصبِح معياراً رسميَّاً.[وب-إنج 3] مشكلات في التنفيذ
هوامش
انظر أيضًامراجعفهرس الإحالات
المعلومات الكاملة للمراجعأولاً: الكتب: (مرتبة وفقاً لتاريخ النشر)
ثانياً: وثائق طلب التعليقات: (مرتبة بحسب رقم الوثيقة)
وصلات خارجية
|