ترجمة عنوان شبكة

نظرة عامة

ظهرت ترجمة عنوان الشبكة في البداية كطريقة للتعامل مع مشكلة قصر عنوان آي بي في4 (IPv4 address shortage) وتَفادي الصعوبات حجز عناوين آي بي. أصبحت ترجمة عنوان الشبكة وظيفة أساسية تقوم بها الموجهات المستخدمة في اتصالات أجهزة المنازل والمكاتب الصغيرة بالإنترنت، حيث غالباً ما تفوق تكلفة عناوين آي بي إضافية الفوائد منها. كما تزيد ترجمة عنوان الشبكة أيضاً الأمان حيث تخفي عناوين الشبكة الداخلية تحت عنوان البوابة (gateway).
تَستعمل الشبكة المحليّة إحدى عناوين آي بي الفرعيةِ "الخاصّة" المكرسة (العناوين الخاصة المحددة في "RFC1918" هي *.*.192.168، من *.*.172.16 إلى *.*.172.31، *.*.*.10) وموجه الشبكة أيضاً له عنوان خاص (192.168.0.1 مثلاً). ويكون المسير موصولاً بالإنترنت باستخدام عنوان "عام" واحد يعرف بترجمة عنوان الشبكة المنسوخ (overloaded NAT) أَو عدة عناوين "عامة" يخصصها مزود خدمة الإنترنت (ISP). عندما تمر الأزمة من الشبكة المحلية إلى الإنترنت، تتم ترجمة عنوان المصدر في كل رزمة (packet) بشكل تلقائي من العناوين الخاصة إلى العنوان أو العناوين العامة. يقوم الموجه بتسجيل المعلومات عن كل اتصال مفعل (وبالتحديد عنوان الوجهة ورقم المرفأ). عند عودة الردود إلى الموجه، يستعمل المعلومات التي سجلها أثناء مرحلة الإرسال ليحدد وجهتها على الشبكةِ الداخلية لإرسالها. بالنسبة لأي جهاز على الإنترنت، فإن عنوان الموجه ذاته سيظهر كعنوان المصدر والوجهة لكل رزمات الشبكة التي تمر منه.

المساوئ

المستخدمين وراء المسيرات التي تقوم بترجمة عنوان الشبكة لا يكون عندها اتصال متلاصق (end-to-end connectivity) حقيقي ولا تستطيع المشاركة في بعض بروتوكولات الإنترنت. حيث يمكن الإخلال بعمل الخدمات التي تَتطلب إنشاء ارتباطات (TCP) من خارج الشبكة، أَو البرتوكولات عديمة الحالة (UDP). فإلا إذا قام مسير ترجمة عنوان الشبكة بأعمال معينة لدعم البروتوكول، فإن العبوات القادمة لن تستطيع الوصول إلى وجهتها داخل الشبكة. بعض البروتوكولات يمكنها التعامل مع طبقة واحدة من ترجمة عنوان الشبكة بين المضيفين المشاركين (FTP في "الأسلوب السلبي" (passive mode)، على سبيل المثال)، وذلك بمساعدة بواية تطبيقات الطبقة (application layer gateway)، ولكنها تفشل عندما يكون كلا النظامين منفصلين عن الإنترنت بطبقة ترجمة عنوان شبكة.
يعتبر الاتصال المتلاصق مبدأً رئيسياً في الإنترنت. تعتبر وثائق الإنترنت الحالية ترجمة عنوان الشبكة انتهاكاً للاتصال المتلاصق، لكن ترجمة عنوان الشبكة لها دور فعال. وهناك قلق كبير من استعمال ترجمة عنوان الشبكة في "آي بي في6" (IPv6)، حيث يعتقد الكثير من المصممين أن "آي بي في6" قد وجد للتخلص من الحاجة لترجمة عنوان الشبكة.
بعض مزودي خدمة الإنترنت يزودون زبائنَهم فقط بعناوين آي بي"محلية". ولذالك، فإن هؤلاء الزبائن مجبرون أَن يدخلوا الإنترنت من خلال طبقة ترجمة عنوان شبكة. وهذا ما يستند إليه البعض بقولهم أنّ مثل هذه الشركات لا تقدم خدمةَ الإنترنت بشكل صحيح.

الفوائد

بالإضافة إلى الراحة والكلفة المنخفضة لترجمة عنوان الشبكة، فإن عدم توفر اتصال ثنائي الاتجاه بشكل كامل قد يعتبر في بعض الحالات ميزة بدلاً من اعتبارها نقص. ترجمة عنوان الشبكة تعني الاعتماد على جهاز واحد في الشبكة لبدء أي اتصال مع المضيفين خارج الشبكة، فيقوم هذا الجهاز بمنع أي نشاط مؤذي ينشأ من خارج الشبكة من الوصول إلى الأجهزة داخلها. هذا يمكن أَن يحسن من اعتمادية الأنظمة المحلية بإيقاف الديدان (worms). الكثير من الجدران النارية التي تستخدم ترجمة عنوان الشبكة تستعمل هذا الجانب كعنصر رئيسي في عملها.
إن المنفعة الأعظم لترجمة عنوان الشبكة بأنها حل عملي لمشاكل استهلاك فضاء العناوين ل"آي بي في4" (IPv4 address space). فالشبكات التي كانت تحتاج إلى مدى عناوين آي بي من نوع "ب" أو "ج" (Class B/C IP addresses) يمكنها الآن أن تكون مربوطة بالإنترنت بعنوان آي بي واحد (العديد من شبكات البيوت تعمل هكذا).

الترجمة البسيطة لعنوان الشبكة وترجمة عنوان المنفذ

هناك نوعين من ترجمة عنوان الشبكة. النوع المسمى خطأ بشكل شائع "NAT" (المسمى أيضاً "ترجمة مرفأ عنوان الشبكة" (Network Address Port Translation) أَو"NAPT" أَو "PAT") ويعني ترجمة عنوان الشبكة الذي يتضمن تخطيط أرقام المرافئ، مما يسمح لعدة أجهزة بلإشتراك في عنوان آي بي واحد. أشكال النوع الآخر، والأبسط تقنياً، ("الترجمة البسيطة لعنوان الشبكة" (Basic NAT)، "الترجمة الساكنة لعنوان الشبكة" (Static NAT)، "ترجمة عنوان الشبكة واحداً لواحد"(one-to-one NAT)) يتضمن ترجمة العنوان فقط، دون تخطيط أرقام المرافئ. وهذا يتطلب عنوان آي بي خارجي لكل اتصال متزامن. تستعمل مسيرات الاتصال العريض (broadband connection) عادةً هذه الميزة، أحياناً تسمى "مضيف منطقة منزوعة السلاح" منطقة منزوعة السلاح، للسماح لجهاز معين بقبول جميع الاتصالات الخارجية حتى عندما يستعمل المسير عنوان الآي بي الخارجي الوحيد المتوفر.
ترجمة عنوان الشبكة مع ترجمة المنفذ تقسم إلى فرعين: ترجمة عنوان المصدر (ترجمة عنوان الشبكة المصدر (source NAT))، التي تعيد كتابة عنوان الآي بي للجهاز الذي يبدأَ الاتصال؛ ونظير ذلك، ترجمة عنوان الوجهة (ترجمة عنوان الشبكة الوجهة (destination NAT)). عملياً، كلاهما يستعمل سوية بشكل منسق للاتصال ثنائي الاتجاه.

العلاقة بين ترجمة عنوان الشبكة وترجمة عنوانِ المرفأ ("Port Address Translation "PAT)

ترجمة عنوان المرفأ مفهوم وثيق الصلة بمفهوم ترجمة عنوان الشبكة، وغالباً ما يسمى ترجمة عنوان الشبكة.
في ترجمة عنوان الشبكة، بشكل عام فقط عناوين الآي بي هي التي تعدل: يكون هناك تقابل 1:1 بين عناوين الآي بي المكشوفة، وعناوين الآي بي الخاصة. وفي ترجمة عنوان المرفأ، يتم تعديل عنوان الآي بي الخاص للمرسل ورقم المرفأ؛ ويقوم جهاز ترجمة عنوان المرفأ باختيار أرقام المرافئ التي ستظهر للمضيفين على الشبكة العامة.
في ترجمة عنوان الشبكة، يتم توجيه العبوات (packets) القادمة من الشبكة العامة إلى عنوان آي بي الوجهة على الشبكة الخاصة بالاعتماد على عنوان آي بي المصدر كما يقدمه المضيف على الشبكة العامة. وفي ترجمة عنوان المرفأ، يكون هناك عنوان آي بي مكشوف واحد فقط، ويتم توجيه العبوات القادمة من الشبكة العامة إلى وجهاتها على الشبكة الخاصة بالاعتماد على جدول موجود على جهاز ترجمة عنوان المرفأ الذي يتابع أزواج المنافذ العامة والخاصة المتقابلة. هذا يسمى "تتبع الاتصال" (connection tracking).
بعض الأجهزة التي تقوم بترجمة عنوان الشبكة، مثل مسيرات الاتصال العريض، تقوم في الحقيقة أيضاً بترجمة عنوان المرفأ. لهذا السبب، فإن هناك خلطاً كبيراً بين المصطلحين.الاستعمال المنتشر لترجمة عنوان الشبكة على أنها تتضمن أدوات ترجمة عنوان المرفأ يقترح أن ترجمة عنوان المرفأ يجب اعتبارها كنوع من ترجمة عنوان الشبكة بدلاً من اعتبارها تقنية أخرى.

ترجمة عنوان الشبكة ونظام (TCP/UDP)

"ترجمة عنوان الشبكة النقية"، التي تعمل على عنوان الآي بي وحده، قد أو قد لا تعبر الأنظمة المهتمة كلياً بمعلومات الآي بي بشكل صحيح، مثل "آي سي إم بي"(ICMP)، اعتماداً على إذا ما كانت الحمولة قد قرئت على مضيف "داخل" أَو "خارج" من الترجمة. حالما يمتلئ النظام، حتى مع مثل هذه الأنظمة البسيطة مثل "تي سي بي" و"يو دي بي"، فإن الأنظمة ستنهار ما لم يقم جهاز ترجمة عنوان الشبكة بعمل خاص خارج طبقة الشبكة.
تتم على عنوان الآي بي عملية التأكد من المجاميع (checksums) في رأس (header) كل عبوة (packet)، مما يعمل على كشف الأخطاء في الرأس فقط. حزم الآي بي قد تصبح مجزئة، فيصبح من الضروري أن تقوم ترجمة عنوان الشبكة بإعادة تجميع هذه الأجزاءِ للسماح بعملية التأكد من المجاميع عالية المستوى بشكل سليم، والتتبع السليم لمعرفة كل عبوة لأي اتصال هي.
أنظمة إرسال الطبقة الرئيسية،"يو دي بي" و"تي سي بي"، تقوم بعملية التأكد من المجاميع لجميع البيانات التي يحملونها، بما في ذلك رأس "يو دي بي" أو "تي سي بي"،بالإضافة إلى "رأس مزيّف" (pseudo header) الذي يحتوي عنواني الآي بي الوجهة والمصدر للعبوات التي تحمل رأس "يو دي بي" و"تي سي بي". لتنجح ترجمة عنوان الشبكة في عبور "يو دي بي" أو "تي سي بي"، فإن عليها إعادة التأكد من المجاميع اعتماداً على عناوين الآي بي المعدلة، لا الأصلية، وتضع نتيجة ذلك في رأس "يو دي بي"و"تي سي بي" الخاص بالعبوة الأولى من المجموعة المجزئة من العبوات. ترجمة عنوان الشبكة المستقبلة يجِب عليها إعادة التأكد من المجاميع للآي بي لكل عبوة تعبر إلى المضيف الوجهة، وأن تميز أيضاً تعيد حساب رأس "يو دي بي" و"تي سي بي" مستخدمة العناوين المعاد تعديلها والرأس المزيف. هذه ليست مشكلة محلولة بالكامل. حل آخر هو أن تقوم ترجمة الشبكة المستقبلة بإعادة تجميع القطعة بكاملها وبعد ذلك إعادة التأكد من المجاميع لجميع العبوات معاً.

تطبيقات تأثرت بترجمة عنوان الشبكة

بَعْض أنظمة الطبقةِ الأعلى (مثل [FTP وSIP) تُرسلُ معلوماتَ عنوانِ طبقةِ شبكةِ داخل حمولاتِ التطبيقِ. إف تي بي في النمطِ النشيطِ، على سبيل المثال، تَفْصلُ استعمالاتَ الارتباطاتَ لمرورِ السيطرةِ (أوامر) ولمرورِ ترجمة عنوان الشبكة (محتويات ملفِ). عندما يَطْلبُ إرسال الملفات، المضيّف الذي يَجْعلُ الطلبَ يُميّزُ إتّصالَ ترجمةِ عنوانِ الشبكةِ(NAT) المطابقِ بطبقتِه 3 ويُصفّفُ 4 عناوينِ. إذا المضيّفَ يَجْعلُ الطلبَ يَكْمنُ خلف برنامج حماية ترجمةِ عنوانِ الشبكةِ(NAT) بسيط، ترجمة عنوان IP و/ أَو يَجْعلُ رقمَ منفذ نظام السيطرة على الارسالِ المعلوماتَ استلمتْ مِن قِبل عاجزِ الخادمَ.
بوّابة طبقةِالبرامج (ILG) يُمْكِنُ أَنْ تُصلّحَ هذه المشكلةِ. وحدة برامجِ بوّابةِ طبقةِ البرامج تَجْري على أداة برنامجِ حماية ترجمةِ عنوانِ الشبكةِ(NAT) تُجدّدُ أيّ ترجمةِ عنوانِ الشبكةِ(NAT) حمولةِ جَعلتْ عاجزاً بترجمةِ العنوانِ. يَحتاجُ أي إل جي إس من الواضح لفَهْم نظامِ الطبقةِ الأعلى الذي يَحتاجَ لتَثبيت، ولذا كُلّ نظام بهذه المشكلةِ يَتطلّبُ بوّابةَ طبقةِ برامج منَفْصلة.ُ
الحَلّ المحتمل الآخر إلى هذه المشكلةِ أَنْ تَستعملَ تقنياتَ ترجمةِ عنوانِ الشبكةِ(NAT) traversal تَستعملُ الاتفاقياتَ مثل Stun أَو ICE أَو معالجات امتلاكية في جهاز سيطرة على الحدود. ترجمةِ عنوانِ الشبكةِ(NAT) traversal محتملُ في كلا نظام السيطرة على الإرسال والتطبيقات أساس يو دي بي، لكن التقنيةَ أساس يو دي بي مفهومةُ ً أكثرُ وأسهلُ، وأكثر توافقاً بالتراثِ إن أي تي إس. أمّا في حالة، نظام المستوي العالي يجب أنْ يُصمّمَ مَع ترجمةِ عنوانِ الشبكةِ(NAT) traversal في العقلِ، وهو لا يَعْملُ بشكل موثوق عبر إن أي تي إس متماثل أَو آخر تَصرّفَ تراثَ إن أي تي إس بشكل سيئ.
الإمكانيات الأخرى يو بي إن بي (Universal Plug and Play) أَو Bonjour (ترجمةِ عنوانِ الشبكةِ(NAT) بي إم بي)، لكن هذا يَتطلّبُ تعاونَ أداةِ ترجمةِ عنوانِ الشبكةِ(NAT).
أكثرالنظام الخادم/ المستفيدِ التقليديةِ (إف تي بي أنْ تَكُونَ الاستثناءَ الرئيسيَ)، على أية حال، لا يُرسلُ طبقةَ 3 معلوماتَ اتصالِ ولذا لا يَتطلّبُ أيّ معالجة خاصّة مِن قِبل إن أي تي إس. في الحقيقة، يَتفادى تعقيداتَ ترجمةِ عنوانِ الشبكةِ(NAT) عملياً متطلب عندما يُصمّمُ نظام الطبقةِ الأعلى الجديدةِ اليوم.
كان يُسبّبُ إن أي تي إس المشاكل أيضاً حيث أنَّ تشفير آي بي إس إي سي طُبّقتْ وفي الحالاتِ حيث أدواتِ متعدّدةِ مثل هواتفِ SIP واقعة وراء ترجمةِ عنوانِ الشبكةِ(NAT). الهواتف التي تُشفّرُ الإشارة مَع آي بي إس إي سي تُغلّفُ معلوماتَ المنفذ ضمن معنى حزمةِ آي بي إس إي سي التي إن أي (بي) تي أدوات لا تَستطيعُ دُخُول وتَرْجَمَة الميناءِ. في هذه الحالاتِ، إن أي (بي) تي أدوات تَرْجعُ إلى عمليةِ ترجمةِ عنوانِ الشبكةِ(NAT) بسيطة. هذا يَعْني كُلّ المرور الذي يَعُودُ إلى ترجمةِ عنوانِ الشبكةِ(NAT) سَيُخطّطُ في زبونِ واحد يُسبّبُ للخدمةَ فَشَل. هناك حلّان إلى هذه المشكلةِ، واحد أَنْ يَستعملَ تي إل إس الذي يَشتغلُ في مستوى 4 في نموذجِ إشارةِ أو إس آي ولذا لا يَخفي رقمَ المنفذ، أَو لتَغليف آي بي إس إي سي ضمن يو دي بي - الأخير أنْ يَكُونَ الحَلَّ اختارَ مِن قِبل Tispan لإنْجاز ترجمةِ عنوانِ الشبكةِ(NAT) traversal آمن.

أمثلة أخرى للاستعمال

حمّلْ المُوَازَنَة:وهو اتجاه(NAT) الذي يُمْكِنُ أَنْ يُعيدَ توجيه الاتصالات المشار في بَعْض السيرفرات إلى السيرفرات المختارةِ بشكل عشوائي.
Failover:اتجاه (NAT) الذي يمكن أن يُستَعملَ لبَدْء خدمة تَتطلّبُ توفراً عالياً. إذا النظام َتضمّنُ سيرفر حرج دَخلَ خلال مسار، وإذا أَكتشفُ المسارَ بأنّ السيرفرِ هَبطَ، هو يُمْكِنُ أَنْ يَستعملَ اتجاه نات بشكل شفاف لإعادة طريقِ الوُصُول إلى سيرفر الإسناد