NAT

قبل الحديث عن الـ NAT لابد من مقدمة ممهدة وموضحة ..

 

تطلب التصميم الأصلي للإنترنت أن يكون لكل منظمة أو جهة أو مؤسسة عنوان واحد فقط من عناوين الشبكة IPv4 المصنفة (classful) وتطلب ذلك من الجهات المنظمة لتوزيع العناوين عدم تكرار توزيع أي من عناوين شبكات IP وطالما أن كل منظمة تستخدم عناوين IP الموجودة فقط ضمن أرقام شبكتها المسجلة فلن يتم تكرار عناوين IP مطلقاً وسيعمل توجيه IP بشكل ممتاز.

 

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

 

كان الحل الأساسي طويل المدى لهذه المشكلة هو زيادة حجم عنوان IP وكانت هي السبب لظهور الإصدار (IPv6) والذي يستخدم 128 بت ، بدلاً من (IPv4) والذي يستخدم 32 بت. مما يمكن لـ IPv6 بسهولة دعم كل مؤسسة وفرد على هذا الكوكب مع وصول عدد عناوين IPv6 نظريًا إلى ما يزيد على عدد حبات الرمل الموجودة على كوكبنا!

 

وكحلول قصيرة المدى لمشكلة (IPv4) تم ايجاد ثلاثة معايير مهمة يعمل اثنان منها بشكل مترابط وهما ترجمة عناوين الشبكة (NAT) والعنونة الخاصة(private addressing). بحيث تسمح هذه الميزات معاً للعديد من المؤسسات باستخدام نفس أرقام عناوين شبكات IPv4 الغير المسجلة استخداماً داخليا ولا يمكنه الخروج للانترنت. أما المعيار الثالث فكان الـ (CIDR) والذي مكّن مزودي خدمات الإنترنت بتقليل إهدار عناوين IPv4 من خلال تخصيص مجموعة فرعية من رقم الشبكة للشركة بدلاً من الشبكة بأكملها. ومكنهم أيضاً من تلخيص المسارات بحيث أن شبكات متعددة من الفئة A أو B أو C تتطابق مع مسار واحد وهو ما يقلل حجم جداول توجيه الإنترنت.

CIDR

 

هو اصطلاح عالمي لتخصيص العناوين ويحدد كيفية قيام هيئة الإنترنت للأرقام المخصصة (IANA) والوكالات الأعضاء ومزودي خدمات الإنترنت بتعيين مساحة عنوان IPv4 الفريدة عالميا للمؤسسات الفردية.

 

CIDR والمحدد في RFC 4632 له هدفان رئيسيان:

 

١- تحديد طريقة تعيين عناوين IP العامة في جميع أنحاء العالم للسماح بتجميع المسار أو تلخيص المسار.

٢- الحد من اهدار العناوين والناتج عن استخدام الـ (classful network)

 

المثال أدناه يمثل حالة نموذجية لمعنى تجميع المسار (الهدف الأول من الـCIDR)وكيف يمكن استخدام CIDR لاستبدال أكثر من 65000 مسار بمسار واحد. أولاً تخيل أن مزود الخدمة ISP 1 يمتلك شبكات من (class C) من 198.0.0.0 إلى 198.255.255.0 لفقد خصصت IANA جميع العناوين التي تبدأ بـ 198 لأحد موزعي الإنترنت الإقليميين الخمسة وهو (RIR) ، وقام RIR بتعيين هذا النطاق بالكامل لمزود خدمة إنترنت كبير واحد في ذلك الجزء من العالم

 

يتيح تخصيص جميع العناوين التي تبدأ بـ 198 لمزود خدمة إنترنت واحد لمزودي خدمة الإنترنت الآخرين من استخدام مسار واحد فقط هو مسار لـ 198.0.0.0/8 وهو كافي لمطابقة كل هذه العناوين وإعادة توجيه الحزم لتلك العناوين إلى ISP1 ويوضح الشكل مزودي خدمة الإنترنت على اليسار لكل منهم مسار واحد إلى 198.0.0.0/8 وبمعنى آخر مسار لجميع الأجهزة التي يبدأ عنوان IP الخاص بهم بـ 198. وهذا المسار التلخيصي سيتطابق مع الحزم المرسلة إلى جميع العناوين في 65.536 شبكة IP من الفئة C تبدأ بـ 198.

 

أما (الهدف الثاني من الـCIDR) فهو أنه يسمح لـ RIRs و ISPs بتقليل الفاقد من خلال تخصيص مجموعة فرعية من شبكة (classful) لعميل واحد. على سبيل المثال تخيل أن العميل A لمزود خدمة الإنترنت ISP1 يحتاج فقط 10 عناوين IP وأن العميل C يحتاج فقط 25 عنوان IP. يقوم ISP1 بما يلي:

 

إعطاء العميل A الـ (CIDR block) 198.8.3.16/28 مع 14 عنوانًا قابلاً للتخصيص (198.8.3.17 إلى 198.8.3.30).

إعطاء العميل B الـ (CIDR block) 198.8.3.32/27 مع 30 عنوانًا قابلاً للتخصيص (198.8.3.33 إلى 198.8.3.62).

 

تعمل كتل CIDR هذه إلى حد كبير كشبكة IP عامة فهم يمنحون كل شركة مجموعة متتالية من عناوين IPv4 العامة لاستخدامها وعملية تخصيص الشبكات العامة قللت الهدر في العناوين بشكل كبير جداً.

 

في الواقع ، كانت معظم تعيينات العناوين العامة على مدار العشرين عامًا الماضية عبارة عن مجموعة CIDR وليست شبكة كاملة (classful) من الفئة A أو B أو C.

العناوين الخاصة

 

عند إنشاء شبكة خاصة ليس لها اتصال بالإنترنت يمكن استخدام أرقام شبكات IP التي تسمى شبكة الإنترنت الخاصة والمعرفة والمحددة في RFC 1918 بعنوان "تخصيص العناوين للإنترنت الخاص". يحدد RFC هذا مجموعة من الشبكات التي لن يتم تعيينها مطلقاً إلى أي مؤسسة كرقم شبكة مسجل. بمعنى آخر ، يمكن لأي منظمة استخدام أرقام الشبكة هذه. ومع ذلك ، لا يُسمح لأي منها باستخدامها على الإنترنت.

NAT

 

يسمح الـ NAT والمعرف والمحدد في RFC 3022 لجهاز ليس لديه عنوان IP مسجل وفريد عالمياً بالاتصال بالإنترنت. قد تستخدم هذه الأجهزة عناوين خاصة ومع ذلك تمكن الـ NAT لهذه العناوين الغير مهيأة للإنترنت بالاستمرار في استخدامها والاتصال بالإنترنت. تحقق NAT هدفها هذا باستخدام عنوان IP عام لتمثيل عنوان IP خاص. بحيث تقوم وظيفة NAT بتغيير عناوين IP الخاصة إلى عناوين IP المسجلة بشكل عام داخل كل حزمة IP كما هو موضح في الشكل

 

لاحظ أن جهاز التوجيه(router) الذي يقوم بإجراء NAT يغير عنوان IP المصدر للحزمة عندما تغادر الحزمة المؤسسة الخاصة ويقوم الموجه أيضاً بتغيير العنوان في كل حزمة يتم إعادة توجيهها مرة أخرى إلى الشبكة الخاصة. العنوان 200.1.1.0 هي العنوان العام الذي تمتلكه المؤسسة وتقوم ميزة NAT بإجراء الترجمة.

يدعم Cisco IOS عدة طرق مختلفة لتهيئة NAT ساحرص على توضيح المفاهيم الكامنة وراء العديد من هذه الاختلافات.

Static NAT

 

يعمل Static NAT تمامًا مثل المثال الموضح سابقاً ولكن مع تعيين وتحديد عناوين IP المرتبطة مع بعضها البعض. يوضح الشكل أدناه الفكرة

 

عيّن مزود خدمة الإنترنت للشركة شبكة مسجلة 200.1.1.0. لذلك يجب أن يجعل جهاز توجيه NAT عناوين IP الخاصة تبدو كما لو كانت في الشبكة 200.1.1.0 وللقيام بذلك يقوم الموجه بتغيير عناوين IP المصدر في الحزم من اليسار إلى اليمين في الشكل. ففي هذا المثال ، يقوم الموجه بتغيير عنوان المصدر من 10.1.1.1 إلى 200.1.1.1. باستخدام Static NAT ، بحيث يقوم الموجه ببساطة بتعيين واحد لواحد بين العناوين الخاص والعناوين العامة. فقد قام الموجه بتعيين ثابت بين العنوان الخاص 10.1.1.1 والعنوان المسجل 200.1.1.1.

 

يتطلب دعم جهاز آخر باستخدام NAT ثابت تعيين آخر باستخدام عنوان IP عام آخر له. فعلى سبيل المثال لدعم 10.1.1.2 يقوم جهاز التوجيه بإعطاء 10.1.1.2 العنوان العام 200.1.1.2 بشكل ثابت. لاحظ أننا قمنا بسمية العناوين المستخدمة داخل الشبكة والغير قادرة على الوصول الى الانترنت بالـ (private) وتلك الأخرى المحجوزة من قبل مزودي الخدمة والقادرة على الوصول للإنترنت بالـ (public) هذه المسميات قد تختلف عند الحديث عن Cisco بحيث تمسى الـ (private) بالـ (inside local) في حين تسمى الـ (public) بالـ (inside global)

تمثل الرسمة أدناه نفس المثال السابق ولكن باستخدام التسمية الخاصة بـ Cisco فشبكة المؤسسة التي تستخدم عناوين خاصة وتحتاج إلى NAT هي الجزء "الداخلي" من الشبكة. والجانب المرتبط بالإنترنت هو الجزء "الخارجي" من الشبكة والمضيف الذي يحتاج إلى NAT (مثل 10.1.1.1) لديه عنوان IP يستخدمه داخل الشبكة ويحتاج إلى عنوان IP لتمثيله في الشبكة الخارجية.

Dynamic NAT

 

يوجد في Dynamic NAT بعض أوجه التشابه والاختلاف مقارنةً بـ Static NAT فهما يتشابهان في أن جهاز التوجيه NAT يقوم بتعيين عنوان واحد لعنوان واحد ما بين الخاص الداخلي والعام الخارجي وكذلك أنه يقوم بتغيير عناوين IP في الحزم عند خروجها ودخولها إلى الشبكة الا أن تعيين العنوان العام للعنوان الخاص يحدث بشكل آلي. بحيث يُنشئ Dynamic NAT مجموعة من العناوين العامة المتاحة ويحدد معايير المطابقة لتحديد عناوين IP الخاصة التي يحق لها استخدام NAT فعلى سبيل المثال في الشكل أدناه تم إنشاء مجموعة من خمسة عناوين IP عامة: 200.1.1.1 حتى 200.1.1.5 وتم إعداد NAT لترجمة أي عناوين خاصة تبدأ بـ 10.1.1

 

تشير الأرقام 1 و 2 و 3 و 4 في الشكل إلى التسلسل التالي للأحداث:

 

1. يرسل المضيف 10.1.1.1 الحزمة الأولى إلى الخادم عند 170.1.1.1.

2. عندما تدخل الحزمة إلى جهاز توجيه NAT يطبق جهاز التوجيه منطق المطابقة ليقرر ما إذا كان يجب تطبيق NAT على الحزمة أم لا. ولأن المنطق قد تم تحديده بحيث يتطابق مع عناوين IP التي تبدأ بـ 10.1.1 يضيف الموجه إدخالاً في جدول NAT لـ 10.1.1.1 كعنوان خاص.

3. يحتاج موجه NAT إلى تخصيص عنوان IP من مجموعة العناوين العامة المتاحة فيختار أول واحد متاح (200.1.1.1 ، في هذه الحالة) ويضيفه إلى جدول NAT لإكمال الإدخال.

4. يقوم موجه NAT بترجمة عنوان IP المصدر وإعادة توجيه الحزمة.

 

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

clear ip nat translation

 

يمكن إعداد الـ NAT مع المزيد من عناوين IP الخاصة مقارنة بمجموعة العناوين العامة. يقوم جهاز التوجيه بتخصيص وإعطاء العناوين العامة لكل حزمة ترغب في الخروج للانترنت حتى يتم تخصيصها جميعًا فإذا وصلت حزمة جديدة من جهاز داخلي آخر وتحتاج إلى الـ NAT ولكن جميع عناوين IP العامة قيد الاستخدام يتجاهل جهاز التوجيه الحزمة بكل بساطة ويجب على المستخدم المحاولة مرة أخرى حتى تنتهي مهلة إدخال NAT وعند هذه النقطة تعمل وظيفة NAT مع الجهاز التالي الذي يرسل الحزمة.

 

بشكل أساسي يجب أن تكون مجموعة العناوين العامة كبيرة مثل الحد الأقصى لعدد الأجهزة الراغبة في استخدام الإنترنت في نفس الوقت الا إذا كنا نستخدم ما يسمى بالـ PAT

PAT

 

تحتاج بعض الشبكات إلى وصول معظم الأجهزة إن لم يكن جميعها إلى الإنترنت فإذا كانت هذه الشبكة تستخدم عناوين IP الخاصة ، فإن موجه NAT يحتاج إلى مجموعة كبيرة جداً من عناوين IP العامة. وهنا لا نستطيع استخدام Static NAT لأن كل جهاز يحتاج إلى الوصول إلى الإنترنت وبالتالي نحتاج إلى عنوان IP عام لكل جهاز وهذا مستحيل ويخالف أصلاً فكرة وجود الـ NAT، وكذلك لا نستطيع استخدام Dynamic NAT لأن شبكتنا تتطلب وصول الجميع للانترنت وهو يحقق الوصول للبعض دون البعض بحسب أولوية الطلب، وهنا جاءت فائدة الـ PAT لمعالجة هذه المشكلة والمفتاح لفهم كيفية عملها هو تذكر كيفية استخدام الأجهزة لأرقام المنافذ المستخدمة مع TCP و UDP.

للتوضيح تخيل وجود ثلاثة اتصالات TCP منفصلة بخادم ويب من ثلاثة أجهزة مختلفة كما هو موضح في الشكل أدناه

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

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

 

عندما يقوم الـ PAT بالتعيين الآلي فإنه لا يحدد فقط عنوان IP الخاص فقط ولكن كذلك رقم المنفذ الفريد لاستخدامه مع هذا العنوان ويحتفظ جهاز توجيه NAT بإدخال الجدول لكل مجموعة فريدة من داخل عنوان IP الخاص وكذلك والمنفذ مع الترجمة إلى العنوان العام ورقم منفذ فريد مرتبط بالعنوان الخاص. ونظرًا لأن حقل رقم المنفذ يحتوي على 16 بت فإن الـ NAT يمكن أن يستخدم أكثر من 65000 رقم منفذ مما يسمح بالتوسع بشكل جيد دون الحاجة إلى العديد من عناوين IP العامة وفي كثير من الحالات تحتاج إلى عنوان IP عام واحد فقط

4 thoughts on “NAT”

  1. We absolutely love your blog and find a lot of your post’s to be just what I’m looking for.

    Do you offer guest writers to write content for yourself?
    I wouldn’t mind creating a post or elaborating on most of the subjects
    you write regarding here. Again, awesome website!

    1. Hashim Alsharif

      Thank you for visiting the site. I am very happy that you found what you were looking for. I will soon open participation in it with your names so that everyone can benefit.

  2. It is perfect time to make some plans for the long run and it’s time to be happy.
    I have learn this post and if I could I desire to recommend you some
    fascinating issues or advice. Maybe you can write next articles relating to this article.
    I desire to read even more issues about it!

Leave a Comment

Your email address will not be published. Required fields are marked *

Verified by MonsterInsights