الرئيسيةبحث

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

في شبكات الحاسوب, ترجمة عنوان الشبكة ("Network Address Translation "NAT)، (و التي تعرف أيضاً بتنكر الشبكة(Network Masquerading)، ترجمة العنوان المحلي(Native Address Translation) أو تَنَكر آي بي(IP Masquerading))، هي تقنية لإرسال واستقبال أزمة الشبكة(network traffic) خلال المسير(router) تتضمن إعادة كتابة عنواني آي بي المصدر والوجهة ،وأيضا أرقام مرافئ "TCP/UDP" الخاصة بعبوات آي بي (IP packets). يجب أيضاً تعديل عملية التأكد من المجاميع (checksums) - المستخدمة للتأكد من عدم تغير البيانات أثناء إرسالها- لتأخذ بعين الاعتبار التغييرات التي حصلت في عملية الترجمة.

في معظم الأحيان يكون استخدام ترجمة عنوان الشبكة بهدف تميكن عدة مضيفين (hosts) على الشبكة الخاصة من الدخول على الإنترنت تحت عنوان آي بي (IP address) واحد. يجد العديد من المدراء الشبكات أن ترجمة عنوان الشبكة تقنية فعالة ويستعملونها على نطاق واسع. ترجمة عنوان الشبكة يمكن أَن تؤدي إلى التعقيدات في الاتصال بين المضيفين وقد تؤثر على أداء الشبكة.


فهرس

نظرة عامة

ظهرت ترجمة عنوان الشبكة في البداية كطريقة للتعامل مع مشكلة قصر عنوان آي بي في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) عادةً هذه الميزة، أحياناً تسمى "مضيف منطقة منزوعة السلاح" (DMZ host)، للسماح لجهاز معين بقبول جميع الاتصالات الخارجية حتى عندما يستعمل المسير عنوان الآي بي الخارجي الوحيد المتوفر.

ترجمة عنوان الشبكة مع ترجمة المنفذ تقسم إلى فرعين: ترجمة عنوان المصدر (ترجمة عنوان الشبكة المصدر (source NAT))، التي تعيد كتابة عنوان الآي بي للجهاز الذي يبدأَ الاتصال؛ ونظير ذلك، ترجمة عنوان الوجهة (ترجمة عنوان الشبكة الوجهة (destination NAT)). عملياً، كلاهما يستعمل سوية بشكل منسق للاتصال ثنائي الاتجاه.


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

ترجمة عنوان المرفأ مفهوم وثيق الصلة بمفهوم ترجمة عنوان الشبكة،وغالباً ما يسمى ترجمة عنوان الشبكة.

في ترجمة عنوان الشبكة، بشكل عام فقط عناوين الآي بي هي التي تعدل: يكون هناك تقابل 1:1 بين عناوين الآي بي المكشوفة، وعناوين الآي بي الخاصة. وفي ترجمة عنوان المرفأ ، يتم تعديل عنوان الآي بي الخاص للمرسل ورقم المرفأ؛ ويقوم جهاز ترجمة عنوان المرفأ باختيار أرقام المرافئ التي ستظهر للمضيفين على الشبكة العامة.

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

بعض الأجهزة التي تقوم بترجمة عنوان الشبكة، مثل مسيرات الاتصال العريض، تقوم في الحقيقة أيضاً بترجمة عنوان المرفأ. لهذا السبب، فإن هناك خلطاً كبيراً بين المصطلحين.الاستعمال المنتشر لترجمة عنوان الشبكة على أنها تتضمن أدوات ترجمة عنوان المرفأ يقترح أن ترجمة عنوان المرفأ يجب اعتبارها كنوع من ترجمة عنوان الشبكة بدلاً من اعتبارها تقنية أخرى.


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

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

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

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


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

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

بوّابة طبقةِالبرامج (أي إل جي) يُمْكِنُ أَنْ تُصلّحَ هذه المشكلةِ. وحدة برامجِ بوّابةِ طبقةِ البرامج تَجْري على أداة برنامجِ حماية ترجمةِ عنوانِ الشبكةِ(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 آمن.

الأنواع المختلفة لترجمة عنوان الشبكة

التطبيقات التي تَتعامل مع ترجمة عنوان الشبكة تَحتاج أحياناً إلى تصنيف ترجمة عنوان الشبكة حسب النوع. وضع نظام "STUN" لتصنيف ترجمة عنوان الشبكة إلى أنواع: ترجمة عنوان الشبكة بالمخروط الكامل (full cone NAT)، ترجمة عنوان الشبكة بالمخروط المقيد (restricted cone NAT)، ترجمة عنوان الشبكة بالمخروط المقيد بالمرفأ (port restricted cone NAT)، ترجمة عنوان الشبكة المتماثل (symmetric NAT).


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

(المسمى أيضاً بترجمة عنوان الشبكة واحداً لواحد):

كل المنافذ للعنوان الخارجي ترتبط بعنوان داخلي محدد ونفس المرفأ. أي مضيف خارجي يمكنه أن يرسل عبوات عشوائية إلى المضيف الداخلي عن طريق إرسال العبوة إلى العنوان الخارجي المرتبط.

صورة:Full Cone NAT.svg
ترجمة عنوان الشبكة بالمخروط المقيد:

جميع الطلبات من نفس عنوان الآي بي والمنفذ الداخلي يرتبطان بنفس عنوان الآي بي والمنفذ الخارجي.

أي مضيف خارجي يمكنه أَن يرسل عبوة إلى المضيف الداخلي إذا كان المضيف الداخلي قد أرسل عبوة إليه سابقاً.

صورة:Restricted Cone NAT.svg
ترجمة عنوان الشبكة بالمخروط المقيد بالمرفأ

(المسمى أيضاً بترجمة عنوان الشبكة المتماثل أحياناً):

مثل ترجمة عنوان الشبكة بالمخروط المقيد، لكن التقييد يتضمن أرقام المرافئ.

صورة:Port Restricted Cone NAT.svg
ترجمة عنوان الشبكة المتماثل:

كل طلب من نفس عنوان الآي بي والمرفأ الداخلي إلى عنوان آي بي ومرفأ وجهة محدد يرتبطان بعنوان آي بي ومرفأ مصدري خارجي فريد.

إذا يرسل نفس المضيف الداخلي عبوة ،حتى لو كانت بنفس العنوان والمرفأالمصدر، لكن إلى وجهة مختلفة,يستعمل تخطيط مختلفل.

فقط إذا استقبل مضيف خارجي عبوة من مضيّف داخلي يمكنه أَن يرسل عبوة إليه.

صورة:Symmetric NAT.svg


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

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

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

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

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


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

1-IPFilter

2-PF (firewall): The OpenBSD Packet Filter

3-Iptables masquerading

4-Berkeley Software Distribution

5-Routix NetCom

6-(Internet Connection Sharing (ICS

7-WinGate

8-Cisco IOS