الفلاتر
طريقة البحث
  • الكلمات العادية تجد الأسماء والنصوص والأمثلة.
  • "كلمتان" تجد العبارة بالضبط.
  • --name أو -x تجد خيارًا.
  • #كلمة تبحث داخل الأوامر فقط.
  • @grep تجد الدروس والمعامل التي تستخدم grep.
  • الفلاتر: cat:network · in:labs · level:rhcsa · ch:8 · root:yes. ضع ! قبل كلمة لاستبعادها. OR بين الكلمات تعني إحداها.
  • ↑ ↓ للتنقل · Enter للفتح · Esc للإغلاق · / للبحث

الفصل 8الاسم في الكتاب: Configuring Networking

إعداد الشبكة

بعد هذا الفصل تستطيع قراءة عناوين IP، والتأكد من أن الشبكة تعمل، وإعطاء الخادم عنوانًا ثابتًا باستخدام nmcli، وتغيير اسم الجهاز (hostname)، وإعداد تحليل الأسماء. هذه من أكثر المهام شيوعًا في الامتحان وفي العمل.

  • 18 الدروس
  • 18 الأوامر
  • 1 المعامل

$ مستخدم عادي# بصلاحية root (أو مع sudo)

أهداف الامتحان في هذا الفصل

  • تشغيل خدمات الشبكة وإيقافها والتحقق من حالتها
  • ضبط عناوين IPv4 و IPv6
  • إعداد تحليل أسماء المضيفات
  • جعل خدمات الشبكة تعمل عند الإقلاع

8.1

قراءة عنوان IPv4 وقناعه

عنوان IPv4 هو 4 أرقام من 0 إلى 255. القناع (أو البادئة prefix) يحدد أي جزء هو الشبكة وأي جزء هو الجهاز (host).

عنوان مثل 192.168.122.10/24 له جزءان:

  • 192.168.122.10 هو عنوان هذا الجهاز.
  • /24 هو البادئة (prefix). أول 24 بت (أول 3 أرقام) هي الشبكة. الرقم الأخير هو الجهاز.

يمكن كتابة نفس القناع بطريقتين. أدوات لينكس تستخدم صيغة البادئة.

البادئةالقناععدد الأجهزة المتاحة
/8255.0.0.016,777,214
/16255.255.0.065,534
/24255.255.255.0254
/25255.255.255.128126
/26255.255.255.19262
/30255.255.255.2522

كل رقم هو 8 بت. بالنظام الثنائي 255 هو 11111111 و 192 هو 11000000. البادئة تعدّ بتات 1 في القناع من اليسار. عدد الأجهزة هو 2 أس (32 − البادئة) ناقص 2: عنوان للشبكة نفسها وعنوان للبث (broadcast).

النطاقات الخاصة تُستخدم داخل الشبكات فقط ولا تُوجَّه على الإنترنت: 10.0.0.0/8 و 172.16.0.0/12 و 192.168.0.0/16. العنوان 127.0.0.1 هو الجهاز نفسه (loopback).

تذكّر

‎/24 = 255.255.255.0 = 254 جهازًا. كل خطوة للأعلى (‎/25 و ‎/26 …) تقسم عدد الأجهزة على 2.

نصيحة للامتحان

الامتحان يعطيك العنوان بصيغة البادئة مثل 192.168.4.10/24. اكتبه بنفس الصيغة في nmcli.

الأوامر في هذا الدرس

8.2

قراءة عنوان IPv6

عنوان IPv6 طوله 128 بت، ويُكتب في 8 مجموعات من 4 أرقام ست عشرية. يمكنك اختصاره.

مثال: 2001:0db8:0000:0000:0000:0000:0000:0010 يصبح 2001:db8::10.

  1. احذف الأصفار في بداية كل مجموعة: 0db8 تصبح db8.
  2. استبدل سلسلة واحدة من المجموعات التي كلها أصفار بـ ::. يمكنك فعل ذلك مرة واحدة فقط في العنوان.

أغلب الشبكات تستخدم بادئة /64: أول 64 بت هي الشبكة، وآخر 64 بت هي الجهاز.

العنوانالمعنى
::1الجهاز نفسه (loopback)
fe80::/10عنوان محلي للرابط (link-local). كل بطاقة لها واحد. يعمل على الشبكة المحلية فقط.
2000::/3عناوين عامة تُستخدم على الإنترنت
fd00::/8عناوين محلية فريدة للشبكات الخاصة

تذكّر

:: تظهر مرة واحدة فقط. وجود عنوان link-local (fe80::) أمر طبيعي: لا يعني أن IPv6 تم إعداده.

8.3

معرفة عناوين MAC والبروتوكولات والمنافذ

عنوان MAC يحدد البطاقة على الشبكة المحلية. عنوان IP يحدد الجهاز عبر الشبكات. المنفذ (port) يحدد البرنامج على ذلك الجهاز.

  • عنوان MAC هو 6 بايت بالنظام الست عشري، مثل 52:54:00:3a:7c:01. تضعه الشركة المصنّعة لبطاقة الشبكة. تراه باستخدام ip link.
  • TCP يفتح اتصالًا ويتأكد من وصول كل البيانات (SSH والويب والبريد). UDP يرسل بدون اتصال (أسئلة DNS ووقت NTP).
  • المنفذ رقم من 1 إلى 65535. المنافذ تحت 1024 للخدمات المعروفة.
المنفذالخدمة
22/tcpSSH
53/udp و tcpDNS
80/tcp و 443/tcpHTTP و HTTPS
123/udpNTP (الوقت)
2049/tcpNFS

الملف /etc/services يحتوي على أرقام المنافذ المعروفة وأسمائها.

grep -w 22 /etc/services
ssh             22/tcp
ssh             22/udp

في العمل

في المراجعة الأمنية، ابدأ بقائمة المنافذ التي تستمع (الدروس التالية). كل منفذ مفتوح يجب أن يكون له مالك وسبب.

الأوامر في هذا الدرس

8.4

رؤية العناوين وبطاقات الشبكة

استخدم ip للنظر إلى الشبكة. هو يعرض الإعدادات الحقيقية التي يستخدمها النظام (kernel) الآن.

  1. اعرض كل العناوين. ip a اختصار لـ ip address show.
    ip a
    ip -br a
    lo               UNKNOWN        127.0.0.1/8 ::1/128
    enp1s0           UP             192.168.122.10/24 fe80::5054:ff:fe3a:7c01/64
  2. اعرض بطاقة واحدة فقط و IPv4 فقط.
    ip -4 addr show dev enp1s0
  3. اعرض البطاقات (links) وعنوان MAC وحالتها. الخيار -s يضيف عدادات للأخطاء والحزم المفقودة.
    ip link show
    ip -s link show enp1s0

أسماء بطاقات الشبكة تخبرك بمكان البطاقة: en = إيثرنت، o1 = على اللوحة الأم، s1 = فتحة (slot)، p1s0 = ناقل PCI رقم 1 فتحة 0. لذلك eno1 و ens160 و enp1s0 كلها أسماء طبيعية.

انتبه

التغييرات باستخدام ip addr add أو ip link set تضيع بعد إعادة التشغيل. استخدم nmcli للإعدادات التي يجب أن تبقى.

الأوامر في هذا الدرس

8.5

التحقق من المسار والبوابة الافتراضية

جدول التوجيه يحدد أين تذهب الحزم. المسار الافتراضي (البوابة الافتراضية) يُستخدم لكل عنوان ليس له مسار أفضل.

ip route show
default via 192.168.122.1 dev enp1s0 proto static metric 100
192.168.122.0/24 dev enp1s0 proto kernel scope link src 192.168.122.10 metric 100

السطر الأول هو البوابة الافتراضية. السطر الثاني يقول: الشبكة المحلية يتم الوصول إليها مباشرة عبر enp1s0.

لمعرفة الطريق الذي سيستخدمه النظام لعنوان واحد:

ip route get 8.8.8.8
8.8.8.8 via 192.168.122.1 dev enp1s0 src 192.168.122.10 uid 1000

ثم اختبر الطريق خطوة بخطوة:

  1. هل تصل إلى البوابة؟ نفّذ ping لها 3 مرات.
    ping -c 3 192.168.122.1
  2. هل تصل إلى عنوان على الإنترنت؟
    ping -c 3 8.8.8.8
  3. أين يتوقف الطريق؟ tracepath يعرض كل موجّه (router) في الطريق.
    tracepath -n 8.8.8.8

تذكّر

ping للبوابة يعمل وللإنترنت لا يعمل = المشكلة بعد البوابة. ping للإنترنت يعمل بالرقم ولا يعمل بالاسم = مشكلة DNS.

8.6

التحقق من أن منفذًا أو خدمة تستجيب

الأمر ss يعرض المنافذ التي تستمع على هذا النظام والاتصالات المفتوحة.

ss -tuln
ss -tulpn

الحروف: t = TCP، u = UDP، l = المنافذ التي تستمع فقط، n = أرقام (بدون أسماء)، p = اعرض البرنامج. تحتاج صلاحية root لرؤية برامج المستخدمين الآخرين.

ss -tlpn sport = :22
State  Recv-Q Send-Q Local Address:Port  Peer Address:Port Process
LISTEN 0      128          0.0.0.0:22         0.0.0.0:*     users:(("sshd",pid=1021,fd=3))

قد تستمع الخدمة لكن الجدار الناري يمنعها. لذلك تحقق أيضًا من الجدار الناري (الفصل 23) واختبر من جهاز آخر.

curl -I http://server1.example.com

تحقّق

هل الخدمة تعمل، وهل تستمع على العنوان والمنفذ الصحيحين؟

systemctl status sshd
ss -tlpn

في العمل

0.0.0.0:22 تعني "كل عناوين IPv4". و 127.0.0.1:5432 تعني "هذا الجهاز فقط" — قاعدة بيانات لا يجب الوصول إليها من الخارج.

8.7

معرفة من يُسمح له بتغيير الشبكة

المستخدم root يغيّر كل شيء. المستخدم العادي يغيّر الشبكة فقط عندما يكون مسجلًا على الشاشة المحلية (console).

يسأل NetworkManager نظام PolicyKit عمّن يُسمح له بماذا. تحقق من صلاحياتك:

nmcli general permissions

المستخدم الذي يدخل عبر SSH يحصل على auth أو no لأغلب الإجراءات. استخدم sudo أو اعمل كـ root لتغيير الشبكة عبر SSH.

انتبه

عندما تعمل عبر SSH، قد يقطع تغيير خاطئ اتصالك أنت. راجع الإعدادات الجديدة مرتين قبل nmcli con up. وعلى الجهاز الافتراضي اترك الشاشة (console) مفتوحة.

الأوامر في هذا الدرس

8.8

تغيير عنوان IPv4 باستخدام nmcli

يحفظ NetworkManager الإعدادات في ملف تعريف اتصال (connection profile). غيّر الملف باستخدام nmcli connection modify ثم فعّله باستخدام nmcli connection up.

  1. اعرف اسم ملف التعريف والجهاز (device).
    nmcli connection show
    NAME    UUID                                  TYPE      DEVICE
    enp1s0  3f0c3a8e-6c35-4c5a-9a0e-7f1a2b3c4d5e  ethernet  enp1s0
  2. اضبط عنوانًا ثابتًا والبوابة وخادم DNS. الإعداد ipv4.method manual يوقف DHCP.
    nmcli connection modify enp1s0 ipv4.method manual ipv4.addresses 192.168.122.10/24 \
        ipv4.gateway 192.168.122.1 ipv4.dns 192.168.122.1
  3. فعّل ملف التعريف مرة أخرى ليتم استخدام التغيير الآن.
    nmcli connection up enp1s0

تحقّق

يجب أن يكون العنوان والمسار و DNS صحيحة.

ip -br a show enp1s0
ip route show default
cat /etc/resolv.conf

يمكنك استخدام كلمات قصيرة: con بدل connection، و mod بدل modify، ويمكن كتابة ipv4.addresses أيضًا ip4. الإكمال بزر Tab يعمل مع nmcli: اضغط Tab مرتين لترى الكلمات التالية الممكنة.

للرجوع إلى DHCP:

nmcli con mod enp1s0 ipv4.method auto ipv4.addresses "" ipv4.gateway "" ipv4.dns ""
nmcli con up enp1s0

تذكّر

أولًا modify ثم up. بدون up يبقى التغيير منتظرًا في ملف التعريف.

نصيحة للامتحان

أعد تشغيل الجهاز في نهاية الامتحان وتحقق من العنوان مرة أخرى. الإعداد النشط فقط (غير المحفوظ في ملف التعريف) يضيع بعد إعادة التشغيل.

8.9

إضافة عنوان IPv6 أو عنوان IP ثانٍ

ملف التعريف يمكن أن يحمل عناوين كثيرة. علامة + قبل الإعداد تضيف قيمة، وعلامة - تحذف قيمة.

  1. أضف عنوان IPv4 ثانيًا لنفس البطاقة.
    nmcli con mod enp1s0 +ipv4.addresses 192.168.122.110/24
  2. أضف عنوان IPv6 ثابتًا وبوابة.
    nmcli con mod enp1s0 ipv6.method manual ipv6.addresses 2001:db8:10::10/64 ipv6.gateway 2001:db8:10::1
  3. فعّل التغييرات.
    nmcli con up enp1s0

تحقّق

ip -br a show enp1s0
ping -6 -c 2 2001:db8:10::1

لحذف عنوان واحد مرة أخرى:

nmcli con mod enp1s0 -ipv4.addresses 192.168.122.110/24

تذكّر

+ تضيف، - تحذف، وبدون علامة تستبدل كل القيم.

8.10

إنشاء ملف تعريف اتصال جديد

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

  1. أنشئ ملف التعريف. con-name هو اسم ملف التعريف، و ifname هو الجهاز.
    nmcli con add con-name lab-static type ethernet ifname enp1s0 \
        ipv4.method manual ipv4.addresses 192.168.122.10/24 ipv4.gateway 192.168.122.1 ipv4.dns 192.168.122.1
  2. انتقل إلى ملف التعريف الجديد ثم ارجع.
    nmcli con up lab-static
    nmcli con up enp1s0
  3. احذف ملف تعريف لا تحتاجه.
    nmcli con delete lab-static

انتبه

إذا كان ملفا تعريف لنفس الجهاز كلاهما فيه autoconnect مفعّل، فلن تعرف أيهما سيبدأ بعد إعادة التشغيل. أوقف الذي لا تريده: nmcli con mod enp1s0 connection.autoconnect no.

الأوامر في هذا الدرس

8.11

تغيير الشبكة باستخدام nmtui (القوائم)

nmtui قائمة نصية لنفس الإعدادات. هي سهلة عندما لا تتذكر كلمات nmcli.

  1. شغّلها بصلاحية root.
    nmtui
  2. اختر Edit a connection، ثم ملف التعريف، وغيّر IPv4 CONFIGURATION من Automatic إلى Manual، واكتب العنوان مع البادئة والبوابة وخادم DNS.
  3. اختر OK ثم Back ثم Activate a connection. أوقف ملف التعريف وفعّله مرة أخرى ليتم استخدام التغيير.

استخدم الأسهم وزر Tab للتنقل، وزر المسافة لوضع علامة في المربع، وزر Enter للاختيار.

نصيحة للامتحان

الأداة nmtui سريعة وآمنة لعنوان واحد. استخدم nmcli عندما تكتب إعدادات كثيرة أو تعمل داخل سكربت.

الأوامر في هذا الدرس

8.12

قراءة ملفات التعريف وتعديلها

كل ملف تعريف محفوظ كملف نصي (keyfile) في /etc/NetworkManager/system-connections/. يمكنك قراءته، وتعديله إذا جعلت NetworkManager يقرأ الملفات مرة أخرى بعد ذلك.

ls /etc/NetworkManager/system-connections/
enp1s0.nmconnection
cat /etc/NetworkManager/system-connections/enp1s0.nmconnection
enp1s0.nmconnection
[connection]
id=enp1s0
type=ethernet
interface-name=enp1s0
 
[ipv4]
method=manual
address1=192.168.122.10/24,192.168.122.1
dns=192.168.122.1;

بعد التعديل اليدوي، اطلب من NetworkManager قراءة الملفات مرة أخرى ثم فعّل ملف التعريف:

nmcli con reload
nmcli con up enp1s0

انتبه

يجب أن يكون الملف ملكًا لـ root وصلاحياته 600 (-rw-------)، وإلا فلن يستخدمه NetworkManager. في RHEL 10 لم تعد ملفات ifcfg القديمة في /etc/sysconfig/network-scripts/ مستخدمة.

8.13

تغيير اسم الجهاز (hostname)

الأمر hostnamectl يغيّر اسم النظام الآن وبعد إعادة التشغيل. هو يكتب الاسم في /etc/hostname.

  1. اعرض الاسم الحالي.
  2. اضبط الاسم الجديد. استخدم الاسم الكامل (FQDN).
    hostnamectl set-hostname server1.example.com
  3. تحقق منه. الطرفية الجديدة تعرض الاسم الجديد في سطر الأوامر.
    hostname
    server1.example.com

الأمر nmcli general hostname server1.example.com يقوم بنفس العمل.

تذكّر

‏hostnamectl set-hostname = الآن + بعد إعادة التشغيل. الأمر hostname وحده يغيّر الاسم حتى إعادة التشغيل التالية فقط.

8.14

إعداد DNS والملف ‎/etc/hosts

لينكس يبحث أولًا في /etc/hosts ثم يسأل خوادم DNS. الترتيب موجود في /etc/nsswitch.conf.

  1. أضف اسمًا إلى /etc/hosts لجهاز ليس له اسم في DNS. الصيغة: العنوان، ثم الاسم الكامل، ثم الأسماء القصيرة.
    /etc/hosts
    127.0.0.1       localhost localhost.localdomain
    ::1             localhost localhost.localdomain
    192.168.122.20  server2.example.com server2
  2. اضبط خوادم DNS في ملف التعريف. NetworkManager يكتب /etc/resolv.conf بدلًا منك. لا تعدّل هذا الملف يدويًا: تعديلك سيضيع في التحديث التالي.
    nmcli con mod enp1s0 ipv4.dns "192.168.122.1 1.1.1.1" ipv4.dns-search example.com
    nmcli con up enp1s0
  3. إذا كان DHCP يرسل خوادم DNS أيضًا وأنت تريد خوادمك فقط:
    nmcli con mod enp1s0 ipv4.ignore-auto-dns yes

تحقّق

اختبر الأسماء. الأمر getent يتبع نفس ترتيب النظام (ملف hosts ثم DNS). أما dig و host و nslookup فتسأل DNS فقط.

getent hosts server2
192.168.122.20  server2.example.com server2
dig +short www.redhat.com
nslookup www.redhat.com
/etc/nsswitch.conf (part)
hosts:      files dns myhostname

الأوامر dig و host و nslookup موجودة في الحزمة bind-utils.

تذكّر

ملف hosts أولًا ثم DNS. ‏getent hosts يختبر الاثنين، و dig يختبر DNS فقط.

في العمل

إذا كان تطبيق لا يصل إلى اسم لكن dig يعمل، قارن مع getent hosts. سطر قديم في /etc/hosts يتغلب غالبًا على DNS.

8.15

تشغيل خدمات الشبكة عند الإقلاع

الشبكة نفسها تبدأ عند الإقلاع عندما يكون NetworkManager مفعّلًا وملف التعريف فيه autoconnect مفعّل. خدمات الشبكة الأخرى (مثل SSH أو خادم ويب) تبدأ عند الإقلاع عندما تفعّلها بالأمر enable في systemd.

  1. تأكد أن NetworkManager يعمل الآن وعند الإقلاع.
    systemctl enable --now NetworkManager
  2. تأكد أن ملف التعريف يبدأ وحده.
    nmcli con mod enp1s0 connection.autoconnect yes
  3. شغّل خدمة شبكة وأوقفها وتحقق منها، واجعلها تبدأ عند الإقلاع.
    systemctl status sshd
    systemctl restart sshd
    systemctl enable --now sshd

تحقّق

بعد إعادة التشغيل يجب أن يكون ملف التعريف والخدمة نشطين.

nmcli -f NAME,DEVICE,STATE con show --active
systemctl is-enabled sshd
systemctl is-active sshd

تذكّر

‏enable = يبدأ عند الإقلاع. ‏--now = ويبدأ الآن أيضًا.

8.16

تذكّر النقاط الأساسية

أهم حقائق هذا الفصل باختصار.

  • عنوان IPv4 فيه 4 أرقام؛ والبادئة (‎/24) تحدد أي جزء هو الشبكة. عناوين IPv6 طولها 128 بت وتُكتب بالنظام الست عشري.
  • ip a يعرض العناوين، و ip route يعرض المسارات، و ss -tulpn يعرض المنافذ التي تستمع.
  • NetworkManager يحفظ الإعدادات في ملفات تعريف الاتصال (connection profiles)؛ غيّرها باستخدام nmcli أو nmtui. التغييرات بالأمر ip تضيع بعد إعادة التشغيل.
  • عنوان ثابت: nmcli con mod NAME ipv4.method manual ipv4.addresses IP/PREFIX ipv4.gateway GW ipv4.dns DNS ثم nmcli con up NAME.
  • يحفظ RHEL 10 ملفات التعريف كملفات keyfile في /etc/NetworkManager/system-connections/.
  • الأمر hostnamectl set-hostname NAME يضبط اسم الجهاز بشكل دائم.
  • تحليل الأسماء يستخدم /etc/hosts أولًا ثم DNS (انظر /etc/nsswitch.conf)؛ اختبر بالأمر getent hosts NAME.
  • يستطيع root (أو مستخدم يسمح له polkit) تغيير إعدادات الشبكة.

8.17

تعلّم المصطلحات الأساسية

كلمات هذا الفصل بلغة بسيطة.

المصطلحالمعنى
عنوان IPعنوان بطاقة الشبكة داخل الشبكة.
البادئة / القناعالجزء من العنوان الذي يمثل الشبكة (/24 = 255.255.255.0).
البوابة (Gateway)الموجّه الذي يرسل البيانات إلى الشبكات الأخرى.
DNSالخدمة التي تحوّل الأسماء إلى عناوين IP.
عنوان MACالعنوان الفيزيائي لبطاقة الشبكة.
المنفذ (Port)رقم يشير إلى خدمة واحدة على الجهاز (22 = SSH، 80 = HTTP).
NetworkManagerالخدمة التي تدير الشبكة في RHEL.
ملف تعريف الاتصالمجموعة إعدادات شبكة محفوظة لجهاز.
الجهاز (device)بطاقة شبكة أو واجهة شبكة أخرى مثل enp1s0.
اسم الجهاز (hostname)اسم النظام.

8.18

اختبر ما تعلّمته

فكّر في الإجابة أولًا ثم افتحها.

1كم عنوان جهاز يمكن استخدامه في شبكة ‎/24؟

254.

2أي أمر يعرض كل عناوين IP بشكل مختصر؟
3كيف ترى الخدمات التي تستمع على منافذ TCP و UDP؟
4لماذا لا يصلح التغيير بالأمر ip addr add في الامتحان؟

لأنه يضيع بعد إعادة التشغيل. استخدم nmcli ليُحفظ في ملف التعريف.

5كيف تضيف عنوان IP ثانيًا إلى ملف تعريف؟
6كيف تغيّر اسم الجهاز بشكل دائم؟
7كيف يجد server1 الجهاز server2 بالاسم بدون DNS؟

أضف سطرًا لـ server2 في /etc/hosts.

8أي أمر يختبر تحليل الأسماء بنفس طريقة البرامج؟

تدرّب

كل الأوامر في هذا الفصل