إعداد وإدارة الشبكة في Ubuntu باستخدام Netplan: الدليل الشامل للمبتدئين والمحترفين

目次

1. نظرة عامة على Netplan في Ubuntu

ما هو Netplan؟

Netplan هو أداة إدارة إعدادات الشبكة تم اعتمادها في Ubuntu بدءًا من الإصدار 17.10. سابقًا، كان يتم استخدام ifconfig و /etc/network/interfaces، لكن Netplan يوفر تنسيقًا جديدًا بديلًا لهذه الطرق القديمة. أهم ما يميز Netplan هو استخدام ملفات YAML لكتابة إعدادات الشبكة، مما يتيح تكوينًا بسيطًا ومتناسقًا وسهولة في إدارة الشبكات المعقدة.

Netplan يدعم الخلفيات مثل NetworkManager و systemd-networkd، ويُستخدم في كل من إصدارات سطح المكتب والخادم من Ubuntu. هذا يسمح بإدارة الشبكة بطريقة موحدة عبر بيئات مختلفة.

لماذا يجب استخدام Netplan؟

بالمقارنة مع طرق إعداد الشبكة التقليدية، يوفر Netplan المزايا التالية:

  1. بنية بسيطة: تنسيق YAML واضح وبديهي، ويسهل فهم الإعدادات حتى للمبتدئين.
  2. إدارة موحدة: متاح لكل من بيئات سطح المكتب والخادم، مما يسمح بإدارة مركزية لتكوينات الشبكة المختلفة.
  3. تغييرات ديناميكية: يمكنك تطبيق تغييرات الإعدادات في الوقت الحقيقي بمجرد تعديل الملف.

الهيكل الأساسي لملف Netplan

عادةً ما توجد ملفات إعدادات Netplan في مجلد /etc/netplan/، وامتدادها .yaml. تحتوي هذه الملفات على إعدادات واجهات الشبكة وعناوين IP ومعلومات خوادم DNS.

مثال على إعداد Netplan الأساسي باستخدام ملف YAML:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true

في هذا المثال، يتم ضبط واجهة الشبكة المسماة enp3s0 للحصول على عنوان IP تلقائيًا عبر DHCP.

دور Netplan في إصدارات Ubuntu 18.04 LTS وما بعدها

في إصدارات Ubuntu 18.04 LTS وما بعدها، يتم تثبيت Netplan بشكل افتراضي ويُستخدم على نطاق واسع لإدارة الشبكة في بيئات الخوادم وسطح المكتب. يكون مفيدًا بشكل خاص في بيئات الخوادم التي تتطلب إعداد عدة واجهات شبكة أو عناوين IP ثابتة.

فيما يلي، سوف نشرح كيفية تكوين الشبكة باستخدام Netplan بشكل عملي.

2. كيفية الإعداد الأساسي لـ Netplan

مكان ملف إعدادات Netplan

عادةً ما يتم حفظ ملفات إعداد Netplan في مجلد /etc/netplan/. يمكنك تعديل إعدادات الشبكة عن طريق تحرير ملفات .yaml الموجودة هناك، مثل 50-cloud-init.yaml أو أسماء أخرى حسب البيئة.

لفتح ملف الإعدادات، استخدم محرر نصوص مثل vi أو nano:

sudo vi /etc/netplan/50-cloud-init.yaml

إعداد عنوان IP الديناميكي (DHCP)

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

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true

إعداد عنوان IP ثابت

في بعض الحالات، تحتاج إلى تعيين عنوان IP ثابت للخوادم أو الأجهزة المحددة. فيما يلي مثال لإعداد عنوان IP ثابت:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

تطبيق الإعدادات

بعد تعديل ملف الإعدادات، قم بتطبيق إعدادات Netplan باستخدام الأمر التالي:

sudo netplan apply

التحقق من الإعدادات

للتحقق من أن إعدادات Netplan تم تطبيقها بشكل صحيح، استخدم الأمر التالي لمراجعة حالة واجهة الشبكة:

ip a

3. إعداد عدة واجهات شبكة

إعداد عدة واجهات إيثرنت

على الخوادم أو الأجهزة التي تحتوي على عدة واجهات شبكة، يمكنك تعيين إعدادات وعناوين IP مختلفة لكل واجهة. في المثال التالي، تم إعداد واجهتين بشكل منفصل:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
    enp4s0:
      addresses:
        - 192.168.1.150/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

إعداد التكرار باستخدام Bonding

التجميع (Bonding) هو أسلوب فعال لتحسين التوافر والموثوقية، من خلال دمج عدة واجهات شبكة في واجهة افتراضية واحدة. المثال التالي يوضح تجميع واجهتين في واجهة افتراضية باسم bond0:

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - enp4s0
      addresses:
        - 192.168.1.200/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        mode: active-backup
        primary: enp3s0

إعداد الاتصال اللاسلكي (Wi-Fi)

يمكن أيضًا إعداد اتصال Wi-Fi باستخدام Netplan. المثال التالي يوضح كيفية الاتصال بشبكة Wi-Fi محددة:

network:
  version: 2
  renderer: networkd
  wifis:
    wlp2s0:
      access-points:
        "my_wifi_network":
          password: "password1234"
      dhcp4: true

إعداد VLAN

في بعض الحالات، من الضروري تقسيم الشبكة فعليًا باستخدام الشبكة المحلية الافتراضية (VLAN). يمكن أيضًا إعداد VLAN مع Netplan. في المثال التالي، يتم إعداد VLAN على واجهة enp3s0:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
  vlans:
    vlan10:
      id: 10
      link: enp3s0
      addresses:
        - 192.168.10.1/24

 

4. إعدادات متقدمة لـ Netplan

إعداد التوجيه الثابت (Static Routing)

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

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      routes:
        - to: 10.0.0.0/24
          via: 192.168.1.1

في هذا الإعداد، تم تحديد مسار ثابت إلى شبكة 10.0.0.0/24 عبر البوابة الافتراضية 192.168.1.1 من خلال الواجهة enp3s0.

إعداد عدة بوابات افتراضية

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

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
    enp4s0:
      addresses:
        - 10.0.0.100/24
      gateway4: 10.0.0.1

إعداد خوادم DNS

يمكنك بسهولة إعداد خوادم DNS في Netplan. في المثال التالي، تم تحديد خوادم DNS العامة من Google:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

إعدادات متقدمة للتجميع (Bonding)

بالإضافة إلى ما سبق، يمكنك تغيير وضع التجميع في Netplan لتحقيق أوضاع مختلفة. المثال التالي يستخدم وضع “round-robin”:

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - enp4s0
      addresses:
        - 192.168.1.200/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        mode: balance-rr

في وضع balance-rr (راوند روبن)، يتم توزيع المرور عبر الواجهات بالتناوب لتحسين الأداء. يمكنك أيضًا اختيار أوضاع أخرى مثل active-backup للتكرار أو balance-tlb لتوزيع الحمل، حسب الحاجة.

إعداد متقدم لـ VLAN

تُستخدم VLAN (الشبكة المحلية الافتراضية) لتقسيم الشبكات الكبيرة منطقيًا. يمكنك إعداد VLAN باستخدام Netplan. في المثال التالي، تم إعداد واجهة VLAN باسم vlan100:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
  vlans:
    vlan100:
      id: 100
      link: enp3s0
      addresses:
        - 192.168.100.1/24

في هذا الإعداد، يتم تعيين VLAN ID 100 إلى الواجهة enp3s0 مع عنوان IP ثابت 192.168.100.1، مما يسمح بتقسيم حركة المرور إلى قطاع شبكة محدد.

5. استكشاف أخطاء Netplan وإصلاحها

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

المشاكل الشائعة في Netplan وأسبابها

1. لم يتم تطبيق الإعدادات

قد لا يتم تطبيق التغييرات بعد تعديل الإعدادات أو تنفيذ الأوامر. من الأسباب المحتملة:

  • خطأ في المسافة البادئة في ملف YAML: صيغة YAML حساسة جدًا للمسافات. أي خطأ في المسافات قد يؤدي إلى عدم تفسير الملف بشكل صحيح وعدم تطبيق الإعدادات. تحقق دائمًا من تنسيق المسافات.
  • اسم واجهة غير صحيح: يجب تحديد اسم واجهة الشبكة الصحيح في Netplan. استخدم أمر ip a للتحقق من اسم الواجهة وتأكد من مطابقته في ملف الإعدادات.

طريقة الحل

  1. بعد حفظ ملف الإعدادات، نفذ أمر netplan apply لتطبيق التغييرات.
  2. إذا ظهرت أخطاء، استخدم sudo netplan try لاختبار التغييرات قبل اعتمادها نهائيًا. إذا حدثت مشكلة خلال 5 دقائق، يتم التراجع تلقائيًا عن التغييرات.
sudo netplan apply
sudo netplan try

2. خطأ في اتصال الشبكة

إذا لم يكن هناك اتصال شبكي، قد تكون الأسباب:

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

طريقة الحل

  1. استخدم أمر ping لاختبار الاتصال بالشبكة، مثلًا عن طريق إرسال ping إلى خادم DNS التابع لجوجل (8.8.8.8):
ping 8.8.8.8
  1. إذا كانت هناك مشكلة في ملف الإعدادات، أعد تنفيذ netplan apply وحاول إعادة تشغيل الشبكة.
sudo systemctl restart networkd

3. ظهور رسالة خطأ عند تنفيذ netplan apply

عند تنفيذ netplan apply، قد تظهر رسائل خطأ بسبب محتوى غير صحيح في ملف الإعدادات أو عدم التعرف على الواجهة.

  • مثال على رسالة الخطأ: Error in network configuration: failed to bring up device enp3s0

يحدث هذا الخطأ عندما لا يتم التعرف على الواجهة المحددة enp3s0. استخدم أمر ip a للتحقق من صحة اسم الواجهة.

طريقة الحل

راجع رسالة الخطأ جيدًا، وتأكد من صحة اسم الواجهة أو عنوان IP، وراجع تنسيق YAML من حيث الكتابة والمسافات.

التحقق من ملفات السجلات (Logs)

عند استكشاف الأخطاء، يكون من المفيد مراجعة سجل النظام. يمكنك مراجعة رسائل الخطأ أو التحذير الخاصة بـ Netplan باستخدام الأمر التالي:

journalctl -u systemd-networkd

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

6. ملخص Netplan والخطوات التالية

من خلال استخدام Netplan، أصبحت إدارة إعدادات الشبكة في Ubuntu بسيطة وفعالة. في هذا القسم، سنلخص ما تم شرحه ونقترح خطوات لتعلم واستخدام Netplan بشكل أعمق في المستقبل.

المزايا الرئيسية لـ Netplan

باستخدام Netplan، يمكنك الاستفادة من عدة مزايا مقارنة بالطرق التقليدية:

  1. إعدادات YAML البديهية: يعتمد Netplan على ملفات YAML السهلة والمرئية، مما يسهل الكتابة واكتشاف الأخطاء.
  2. تكوين شبكات مرن: يمكن إعداد عدة واجهات شبكة، وتجميع (Bonding)، وتوجيه ثابت، وVLAN بسهولة وبكتابة مباشرة.
  3. واجهة إدارة موحدة: يدعم Netplan الخلفيات المختلفة مثل systemd-networkd وNetworkManager، ويوفر إدارة شبكة موحدة عبر كل البيئات.
  4. تطبيق التغييرات فورًا: يمكن تطبيق تغييرات Netplan فورًا بدون الحاجة لإعادة التشغيل، مما يقلل من فترة توقف الشبكة.

طرق الاستفادة المستقبلية

بعد التعود على الإعدادات الأساسية لـ Netplan، يُنصح بتجربة إعدادات أكثر تقدمًا. فيما يلي بعض الخطوات التالية المقترحة:

  1. إنشاء شبكات افتراضية: إعداد عدة VLAN لتقسيم الشبكة فعليًا يعزز الأمان ويسهل الإدارة، خاصة في البيئات الكبيرة أو السحابية.
  2. دعم IPv6: مع ندرة عناوين IPv4، من المهم إعداد الشبكة باستخدام IPv6 باستخدام Netplan لتكون مستعدًا للمستقبل.
  3. كتابة سكريبتات تلقائية: تحويل إعدادات Netplan إلى سكريبتات لأتمتة الإعدادات في بيئات الشبكة الكبيرة. يمكن دمج ذلك مع أدوات مثل Ansible أو Puppet لتحسين الإدارة.
  4. تعزيز الأمان: تعلم تقنيات مثل إعداد جدران الحماية (Firewall)، وتقييد الوصول، وتقسيم الشبكة (Segmentation) لتعزيز الأمان باستخدام Netplan.

مصادر إضافية للتعلم

توفر الوثائق الرسمية لـ Netplan والمصادر التقنية الخاصة بـ Ubuntu موارد قيمة للتعلم. يمكنك أيضًا الرجوع إلى المنتديات والمدونات التقنية. فيما يلي بعض المصادر المفيدة:

  • وثائق Netplan الرسمية: الدليل الرسمي هو المرجع الأكثر موثوقية لخيارات وإعدادات Netplan.
  • ويكي دعم مجتمع Ubuntu: يحتوي ويكي المجتمع على أمثلة وحلول للمشكلات العملية.
  • المنتديات التقنية والمدونات: منتديات مثل Ask Ubuntu وStack Overflow مفيدة لحلول المشاكل المحددة، والمدونات التقنية تعرض حالات استخدام ومعلومات حديثة عن Netplan.

 

侍エンジニア塾