المحتوى عن 'ip'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • التجارة الإلكترونية
  • الإدارة والقيادة
  • مقالات ريادة أعمال عامة

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
  • HTML
    • HTML5
  • CSS
  • SQL
  • سي شارب #C
    • منصة Xamarin
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • Sass
    • إطار عمل Bootstrap
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • ASP.NET
    • ASP.NET Core
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
  • مقالات برمجة عامة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات DevOps عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • التسويق بالرسائل النصية القصيرة
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عمل حر عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 9 نتائج

  1. تقنيات SEO تتضمن عناصر مهمة لا يراها المستخدم، إلا بالبحث عنها في الشيفرة المصدرية (Source Code) الخاصة بالموقع. من مهمَّتك كمطور مواقع معرفتها والعناية بها، وأهم سبع عناصر هي: الكشف عن عنوان IP اختصارًا لـ Internet Protocol، وتقنية إعادة التوجيه (Redirection). سرعة الموقع (Site Speed). إعادات التوجيه 301 / 302. رموز الحالات (HTTP Status Code)، وبروتوكول نقل النص التشعبي (HTTP: HyperText Transfer Protocol). وصول الزاحف (Crawler Access). لغة برمجة الويب JavaScript. أولاً: الكشف عن عنوان IP وإعادة التوجيه هذا العنصر هو الذي يكتشف ويتعرف على مكان الزائر للصفحة، ويحدد المنطقة التي يتصفح منها الموقع، بحيث يكون ذلك معتمدًا على عنوان IP الخاص به، وهنا تبرز أهمية إعادة التوجيه، المبنية على معلومات IP الخاصة بالزائر، حيث تقوم بعرض المحتوى الأنسب له. ولفهم أهمية هذا العنصر، نستعرض المثال التالي: لنفترض أنّ نطاق الموقع هو www.domain.co.uk، خاص بزوار المملكة المتحدة، ومحتوى الموقع بالإنجليزية. لنفترض أنّ زائرًا من فرنسا مهتم بالموقع، والمحتوى الأنسب له هو الفرنسية، فيتم التعرف عليه وعلى عنوان IP الخاص به، وتحويله وإعادة توجيهه إلى العنوان الأنسب، الذي يكون كالتالي: www.domain.fr. بالرغم من أهمية خاصية إعادة التوجيه في المواقع، إلا أنها قد لا تكون دقيقة دائمًا، ودورها الأساسي هو التعرّف على مكان الزائر ولغته وعرض المحتوى الأنسب له. وفقاً للحالة السابقة، ستواجهنا مشكلة مع زواحف محركات البحث، وهي عدم رؤية هذا الجزء الخاص من محتوى الموقع (المحتوى الفرنسي في مثالنا السابق)، لأن الزاحف يرى محتوى رابط الموقع الرئيسي المنتهي بـِ (co.uk) مثلاً، ولا يرى محتوى الموقع المنتهي بـ (fr.)، فهو مخفي وغير مرئي لعناكب البحث، لكونها برامج آلية، مبرمجة وفق خوارزميات تحدد طريقة عملها. الكثير من المطورين، والذين يعملون في تحسين المواقع لمحركات البحث، يعتقدون بأنّ هناك مشكلة في عمل عنوان IP أو في إعادة التوجيه الخاصة بالموقع، والحقيقة هي المثال السابق الذي قمنا بتوضيحه، والتي تؤدي أحياناً إلى عدم أرشفة وفهرسة صفحات الموقع، ومنع محركات البحث من الوصول إليها. لذلك عليكَ كمطوّر تفادي هذه المشكلة والإنتباه لها جيّدًا، كي لا تمنع محركات البحث من رؤية صفحاتٍ معينة من موقعك. ثانياً : سرعة الموقع المواقع الناجحة تكون سريعة دائماً، مثل : ( Amazon / Google / Yahoo / Youtube .. الخ ). أنتَ كمطوّر يجب أن تكون سرعةُ موقعك على رأس قائمة أولوياتك، فالموقع السريع يحتفظ بزوارٍ كثيرين، لأنه يعطيهم الراحة أثناء التصفح، والسرعة في عرض المعلومة المطلوبة والتي يبحثون عنها بشغف. سرعة الموقع تساهم في إطالة مدة بقاء الزائر فيه، وتدفعه إلى اكتشافِ مزيدٍ من المحتوى. أما إذا استغرق تحميل الصفحة الواحدة في الموقع لأكثر من بضع ثوان، قد يدفع المستخدم إلى تركه والخروج منه وعدم الرجوع إليه مرة أخرى. بناءً على ذلك، عليك الاهتمام بسرعة الموقع، لأن Google مهووسة بهذا العامل المهم بالنسبة إليها، وهي تعرف مدى الإهتمام الكبير للمستخدم بالسرعة، وأن زيادة سرعة الموقع مرتبط ارتباطاً وثيقاً بشهرته ونجاحه، وهذا ما تُريده محركات البحث لأرشفته بقوة . ثالثاً : إعادة التوجيه 301/302 لعمليات التحويل وإعادة التوجيه أهمية كبيرة، علينا التعرف على بعض المعلومات الأساسية والمهمة عنها، يُستخدم التحويل عادةً في تهيئة محركات البحث (SEO) للأسباب التالية : عند نقل صفحة ما إلى مكان معين أو إلى الأسفل، يتم توجيه المستخدمين ومحركات البحث إلى صفحة جديدة. عند إنشاء محتوى منسوخ أو مكرر وتريد أن يتم حذفه من فهارس Google، وتوجيه عناكبها إلى المحتوى الأصلي. بشكلٍ عام نستخدم إعادة توجيه 301 من جانب الخادم عندما نحتاج إلى تغيير عنوان URL لصفحة ما بشكلٍ عام، ليصبح كما يظهر في نتائج محركات البحث. وهذه من أفضل الطرق التي تضمن توجيه المستخدمين ومحركات البحث إلى الصفحات الصحيحة. والمعنى العام من رمز الحالة 301، هو أنه تم نقل إحدى الصفحات إلى مكانٍ جديد بشكلٍ دائم. بالنسبة لتحويل 302، فهو له علاقة مباشرة بتهيئة المواقع لمحركات البحث، وأسبابُ استعماله هي: عدم توفر الصفحة المطلوبة بشكل مؤقت. تجربة واختبار عملية الإنتقال إلى نطاق جديد يختلف عن نطاق الموقع الأصلي، والحصول من ذلك على تغذية راجعة من المستخدمين للنطاق الجديد، بدون تدمير النطاق القديم وخسارة ترتيبه. إعادة توجيه 302، تعني أنه تم نقل العنوان القديم إلى عنوان جديد بشكلٍ مؤقت. بناءً على ذلك، لا تقوم Google بحذف العنوان القديم من فهارسها، ولا يتأثر ترتيب الرابط وشعبيته لدى محركات البحث. ما هو دورك كمطوّر؟ وما هي المشاكل التي تتسبب فيها عمليات إعادة التوجيه 301 / 302؟ المستخدم العادي لا يَلحظ عملية إعادة التوجيه، فهو سيحصل على المحتوى بجميع الأحوال. محركات البحث تلاحظ الإختلاف الناجم عن عمليات التحويل، وهذا يؤثر على أرشفة وفهرسة الموقع. عمليات إعادة التوجيه غير الصحيحة قد تؤدي إلى خسارة الموقع لترتيبه، والتأثير بشدة على حركة الزوار وانخفاضها، فعليك الحذر من هذه العمليات والإنتباه لها جيّداً أثناء القيام بها. عند تنفيذ عمليات إعادة التوجيه، عليكَ اتباع الممارسات الجيّدة. تأمل معي المثالي التالي: عملية توجيه صحيحة: الرابط القديم : http://www.old-site.com/product-name-123 الرابط الجديد : http://www.new-site.com/product-name-123 عملية توجيه خاطئة: الرابط القديم : http://www.old-site.com/product-name-123 الرابط الجديد : http://www.new-site.com نستنتج من المثال السابق، أنّ الخطأ الشائع هو إعادة توجيه الصفحة القديمة إلى الصفحة الرئيسية للموقع، أو إلى التصنيف الرئيسي للموضوع الأصلي، وهذا يعتبره الزوار عملية مراوغة أو خداع وتضليل، مما يثير استيائهم وإزعاجهم. أما بالنسبة لمحركات البحث، فما يُزعج الزوار والمستخدمين يزعجها، وهذا قد يُلقي بالموقع في الهاوية. نؤكد أنّ القيام بهذه العملية بشكل خاطئ، يؤدي إلى خسارة حركةِ زوارٍ كبيرة، لأنّ الموقع يخسر ترتيبه العالمي بخسارة أرشفة صفحاته القديمة، والتي تكونُ عادةً روابطها طويلة جداً، فيقوم مشرف الموقع بإعادة التوجيه للرابط وتغييره بشكلٍ كليّ، ليظهر قصيرًا وأكثر احترافيةً وجاذبية، إلا أنه يتبع الممارسة الخاطئة ويقع في فخ عمليات التحويل. ثالثاً : رموز الحالات HTTP status كل عنوان أو صفحة يتم طلبها/زيارتها يأتي معها رمز من رموز حالات بروتوكول HTTP، هذا الرمز يشير إلى حالة الخادم أو إلى طبيعة استجابة الخادوم للطلب، المتصفحات تفهم هذه الرموز بشكل جيد، لكنها غير مرئية للزوار، من أشهر هذه الرموز: 200 Success – معنى هذه الحالة: أنّ الصفحة تم تحميلها بنجاح وبدون مشاكل . أنّ الصفحة تعمل بشكلٍ جيّد بالنسبة للمستخدمين، وأنّه يمكن فهرستها وأرشفتها بالنسبة لمحركات البحث. 301 Permanently – تم شرح هذه الحالة سابقًا بتفصيل، وتعني باختصار: أنه تم نقل الصفحة بشكلٍ دائم . أنه تم توجيه المستخدم للصفحة الجديدة، ومحركات البحث تقوم بتجاوز الرابط الأصلي إلى الرابط الجديد، مما يؤدي إلى حذف الصفحة القديمة من فهارس محرك البحث. 302 Temporarily Moved - هذه الحالة مشابهة للحالة السابقة 301 ، وتختلف عنها في: أن الصفحة تم نقلها مؤقتًا لعنوانٍ آخر. أن المستخدم لا يلاحظ عملية إعادة التوجيه هذه، بخلاف محركات البحث التي لا تتجاوزُ الرابطَ القديم بدون ملاحظة الإختلاف، وتقوم بدورها بإزالته من فهارسها الخاصةِ بها. 404 Page Not Found – تعني هذه الحالة الشائعة: أن الصفحة المطلوبة لا يمكن تحميلها أو أنها غير موجودة. بناءً على ذلك، يتم إيقاف ترتيب وتصنيف هذه الصفحة من قِبَل محركات البحث في حال ظهرت فجأة الحالة (404) للصفحة المطلوبة. 410 Page Permanently Not Found - تعني هذه الحالة عدم توفر الصفحة المطلوب تحميلُها كما أنه لن يتم توفيرها مستقبلا. تعامل محركات البحث هذه الحالة مثل تعامُلها مع الحالة السابقة 404 . 500 Internal Server Error – هذه صفحة خطأ عامة، لا تُعطي المستخدم الكثير من التفاصيل عن سبب حدوث المشكلة، ويجب عليكَ كمطوّر أنْ تحُدّ من هذه المشاكل قدرَ الإمكان، ﻷنها تعني أن هناك خطبا ما مع موقعها أو خادومك، فبالتالي يجب عليك تفحص تطبيق الويب الخاص بك من الأخطاء البرمجية أو إعدادات خادومك من خطأ ما. 503 Service Unavailable – هذه الحالة تعني أنّ الخدمة غير متوفرة حاليًا. على سبيلِ المثال: في حالِ إذا أردتَ تغيير تصميم قالبِ الموقع، بإمكانك إخبار المستخدمين عن طريق هذه الصفحة بعودة الموقعِ للعمل فيما بعد. هذه الحالة مهمة جداً لإعلام محركات البحث بعودة الموقع لعمله لاحقاً، وتوقفه عن العمل مؤقتًا. خامساً : وصول الزاحف تمكين الزاحف الخاص بمحرك البحث، عملية مهملة جدًا مِن قِبَلِ مَنْ يَعملونَ في مجال SEO، ومِن مطوّري المواقع. فَهمُ آليةِ عمل الزاحف، من الممكن أن نوضحها لك بسطرينِ أو أقل، ولكن تطبيقها كعاملٍ في مجال SEO أو كمطوّرٍ يحتاجُ مِنكَ إلى العلمِ الدقيق بذلك، حتى تُعينَ الزاحف على الوصولِ إلى كافة صفحاتِ الموقع الخاص بكْ. كيف تزحف Google لموقعك؟ يعتمد الزاحف بشكلٍ أساسي على ترتيب موقعك في محركات البحث. لماذا تعتمد Google رتبة PageRank عاملاً أساسيًا في الزحف والوصولِ إلى موقعك؟ على الرغم من أن الشركة دائمًا تسعى لأرشفة وفهرسة كل معلومة تُنشر على شبكة الويب، إلا أنها تبقى محدودة الموارد لهدفٍ عظيمٍ كهذا، فاعتمدت Google أهمية الموقع وتصنيفه العالمي معيارًا أساسيًا، تُعطي الزاحف استنادًا له أوامرًا بأولوية الزحف إليه. دوركَ كمطوّر هو في هيكلية وبِنيةِ الموقع السليمة، وأن تتأكد بإمكانية وصول زاحف محرك البحث إلى موقعك، وأن يقضي معظمَ وقته في مسحِ أهمّ الصفحاتِ فيه، وهناك الكثير من الطرق لتحقيق هذا الهدف. الموقع القوي والناجح ناجمٌ عن اتحاد فريقٍ من المتخصصين، مختص SEO ومصمم القالب ومطوّر الموقع. إذا اشترك المختصين السابقة في إنجازِ مشروع موقع ويب، ستكونُ بالتأكيدِ هيكلية الموقع من الصفر وحتى نهاية المشروع متوافقة مع محركات البحث، من هيث البنية والبرمجة والتصميم. وهذا يجعلهُ متميّزًا في التصفح الآمن، السريعِ والمريح، وأرشفة صفحاته بعد دقائقٍ من نشرها على الشبكة، لتظهر في الصفحة الأولى في نتائجِ البحث. إذا لم تتم مراعاة معايير محركات البحث للمواقع الجيّدة منذُ البادية، أي من بداية تصميم وبرمجة الموقع، ستكونُ طرقُ تحسينه محدودة فيما بعد لمحركات البحث، وهناكَ الكثير من الطرق التي سنوضحُ أهمّها كي تُراعيها كمطوّر في مواقعك. ملف Robots.txt هذا هو الملف الأول الذي يطلبه الزاحف عند الوصول إلى الموقع. من خلال هذا الملف، يُحاول الزاحف البحث عن المناطق التي لم يصل إليها بعد، وعن الروابط التي لم يتم رؤيتها في الموقع. بإمكنك منع زواحف محركات البحث من الوصول إلى أجزاء معينة من موقعك، وتقومُ بهذا الإجراء بعد عدم إمكانية حل القضايا المتعلقة ببنية الموقع ، واحذر من القيام بهذا الإجراء عن طريق الخطأ. يُعرف هذا الإجراء بِـ Rel = Canonical. يُستحسن عدم استخدامه في موقعٍ جديد، ولكنه يُعتبرُ الملجأ الوحيد للمواقع الكبيرة، ومشاكِلُها التي تتعلق في الأمور الهندسية والبنائية للموقع. قبل استخدام هذا الوسم، ابحث بقوة عن حلٍ آخر، ولا تدعه أداةً لحلّ هذه المشاكل. لماذا ننصحك بعدم استخدامِ هذا الوسم؟ لأنه ليس قاعدة ثابتة وصارمة بالنسبة لمحركات البحث، أي أنّ استخدامه لا يُمكنُ أن يكونَ صالحًا دائمًا، نظرًا للتغيير المستمر في خوارزميات وسياسات محركات البحث، وبالتالي قد يصبحُ استخدامه بدونِ فائدة. ونؤكد مرةً أخرى على عدم استخدامه إلا في حال تمّ استنفاذ كافة الخيارات الأخرى المتاحة، واجعلهُ خياركَ الأخير. سادساً: لغة برمجة الويب JavaScript هي لغة ويب رائعة، تمكنُكَ من إضافةِ وظائف كثيرة لموقعك، تعزز من تجربة المستخدم وتجعله راضٍ أكثر. علاوةً على ذلك، محركات البحث تُكافح بشدة في تنفيذ javascript، في عملية اكتشاف المحتوى المضمن بين شيفراتها. إرشادات مهمة، عليكَ الأخذ بها عند استخدام إضافة وظائف ثانوية لموقعك. لا تضع محتوىً قيّمًا ضمن شيفرة JavaScript. عليكَ دائمًا بالتأكد من أن محركات البحث تستطيع الوصول إلى محتوى موقعك، وتقرأ كل ما تنتجهُ وتنشرهُ في الموقع. لا تضيع جهدك ووقتك في صناعة المحتوى وتضمينه في شيفراتها، التي تكافح محركات البحث لاكتشاف محتوى موقعك في هذه الحالة. مثال: عندما تضع أسفل منتجٍ ما معلومات مهمة وأساسية عنه لكن المساحة لا تكفي، وتُتيح للمستخدم الإنتقل عبر أيقونة لمزيدٍ من المعلومات عنه، وتفتح الصفحة في تبويبة أو نافذة جديدة، تحسّن بذلك تجربة المستخدمة وتحوز على رضاه. وفي نفس الوقت تصعّب مهمة عمل زواحف محركات البحث في وصولها إلى المحتوى الإضافيّ عن المنتج، والذي يُفترض أن يكونَ في غاية الأهمية بالنسبة للمستهلكِ له، عند عملية البحث عنه على الشبكة العالمية، وخسارة كبيرة لك كصاحب للموقع أو للمنتج أو كلاهُما. يمكن جزئيا التغلّب على هذه المشكلة بالاستعانة بمكتبة jQuery في برمجة الوظائف الإضافية، فهي تمتلك خاصية الجمال والديناميكية في تحسين تجربة المستخدم كما في JavaScript، ومرئية وصديقة لزواحف محركات البحث. لا تضع روابطاً أو محتوىً ضمن JavaScript لإخفاءه عمدًا عن Google. هذا كان تكنيكًا متبعًا من قِبَل مَنْ يعمل في مجال SEO لأسبابٍ متعددة، وهذا يرجع إلى الزمن الذي كانت تتعرف محركات البحث عليها بصعوبة كبيرة. سبب فعلِ ذلك، هو زيادة ترتيب الموقع العالمي بإخفاءٍ الروابطِ فيه، أو لمجرد إخفاءِ محتوىً ما فيه. إلى هنا نصل إلى نهاية الدرس، بعد أن تعرفنا على أهل عناصر SEO من وجهة نظر المطور، نرجو منك أن لا تغفلها وتضعها في حسبانك إن كنت ممن يطورون تطبيق أو خدمة ويب معينة.
  2. مُقدّمة إنّ عنوان IP العائم في DigitalOcean هو عبارة عن عنوان IP ثابت وقابل للنفاذ من قبل العوام (أي قابل للوصول إليه) يُمكِن تعيينه لأي من الـ Droplets التي تملكها، يمكنك أيضًا إعادة تعيين هذا العنوان بشكل فوري إلى أي Droplet أخرى لديك في نفس مركز البيانات وذلك عبر لوحة تحكّم DigitalOcean أو برمجيًا عبر الواجهة البرمجية API. تمنحنا إمكانية إعادة تعيينه القدرة على تصميم وإنشاء بنى تحتيّة لخواديم عالية التوفّر High Availability (HA)، وهي بيئات لا تملك أي نقطة فشل، عن طريق إضافة التكرار redundancy إلى نقطة الدخول، أو البوابة gateway، إلى خواديمك، يتطلّب تحقيق بيئات عالية التوفّر بشكل كامل وجود تكرار على مستوى كل طبقة من بنيتك التحتيّة، كخواديم التطبيقات وقواعد البيانات، وهو أمر يصعب تطبيقه عادةً ولكن أثبت قيمته العالية لتقليل زمن الفشل downtime والحفاظ على قاعدة مستخدمين سعداء. لاحظ أنّ تعيين عنوان IP عائم لـ Droplet لا يستبدل عنوان IP العام الأصلي لها، والذي سيبقى بدون تغيير، ولكن بدلًا من ذلك يزوّدنا العنوان العائم بعنوان IP ثابت إضافي يُمكِن استخدامه للنفاذ إلى الـ Droplet المُخصّص لها حاليًّا. يُغطّي هذا الدّرس المواضيع التالية: إعداد أساسي لبيئة عالية التوفّر كيفيّة إدارة عناوين IP العائمة في DigitalOcean عناوين IP الرّابطة Droplet Anchor IPs البيانات الوصفيّة Metadata لعناوين IP العائمة كيفيّة تطبيق إعداد عالي التوفّر حالات أخرى لاستخدام عناوين IP عائمة فلننظر الآن إلى مثال لإعداد أساسي عالي التوفّر كبداية. إعداد أساسي عالي التوفّر إنّ أسهل طريقة لتعلّم آلية عمل خادوم عالي التوفّر هي مشاهدة مثال أساسي جدًّا، يتكوّن إعداد الخادوم عالي التوفّر الأكثر بساطة من عنوان IP عائم يشير، كحد أدنى، إلى مُوازِنَي حمل اثنين في حالة إعداد فعّال\غير فعّال active/passive، يُمثِّل هذا طبقة البوابة من إعداد خادومك، والتي سيقوم المستخدمون بالنفاذ إليها للوصول إلى خواديم الويب لديك. وهذا توصيف لكل مكوّن من المخطّط السّابق: الخادوم الفعّال Active Server: وهو الخادوم الذي يستقبل حركة مرور بيانات المستخدمين التي يتم تمريرها من عنوان IP العائم، وهو بشكل نموذجي مُوازِن حمل يقوم بتمرير حركة مرور البيانات إلى واجهة خلفيّة لخواديم تطبيقات ويب الخادوم غير الفعّال Passive Server: خادوم في وضع الاستعداد يكون عادة مضبوطًا بشكل مماثل للخادوم الفعّال، يستقبل حركة مرور البيانات فقط خلال حدوث الفشل، أي عندما يصبح الخادوم الفعّال غير متوفّر، ويتم إعادة تعيين عنوان IP العائم إلى الخادوم غير الفعّال عنوان IP العائم Floating IP: وهو عنوان IP الذي يشير إلى أحد خواديمك، ويُمكِن إعادة تعيينه في حال حدوث فشل في الخادوم الفعّال من الهام ملاحظة أنّ عنوان IP العائم لا يزودّنا من تلقاء نفسه بتوافر عالي، بل يجب تطبيق وإضافة آلية تجاوز للفشل إلى إعدادنا لكي يُعتبَر عالي التوفّر، والتي تقوم بأتمتة عمليّة اكتشاف فشل الخادوم الفعّال وإعادة تعيين عنوان IP العائم إلى الخادوم غير الفعّال، وبافتراض تطبيق استراتيجيّة فعّالة لتجاوز الفشل سيسمح الإعداد السابق للخدمة بأن تبقى متوفّرة حتى لو فشل أحد الخادومين. هناك العديد من الطرق المختلفة لتحقيق تجاوز للفشل، والتي سننظر إليها لاحقًا، ولكن فلنتحدّث أولًا عن كيفيّة استخدام عناوين IP العائمة في DigitalOcean. كيفيّة إدارة عناوين IP العائمة في DigitalOcean كما هو الحال مع معظم موارد DigitalOcean، يُمكِن إدارة عناوين IP العائمة عبر لوحة التحكّم أو الواجهة البرمجية API، وبينما تسمح لنا لوحة التحكّم بإنشاء، إعادة تعيين، وحذف عناوين IP عائمة، فإنّ استخدام الواجهة البرمجية ضروري لتطبيق آلية تلقائيّة وفعالّة لتجاوز الفشل، سنناقش كلا الطريقتين لإدارة عناوين IP العائمة، فلنبدأ بطريقة لوحة التحكّم. 1- لوحة التحكّم لإدارة عناوين IP العائمة عبر لوحة تحكّم DigitalOcean اضغط على رابط الشّبكة Networking (في قائمة التصفّح العلويّة)، وبعدها على عناوين IP العائمة Floating IPs في القائمة اليسرى، في أوّل مرة تزور فيها هذه الصفحة سترى صفحة تخبرك أنّك لا تمتلك عناوين IP عائمة ولكن بإمكانك أن تقوم بإنشائها: تستطيع هنا إنشاء عنوان IP عائم عن طريق اختيار واحدة من الـ Droplets لديك والنقر على زر تعيين عنوان IP عائم Assign Floating IP، إن أردت الحصول على عنوان IP عائم بدون تعيينه إلى Droplet فورًا فبإمكانك ببساطة اختيار مركز بيانات مُحدَّد من القائمة. ملاحظة: إن قمت بتعيين عنوان IP عائم لـ Droplet تمّ إنشاؤها قبل تاريخ 20 أكتوبر 2015 سيتم عرض رسالة تتضمّن تعليمات يجب أن تتبعها قبل تعيين عنوان IP عائم للـ Droplet، سيقوم هذا بإنشاء عنوان IP رابط للـ Droplet لديك، وهو موضوع سنناقشه لاحقًا في هذا الدّرس. بعد بضع لحظات ستملك عنوان IP عائم جديد يُشير إلى الـ Droplet التي اخترتها: إن كان لديك عنوان IP عائم واحد على الأقل فستعرض هذه الصفحة قائمة بعناوين IP العائمة لديك، والتي تتضمّن التفاصيل التالية حول كل مُدخَل: العنوان Address: عنوان IP العائم، كيف يُمكِن النفاذ إليه وكيف تمّ تعريفه داخليًّا أيضًا. مركز البيانات Datacenter: مركز البيانات الذي تمّ بداخله إنشاء عنوان IP العائم، يُمكن تعيين عنوان IP العائم فقط إلى Droplets موجودة ضمن نفس مركز البيانات Droplet: وهي الـ Droplet التي تمّ تعيين عنوان IP العائم إليها، يتم توجيه الطلبات المُرسَلة إلى عنوان IP العائم إلى هذه الـ Droplet، يُمكن أيضًا تعيين هذه القيمة إلى غير مُعيَّن "Unassigned"، والذي يعني أنّ عنوان IP العائم محجوز ولكن لن يُمرِّر أي حركة مرور بيانات من الشبكة لأي Droplet وبالإضافة لمعلومات عنوان IP العائم يسمح هذا القسم لك بإجراء ما يلي: إعادة التعيين (الزر الأزرق على شكل قلم): يقوم بتعيين عنوان IP العائم لـ Droplet أخرى ضمن نفس مركز البيانات، بإمكانك أيضًا إزالة تعيين عنوان IP العائم الحذف (الزر الأحمر على شكل X): يقوم بإزالة عنوان IP العائم من حسابك الآن بعد أن كوّنت فكرة أوضح عن إدارة عناوين IP العائمة عبر لوحة التحكّم فلننظر إلى استخدام الواجهة البرمجية API. 2- الواجهة البرمجية API تسمح لنا الواجهة البرمجية في DigitalOcean بتنفيذ جميع إجراءات إدارة عناوين IP العائمة التي يمكننا القيام بها من خلال لوحة التحكّم، غير أنّها تسمح لنا بالقيام بتلك التغييرات برمجيًّا، يكون هذا مفيدًا لنا بشكل خاص لأنّ الإعداد عالي التوفّر يتطلّب القدرة على أتمتة إعادة تعيين عنوان IP العائم إلى Droplet أخرى. تسمح لنا الواجهة البرمجية بالقيام بالإجراءات التاليّة الخاصّة بعنوان IP العائم: عرض عناوين IP العائمة حجز عنوان IP عائم جديد لمنطقة تعيين عنوان IP عائم جديد إلى Droplet إعادة تعيين عنوان IP عائم إلى Droplet إزالة تعيين عنوان IP عائم حذف عنوان IP عائم يُمكنك إيجاد التوثيق الكامل للواجهة البرمجية في DigitalOcean والتي تُغطّي موضوع عناوين IP العائمة هنا لن ندخل في كافّة تفاصيل إدارة عناوين IP العائمة عبر الواجهة البرمجية، ولكن سنشرح مثالًا سريعًا، وهو مثال حول استخدام الأمر curl لإعادة تعيين عنوان IP عائم موجود إلى Droplet: curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer your_api_token' -d '{ "type": "assign", "droplet_id": 5000 }' "https://api.digitalocean.com/v2/floating_ips/8.8.8.9/actions" بافتراض أنّك وضعت القيم الحقيقيّة لديك بدلًا من "your_api_token"، "5000"، و"8.8.8.9"، والتي تُشير على الترتيب إلى رمز الواجهة البرمجية API token، مُعرِّف (ID) الـ Droplet الهدف، وعنوان IP العائم الذي تريد إعادة تعيينه، فسيقوم هذا الأمر بتوجيه 8.8.8.9 إلى Droplet الخاصّة بك ذات المُعرِّف 5000. الآن وقد فهمت كيفية إدارة عناوين IP العائمة عبر لوحة التحكّم والواجهة البرمجية، فلنتحدّث عن كيفيّة تواصل عناوين IP العائمة مع الـ Droplets. عناوين IP الرّابطة للـ Droplet تتدفّق حركة مرور بيانات الشّبكة بين عنوان IP العائم والـ Droplet عبر IP رابط (anchor IP)، وهو عبارة عن عنوان IP يُمثِّل كناية Alias إلى واجهة الشبكة العامّة للـ Droplet (وهي eth0)، ولهذا السبب يجب أن تملك الـ Droplet عنوان IP رابط قبل أن نستطيع تعيين عنوان IP عائم لها، جميع الـ Droplets التي تمّ إنشاؤها بعد تاريخ 20 أكتوبر 2015 تمتلك تلقائيًّا عنوان IP رابط، إن كانت لديك Droplet قبل هذا التاريخ تستطيع إضافة عنوان IP رابط عن طريق متابعة التعليمات في درس كيفيّة تمكين عناوين IP العائمة على الـ Droplet القديمة. يكون عنوان IP الرّابط قابلًا للنفاذ فقط على الـ Droplet التي ينتمي لها ولعنوان IP العائم المُحدَّد لهذه الـ Droplet، السبب وراء هذا هو أنّ عنوان IP الرّابط هو المكان الذي ينبغي أن تربط إليه أي خدمات عامّة تريد جعلها عالية التوفّر عبر عنوان IP عائم، على سبيل المثال إن كنت تستخدم عنوان IP عائم ضمن إعداد موازن حمل فعّال/غير فعّال فيجب عليك ربط خدمات موازن الحمل إلى عنوان IP الرّابط للـ Droplet التي تنتمي لها حتّى تكون قابلة للنفاذ فقط من خلال عنوان IP العائم، يمنع هذا المستخدمين من استعمال عناوين IP العامّة للـ Droplets كي يتجاوزوا عنوان IP العائم. كيف تحصل على عنوان IP الرّابط أبسط طريقة لمعرفة عنوان IP الرابط للـ Droplet لديك هو استخدام خدمة البيانات الوصفيّة للـ Droplet، يُمكِن الحصول على معلومات عنوان IP الرّابط، مثل أي بيانات مُخزَّنة ضمن البيانات الوصفيّة، عن طريق تشغيل أمر curl أساسي من سطر الأوامر للـ Droplet. يسترجع هذا الأمر عنوان IP الرّابط للـ Droplet: curl -s http://169.254.169.254/metadata/v1/interfaces/public/0/anchor_ipv4/address يسترجع هذا الأمر قناع الشّبكة netmask لعنوان IP الرّابط للـ Droplet: curl -s http://169.254.169.254/metadata/v1/interfaces/public/0/anchor_ipv4/netmask يسترجع هذا الأمر بوابّة عنوان IP الرّابط للـ Droplet: curl -s http://169.254.169.254/metadata/v1/interfaces/public/0/anchor_ipv4/gateway الطريقة الأخرى للبحث عن معلومات حول عنوان IP الرّابط هو استخدام الأمر ip addr: ip addr show eth0 يكون عنوان IP الرّابط (وهو 10.17.0.47 في هذا المثال) موجودًا تحت معلومات عنوان IP العام الاعتياديّة كما يلي: [secondary_output Example output:] 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 04:01:7d:c2:a2:01 brd ff:ff:ff:ff:ff:ff inet 159.203.90.122/20 brd 159.203.95.255 scope global eth0 valid_lft forever preferred_lft forever inet 10.17.0.47/16 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::601:7dff:fec2:a201/64 scope link valid_lft forever preferred_lft forever البيانات الوصفيّة لعنوان IP العائم تستطيع الـ Droplet أن تعرف إذا ما تمّ تعيين عنوان IP عائم لها عن طريق خدمة البيانات الوصفيّة، فإن كان موجودًا يُمكِن استرجاع هذا العنوان، تكون هذه المعلومات مفيدة جدًّا عند تنفيذ إعداد خادوم عالي التوفّر. يُمكِن استرجاع هذه التفاصيل كأي معلومات مُخزّنة ضمن البيانات الوصفيّة عن طريق تنفيذ أمر curl أساسي من واجهة سطر الأوامر للـ Droplet. حتى ترى إن كانت الـ Droplet تملك عنوانًا IP عائمًا مُخصّصًا لها قم بتشغيل هذا الأمر: curl -s http://169.254.169.254/metadata/v1/floating_ip/ipv4/active إن كان هنالك عنوان IP عائم لها فبإمكانك استرجاعه عن طريق هذا الأمر: curl -s http://169.254.169.254/metadata/v1/floating_ip/ipv4/ip_address يُمكنك إيجاد الوثائق الكاملة للبيانات الوصفيّة للـ Droplet هنا. كيفيّة تنفيذ إعداد عالي التوفّر بعد أن فهمت آليّة عمل عناوين IP العائمة في DigitalOcean فقد أصبحت مستعدًّا للبدء ببناء إعداد خادوم عالي التوفّر. Corosync و Pacemaker: تزوّدنا Corosync و Pacemaker بحزمة برمجيّات عنقوديّة cluster يمكن استخدامها لإنشاء إعداد عالي التوفّر فعّال، توفّر Corosync طبقة رسائل تمكّن الخادوم من التواصل كعنقود واحد، بينما تعطينا Pacemaker القدرة على التحكّم بكيفيّة تصرف هذا العنقود. Keepalived: إنّ Keepalived هي عبارة عن خدمة تستطيع مراقبة الخواديم أو العمليّات من أجل تنفيذ بيئة عالية التوفّر على بنيتك التحتيّة. Heartbeat: تزوّدنا Heartbeat بوظيفة عنقوديّة يمكن استخدامها مع عناوين IP العائمة لتنفيذ إعداد خادوم عالي التوفّر فعّال\غير فعّال، لا يُنصَح باستخدام هذا الإعداد لأغراض عمليّة، ولكنّه يشرح بشكل فعّال كيفيّة تطبيق إعداد خادوم عالي التوفّر بسيط حالات أخرى لاستخدام عنوان IP عائم من الطرق الأخرى للاستفادة من عناوين IP العائمة هو نشر أزرق-أخضر Blue-green deployment، وهي استراتيجيّة لتوزيع ونشر البرمجيّات تعتمد على الحفاظ على بيئتين منفصلتين قادرتين على الإنتاج، وتُسمّى أزرق وأخضر لغرض سهولة النقاش، يتحدّث هذا الدّرس حول كيفيّة استخدام توزيع أزرق-أخضر على DigitalOcean لتبسيط عمليّة نقل المستخدمين إلى إصدار جديد من برمجيّتك. الخاتمة ينبغي أن تكون قد فهمت الآن كيفيّة عمل عناوين IP العائمة في DigitalOcean وكيف يُمكِن استخدامها لإنشاء بنية تحتيّة لخادوم عالي التوفّر. ترجمة -وبتصرّف- لـ How To Use Floating IPs on DigitalOcean لصاحبه Mitchell Anicas
  3. إن بروتوكول ضبط المضيف ديناميكيًّا (Dynamic Host Configuration Protocol) هو خدمة شبكة تُفعِّل إسناد إعدادات الشبكة إلى الحواسيب المضيفة من خادوم بدلًا من إعداد كل مضيف شبكي يدويًا؛ حيث لا تملك الحواسيب المُعدَّة كعملاءٍ لخدمة DHCP أيّة تحكم بالإعدادات التي تحصل عليها من خادوم DHCP. إن أشهر الإعدادات الموفَّرة من خادوم DHCP إلى عملاء DHCP تتضمن: عنوان IP وقناع الشبكة.عنوان IP للبوابة الافتراضية التي يجب استخدامها.عناوين IP لخواديم DNS التي يجب استعمالها.لكن يمكن أيضًا أن يوفِّر خادوم DHCP خاصيات الضبط الآتية: اسم المضيف.اسم النطاق.خادوم الوقت.خادوم الطباعة.من مزايا استخدام DHCP هو أن أي تغييرٍ في إعدادات الشبكة -على سبيل المثال تغيير عنوان خادوم DNS- سيتم في خادوم DHCP فقط، وسيُعاد ضبط جميع مضيفي الشبكة في المرة القادمة التي سيَطلُبُ فيها عملاء DHCP معلومات الإعدادات من خادوم DHCP؛ ويُسهِّل استعمال خادوم DHCP إضافة حواسيب جديدة إلى الشبكة، فلا حاجة للتحقق من توفر عنوان IP؛ وسيقل أيضًا التضارب في حجز عناوين IP. يمكن أن يُوفِّر خادوم DHCP إعدادات الضبط باستخدام الطرق الآتية: التوزيع اليدوي (Manual allocation) عبر عنوان MACتتضمن هذه الطريقة استخدام DHCP للتعرف على عنوان مميز لعتاد كل كرت شبكة متصل إلى الشبكة، ثم سيوفِّر إعدادات ضبطٍ ثابتةً في كل مرة يتصل فيها عميل DHCP إلى خادوم DHCP باستخدام بطاقة الشبكة المعيّنة مسبقًا؛ وهذا يضمن أن يُسنَد عنوان معيّن إلى بطاقةٍ شبكيّةٍ معيّنة وذلك وفقًا لعنوان MAC. التوزيع الديناميكي (Dynamic allocation)سيُسنِد خادوم DHCP -في هذه الطريقة- عنوان IP من مجموعة من العناوين (تسمى pool، أو في بعض الأحيان range أو scope) لمدة من الزمن (يسمى ذلك بالمصطلح lease) التي تُضبَط في الخادوم، أو حتى يخبر العميل الخادوم أنه لم يعد بحاجةٍ للعنوان بعد الآن؛ وسيحصل العملاء في هذه الطريقة على خصائص الضبط ديناميكيًّا وفق المبدأ «الذي يأتي أولًا، يُخدَّم أولًا»؛ وعندما لا يكون عميل DHCP متواجدًا على الشبكة لفترة محددة، فسينتهي وقت الضبط المخصص له، وسيعود العنوان المسند إليه إلى مجموعة العناوين لاستخدامه من عملاء DHCP الآخرين؛ أي أنَّه في هذه الطريقة، يمكن «تأجير» أو استخدام العنوان لفترة من الزمن؛ وبعد هذه المدة، يجب أن يطلب العميل من الخادوم أن يعيد تأجيره إياه. التوزيع التلقائي (Automatic allocation)سيُسنِد خادوم DHCP -في هذه الطريقة- عنوان IP إسنادًا دائمًا إلى جهاز معين، ويتم اختيار هذه العنوان من مجموعة العناوين المتوفرة؛ يُضبَط عادةً DHCP لكي يُسنِد عنوانًا مؤقتًا إلى الخادوم، لكن يمكن أن يسمح خادوم DHCP بزمن تأجير «لا نهائي». يمكن اعتبار آخر طريقتين «تلقائيتَين»، ﻷنه في كل حالة يُسنِد خادوم DHCP العنوان دون تدخل إضافي مباشر، الفرق الوحيد بينهما هو مدة تأجير عنوان IP؛ بكلماتٍ أخرى، هل ستنتهي صلاحية عنوان العميل بعد فترة من الزمن أم لا. يأتي أوبنتو مع خادوم وعميل DHCP، الخادوم هو dhcpd‏ (dynamic host configuration protocol daemon)، والعميل الذي يأتي مع أوبنتو هو dhclient، ويجب أن يثبَّت على جميع الحواسيب التي تريدها أن تُعَدّ تلقائيًا، كلا البرنامجين سهلُ التثبيت، وسيبدآن تلقائيًا عند إقلاع النظام. التثبيتاكتب الأمر الآتي في مِحَث الطرفية لتثبيت dhcpd: sudo apt-get install isc-dhcp-serverربما تحتاج إلى تغيير الضبط الافتراضي بتعديل ملف ‎/etc/dhcp/dhcpd.conf ليلائم احتياجاتك والضبط الخاص الذي تريده. ربما تحتاج أيضًا إلى تعديل ‎/etc/default/isc-dhcp-server لتحديد البطاقات الشبكية التي يجب أن «يستمع» (listen) إليها عفريت dhcpd. ملاحظة: رسالة عفريت dhcpd تُرسَل إلى syslog، انظر هناك لرسائل التشخيص. الضبطربما سيربكك ظهور رسالة خطأ عند انتهاء التثبيت، لكن الخطوات الآتية ستساعدك في ضبط الخدمة: في الحالات الأكثر شيوعًا، كل ما تريد أن تفعله هو إسناد عناوين IP إسنادًا عشوائيًا، يمكن أن يُفعَل ذلك بالإعدادات الآتية: # minimal sample /etc/dhcp/dhcpd.conf default-lease-time 600; max-lease-time 7200; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.150 192.168.1.200; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "mydomain.example"; }نتيجة الإعدادات السابقة هي ضبط خادوم DHCP لإعطاء العملاء عناوين IP تتراوح من 192.168.1.150 إلى 192.168.1.200، وسيُأجَّر عنوان IP لمدة 600 ثانية إذا لم يطلب العميل وقتًا محددًا؛ عدا ذلك، فسيكون وقت الإيجار الأقصى للعنوان هو 7200 ثانية؛ و«سينصح» الخادومُ العميلَ أن يستخدم 192.168.1.254 كبوابة افتراضية، و 192.168.1.1 و 192.168.1.2 كخادومَيّ DNS. عليك إعادة تشغيل خدمة dhcpd بعد تعديل ملف الضبط: sudo service isc-dhcp-server restartمصادرتوجد بعض المعلومات المفيدة في صفحة ويكي أوبنتو «dhcp3-server».للمزيد من خيارات ملف ‎/etc/dhcp/dhcpd.conf، راجع صفحة الدليل man dhcpd.conf.مقالة في ISC:‏ «dhcp-server».ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Dynamic Host Configuration Protocol - DHCP. حقوق الصورة البارزة: Designed by Freepik.
  4. إن بروتوكول التحكم في نقل البيانات (Transmission Control Protocol) وبروتوكول الإنترنت (Internet Protocol) المسمى اختصارًا TCP/IP هو معيار يضم مجموعة بروتوكولاتٍ مطورةً في نهاية السبعينات من القرن الماضي من وكالة مشاريع أبحاث الدفاع المتقدمة (Defense Advanced Research Projects Agency‏ [DARPA])، كطرق للتواصل بين مختلف أنواع الحواسيب وشبكات الحواسيب؛ إن بروتوكول TCP/IP هو العصب المحرك للإنترنت، وهذا ما يجعله أشهر مجموعة بروتوكولات شبكيّة على وجه الأرض. TCP/IPالمكونان الرئيسيان من مكونات TCP/IP يتعاملان مع مختلف نواحي شبكة الحاسوب؛ بروتوكول الإنترنت -جزء «IP» من TCP/IP- هو بروتوكول عديم الاتصال (connectionless) يتعامل مع طريقة توجيه (routing) الرزم الشبكية مستخدمًا ما يسمى «IP Datagram» كوحدة رئيسية للمعلومات الشبكية؛ تتكون IP Datagram من ترويسة، يتبعها رسالة. إن بروتوكول التحكم في نقل البيانات هو «TCP» من TCP/IP، ويُمكِّن مضيفي الشبكة من إنشاء اتصالاتٍ يستطيعون استخدامها لتبادل مجاري البيانات (data streams)؛ ويَضمَن أيضًا بروتوكول TCP أن البيانات التي أُرسِلَت بواسطة تلك الاتصالات ستُسَلَّم وتصل إلى مضيف الشبكة المُستقبِل كما أُرسِلَت تمامًا وبنفس الترتيب من المُرسِل. ضبط TCP/IPيتكون ضبط TCP/IP من عدِّة عناصر التي يمكن أن تُغيَّر بتعديل ملفات الإعدادات الملائمة، أو باستخدام حلول مثل خادوم «بروتوكول ضبط المضيف الديناميكي» (Dynamic Host Configuration Protocol‏ [DHCP])، الذي يمكن أن يُضبَط لتوفير إعدادات TCP/IP صالحة لعملاء الشبكة تلقائيًا، يجب أن تُضبط قيم تلك الإعدادات ضبطًا صحيحًا لكي تساعد في عمل الشبكة عملًا سليمًا في نظام أوبنتو عندك. عناصر الضبط الخاصة ببروتوكول TCP/IP ومعانيها هي: عنوان IP: هو سلسة نصية فريدة يُعبَّر عنها بأربع مجموعات من أرقام تتراوح بين الصفر (0)، ومئتان وخمسٌ وخمسون (255)، مفصولةٌ بنقط، وكل أربعة أرقام تمثل ثمانية (8) بتات من العنوان الذي يكون طوله الكامل اثنان وثلاثون (32) بتًا، تُسمى هذه الصيغة باسم «dotted quad notation». قناع الشبكة: قناع الشبكة الفرعية (أو باختصار: قناع الشبكة [netmask])، هو قناع ثنائي يفصل قسم عنوان IP المهم للشبكة، عن قسم العنوان المهم للشبكة الفرعية (Subnetwork)؛ على سبيل المثال، في شبكة ذات الفئة C‏ (Class C network)، قناع الشبكة الافتراضي هو 255.255.255.0، الذي يحجز أول ثلاثة بايتات من عنوان IP للشبكة، ويسمح لآخر بايت من عنوان IP أن يبقى متاحًا لتحديد المضيفين على الشبكة الفرعية. عنوان الشبكة: يمثل عنوان الشبكة (Network Address) البايتات اللازمة لتمثيل الجزء الخاص من الشبكة من عنوان IP، على سبيل المثال، المضيف صاحب العنوان 12.128.1.2 في شبكة ذات الفئة A يستطيع استخدام 12.0.0.0 كعنوان الشبكة، حيث يمثل الرقم 12 البايت الأول من عنوان IP (جزء الشبكة)، وبقية الأصفار في البايتات الثلاثة المتبقية تمثل قيم مضيفين محتملين في الشبكة؛ وفي مضيف شبكة يستخدم عنوان IP الخاص 192.168.1.100 الذي يستخدم بدوره عنوان الشبكة 192.168.1.0 الذي يحدد أول ثلاثة بايتات من شبكة ذات الفئة C والتي هي 192.168.1، وصفرًا الذي يُمثِّل جميع القيم المحتملة للمضيفين على الشبكة. عنوان البث: عنوان البث (Broadcast Address) هو عنوان IP يسمح لبيانات الشبكة بأن تُرسَل إلى كل المضيفين معًا في شبكة محلية بدلًا من إرسالها لمضيف محدد. العنوان القياسي العام للبث لشبكات IP هو 255.255.255.255، لكن لا يمكن استخدام هذا العنوان لبث الرسائل لكل مضيف على شبكة الإنترنت، لأن الموجهات (routers) تحجبها؛ ومن الملائم أن يُضبَط عنوان البث لمطابقة شبكة فرعية محددة، على سبيل المثال، في شبكة خاصة ذات الفئة C،‏ أي 192.168.1.0، يكون عنوان البث 192.168.1.255؛ تُولَّد رسائل البث عادةً من بروتوكولات شبكيّة مثل بروتوكول استبيان العناوين (Address Resolution Protocol‏ [ARP])، وبروتوكول معلومات التوجيه (Routing Information Protocol‏ [RIP]). عنوان البوابة: إن عنوان البوابة (Gateway Address) هو عنوان IP الذي يمكن الوصول عبره إلى شبكة معينة أو إلى مضيف معين على شبكة؛ فإذا أراد أحد مضيفي الشبكة التواصل مع مضيفٍ آخر، ولكن المضيف الآخر ليس على نفس الشبكة، فيجب عندئذٍ استخدام البوابة؛ في حالات عديدة، يكون عنوان البوابة في شبكةٍ ما هو الموجه (router) على تلك الشبكة، الذي بدوره يُمرِّر البيانات إلى بقية الشبكات أو المضيفين كمضيفي الإنترنت على سبيل المثال. يجب أن تكون قيمة عنوان البوابة صحيحةً، وإلا فلن يستطيع نظامك الوصول إلى أي مضيف خارج حدود شبكته نفسها. عنوان خادوم الأسماء: عناوين خادوم الأسماء (Nameserver Addresses) تمثل عناوين IP لخواديم خدمة أسماء المضيفين DNS، التي تستطيع استبيان (resolve) أسماء مضيفي الشبكة وتحويلها إلى عناوين IP؛ هنالك ثلاث طبقات من عناوين خادوم الأسماء، التي يمكن أن تُحدَّد بترتيب استخدامها: خادوم الأسماء الرئيسي (Primary)، وخادوم الأسماء الثانوي (Secondary)، وخادوم الأسماء الثلاثي (Tertiary)، ولكي يستطيع نظامك استبيان أسماء أسماء مضيفي الشبكة وتحويلها إلى عناوين IP الموافقة لهم، فيجب عليك تحديد عناوين خادوم الأسماء الذي تثق به لاستخدامه في ضبط TCP/IP لنظامك؛ في حالاتٍ عديدة، تُوفَّر هذه العناوين من موزع خدمة شبكتك، لكن هنالك خواديم أسماء عديدة متوفرة مجانًا للعموم، كخواديم Level3‏ (Verizon) بعناوين IP تتراوح بين 4.2.2.1 إلى 4.2.2.6. تنبيه: إن عنوان IP، وقناع الشبكة، وعنوان الشبكة، وعنوان البث، وعنوان البوابة تُحدَّد عادةً بالإمكان الملائمة لها في ملف ‎/etc/network/interfaces، عناوين خادوم الأسماء تُحدَّد عادة في قسم nameserver في ملف ‎/etc/resolve.conf، للمزيد من المعلومات، راجع صفحة الدليل لكلٍ من interfaces و resolv.conf على التوالي وبالترتيب، وذلك بكتابة الأوامر الآتية في محث الطرفية: للوصول إلى صفحة دليل interfaces، اكتب الأمر الآتي: man interfacesوللوصول إلى صفحة دليل resolv.conf: man resolv.confتوجيه IPيمثِّل توجيه IP‏ (IP Routing) الوسائل اللازمة لتحديد واكتشاف الطرق في شبكات TCP/IP بالإضافة إلى تحديد بيانات الشبكة التي ستُرسَل، يَستخدِم التوجيه ما يسمى «جداول التوجيه» (routing tables) لإدارة تمرير رزم بيانات الشبكة من مصدرها إلى وجهتها؛ وذلك عادة بواسطة عقد شبكيّة وسيطة تسمى «موجهات» (routers)؛ وهنالك نوعان رئيسيان من توجيه IP: التوجيه الثابت (static routing)، والتوجيه الديناميكي (dynamic routing). يشتمل التوجيه الثابت على إضافة توجيهات IP يدويًّا إلى جدول توجيهات النظام، ويتم ذلك عادةً بتعديل جدول التوجيهات باستخدام الأمر route؛ يتمتع التوجيه الثابت بعدِّة مزايا تميزه عن التوجيه الديناميكي، كسهولة استخدامه في الشبكات الصغيرة، وقابلية التوقع (يُحسَب جدول التوجيهات مسبقًا دائمًا، وهذا ما يؤدي إلى استخدام نفس المسار في كل مرة)، ويؤدي إلى حِملٍ قليل على الموجهات الأخرى ووصلات الشبكة نتيجةً لعدم استخدام بروتوكولات التوجيه الديناميكي؛ لكن يواجه التوجيه الثابت بعض الصعوبات أيضًا؛ فعلى سبيل المثال، التوجيهُ الثابتُ محدودٌ للشبكات الصغيرة، ولا يمكن أن يتوسَّع توسعًا سهلًا، ويصعب عليه التأقلم مع نقصان أو فشل معدات الشبكة في الطريق المسلوك نتيجةً للطبيعة الثابتة لذاك الطريق. يُعتَمَد على التوجيه الديناميكي في الشبكات الكبيرة ذات احتمالات عديدة للطرق الشبكية المسلوكة من المصدر إلى الوجهة، وتُستخدَم بروتوكولات توجيه خاصة، كبروتوكول معلومات الموجه (Router Information Protocol [RIP])، الذي يتولَّى أمر التعديلات التلقائية في جداول التوجيه، مما يجعل من التوجيه الديناميكي أمرًا ممكنًا؛ وللتوجيه الديناميكي مزايا عدّة عن التوجيه الثابت، كإمكانية التوسع بسهولة، والتأقلم مع نقصان أو فشل معدات الشبكة خلال الطريق المسلوك في الشبكة، بالإضافة إلى الحاجة لإعداداتٍ قليلةٍ نسبيًا لجداول التوجيه، ﻷن الموجهات تعلم عن وجود وتوفر بعضها بعضًا؛ وهذه الطريقة تمنع حدوث مشاكل في التوجيه نتيجةً لخطأ بشري في جداول التوجيه. لكن التوجيه الديناميكي ليس كاملًا، ويأتي مع عيوب، كالتعقيد، والحِمل الزائد على الشبكة بسبب التواصل بين الموجهات، التي لا تفيد المستخدمين المباشرين فوريًا، وتستهلك التراسل الشبكي. بروتوكولَي TCP و UDPإن بروتوكول TCP هو بروتوكول مبني على الاتصال (connection-based)، ويوفر آليةً لتصحيح الأخطاء، وضمانةً لتسليم البيانات عبر ما يُعرَف بالمصطلح «التحكم في الجريان» (flow control)، يُحدِّد التحكم في الجريان متى يجب إيقاف نقل البيانات، وإعادة إرسال الرزم التي أُرسِلَت سابقًا والتي واجهة مشاكل كالتصادمات (collisions)؛ إذ أنَّ التأكيد على الوصول الدقيق والكامل للبيانات عبر بروتوكول TCP هو أمر جوهري في عملية تبادل البيانات المهمة كالتحويلات في قواعد البيانات. أما بروتوكول UDP‏ (User Datagram Protocol) على الجهة الأخرى، هو بروتوكول عديم الاتصال (connectionless)، الذي نادرًا ما يتعامل مع عمليات نقل البيانات المهمة لأنه يفتقر إلى التحكم في جريان البيانات أو أيّة طريقة أخرى للتأكد من توصيل البيانات عمليًا؛ لكن بروتوكول UDP يُستخدَم استخدامًا شائعًا في التطبيقات كتدفق (streaming) الصوت والصورة، حيث أنه أسرع بكثير من TCP ﻷنه لا يحتوي على آليةٍ لتصحيح الأخطاء والتحكم في الجريان، وفي الأماكن التي لا يهم فيها فقدان بعض الرزم الشبكية كثيرًا. بروتوكول ICMPإن بروتوكول ICMP‏ (Internet Control Messaging Protocol) هو إضافة إلى بروتوكول الإنترنت (IP) الذي يُعرَّف في RFC‏‏ (Request For Comments) ذي الرقم ‎#792 ويدعم التحكم في احتواء الرزم الشبكية والأخطاء ورسائل المعلومات، يُستخدَم بروتوكول ICMP بتطبيقات شبكيّة كأداة ping، التي تستطيع تحديد إذا ما كان جهازٌ ما متاحًا على الشبكة، أمثلة عن رسالة الخطأ المُعادَة من ICMP -التي تكون مفيدةً لمضيفي الشبكة وللأجهزة كالموجهات- تتضمن رسالتَي «Destination Unreachable» و «Time Exceeded». العفاريتالعفاريت (Daemons) هي تطبيقات نظام خاصة التي تعمل عادةً عملًا دائمًا في الخلفية، وتنتظر طلبياتٍ للوظائف التي توفرها من التطبيقات الأخرى، يتمحور عمل العديد من العفاريت حول الشبكة، وبالتالي فإن عددًا كبيرًا من العفاريت التي تعمل في الخلفية في نظام أوبنتو تُوفِّر وظائف تتعلق بالشبكة؛ بعض الأمثلة عن عفاريت الشبكة تتضمن «عفريت بروتوكول نقل النص الفائق» (HyperText Transport Protocol Daemon‏ [httpd])، الذي يوفر وظيفة خادوم الويب؛ و «عفريت الصدفة الآمنة» (Secure SHell Daemon‏ [sshd])، الذي يوفر طريقةً للدخول الآمن عن بُعد وإمكانيات نقل الملفات؛ و «عفريت بروتوكول الوصول إلى رسائل الإنترنت» (Internet Message Access Protocol Daemon‏ [imapd]) الذي يوفر خدمات البريد الإلكتروني... مصادرتتوفر صفحات دليلٍ لبروتوكولي TCP و IP التي تحتوي على معلومات قيمّة.راجع أيضًا المصدر الآتي من IBM‏: «TCP/IP Tutorial and Technical Overview».مصدرٌ أخرى هو كتاب «TCP/IP Network Administration» من O'Reilly.ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Networking TCP/IP.
  5. تتكون الشبكات من جهازين أو أكثر، كأنظمة الحواسيب والطابعات وغيرها من المعدات المتعلقة بها والتي يمكن أن تتصل إما باستخدام كبل فيزيائي أو بالروابط اللاسلكية؛ وذلك لمشاركة وتوزيع المعلومات بين الأجهزة المتصلة. يوفر هذا الدرس معلوماتٍ عامة وأخرى متخصصة تتعلق بالشبكات، وتتضمن لمحةً عن مفاهيم الشبكة، ونقاشًا مفصَّلًا عن بروتوكولات الشبكة الشائعة. تأتي أوبنتو مع عدد من الأدوات الرسومية لضبط أجهزة الشبكة، هذه السلسلة موجَّهة لمدراء الخواديم، وستركِّز على إدارة الشبكة من سطر الأوامر. بطاقات إيثرنتتُعرَّف بطاقات إيثرنت (Ethernet interfaces) في النظام باستخدام الاسم الاصطلاحي ethX، حيث تمثل X قيمةً رقميةً، وتُعرَّف أول بطاقة إيثرنت بالاسم eth0، والثانية بالاسم eth1، وهَلُّمَ جرًا للبقية، حيث تُرتَّب ترتيبًا رقميًا. التعرف على بطاقات إيثرنتيمكنك استخدام الأمر ifconfig كما يلي للتعرف على جميع بطاقات إيثرنت بسرعة: ifconfig -a | grep eth eth0 Link encap:Ethernet HWaddr 00:15:c5:4a:16:5aبرمجيةٌ أخرى تساعدك في التعرف على جميع بطاقات الشبكة المتوفرة في نظامك هي الأمر lshw؛ يُظهِر الأمر lshw في المثال الآتي بطاقة إيثرنت واحدة باسمها المنطقي eth0، مع معلومات الناقل (bus) وتفاصيل التعريف وكل الإمكانيات المدعومة: sudo lshw -class network *-network description: Ethernet interface product: BCM4401-B0 100Base-TX vendor: Broadcom Corporation physical id: 0 bus info: pci@0000:03:00.0 logical name: eth0 version: 02 serial: 00:15:c5:4a:16:5a size: 10MB/s capacity: 100MB/s width: 32 bits clock: 33MHz capabilities: (snipped for brevity) configuration: (snipped for brevity) resources: irq:17 memory:ef9fe000-ef9fffffالأسماء المنطقية لبطاقات إيثرنتتُعرَّف الأسماء المنطقية للبطاقات في الملف ‎/etc/udev/rules.d/70-persistent-net.rules، إذا أردت التحكم في بطاقة التي ستحصل على اسم منطقي معين، فابحث عن السطر الذي يطابق عنوان MAC الفيزيائي للبطاقة، وعدِّل قيمة NAME=ethX إلى الاسم المنطقي المطلوب؛ أعد إقلاع النظام لتطبيق التغيرات التي أجريتها. إعدادات بطاقة إيثرنتإن ethtool هو برنامج يُظهِر ويعدِّل إعدادات بطاقة إيثرنت كالمفاوضة التلقائية (auto-negotiation)، وسرعة المنفذ، ونمط duplex (اتصال باتجاه وحيد، أم باتجاهين)، وخاصية الاستيقاظ عند وصول إشارة معينة من شبكة WoL‏ (Wake-on-LAN)؛ هذا البرنامج غير مثبَّت افتراضيًا، لكنه متوفر في المستودعات للتثبيت: sudo apt-get install ethtoolما يلي مثالٌ عن عرض الميزات المدعومة، وضبط إعدادات بطاقة إيثرنت: sudo ethtool eth0 Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on Supports Wake-on: g Wake-on: d Current message level: 0x000000ff (255) Link detected: yesالتغيرات التي أُجريت بالأداة ethtool هي تغيرات مؤقتة، وستزول بعد إعادة الإقلاع، إذا أردت الحفاظ على تلك الخيارات، فأضف أمر ethtool الذي تريده إلى عبارة pre-up (التي تُنفَّذ عند تهيئة البطاقة وقبل استخدامها)، في ملف الإعدادات ‎/etc/network/interfaces. يوضح المثال الآتي كيف يمكن ضبط إعدادات بطاقة مُعرَّفة على أنها eth0 بسرعة منفذ تساوي 1000Mb/s وتعمل في نمط full duplex (اتصال باتجاهين): auto eth0 iface eth0 inet static pre-up /sbin/ethtool -s eth0 speed 1000 duplex fullملاحظة: على الرغم من أن المثال السابق يستخدم الطريقة «static»، إلا أنه يعمل مع الطرق الأخرى أيضًا، كاستخدام DHCP؛ فالغرض من المثال السابق هو توضيح المكان الصحيح لوضع عبارة pre-up في ملف إعدادات البطاقة وحسب. عناوين IPسيشرح القسم الآتي طريقة إعداد عناوين IP لنظامك، وضبط البوابة (gateway) الافتراضية اللازمة للتواصل على الشبكة المحلية والإنترنت. إسناد مؤقت لعنوان IPيمكن استخدام الأوامر القياسية عند الضبط المؤقت للشبكة، كالأمر ip و ifconfig و route التي يمكنك إيجادها في أغلب أنظمة تشغيل غنو/لينُكس؛ تسمح لك هذه الأوامر بضبط الإعدادات التي تأخذ حيز التنفيذ فوريًا، لكنها ليست دائمة؛ أي أنها لن تبقى مُفعَّلةً بعد إعادة التشغيل. لضبط عنوان IP مؤقتًا، استخدم الأمر ifconfig بالطريقة الآتية: لتعديل عنوان IP وقناع الشبكة الفرعية (subnet mask) لمطابقة متطلبات الشبكة: sudo ifconfig eth0 10.0.0.100 netmask 255.255.255.0للتأكد من ضبط عنوان IP للبطاقة eth0: ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:15:c5:4a:16:5a inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::215:c5ff:fe4a:165a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:466475604 errors:0 dropped:0 overruns:0 frame:0 TX packets:403172654 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2574778386 (2.5 GB) TX bytes:1618367329 (1.6 GB) Interrupt:16لضبط البوابة الافتراضية، يمكنك استخدام الأمر route بالطريقة الآتية: حيث عليك تغيير عنوان البوابة الافتراضية لمطابقة متطلبات شبكتك: sudo route add default gw 10.0.0.1 eth0يمكنك استخدام الأمر route بهذه الطريقة للتأكد من ضبط البوابة الافتراضية: route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0 0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0إذا كنت تحتاج إلى DNS لإعدادات شبكتك المؤقتة، فيمكنك إضافة عناوين IP لخواديم DNS في الملف ‎/etc/resolv.conf، لكن ليس من المستحسن عمومًا تعديل الملف ‎/etc/resolv.conf مباشرةً، لكن هذا ضبط مؤقت وغير دائم؛ يوضح المثال الآتي طريقة إضافة عناوين خادومَي DNS إلى ملف ‎/etc/resolv.conf؛ التي يجب أن تُبدَّل إلى الخواديم الملائمة لشبكتك؛ شرحٌ مطول عن ضبط إعدادات عميل DNS سيأتي في القسم الآتي. nameserver 8.8.8.8 nameserver 8.8.4.4إذا لم تعد بحاجة لهذا الضبط وتريد مسح كل إعدادات IP من بطاقة معينة، فعليك استخدام الأمر ip مع الخيار flush كما يلي: ip addr flush eth0ملاحظة: عملية إزالة ضبط IP باستخدام الأمر ip لا تمسح محتويات ملف ‎/etc/resolv.conf، فعليك حذف أو تعديل محتوياته يدويًا. إسناد ديناميكي لعنوان IP (عميل DHCP)لإعداد الخادوم لكي يستخدم DHCP لإسناد العنوان ديناميكيًا، فأضف الطريقة dhcp إلى عبارة «عائلة العنوان» (address family) في inet للبطاقة المطلوبة في ملف ‎/etc/network/interfaces، يفترض المثال الآتي أنك تُعِدّ بطاقة إيثرنت الأولى المعرَّفة باسم eth0: auto eth0 iface eth0 inet dhcpبإضافة ضبط للبطاقة كما في المثال السابق، يمكنك أن تفعِّل البطاقة باستخدام الأمر ifup الذي يهيّء DHCP باستخدام dhclient. sudo ifup eth0لتعطيل البطاقة يدويًا، يمكنك استخدام الأمر ifdown، الذي بدوره يهيّء عملية الإطلاق (release) الخاصة بنظام DHCP، ويوقف عمل البطاقة. sudo ifdown eth0إسناد عنوان IP ثابتلإعداد نظامك لاستخدام عنوان IP ثابت، فاستخدم الطريقة static في عبارة «عائلة العنوان» في inet للبطاقة المطلوبة في ملف ‎/etc/network/interfaces، يفترض المثال الآتي أنك تُعِدّ بطاقة إيثرنت الأولى المعرَّفة باسم eth0، عدِّل العنوان (address) وقناع الشبكة (netmask) والبوابة (gateway) إلى القيم التي تتطلبها شبكتك: auto eth0 iface eth0 inet static address 10.0.0.100 netmask 255.255.255.0 gateway 10.0.0.1بعد إضافة ضبط للبطاقة كما في المثال السابق، يمكنك أن تفعِّل البطاقة باستخدام الأمر ifup: sudo ifup eth0يمكنك استخدام الأمر ifdown لتعطيل البطاقة يدويًا: sudo ifdown eth0بطاقة loopbackإن بطاقة loopback (التي هي المضيف المحلي)، معرَّفة من النظام بالاسم lo، ولها عنوان IP الافتراضي 127.0.0.1، ويمكن أن تُعرَض باستخدام الأمر ifconfig: ifconfig lo lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2718 errors:0 dropped:0 overruns:0 frame:0 TX packets:2718 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:183308 (183.3 KB) TX bytes:183308 (183.3 KB)افتراضيًا، يجب أن يكون هنالك سطران في ملف ‎/etc/network/interfaces مسؤولان عن ضبط بطاقة loopback تلقائيًا، ومن المستحسن أن تبقي على الإعدادات الافتراضية ما لم يكن لك غرضٌ محدد من تغييرها؛ مثال على السطرين الافتراضيين: auto lo iface lo inet loopbackاستبيان الأسماءإن استبيان الأسماء (Name resolution) الذي يتعلق بشبكات IP، هو عملية ربط عناوين IP إلى أسماء المضيفين، جاعلًا من السهل تمييز الموارد على الشبكة؛ سيشرح القسم الآتي كيف يُعَدّ النظام لاستبيان الأسماء باستخدام DNS، وسجلات أسماء المضيفين الثابتة (static hostname records). ضبط إعدادات عميل DNSتقليديًا، كان الملف ‎/etc/resolv.conf ملف ضبطٍ ثابتٍ لا تحتاج لتعديله إلا نادرًا، أو كان يُعدَّل تلقائيًا عبر عميل DHCP؛ أما حاليًا فيمكن أن يُبدِّل الحاسوب بين شبكةٍ وأخرى من حين لآخر، وأصبح يُستخدَم إطار العمل resolvconf لتَتَبُّع هذه التغيرات وتحديث إعدادات استبيان الأسماء تلقائيًا؛ في الواقع هو وسيط بين البرامج التي توفر معلومات استبيان الأسماء، والتطبيقات التي تحتاج إلى تلك المعلومات. يُغَذَّى Resolvconf بالمعلومات عبر مجموعة من السكربتات التي تتعلق بإعدادات بطاقة الشبكة، الفرق الوحيد بالنسبة للمستخدم هي أن أيّة تعديلات حدثت على ملف ‎/etc/resolv.conf ستُفقَد عندما تُعاد كتابته كل مرة يُشغِّل فيها حدثٌ ما resolvconf؛ فبدلًا من ذلك، يستخدم resolvconf عميل DHCP وملف ‎/etc/network ‎/interfaces لتوليد قائمة بخواديم الأسماء والنطاقات ليضعها في ملف ‎/etc/resolv.conf، الذي هو الآن وصلةٌ رمزية (symlink): /etc/resolv.conf -> ../run/resolvconf/resolv.confلضبط استبيان الأسماء، أضف عناوين IP لخواديم الأسماء الملائمة لشبكتك في ملف ‎/etc/network ‎/interfaces، يمكنك إضافة قائمة بحث اختيارية للاحقة DNS ‏(DNS suffix search-lists) لمطابقة أسماء نطاقات الشبكة، ولكل خيار ضبط resolv.conf صالح، يمكنك تضمين سطر واحد يبدأ باسم الخيار مع السابقة dns‎-‎ مما ينتج ملفًا شبيهًا بالملف الآتي: iface eth0 inet static address 192.168.3.3 netmask 255.255.255.0 gateway 192.168.3.1 dns-search example.com dns-nameservers 192.168.3.45 192.168.8.10يمكن أن يُستخدَم الخيار search مع عدِّة أسماء نطاقات، وستُلحَق طلبيات DNS في التسلسل الذي أُدخِلَت به؛ على سبيل المثال، ربما يكون لشبكتك نطاقات فرعية يجب البحث فيها؛ نطاق رئيسي «example.com»، ونطاقين فرعيين «sales.example.com»، و «dev.example.com». إذا كنت تريد البحث في عدِّة نطاقات فرعية، فسيكون ملف الضبط كالآتي: iface eth0 inet static address 192.168.3.3 netmask 255.255.255.0 gateway 192.168.3.1 dns-search example.com sales.example.com dev.example.com dns-nameservers 192.168.3.45 192.168.8.10إذا كنت تحاول عمل ping للمضيف ذي الاسم server1، فسيطلب النظام تلقائيًا طلبية DNS لاسم النطاق الكامل (Fully Qualified Domain Name [‏FQDN])، في الترتيب الآتي: server1.example.comserver1.sales.example.comserver1.dev.example.comإذا لم يُعثَر على أيّة مطابقات، فسيزودنا خادوم DNS بنتيجة «notfound»، وستفشل طلبية DNS. أسماء المضيفين الثابتةيمكن تعريف أسماء ثابتة للمضيفين تربط بين اسم المضيف وعنوان IP في ملف ‎/etc/hosts؛ المدخلات في ملف hosts ستسبق طلبيات DNS افتراضيًا، هذا يعني لو أن نظامك حاول تفسير اسم مضيف، وكان هذا الاسم يطابق مدخلةً في ملف ‎/etc/hosts، فلن يحاول البحث في سجلات DNS؛ وفي بعض حالات الاستخدام -وخصوصًا عندما لا يُتَطَّلب الوصول إلى الإنترنت- يمكن أن تتعرف الخواديم الموصولة بعدد قليل من الموارد الشبكية على بعضها باستخدام أسماء المضيفين الثابتة بدلًا من DNS. المثال الآتي هو ملف hosts، حيث نجد عددًا من الخواديم المحلية قد عُرِّفَت بأسماء مضيفين بسيطة، وأسماءٍ بديلة، وأسماء النطاقات الكاملة المكافئة لها: 127.0.0.1 localhost 127.0.1.1 ubuntu-server 10.0.0.11 server1 vpn server1.example.com 10.0.0.12 server2 mail server2.example.com 10.0.0.13 server3 www server3.example.com 10.0.0.14 server4 file server4.example.comملاحظة: لاحظ أن كل خادوم من الخواديم في المثال السابق قد أُعطي أسماءً بديلةً بالإضافة إلى أسمائها الأساسية، وأسماء النطاقات الكاملة؛ حيت رُبِطَ server1 مع الاسم vpn، و server2 يُشار إليه بالاسم mail، و server3 بالاسم www، و server4 بالاسم file. ضبط تبديل خدمة الأسماءالترتيب الذي يتبّعه نظامك لاختيار طريقةٍ لتحويل أسماء المضيفين إلى عناوين IP مُتَحَّكَمٌ به من ملف إعدادات «مُبَدِّل خدمة الأسماء» (Name Service Switch‏ [NSS]) الموجود في ‎/etc/nsswitch.conf؛ وكما ذُكِرَ في القسم السابق، فإن أسماء المضيفين الثابتة المعرَّفة في ملف ‎/etc/hosts تسبق استخدام سجلات DNS؛ المثال الآتي يحتوي على السطر المسؤول عن ترتيب البحث عن أسماء المضيفين في ملف ‎/etc/nsswitch.conf: hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4files: المحاولة أولًا للحصول على العناوين من ملف أسماء المضيفين الثابتة في ‎/etc/hosts.mdns4_minimal: محاولة الحصول على العناوين باستخدام Mulitcast DNS.[NOTFOUND=return]: تعني أن أي جواب يكون notfound أتى من عملية mdns4_minimal السابقة سيُعامَل بموثقية، ولن يحاول النظام الاستمرار في محاولة الحصول على جواب.dns: تمثل طلبية Unicast DNS قديمة.mdns4: تمثل طلبية Mulitcast DNS.لتعديل ترتيب طرائق استبيان الأسماء (name resolution) المذكورة آنفًا، يمكنك بكل بساطة تعديل قيمة عبارة «hosts» للقيمة التي تريدها؛ على سبيل المثال، لو كنت تفضل استخدام Unicast DNS القديم، بدلًا من Mulitcast DNS، فتستطيع تغيير تلك السلسلة النصية في ملف ‎ /etc/nsswitch.confكما يلي: hosts: files dns [NOTFOUND=return] mdns4_minimal mdns4إنشاء الجسورإنشاء جسر (bridge) بين عدة بطاقات شبكية هو ضبط متقدم جدًا، لكنه مفيد كثيرًا في حالات عديدة، أحد تلك الحالات هو إنشاء جسر بين عدة اتصالات شبكية، ثم استخدام جدار ناري لترشيح (filter) ما يمر بين قسمين من الشبكة؛ حالةٌ أخرى هي استخدام إحدى البطاقات لتمكين «الآلات الوهمية» (Virtual Machines) من الوصول إلى الشبكة الخارجية؛ يشرح المثال الآتي الحالة الأخيرة. قبل ضبط إعدادات الجسر، عليك تثبيت حزمة bridge-utils، أدخِل الأمر الآتي في الطرفية لتثبيت هذه الحزمة: sudo apt-get install bridge-utilsثم اضبط الجسر بتعديل ملف ‎/etc/network/interfaces: auto lo iface lo inet loopback auto br0 iface br0 inet static address 192.168.0.10 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp offملاحظة: أدخِل القيم الملائمة لبطاقتك الفيزيائية، والشبكة عندك. ثم شغِّل بطاقة الجسر: sudo ifup br0يجب أن تعمل بطاقة الجسر تلقائيًا الآن، تُوفِّر الأداة brctl معلوماتٍ حول حالة الجسر، وتتحكم بالبطاقات التي تكوِّن جزءًا من الجسر؛ راجع صفحة الدليل man brctl لمزيد من المعلومات. مصادرهنالك وصلات في صفحة ويكي أوبنتو «Network» تشير إلى مقالات تشرح الضبط المتقدم جدًا للشبكة.صفحة الدليل الخاصة بالبرمجية resolvconf فيها بعض المعلومات عن resolvconf.صفحة دليل man interfaces تحتوي على تفاصيل عن خياراتٍ أخرى لملف ‎/etc/network ‎/interfaces.صفحة دليل man dhclient تحتوي على تفاصيل عن الخيارات الأخرى لضبط إعدادات عميل DHCP.للمزيد من المعلومات حول ضبط عميل DNS، راجع صفحة الدليل man resolver؛ راجع أيضًا الفصل السادس من الكتاب المنشور من O'Reilly‏: «Linux Network Administrator's Guide»؛ الذي هو مصدر جيد للمعلومات حول ضبط resolver، وخدمة الأسماء.لمزيد من المعلومات حول الجسور، راجع صفحة الدليل man brctl، وصفحة Networking-bridge في موقع مؤسسة لينُكس (Linux Foundation).ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Network Configuration.
  6. تقودنا معرفتنا بالأعداد الثنائية إلى التعرف على بنية عناوين IP وأفضل الطرق لحجزها؛ إذ سنشرح في هذا الدرس العمليات على الشبكات ذات الفئات (classful) أو عديمة الفئات (classless)، بما في ذلك استعمال الشبكات الفرعية (subnets)؛ وسنشرح مستخدمين أمثلةً واقعيةً تصف عملية حساب عناوينIP للمضيفين؛ وسنشرح أيضًا استعمال قناع الشبكة الفرعية (subnet mask)، وكيف تُستعمَل من الموجِّهات. وستتاح لك الفرصة للتدرب على العمليات على قناع الشبكة الفرعية بعناوين IP ذات الفئات A، و B، و C. مخطط الشبكات المسطحةعندما نتحدث عن التوجيه، فنميل إلى التفكير بتمرير الرزم الشبكية إلى الوجهات البعيدة؛ وأول ما سيطرأ ببالنا هي شبكات WAN والإنترنت؛ لكن من المنطقي استعمال التوجيه في شبكة الحرم الجامعي مثلًا، أو حتى في شبكات محلية صغيرة لخدمة غرض تقسيم البيانات التراسليّة (traffic segmentation)؛ فإن لم يكن لديك موجه في شبكتك، فهذا يعني أننا نتحدث عن شبكة مسطحة (flat) حيث فيها كل الأجهزة متصلة إلى نفس «القطعة» (segment) المنطقية؛ تُمثِّل القطعة المنطقية مجالًا إذاعيًا، ولهذا السبب ستتشارك جميع الأجهزة في شبكةٍ مسطحةٍ مجالَ الإذاعة نفسه مما يعني أنَّها ستشاهد جميع الرسائل الإذاعية المُرسَلة من بقية الأجهزة، مما يؤثِّر على أداء الشبكة. المُكوِّن الوحيد الذكي في آلية ترشيح الرزم الشبكية هي المبدِّلات التي تعمل في الطبقة الثانية، التي تمرِّر الرزم الشبكيّة بناءً على عناوين MAC؛ وتلك العناوين ليست ذاتُ بنيةٍ هيكليةٍ مما يجعل الشبكة «مسطحة». وكلما أضفت أجهزةً إلى الشبكة، فسيقل مستوى الأداء؛ يمكن أن تُستعمَل الموجِّهات في مثل هذه الحالات لتقسيم الشبكة إلى عدِّة مجالاتٍ إذاعية أو شبكاتٍ فرعية. الشبكات الفرعيةالمزايا التي سنحصل عليها لا ترتبط بتحسين الأداء فحسب، بل عندما تُقطِّع الشبكة إلى شبكاتٍ فرعيّة مختلفة، فسيقل تراسل البيانات الإجمالي، وستمثِّل كل شبكة فرعية مجالًا إذاعيًا مختلفًا، ولهذا فلن تستطيع البيانات الإذاعية القادمة من قسم «الهندسة» -في هذا المثال- الوصول إلى قسم «التصنيع». يمنع الموجِّه مرور الرسائل الإذاعية؛ لكن هنالك المزيد من الميزات التي تأتي من الشبكات الفرعية؛ إذ يُمكِّنك تُقسيم الشبكة إلى قطعٍ صغيرة من اتباع منهجية «فرِّق تسد» لتسهيل الإدارة؛ ويُمكِّنك أيضًا من تطبيق سياسات (polices) مختلفة خاصة بكل قطعة من قطع الشبكة؛ إذ يُطبِّق الموجِّه السياسة المُعتمَدة، لأنه يتحكم بمرور البيانات من شبكةٍ فرعيةٍ إلى أخرى، وهذا يؤدي أيضًا إلى عزل مشاكل الشبكات؛ فلو حدث عطبٌ ما في شبكةٍ فرعيةٍ، فلن يكون له تأثيرٌ يُذكر على بقيّة الشبكات. تتعلق المزايا الأخرى بالأمان؛ فلن تستطيع هجمات الحرمان من الخدمة (denial of service) الوصول إلى الشبكات الفرعية الأخرى إن كان يعمل الموجِّه كجدارٍ ناريٍ بينهم. وبغض النظر عن سبب تقسيمك للشبكة إلى شبكاتٍ فرعية، فيجب أن نُسنِد لكل شبكةٍ فرعيةٍ مُعرِّفًا فريدًا (subnet ID) ثم سيكون للمضيفين في تلك الشبكة الفرعية «مُعرِّف مضيف» (host ID) فريد في عنوان IP. ماذا يفعل قناع الشبكة الفرعيةكيف نستطيع معرفة أي قسم من عنوان IP خاصٌ بالشبكة أو خاصٌ بالمضيف؟ في الشبكات ذات الفئات (classful)، ستخبرنا الفئة أيّة بايتات مخصصة لمعرِّف الشبكة وأيّة بايتات مخصصة للمضيف؛ وعندما نُنشِئ شبكة فرعية لعنوان IP ذي فئةٍ معيّنة، فإننا «نسرق» بعض البتات من قسم المضيف من العنوان ونجعلها جزءًا من قسم الشبكة الفرعية في العنوان؛ وبهذا تصبح لدينا «طبقة» جديدة في الهيكلية، إذ لدينا شبكة مُعرَّفة عبر فئة (class) ثم شبكة فرعية ثم المضيف؛ حيث نُقسِّم الشبكات إلى شبكاتٍ فرعية ثم ستحتوي تلك الشبكات الفرعية المضيفين. تلك الهيكلية شبيهة بنظام الترقيم الهاتفي؛ لدينا رمز الدولة ثم رمز المدينة ثم أرقام الهواتف؛ وهذه بيئة عديمة الفئات؛ أما في بيئة ذات فئات، فإن الفئة لا تخبرنا أيّ جزء من العنوان مخصص للشبكة أو للشبكة الفرعية أو للمضيفين؛ إذ أنَّ تلك المعلومات موجودة في قناع الشبكة الفرعية، الذي يخبرنا بآلية تقسيم العناوين. وفي هذا السياق، لا يشبه قناع الشبكة الفرعية الأقنعة التي يرتديها الأولاد الصغار؛ وإنما مَثَلُه كمَثَلِ نظارةٍ لتنظر إلى العناوين بشكلٍ مختلف. وهو أداة قياس تخبرك بطول قسم الشبكة من العنوان، ثم قسم الشبكة الفرعية، ثم ما بقي مُخصصٌ للمضيفين. الشبكات الفرعية والمضيفون المحتملون في شبكة ذات الفئة Cسيُستعمَل قناع الشبكة الفرعية من المضيفين للتعرف على بيانات التراسل التي تخرج من شبكتهم الفرعية، وسيُستعمَل أيضًا من الموجِّهات للتعرف على الشبكات والشبكات الفرعية ليكون قادرًا على تمرير الرزم الشبكيّة بينها. وإذا ابتغينا الدقة، القناع ما هو إلا آليةٌ لاقتراض البتات، فالمثال هنا يتحدث عن شبكة ذات الفئة C؛ تخبرنا الفئة C أنَّ أول ثلاثة بايتات من العنوان تُمثِّل قسم الشبكة، بينما يمثِّل آخر بايت قسم المضيفين؛ وعندما نُنشِئ شبكةً فرعيةً فستبقى بايتات الشبكة ثابتةً، وسنحتاج إلى استخدام بعض البايتات المخصصة للمضيفين للشبكة الفرعية؛ القاعدة العامة هنا هي أننا «نقترض» البايتات، بكلامٍ آخر، كلما أخذنا بايتات أكثر من قسم المضيف، كلما قلّ عدد المضيفين الذي يمكن أن يتواجدوا في الشبكة الفرعية، لكن سيزداد بذلك عدد الشبكات الفرعية التي سنُنشِئها؛ حيث يعتمد عدد الشبكات الفرعية وعدد المضيفين على عدد البتات التي سنقترضها، الذي سيكون من قوى الأساس 2. table{border: 1px solid black; border-collapse: collapse} table, th, td{border: 1px solid black;} th{background-color: white;}عدد البتات المُقتَرَضة (s) عدد الشبكات الفرعية المحتملة (2s) عدد البتات الباقية في قسم مُعرِّف المضيف (8 - s = h) عدد المضيفين المحتملين في كل شبكة فرعية (2h - s) 1 2 7 128 2 4 6 64 3 8 5 32 4 16 4 16 5 32 3 8 6 64 2 4 7 128 1 2 في هذا المثال عن الفئة C، يمكننا أن نفرض عدد البتات التي سنقترضها (رمزنا لها بالرمز S)، ثم سيعطينا ذلك H الذي هو عدد المضيفين، إذ أنَّ H هو ناتج ‎8-S. تذكَّر أنَّه كلما اقترضنا بتات للشبكات الفرعية، كلما قلَّ عدد المضيفين الذي يمكن أن يصبحوا جزءًا منها، وأنَّ عدد البتات الكلي الذي يمكنك اقتراضه في شبكات ذات الفئة C هو 8. إذا استعملنا بتًا وحيدًا، فيمكننا تمثيل «2 للأس 1» كعدد للشبكات الفرعية التي حاصلها هو شبكتان فرعيتان؛ مما يبقي لنا 7 بتات للمضيف، وهذا يعني 126 احتمالًا مختلفًا لعناوين المضيفين في كل شبكة فرعية؛ لاحظ أنَّ 2 للأس 7 تُعطي 128، لكن هنالك عنوانان محجوزان يُمثِّلان الشبكة نفسها وعنوان الإذاعة. ستحصل على نتائج مشابهة إذ اقترضت المزيد من البتات؛ لكن تذكر أنَّه كلما اقترضت بتاتٍ أكثر، كلما قل عدد المضيفين في شبكتك الفرعية. الشبكات الفرعية والمضيفون المحتملون في شبكة ذات الفئة Bلدينا المزيد من البتات في قسم المضيف لنقترض منها في الفئة B؛ حيث أنَّ الطريقة مشابهة جدًا لما شرحناه أعلاه؛ ففي هذا المثال سنقترض -مثلًا- 4 بتات (إذ لدينا 16 شبكة فرعية في شبكةٍ ذات الفئة B) مما يُبقي لدينا 12 بت للمضيفين؛ وفي هذه المرة لدينا 16 بت ناقص 4 يساوي 12؛ و2 للقوة 12 تُنتِج 4096؛ ثم سنطرح عنوانين محجوزين مما يُبقي 4094 مضيفًا في كل شبكة فرعية. عدد البتات المُقتَرَضة (s) عدد الشبكات الفرعية المحتملة (2s) عدد البتات الباقية في قسم مُعرِّف المضيف (8 - s = h) عدد المضيفين المحتملين في كل شبكة فرعية (2h - s) 1 2 15 32766 2 4 14 16382 3 8 13 8190 4 16 12 4094 5 32 11 2046 6 64 10 1022 7 128 9 510 ... ... ... ... الشبكات الفرعية والمضيفون المحتملون في شبكة ذات الفئة Aوالأمر سيانٌ للشبكات ذات الفئة A؛ لكننا نتملك هذه المرة عددًا أكبر من البتات لنقترضها، وهذه الفئة هي أكثر الفئات مرونةً فيما يتعلق بموضوع الشبكات الفرعية، وهذا هو سبب اشتهار الشبكة 10 (عنوان من الفئة A للشبكات الخاصة [private]) كأكثر عناوين الشبكات الخاصة استعمالًا. وبهذا يمكننا أن نقترض البايت الثاني بأكمله لتمثيل الشبكة الفرعية، وتبقى لدينا إمكانية وصل عدِّة آلاف من المضيفين في كل شبكة فرعية. عدد البتات المُقتَرَضة (s) عدد الشبكات الفرعية المحتملة (2s) عدد البتات الباقية في قسم مُعرِّف المضيف (8 - s = h) عدد المضيفين المحتملين في كل شبكة فرعية (2h - s) 1 2 23 8388606 2 4 22 4194302 3 8 21 2097150 4 16 20 1048574 5 32 19 524286 6 64 18 262142 7 128 17 131070 ... ... ... ... آلية عمل القناع في المضيفينسيستخدم المضيفون قناع الشبكة الفرعية للتعرف على الشبكة التي يتواجدون فيها من ناحية هيكلية عنوان IP؛ ثم سيقارنون تلك الشبكة مع عنوان الوجهة للرزم الشبكية المُرسَلة منهم؛ فإن طابق عنوانُ الوجهة الشبكةَ التي يتواجدون فيها اعتمادًا على قيمة القناع، فسيحاولون إرسال طلبية ARP لمحاولة الحصول على عنوان MAC للوجهة، ثم سيمررون الرزم مباشرةً إلى الوجهة في الشبكة الفرعية المحلية. أما لو لم تتطابق الشبكة في المصدر والوجهة، فهذا يعني أنَّ الوجهة في شبكةٍ أخرى وسنحتاج إلى عنوان IP للموجِّه لتمرير الرزم إلى الوجهة البعيدة؛ وعنوان الموجه ما هو إلا البوابة الافتراضية المضبوطة في كل جهاز من أجهزة الشبكة. كيف تستعمل الموجهات قناع الشبكة الفرعيةآلية عمل قناع الشبكة الفرعية هي ذاتها في الموجِّهات، لكن الموجِّهات ستستعمل هذه المعلومات بطريقةٍ مختلفة، إذ أنها تستلم الرزم الشبكيّة لكي تمررها إلى الوجهة المطلوبة؛ وستستخدم القناع لمقارنة عنوان IP الوجهة بعناوين الشبكات الموجودة في جدول التوجيه. أعراف تسمية قناع الشبكة الفرعية هي / ثم رقم، الذي يخبر الموجِّه أيّة بايتات ستمثِّل قسم الشبكة من العنوان؛ الرمز ‎/24 يعني أنَّ أول 3 بايتات أو أول 24 بت هي قسم الشبكة من العنوان. يحاول المضيف A -في هذا المثال- إرسال رزم شبكيّة إلى الوجهة 10.3.1.23، ويستعمل ذاك المضيف القناع ‎/24 لمقارنة مُعرِّف شبكته الفرعية التي هي 10.1.1، لكن وجد أنَّ أول 3 بايت من مُعرِّف الشبكة الفرعية للوجهة التي هي 10.3.1 لا تتطابق، لهذا سيُرسِل المضيف A الرزم إلى الموجِّه؛ ثم سيستعمل الموجِّه معلومات القناع لمطابقة الشبكة الفرعية الوجهة في جدول التوجيه الخاص به، وكما هو ظاهر في المخطط أعلاه، الشبكات الموجودة في جدول التوجيه هي شبكات ‎/24 لذلك سيُقارِن الموجِّه أول 3 بايتات مع عنوان IP للوجهة كي يرى إن كانت هنالك مُدخَلة تُطابِق الوجهة. ثم سيكمل الموجِّه عمله بتمرير الرزم إلى المنفذ الموافق للوجهة الذي هو Fa0/0؛ ومن هنا تصل الرزمة إلى الموجِّه B، الذي يجري العملية ذاتها لتوصيل الرزمة إلى الشبكة الفرعية المتصلة به مباشرةً. خطة تطبيق الشبكات الفرعيةعلينا التأكد من عدِّة أشياء قبل أن نُقسِّم شبكاتنا إلى شبكاتٍ فرعية؛ فعلينا أولًا تخطيط لاستراتيجية التقسيم، ثم نقترض عدد البتات الملائم من قسم المضيف في العنوان لتمثيل الشبكات الفرعية؛ وبعد اكتمال مرحلة التصميم، سنحتاج إلى حجز وإسناد الشبكات الفرعية إلى مختلف القطع الشبكيّة. إذ أنَّ قناع الشبكة الفرعية هو أداةٌ تُخبِرُ الأجهزةَ والمضيفين والموجهات كيف ستقرأ وتُمرِّر الرزم الشبكيّة إلى الوجهة. القيم الثمانية لقناع الشبكة الفرعيةأصبحنا الآن نعرف لماذا نحتاج إلى قناع الشبكة الفرعية، لكن كيف يبدو وكيف نصممه؟ حسنًا، القناع ما هو إلا سلسلة مكونة من 4 بايتات شبيهة بعنوان IP؛ أي بكلامٍ آخر، سلسلة من 32 بت، إما 1 أو 0. لذلك يشابه القناع عناوين IP لكنه ليس منهم؛ فهو يأتي مع عناوين IP للسماح لك بالتعرف على قسم المضيف وقسم الشبكة من العنوان؛ وفي هذا السياق، كل 1 في القناع يعني أنَّ البت الموافق له في عنوان IP هو جزء من قسم الشبكة من العنوان؛ وكل 0 في القناع يُشير إلى أنّ البت الموافق له في عنوان IP سيكون من قسم المضيف. تذكر أننا قلنا أن قناع الشبكة الفرعية هو آلية «اقتراض»؛ فسننقل (shift) القناع الافتراضي إلى اليمين ونقترض البتات من قسم المضيفين من العنوان، وهذا سيُنتِج ميزةً محوريةً في قناع الشبكة، ألا وهي أنَّ الواحدات (1) متتالية ومتعاقبة دومًا، وكذلك الأصفار. عندما ننتقل إلى الأسفل في الرسم التوضيحي السابق، نجد أنَّ تتالي الأرقام منطقي بعد تعلمنا للتحويل من النظام الثنائي إلى النظام العشري. وفي النهاية، سترى أنَّ وجود الرقم 1 في جميع البتات يساوي الرقم 255، الذي هو أكبر قناع للشبكة الفرعية، أو تمثيل للقناع كعدد عشري لأي بايت؛ وهذا هو سبب كون ناتج 24 بت متتالي يحتوي على 1 هو قناع الشبكة الفرعية 255.255.225.0؛ أصبح الأمر مربكًا الآن، لنلقِ نظرةً على بعض الأمثلة كي تتضح بعض الأمور. الأقنعة الافتراضية للشبكات الفرعيةفي حالة عناوين IP من الفئة A ‏(10.0.0.0) يُعرِّف القناع الافتراضي -الذي يخبرنا ما هي فئة العنوان- قسم الشبكة من العنوان الذي سيكون البايت الأول كله واحدات (1) وبقية البايتات الثلاثة كلها أصفار (0)، الذي قيمته هي 255.0.0.0 في النظام العشري. لكن ما هي ‎/8؟ نحن البشر كسالى! فبدلًا من كتابة 255.0.0.0 نود أن نختصر ونكتب ‎/8 الذي يعني أنَّه في القناع 8 بتات متتالية قيمتها 1 والباقي أصفار. عنوان من الفئة A (عشري) 10.0.0.0 عنوان من الفئة A (ثنائي) 00001010.00000000.00000000.00000000 القناع الافتراضي للفئة A (ثنائي) 11111111.00000000.00000000.00000000 القناع الافتراضي للفئة A (عشري) 255.0.0.0 طول اللاحقة الافتراضي ‎/8 عنوان من الفئة B (عشري) 172.16.0.0 عنوان من الفئة B (ثنائي) 10101100.00010000.00000000.00000000 القناع الافتراضي للفئة B (ثنائي) 11111111.11111111.00000000.00000000 القناع الافتراضي للفئة B (عشري) 255.255.0.0 طول اللاحقة الافتراضي ‎/16 عنوان من الفئة C (عشري) 192.168.42.0 عنوان من الفئة C (ثنائي) 11000000.10101000.00101010.00000000 القناع الافتراضي للفئة C (ثنائي) 11111111.11111111.11111111.00000000 القناع الافتراضي للفئة C (عشري) 255.255.255.0 طول اللاحقة الافتراضي ‎/24 عندما نُنشِئ الشبكات الفرعية، فإننا نبدأ من اليسار وننتقل إلى اليمين عند تعريف عدد البتات التي ستكون قيمتها 1 التي تحدد قيمة معرِّف الشبكة؛ وبمعرفتنا أنَّ قناع الشبكة الفرعية فيه 32 بت، فكل ما علينا معرفته هو عدد البتات التي قيمتها 1، لأننا نعلم أنَّ بقية البتات ستكون سلسلة متتالية من الأصفار؛ والمِثلُ أيضًا لفئات B و C؛ فالقناع الافتراضي للفئة B ‏(172.16.0.0) -الذي يخبرنا أنَّ أول بايتين من الفئة يحتويان على واحدات- هو 255.255.0.0 أو ‎/16؛ والأمر سيانٌ لعناوين الفئة C، التي يكون قناعها هو ‎/24. آلية استعمال الشبكات الفرعيةحان الوقت الآن لإلقاء نظرة على الحصول على عنوان IP من هيئة تسجيل العناوين مثل IANA ‏(Internet Assigned Numbers Authority) ثم تقسيم ذاك العنوان إلى عدِّة شبكات فرعية. إذ نحصل بادئ الأمر على شبكةٍ واحدة، لكننا نحتاج إلى أكثر من شبكة، لأنه من غير المحتمل أن يكون لدينا مخطط مسطح (flat) للشبكة. عدد القطع في شبكتنا سيعطينا فكرة عن عدد الشبكات الفرعية التي سنحتاج لها. وقد تعلمنا في هذا الدرس أن قناع الشبكة هو أداة اقتراض، فلنمضي قدمًا ولنحسب عدد البتات التي سنحتاج لها لتمثيل عدد الشبكات الفرعية التي نحتاج. تذكَّر أن كل بت نقترضه من قسم المضيف سيقلل من عدد المضيفين؛ فكلما ازداد عدد الشبكات الفرعية، كلما نقص عدد المضيفين في كل شبكة. وبعد أخذ ما سبق بعين الاعتبار، فسنُنشِئ قناعًا جديدًا الذي سيكون سلسلةً من الأصفار والواحدات المتتالية؛ ثم سيكون على عاتقنا تحويله إلى قيمة عشرية وتمثيله بصيغةٍ شبيهةٍ بعناوين IP بوضع نقطةٍ بين كل بايتين. بعد إنشائنا للقناع الجديد، حان الآن الوقت لتعريف الشبكات الفرعية؛ أي بكلامٍ آخر، هذه العملية شبيهة بتوليد أرقام المناطق في أنظمة الهواتف؛ فلو قارنا الشبكة التي أعطتنا إياها هيئة تسجيل العناوين بالرمز الدولي للاتصال، فستكون الخطوة التالية هي إنشاء رموز للمناطق من رمز الدولة؛ وسنحجز لكل قطعة شبكية مُعرِّف شبكة فرعية مختلف في الشبكة، ثم سيحصل كل مضيف في تلك الشبكة على مُعرِّف خاص به... وبعد انتهاء التخطيط، فسيحين الوقت للذهاب إلى كل مضيف وجهاز وموجِّه ثم تطبيق مخططنا لعناوين IP مع القناع الملائم. ترجمة -وبتصرّف- للمقال Constructing an IP Network Addressing Scheme.
  7. icnd1/ccent 100-101

    لفهم دور طبقة الإنترنت في تجميعة بروتوكول TCP/IP، فعلينا أن نفهم وظائف بروتوكول TCP/IP أولًا؛ باختصار، إن IP مسؤولٌ عن تمرير الرزم من المصدر إلى الوجهة في الشبكة؛ تكون الرزم هي وحدة البيانات (data unit) لطبقة الإنترنت في TCP/IP؛ وهي وحدات تتضمِّن البيانات التي ستُرسَل بالإضافة إلى معلوماتٍ كافية لكل رزمة لكي تُعامَل بشكلٍ مستقل وتُوجَّه في الشبكة. تتضمن آلية التوجيه اختيار أفضل طريق للوصول من المصدر إلى الوجهة؛ ويجب الآن تعريف الوجهات والمصدر كأجهزة ضمن الشبكة، ولهذا فإن الوظيفة الثانية لبروتوكول الإنترنت هي توفير عناوين لتلك الأجهزة، وتلك العناوين يجب أن تكون هيكليّة، لأننا سنناقش إرسال البيانات من الجهاز 1 في الشبكة 1 إلى الجهاز 1 في الشبكة 2؛ وبالطبع ما سبق هو مجرد مثال عن آلية تعريف الأجهزة بشكلٍ هيكلي. الأمر الثالث هو أنَّ بروتوكول الإنترنت ذو طبيعة عديمة الاتصال (connectionless)؛ أي أنه لا يتطلب إنشاء اتصال، فمثالٌ عن إنشاء اتصال هو رفع سماعة الهاتف وطلب الرقم قبل أن نتمكن من التحدّث؛ أما الطريقة التي يعمل بها IP تُشابِه إرسال الأحرف عبر البريد العادي، حيث ستُرسَل كلماتنا ونتمنى أنها ستصل إلى وجهتها، أي أنَّ البروتوكول نفسه لن يوفِّر آلياتٍ لاسترداد البيانات أو لضمان وصولها؛ فمن واجبات بقية الطبقات توفيرُ الوثوقية (reliability)؛ وهذا يعتمد على نوعية التطبيق؛ فمثلًا، تتطلب عملية نقل ملفٍ وثوقيةً وتأكيدًا أن البيانات ستصل إلى الوجهة كما أُرسِلَت، أما نقل الصوت في الوقت الحقيقي (real-time) فسيستفيد من السرعة أكثر من الوثوقية. إحدى وظائف IP كبروتوكول هي تعريف العناوين والتعرّف على الأجهزة ضمن هيكلية الشبكات. لنلقِ الآن نظرةً إلى بنية عناوين IP؛ إن عناوين IP هي مُعرِّفاتٌ بطول 32 بت التي تميّز كل جهاز على شبكة IP، أي أن على الجهاز أن يملك عنوان IP فريد إذا أراد التواصل مع بقية الأجهزة على الشبكة. أي لو أردنا الاتصال من الجهاز 1 في الشبكة 1 إلى الجهاز 2 في الشبكة 2، فيجب أن تملك تلك الأجهزة عناوين IP؛ وفي الواقع، تتألف عناوين IP من مكوِّنَين هما مُعرِّف المضيف (host ID) الذي يُسنَد للأجهزة المتصلة بالشبكة، ومُعرِّف الشبكة (network identifier) الذي يُحدِّد القسم أو الشبكة التي تنتمي تلك الأجهزة إليها. وهذا شبيهٌ بطريقة تنظيم الشوارع والمباني هيكليًّا، حيث لديك أرقامٌ للمنازل والمباني، لكنها تنتمي إلى نفس الشارع. ترويسة IPيجب أن تحتوي الرزم على مصدرها ووجهتها عند محاولة إرسالها من جهازٍ إلى آخر، وهذه هي كيفية توجيه الرزم في شبكةٍ من الأجهزة؛ حيث تنظر تلك الأجهزة إلى عنوان الوجهة وتحسب أفضل طريق للوصول إلى هناك. تُضاف هذه البيانات على شكل ترويسة في وحدة نقل البيانات (data unit) لبروتوكول طبقة الإنترنت؛ ولأن البروتوكول المستخدم هنا هو بروتوكول IP؛ فإن وحدة نقل البيانات المستعملة هي الرزم (packets)، ولأن الهيكلية مُضمَّنة في العناوين، فتتمكن الأجهزة مثل الموجَّهات من فهم تلك الهيكلية وتوجيه الرزم توجيهًا صحيحًا. وذلك مثل مبدِّلات الهاتف الأرضي (telephone switch)، على سبيل المثال، ستتمكّن من تحديد رمز المنطقة بالنظر إلى أول ثلاثة أرقام من رقم الهاتف؛ وبطريقةٍ مشابهة، ستنظر الموجَّهات إلى الشبكة الهدف وستتمكن من توجيه الرزم الشبكية توجيهًا صحيحًا إلى تلك الوجهة حتى دون الحاجة إلى قراءة عنوان الوجهة بأكمله. تحتوي بعض مكونات ترويسة IP أيضًا على نوع الخدمة لتحديد «جودة الخدمة» (QoS) وزمن بقاء الرزمة «على قيد الحياة» لكي لا تبقى تَتَنَقَّل في الشبكة إلى ما لا نهاية... يمثِّل هذا الرقم «تاريخًا للصلاحية» لتلك الرزمة. صيغة عناوين IPأما ما يتعلق ببنية عناوين IP؛ فيتألّف العنوان من سلسلةٍ من 32 بتًا تتكون من الرقمين 0 و1؛ ويُشكِّل جزءٌ من هذا العنوان «مُعرِّف المضيف» (host ID)، وجزءٌ آخرٌ سيُشكِّل «مُعرِّف الشبكة» (network ID). وتكون الصيغة الثنائية (binary) مثاليةً للموجهات، لكنها ليست ملائمةً للبشر، لذلك سنحتاج إلى شيءٍ أبسط وقابل للتذكر بسهولة، ولهذا السبب ستُقسَّم السلسلة ذات 32 بتًا إلى أربع ثمانيّات (octet) أو بايتات؛ حيث يتكوّن كل بايت من 8 بت، ثم ستحوَّل الصيغة الثنائية إلى أرقامٍ عشرية، وستُشرَح عملية التحويل تلك لاحقًا في هذه الدورة التدريبية وسنُفصِّلها فيما بعد. لذا، ستُتحوَّل السلسلة ذات 32 بتًا إلى 4 بايت، التي ستصبح بدورها أرقامًا عشرية؛ ثم ستُفصَل تلك الأرقامُ بنقطٍ، مما سيُنتِج الصيغة العشرية المفصولة بنقط (dotted decimal notation) التي نسميها «عناوين IP». السؤال الآن هو: كيف نُميّز جزءَ الشبكة في العنوان من جزء المضيف؟ في بدايات استخدام الإنترنت، خرجت هيئة IANA (اختصار للعبارة Internet Assigned Numbers Authority) بمخططٍ لتقسيم العناوين إلى فئات، حيث تُحدِّد الفئة عددَ البتات المخصصة لمعرِّف الشبكة وعدد البتات المخصصة للمضيفين؛ تُعرَّف فئات العناوين وتُميَّز بسلسلة بتات تبدأ من أول ثمانيّة، ولهذا تستطيع تحديد فئة الشبكة بالنظر إلى أول ثمانيّة؛ فجميع العناوين التي تبدأ بصفر ستكون من فئة العناوين A ‏(Class A). حيث تحجز فئة العناوين A أول ثمانيّة لتمثِّل معرِّف الشبكة، وتُترَك الثمانيّة الثانية والثالثة والرابعة لتمثِّل معرِّف المضيف؛ وهذا منطقيٌ في بدايات الإنترنت، لأنه كان لديهم عددٌ قليلٌ جدًا من الشبكات، وفي كلِّ شبكةٍ عددٌ كبيرٌ من المضيفين؛ وتلك الشبكات تكون عادةً تابعةً للجامعات أو للحكومات أو للمواقع العسكرية. تُعرَف عناوين الفئة B بوجود واحد وصفر في أول بتَّين (first 2 bits) من أول ثمانيّة، ويُحجَز أول بايتين للشبكة وآخر بايتين للمضيفين؛ وبشكلٍ مشابه، تبدأ الفئة C بالسلسلة 110 ويُحجَز أول ثلاث ثمانيّات للشبكة، وثمانيّة واحد فقط للمضيفين. في النهاية، بناء عنوان IP يعني إسناد معرِّفات فريدة للأجهزة ضمن الشبكة، ثم إعطاؤها نفس معرِّف الشبكة كي تصبح جزءًا من شبكةٍ واحد، وهذا يشبه كثيرًا أرقام المنازل المختلفة في شارعٍ ما، لكن اسم الشارع هو نفسه. مجالات عناوين IPهنالك نتيجتان حصلنا عليهما من استراتيجية التنظيم وفق فئات: أولاها أنَّه يصعب علينا نحن البشر التعرّف على سلسلة البتات في أول ثمانيّة، لذلك حوّلناها إلى أرقامٍ عشريةٍ لتعطينا مجالًا من الأرقام سيُسهِّل علينا التعرف على كل فئةٍ من الفئات. لذا، لو كانت أول ثمانيّة تقع بين 1 إلى 126، فإننا نتحدَّث عن الفئة A ‏(Class A)، وإذا نظرنا إلى أوّل ثمانيّة ووجدناها تقع بين 128 و 191، فإننا نتحدث عن الفئة B؛ أما لو كان المجال بين 192 و 223، فإن الفئة هي C. لاحظ أن بعض الأرقام ناقصة مثل 127، الذي هو رقمٌ مجوزٌ لا يمكن إسناده للشبكات، ويُستخدَم في اختبار الاتصال إلى المضيف المحلّي عبر بطاقة loopback. النتيجة الثانية هي أننا ما زلنا نتعامل مع عددٍ محدودٍ من البتات، أي كلما أسندنا المزيد من الثمانيّات إلى مُعرِّف الشبكة، كان عدد البتات المتبقية لاستخدامها للمضيفين أقل، والعكس صحيح. لو حجزت الفئة A أول بايت للشبكة وثلاثة بايتات للمضيفين، فسيكون عدد المضيفين كبيرًا لكن عدد الشبكات قليل. تُوفِّر الفئة C مكانًا للمضيفين بعدد 254 كحدٍ أقصى؛ قد تُفاجَئ من ذلك ﻷن الفئة C تحجز ثمانيّة تحتوي 8 بتات للمضيفين، لكن 2 للقوة 8 (استنادًا إلى العمليات على الأعداد الثنائية) يعطي 256؛ لذا قد تظن أنك قادرٌ على الحصول على 256 عنوانًا صالحًا للاستخدام كعناوين للمضيفين في الشبكات ذات الفئة C، لكن هنالك بعض العناوين المحجوزة التي لا تستطيع إسنادها للأجهزة. فئة عناوين IP قيمة أول ثمانيّة بالنظام العشري قيمة أول ثمانيّة بالنظام الثنائي الحد الأقصى لعدد للمضيفين الفئة A ‎1 - 126 ‎00000001 إلى 01111110 16‎ 777 214 الفئة B ‎128 – 191 ‎10000000 إلى 10111111 ‎65 534 الفئة C ‎192 - 223 ‎11000000 إلى ‎11011111 254 تُمثِّل جميع الأصفار في قسم المضيف من عنوان IP الشبكةَ نفسها؛ على سبيل المثال، إذا كان لدي العنوان 10.0.0.0، فلا يمكن إسناد هذا العنوان إلى جهازٍ على الشبكة، حيث يُمثِّل الشبكة«10» نفسها؛ وبشكلٍ مشابهٍ، فإن الرقم 1 في قسم المضيف من العنوان هو عنوانٌ محجوزٌ أيضًا، حيث يمثِّل عنوان الإذاعة (broadcast) في تلك الشبكة. تُستخدم الإذاعة لإرسال معلومات إلى كل الأجهزة في الشبكة. ويمثِّل الرقم 1 في الثمانيّات عند تحويلها إلى النظام العشري الرقم 255؛ أي أنه على سبيل المثال، يمثِّل العنوانُ 200.1.1.255 عنوانَ الإذاعة في الشبكة «200.1.1». يُعتَبر هذا النوع من الإذاعة «إذاعةٌ موجَّهة» (directed broadcast) في تلك الشبكة؛ لكن أكبر عناوين الإذاعة هو عندما يملأ الرقم 1 جميع البتات؛ وهذا ما يُسمى «إذاعة محليّة»، ولا يمكن إعادة توجيه الإذاعات المحلية. عناوين IP العامةالإنترنت هي شبكة من الشبكات، وهي شبكة عامة شاملة تصل الأجهزة عالميًا ببعضها. وباتباع قواعد IP الأساسية، يجب أن تملك تلك الأجهزة عناوين IP فريدة عالميًا؛ قد يُسبِّب تكرار العناوين عدم استقرار الإنترنت؛ لأنه قد تصل البيانات إلى الوجهة الخطأ عندما يكون هنالك عناوين مكررة؛ أو قد يُسبِّب تكرار عنوان IP المصدر إلى حدوث اضطرابات في الوجهة. أنشَأت هيئة IANA مجالاتٍ لعناوين IP العامّة لكل فئة، وبهذا سنضمن عدم حدوث تكرار، وأنَّ كلَّ شيءٍ تحت السيطرة من هيئة مركزية لإسناد عناوين IP. فإذا أردت الحصول على عنوان IP عام على شبكة الإنترنت، فعليك التواصل مع IANA والتقدّم بطلبٍ رسمي؛ وحاليًا، يمكنك حجز العناوين عبر الهيئة المركزية وعبر هيئات موزَّعة في مناطق جغرافية مختلفة؛ فهيئة APNIC توزِّع عناوين IP لآسيا، و ARIN للأمريكيتَين، و RIPE لأوروبا. عناوين IP الخاصةبسبب وجود عدد هائل من الأجهزة في الشبكة العامة، فأصبح جليًّا أن 32 بتًا في عناوين IPv4 لن تكون كافيةً. IPv4 هو النسخة الحالية من IP والمتوفرة تجاريًا والتي تُستخدَم في الإنترنت؛ بدأت النسخة السادسة IPv6 بالانتشار في الآونة الأخيرة، وستُصبِح قريبًا النسخة المعيارية في الشبكات؛ ولكن ظهرت إلى ذاك الحين حلولٌ بديلةٌ للسماح للمزيد من الأجهزة بالحصول على عناوين IP دون الحاجة إلى أن تكون عامّة (public)؛ يُمكن أن تُستخدَم مجالات العناوين الخاصة المذكورة هنا للشبكات من فئات A وB و C؛ وستكون هذه العناوين مستقلّة عن الإنترنت ومن ثم يمكن تحويلها (translated) إلى عنوانٍ عام عندما تحتاج الرزم إلى الوصول إلى شبكة عامّة؛ ويمكن للأجهزة ذات العناوين الخاصة أن تصل إلى الشبكات العامة بالحصول على عنوان IP عام؛ وعملية التحويل هذه تُسمى NAT ‏(network address translation)؛ ليس لمجالات العناوين الخاصة أي معنى في شبكة الإنترنت وليست قابلة للتوجيه في تلك الشبكة، وهذا يعني أن رزم IP المرتبطة بهذه العناوين كوجهة أو مصدر سيتم تجاهلها في موجهات الإنترنت؛ وقد عُرِّفَت هذه العناوين الخاصة في RFC 1918. الفئة مجال العناوين الخاص A من 10.0.0.0 إلى 10.255.255.255 B من 172.16.0.0 إلى 172.31.255.255 C من 192.168.0.0 إلى 192.168.255.255 DHCPبعد أن تعلمت تصميم عناوين IP، يمكنك الآن حجز وإسناد وضبط عناوين IP على الأجهزة، ربما تتبع القواعد الأساسية، لنقل على سبيل المثال، سيكون لجميع الأجهزة في الشبكة 1 نفس معرِّف الشبكة، لكن مُعرِّفات المضيفين ستكون فريدةً؛ أصبحت عملية ضبط عناوين IP على جميع الأجهزة أمرًا مرهقًا وصعب الإدارة، وذلك اعتمادًا على عدد الأجهزة المتصلة بالشبكة؛ وهذه هو السبب الرئيسي وراء بروتوكولات مثل DHCP (بروتوكول ضبط المضيف الديناميكي [Dynamic Host Configuration Protocol])؛ يُستخدَم هذا البروتوكول لإسناد عناوين IP تلقائيًا دون تدخل بشري؛ إذ يَستخدِم خادمًا مركزيًا ليدير مجالاتٍ من عناوين IP لأجهزةٍ مختلفة؛ تؤجَّر (lease) عناوين IP إلى الأجهزة ويكون لها تاريخ صلاحية محدد يجب على الجهاز تجديده إن أراد الاحتفاظ بعنوان IP. تبدأ هذه الأجهزة اتصالها بالشبكة دون عنوان IP، ثم تطلب واحدًا من الخادوم؛ ويتم ذلك بسلسلةٍ من الرسائل المتبادلة بين العملاء والخواديم لحجز وإسناد عنوان IP. DNSبروتوكول آخر هو بروتوكول DNS ‏(Domain Name System)؛ هذا تطبيقٌ مُحدَّدٌ في تجميعة TCP/IP؛ وهو موجود لأنه يساعدنا في تذكر عناوين الأجهزة بشكل أسهل؛ فعند الاتصال إلى جهازٍ معيّن، فإننا نتذكر اسم المضيف وليس علينا تذكر عنوان IP؛ فدور خدمة DNS هي تحويل أسماء المضيفين إلى عناوين IP؛ فعندما تكتب عنوان URL في متصفحك، مثل academy.hsoub.com، فإن جهازك سيبحث عن خادوم DNS في الشبكة، ويطلب منه تحويل الاسم إلى عنوان IP، ويستلم المعلومات، ثم يستخدم العنوان الذي حصل عليه للاتصال بالجهاز. ipconfigيمكننا استخدام الأمر ipconfig في واجهة سطر الأوامر في أنظمة ويندوز لكي نراقِب ونتأكد من الضبط الشبكي؛ حيث يستطيع استئجار عنوان IP مع قناع الشبكة الفرعية (subnet mask)، والبوابة الافتراضية (default gateway)، وخواديم DHCP، وخواديم DNS، ومعلوماتٍ حول مدة صلاحية عناوين IP. يمكن إظهار جميع الضبط بالكلمة المفتاحية ‎/all لأمر ipconfig؛ الكلمات المفتاحية الأخرى مثل ‎/release لإطلاق عنوان IP من خادم DHCP، و ‎/renew لتجديد مدة صلاحية عنوان IP، أو ‎/?‎ للحصول على مساعدة. ترجمة -وبتصرّف- للمقال Understanding the TCP/IP Internet Layer. Internal IP Addressing.
  8. عرضنا في الجزء الأول من هذا الدّليل بعض المفاهيم الأساسيّة في مجال الشّبكات. نستكمل الحديث في هذا المقال بالتطرّق إلى ماهيّة الواجهات في الشّبكة والبروتوكولات المستخدَمة لربط الشّبكات. الواجهاتالواجهات هي نقاط الاتّصال بالنّسبة لحاسوبك. تُربَط كلّ واجهة بجهاز طرفيّ ملموس أو افتراضيّ. توجد عادةً واجهة شبكة قابلة للإعداد لكلّ بطاقة Ethernet أو بطاقة شبكة لا سلكيّة على الخادوم. تُعرَّف واجهة شبكة افتراضيّة تُسمّى loopback (الاسترجاع) أو localhost (المستضيف المحلّي) لكلّ بطاقة شبكة. تُستخدَم هذه الواجهة لتوصيل العمليّات أو التّطبيقات العاملة على نفس الجهاز في ما بينها. تظهر هذه الواجهة في العديد من الأدوات باسم lo. يُعدّ مدراء الشّبكات في الغالب واجهة لخدمة البيانات القادمة من شبكة الإنترنت وأخرى للشّبكة المحليّة أو الخاصّة. على سبيل المثال، يضبُط مزّودو الخدمات السّحابيّة Cloud services الخواديم الخاصّة الافتراضيّة Virtual private server, VPS للعمل بواجهتيْ شبكة (إضافة إلى الواجهة المحليّة lo): الأولى باسم eth0 مضبوطة لمعالجة البيانات القادمة من الإنترنت، والثّانيّة eth1 للاتّصال بالشّبكة الخاصّة بمزوّد الخدمة. البروتوكولاتيعمل ربط الشّبكات عن طريق تركيب مجموعة من البروتوكولات فوق بعضها. بهذه الطّريقة يُمكن إرسال قطعة بيانات باستخدام بروتوكولات مختلفة يغلّف كلٌّ منها الآخر. سنعرض لبعض البروتوكولات شائعة الاستخدام مع محاولة شرح الفروق في ما بينها إضافةً إلى السّيّاق والمستوى الّذي تتدخّل فيه. نبدأ بالبروتوكولات الّتي تعمل في الطّبقات الدّنيا من الشّبكة ونصعد إلى البروتوكولات الأكثر تجريدًا (الطّبقات العليا). 1- التّحكّم في الوصول إلى الوسائط Media Access Control, MACيُستخدَم لتمييز الأجهزة الطّرفيّة. يُفترَض أن يكون لدى كلّ جهاز طرفيّ عنوان وحيد يُمنَح له عند تصنيعه؛ يُسمَّى عنوان MAC، ويُمكّن من تعريفه ضمن الشّبكة. تسمح عنونة العتاد عن طريق عناوين MAC بالإشارة إلى الجهاز الطّرفيّ بقيمة وحيدة لا تتغيّر حتّى ولو استخدمت البرامج اسمًا آخر لتعريف الجهاز أثناء عملها. يعمل بروتوكول التّحكّم في الوصول إلى الوسائط ضمن طبقة الوصلة، وربّما يكون البروتوكول الوحيد من هذا المستوى الّذي ستجد الفرصة للتّعامل معه دوريًّا. 2- بروتوكول الإنترنت Internet protocol, IPوهو أحد البروتوكولات الأساسيّة الّتي تعمل عليها شبكة الإنترنت. يعمل بروتوكول الإنترنت مع عناوين IP، وهي فريدة في كلّ شبكة، ممّا يسمح للأجهزة بالتّواصل في ما بينها عبر الشّبكة. يُنفَّذ ابروتكول الإنترنت على مستوى طبقة التّوصيل ضمن نموذج TCP/IP. يجب عند ربط الشّبكات في ما بينها، توجيه البيانات عند عبورها حدود الشّبكة. يفترض ابروتكول الإنترنت أنّ الشّبكة غير موثوقة؛ ووجود مسارات متعدّدة يُمكن التّغيير ديناميكيًّا بينها للوصول إلى الوجهة. يُنفَّذ ابرتوكول IP عمليًّا بصيّغ عديدة أشهرها اليوم هو الإصدار الرّابع من البروتوكول IPv4، إلاّ أنّ الإصدار السّادس IPv6 يزداد شعبيةً يومًا بعد يوم نظرًا للشّح المتزايد في عناوين الإصدار الرابع المتوفّرة، والتّحسينات المُضافة إلى إمكانيّات البروتوكول. 3- بروتوكول رسائل التّحكّم في الإنترنت Internet control message protocol, ICMPيُستخدَم لإرسال رسائل بين الأجهزة الطّرفيّة للإشعار بحالتها من حيث التّوفّر ووجود أخطاء وطبيعتها. تُستخدَم حزم ICMP في أدوات تشخيص الشّبكة مثل traceroute وping. تُرسَل حزم ICMP عادةً عند ما تواجه حزمة من نوعيّة أخرى مشكلة أثناء النّقل، أيّ أنّ حزم ICMP هي في الواقع آليّة للتّعليق على الاتّصالات عبر الشّبكة. 4- بروتوكول التّحكّم في الإرسال Transmission control protocol, TCPيُؤسّس بروتوكول TCP لاتّصالات موثوقة ويعمل في طبقة النّقل من نموذج TCP/IP. يغلّف بروتوكول TCP البياناتِ ضمن حزم ثمّ يرسلها إلى المستقبِل على الطّرف الآخر من الاتّصال عبر الوسائل المتوفّرة في الطّبقات الأدنى. يتأكّد ابروتوكول TCP في الطّرف المستقبل من عدم وجود أخطاء أثناء النّقل وقد يُعيد طلب بعض الحزم ثمّ يُجمّع البيانات في رسالة واحدة لإرسالها إلى طبقة التّطبيق. يُنشئ بروتوكول TCP، قبل البدء بنقل البيانات، اتّصالًا عبر آليّة تُعرَف بالمصافحة الثّلاثية Three-way handshake. تمكّن هذه الآلية طرفيْ الاتّصال من الإقرار باستلام الطّلبات والاتّفاق على طريقة لضمان موثوقيّة البيانات. بعد اكتمال نقل البيانات يُنهى الاتّصال عبر آليّة مشابهة تُدعَى المصافحة الرّباعيّة. تعتمد الكثير من استخدامات الإنترنت على بروتوكول TCP. نذكر منها الويب WWW، نقل الملفّات عبر FTP، والبريد الإلكتروني. يُمكن القول دون كثير من المجازفة أنّ الإنترنت الّتي نعرفها اليوم لم تكن لتوجد لولا ابروتوكول TCP. 5- بروتوكول مخطَّط بيانات المستخدِم User datagram protocol, UDPيعمل مثل TCP في طبقة النّقل. الفرق الأساسيّ بين الاثنين أنّ UDP ،على العكس من TCP، لا يضمن موثوقيّة النّقل؛ فلا يتأكّد من استلام الطّرف الآخر في الاتّصال للبيانات. قد يبدو من الوهلة الأولى ألّا فائدة من بروتوكول UDP، فهو لا يوفّر آليّة لضمان الموثوقيّة؛ إلّا أنّه مهمّ جدًّا لتأديّة بعض الوظائف. بروتوكول UDP أسرع بكثير من TCP، فهو لا يحتاج للانتظار للتّأكّد من استلام حزمة البيانات، وإعادة إرسالها في حال عدم الاستلام. كما أنّه لا يؤسّس لاتّصال مع وِجهة البيانات بل يكتفي بإلقائها إليه ولا يهتمّ هل يقبلها أم لا. تُفيد سهولة المعاملة الّتي يعرّفها UDP في التّواصل غير المعقَّد مثل طلب موارد على الشّبكة. لا يحتفظ ابروتوكول بمعلومات عن حالة الاتّصال ممّا يجعل منه خيّارًا مناسبًا لإرسال البيانات من جهاز واحد إلى عملاء عديدين في الوقت الحقيقي Real time clients. تجعل هذه الميزات من UDP الخيّار الأمثل لبرامج VoIP (الصّوت عبر ابروتوكول الإنترنت، Voice over IP)، الألعاب، والتّطبيقات الأخرى الّتي لا تحتمل الانتظار. 6- بروتوكول نقل النّصوص التّشعبيّة Hypertext transfer protocol, HTTPيعرَّف هذا البروتوكول على مستوى طبقة التّطبيق، ويكوّن الأساس للتّواصل عبر الويب. يعرّف HTTP دوالّ مختلفة لإخبار النّظام البعيد مالّذي يطلُبه المستخدِم. نذكر منها على سبيل المثال POST، GET و DELETE الّتي تتعامل كلّها مع البيانات المطلوبة ولكنّ بطُرق مختلفة. 7- بروتوكول نقل الملفّات File transfer protocolيعمل على مستوى طبقة التّطبيق، ويوفّر طريقة لنقل ملفّات كاملة من مستضيف إلى آخر. يجب الانتباه إلى أنّ بروتوكول FTP غير آمن ويجب ألّا يُستخدَم في أي شبكة معروضة للعموم إلّا إذا كان على خادوم لا يقبل سوى تنزيل الملفّات. 8- نظام أسماء النّطاقات Domain name system, DNSيُنفَّذ على مستوى طبقة التّطبيق من أجل تعريف آليّة توفّر تسميّات يسهُل تذكّرها للموارد على شبكة الإنترنت. تعطي هذه الآليّة إمكانيّة ربط اسم نطاق بعنوان IP وتسمح بتصفّح موقع عبر إدخال اسمه في المتصفّح. للمزيد راجع مقال مقدّمة إلى مُصطَلحات وعناصر ومفاهيم نظام أسماء النطاقات 9- بروتوكول الصّدفة الآمنة Secure Shell, SSHيعمل بروتوكول SSH على مستوى طبقة التّطبيق ويُستخدَم للتّواصل مع خادوم بعيد بطريقة آمنة تُعمّي Encrypt البيانات. تعتمد تقنيّات عديدة على SSH نظرًا لتوفّره على التّعميّة من طرف إلى طرف End-to-end وشيوع استخدامه. توجد الكثير من البروتوكولات الأخرى المهمّة الّتي لم تُذكَر في هذا الدّرس؛ إلّا أنّ المذكور منها هنا يُعطي نظرة عامّة حول أهم التّقنيّات الّتي تجعل من الإنترنت واقعًا وتسمح للأجهزة بالتّواصل في ما بينها. خاتمةيجب أن تُدرك بانتهاء هذا الدّليل بعض المفهيم الأساسيّة لعمل الشّبكات ممّا يمنحك القدرة على فهم كيف تتواصل مختلف عناصر الشّبكات في ما بينها؛ الأمر الّذي يُساعدك على فهم مقالات أخرى عن الموضوع أو مستندات التّوثيق الموجودة في النّظام. ترجمة بتصرّف لمقال An Introduction to Networking Terminology, Interfaces, and Protocols.
  9. يُعدّ إعداد وربط الشّبكات من الأمور المهمّة لكلّ من يريد إدارة الخواديم. ليس إعداد الشّبكات فقط أساسيًّا لتوفير خدمات على الويب ولكنّه يمنح أيضًا إدراكًا يُساعد في تشخيص المشاكل. يقدّم هذا الدّليل، المكوَّن من جزأيْن، نظرة عامّة على المصطلحات الأكثر شيوعًا في مجال ربط الشّبكات Networking؛ إذ سيتطرّق إلى المفاهيم القاعديّة، والبروتوكولات الأكثر انتشارًا؛ إضافةً إلى مسؤوليّات الطّبقات Layers الموجودة في الشّبكة وخصائصها. رغم أنّ هذا الدّليل مستقلّ عن نظام التّشغيل المُستخدَم، إلّا أنّه سيكون مفيدًا جدًّا عند إضافة خدمات وميزات تستخدم الشّبكة على خادومك. مصطلحات الشّبكاتيجب، قبل الدّخول في عمق الموضوع، تعريفُ بعض المصطلحات الشّائعة الّتي ستقرأها في هذا الدّليل أو أيّ دليل آخر أو توثيق يتعلّق بربط الشّبكات. اتّصال Connection: يُحيل الاتّصال، ضمن مجال الشّبكات، إلى أجزاء مترابطة من المعلومات تُنقَل عبر الشّبكة. يُستنتج من ذلك أنّ الاتّصال عمومًا يُنشَأ قبل الشّروع في نقل البيانات (باتّباع إجراءات مُعرَّفة في ابروتوكول)، ثمّ يُفكَّك - أي الاتّصال - بعد الانتهاء من نقل البيانات. حزمة Packet: وهي الوحدة الصّغرى المنقولة عبر الشّبكة. تغلّف الحزمُ قطعَ البيانات لنقلها من طرف إلى آخر أثناء التّواصل عبر الشّبكة. لدى الحزمة ترويسة Header تحوي معلومات عن الحزمة؛ منها: المصدَر والوِجهة، الختم الزّمنيّ Timestamp، القفزات Hops (أجزاء المسار بين المصدَر والوِجهة)،… إلخ. بينما يحوي الجزء الأكبر من الحزمة البيانات الفعلية المنقولة، ويُسمَّى أحيانًا بالمتن Body أو الحمولة Payload. واجهة شبكة Network interface: يُمكن أن تُحيل واجهة شبكة إلى أيّ نوع من الرّبط بين البرمجيّات Software والعتاد Hardware. على سبيل المثال، إذا كانت لدى الخادوم بطاقتا شبكة، فيُمكن التّحكّم في كلّ واحدة منهما وإعدادها بشكل مستقلّ عن طريق إعداد الواجهة المرتبطة بها.يُمكن أن تكون واجهة الشّبكة مرتبطة بجهاز طرفيّ Device ملموس، أو أن تكون تمثيلًا لواجهة افتراضيّة. الجهاز الطّرفي loopback (يُستخدم للتّخاطب بين البرامج الموجودة على نفس الجهاز) مثال على الواجهات الافتراضيّة. شبكة منطقة محليّة Local area network,LAN: يُطلَق عليها أحيانًا الشّبكة المحليّة. تُشير إلى شبكة - أو جزء من شبكة - لا يُتاح لعموم المستخدمين عبر الإنترنت الوصول إليها. الشّبكة الموجودة في المنزل أو المكتب مثال على الشّبكات المحليّة. شبكة واسعة Wide area network, WAN: وتعني شبكة أكثر اتّساعًا بكثير من شبكة محليّة. يُستخدَم مصطلح الشّبكة الواسعة أحيانًا للدّلالة على شبكة الإنترنت ككلّ، رغم أنّه يُشير في الأصل إلى الشّبكات الواسعة والمتفرّقة عمومًا. إذا وُصِفت واجهة بأنّها متّصلة بشبكة واسعة (WAN) فالمقصود - عادةً - هو أنّها متّصلة بالإنترنت. ابروتوكول Protocol: البروتوكول هو مجموعة من القواعد والمعايير Standards الّتي تعرّف لغةً يُمكن للأجهزة الطّرفيّة استخدامُها للتّخاطب. تُستخدَم ابروتوكولات عديدة في ربط الشّبكات، وتُنفَّذ عادةً على هيئة طبقات مختلفة.أمثلة على ابروتوكولات المستويات الدّنيا: IP، UDP ، TCP وICMP. الأمثلة التّاليّة هي لتطبيقات مبنيّة على طبقات من البروتكولات الأدنى مستوى: HTTP (للوصول إلى صفحات الويب)، TLS/SSL، SSH وFTP. منفذ Port: المنفذ هو عنوان ضمن الجهاز يُمكن ربطه ببرنامج محدّد. المنفذ ليس واجهة ملموسة أو موقِعًا، بل هو طريقة تجعل من الجهاز (الخادوم) قادرًا على التّواصل باستخدام أكثر من تطبيق. جدار ناريّ Firewall: الجدار النّاريّ هو برنامج يُقرّر السّماح لحركة البيانات - القادمة إلى الخادوم أو الخارجة منه - بالمرور أو يمنعها من ذلك. يعمل الجدار النّاري اعتمادًا على قواعد تحدّد نوعيّة البيانات المقبولة والمنافذ المسموح للبيانات بالمرور عبرها. تحظر الجدران النّارية عادةً منافذ الخادوم غير المستخدمة من طرف أيّ تطبيق. ترجمة عناوين الشّبكة Network address translation, NAT: وهي طريقة لإرسال الطّلبات القادمة إلى خادوم توجيه Routing إلى الأجهزة الطّرفيّة المُناسبة أو إلى الخواديم داخل الشّبكة المحليّة الّتي لديها معلومات عن وِجهة الطّلبات. تُستخدم ترجمة عناوين الشّبكة في الشّبكات المحليّة لتوجيه طلبات قادمة على نفس عنوان IP إلى الخواديم الخلفيّة المناسبة. الشّبكات الخاصّة الافتراضيّة Virtual private network, VPN: الشّبكات الخاصّة الافتراضيّة هي طريقة لتوصيل شبكات محليّة مختلفة عبر الإنترنت، مع الحفاظ على الخصوصيّة. تُستخدم هذه الطّريقة لتوصيل أنظمة متباعدة كما لو كانت في نفس الشّبكة المحليّة، لأسباب أمنيّة غالبًا. يجب أن تكون لديك الآن نبذة عن المفاهيم الأساسيّة في مجال ربط الشّبكات. توجد مصطلحات أخرى عديدة، يُمكن أن تُصادفك، لم تُذكَر في اللّائحة أعلاه. سنشرح مصطلحات أخرى في هذا الدّليل فورَ احتيّاجنا إليها. طبقات الشّبكةتُقدّم الشّبكات غالبًا وفق بنيتها الأفقيّة، بين المستضيفات Hosts؛ إلّا أنّ تنفيذ الشّبكة يتمّ وفقا لطبقات على مستوى حاسوب أو حواسيب عدّة. يعني عملُ الشّبكات على طبقات وجودَ تقنيّات متعدّدة تُبنى كلّ واحدة منها فوق الأخرى من أجل أن يعمل التّواصل بطريقة سلِسة. تُجرِّد Abstract كلُّ طبقة البياناتِ الخامّ القادمة من الطّبقة الأدنى، تجرّدها أكثر وتجعل من التّعامل معها أسهل بالنّسبة للتّطبيقات والمستخدمين. يُساعد تنظيم الشّبكة على طبقات في تسهيل استخدام الطّبقات الدّنيا بطرُق جديدة دون بذل الجهد في تطوير ابروتوكولات وتطبيقات تتعامل مع صيّغ البيانات الموجودة في هذه الطّبقات. تختلف طريقة وصف تخطيط طبقات الشّبكة كثيرًا حسب النموذج Model المستخدَم. لا يتغيّر المسار الّذي تأخذه البيانات في الشّبكة رغم اختلاف النّماذج. تبدأ البيانات رحلَتها، عند إرسالها من الجهاز، من قمّة كومة Stack الطّبقات متّجهة إلى الطّبقات الدّنيا. يحدُث نقل البيانات بين الأجهزة فعليًّا في المستوى الأدنى. تُعيد البيانات بعد النّقل رحلتها عبر طبقات الجهاز المستقبِل ولكن في الاتّجاه المعاكس: من الطبقة الدّنيا إلى القمّة. تُضيف كلّ طبقة غلافًا على حزمة البيانات عندما تصل إليها من الطّبقة الأعلى منها، وهو ما يُساعد الطّبقات المواليّة لها في معرفة ما يتوجّب عليها فعلُه بالبيانات. عند الاستقبال تنزع الطّبقة على الجهاز المستقبِل غلاف الطّبقة المكافئة لها على الجهاز المُرسِل. 1- نموذج OSIنموذج OSI (اختصار ل Open Systems Interconnect: شبكة وصل الأنظمة المفتوحة) هو أحد الطُّرُق الأولى لوصف الطّبقات المختلفة في الشّبكة. يُعرّف نموذج OSI سبعَ طبقات هي: التّطبيق Application: وهي الطّبقة الّتي يتفاعل معها المستخدمون وتطبيقات المستخدمين. يكثُر استخدام مصطلحات مثل توفّر الموارد Availability of resources، شركاء للتّخاطب معهم، مزامنة البيانات Data synchronization لوصف الاتّصال على هذا المستوى. التّقديم Presentation: طبقة التّقديم هي المسؤولة عن تعيين الموارد وتعريف السّيّاق Context. تُستخدم لترجمة بيانات المستويات الأدنى إلى صيغة يُمكن للتّطبيقات التّعامل معها. الجلسة Session: وهي مُداوِل Handler الاتّصال: تُنشئ، تُحافظ على، وتنهي الاتّصال بين المُتخاطبَيْن بطريقة مستمرّة. النّقل Transport: مسؤوليّتها إحالة اتّصال موثوق للطّبقات الموجودة فوقها (التّطبيق، التّقديم، والجلسة). تعني موثوقيّةُ الاتّصال في هذا الإطار القدرةَ على التّحقّق من وصول كلّ جزء من البيانات سليمًا إلى الطّرف الآخر من الاتّصال. يُمكن لهذه الطّبقة إعادة إرسال البيانات المفقودة أو المشوَّهة كما أنّ بإمكانها إبلاغ الأجهزة البعيدة بتسلّم البيانات القادمة منها. الشّبكة Network: تُستخدَم هذه الطّبقة لتوجيه البيانات بين مختلف العُقَد Nodes الموجودة في الشّبكة. تسخدم طبقة الشّبكة عنواين لمعرفة الجهاز الّذي ستُرسَل إليه البيانات. يُمكن لهذه الطّبقة أيضًا تقسيمُ الرّسائل ذات الحجم الكبير إلى قطع أصغر تُجمَّع على الطّرف الآخر من الاتّصال - بعد استلامه لها - لإنشاء الرّسالة الأصليّة. وصلة البيانات Data link: تُنفَّذ هذه الطّبقة بحيث تُنشئ وتُحافظ على وصلات موثوقة بين مختلف العُقد والأجهزة الموجودة في الشّبكة باستخدام اتّصالات ملموسة. الاتّصال الملموس Physical: وهي الطّبقة المسؤولة عن معالجة الأجهزة الطّرفية الفعليّة المُستخدَمة للاتّصال. تستدعِي هذه الطّبقةُ البرنامجَ الّذي يُدير الاتّصالات الملموسة والعتاد (مثل Ethernet). توجد إذن العديد من الطّبقات الّتي يُمكن الحديث عنها انطلاقًا من قربها من العتاد والوظيفة الّتي تقدّمها. 2- نموذج TCP/IPيشيع استخدام تعبير حزمة ابروتوكلات الإنترنت Internet protocol suite للحديث عن هذا النّموذج الأسهل والأكثر تبنيًّا. يُعرِّف نموذجُ TCP/IP أربع طبقات، يتداخل بعضٌ منها مع طبقات نموذج OSI: التّطبيق: وهي الطّبقة المسؤولة - في هذا النّموذج - عن إنشاء وإرسال بيانات المستخدِم بين التّطبيقات. يُمكن أن توجد التّطبيقات على أنظمة متباعدة، ويجب أن تظهر وكأنّها تعمل محلّيًّا لدى المستخدِم.يوصف الاتّصال بأنّه يحدُث بين النّظراء Peers. النّقل: وهي الطّبقة المسؤولة عن الاتّصال بين العمليّات Processes. يستخدِم هذا المستوى من الشّبكة المنافذَ لعنونة مختلف الخدمات. يُمكن لطبقة النّقل إنشاء اتّصالات موثوقة أو غير موثوقة حسب نوعيّة البروتوكول المستخدَم. التّوصيل Internet: مسؤوليّتها نقل البيانات من عقدة على الشّبكة إلى أخرى. تعرف هذه الطّبقة طرفيْ الاتّصال ولكنّها لا تهتمّ بالاتّصال الفعليّ المُستخدَم للانتقال من طرف إلى آخر. تُعرَّف عناوين IP على هذا المستوى بوصفها طريقة للوصول إلى الأنظمة البعيدة. الوصلة Link: تُنفّذ طبقة الوصلة مخطَّط الشّبكة المحليّة الّذي يسمح لطبقة التّوصيل بتقديم واجهة بعناوين. تنشئ هذه الطّبقة الاتّصالات بين العقد المتجاورة بهدف إرسال البيانات بينها نموذج TCP/IP أكثر تجريدًا وسلاسة من سابقه؛ ممّا جعله أكثر سهولةً للتّنفيذ وبالتّالي الطريقة الأكثر انتشارًا لتقسيم الطّبقات في الشّبكات.