انتقل إلى المحتوى الرئيسي

الفصل 7.2 - التوجيه وجداول التوجيه

أهداف التعلم​

في نهاية هذا الفصل، ستكون قادرًا على:

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

ما هو التوجيه؟​

يحدد التوجيه كيفية إرسال حزم الشبكة من مصدر إلى وجهة.

الوظيفة:

  • تحديد أين يتم إرسال الحزم
  • يعتمد على جداول التوجيه
  • المسار الافتراضي للوجهات غير المعروفة

جداول التوجيه​

عرض المسارات​

# عرض جميع المسارات
ip route show
ip route
route -n # باستخدام net-tools

# عرض مسار محدد
ip route get 8.8.8.8

هيكل المسار​

destination via gateway dev interface

مثال:

default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100

المسار الافتراضي​

عرض المسار الافتراضي​

# باستخدام ip
ip route show default
ip route | grep default

# باستخدام route
route -n | grep "^0.0.0.0"

إضافة مسار افتراضي​

# باستخدام ip
sudo ip route add default via 192.168.1.1 dev eth0

# باستخدام route
sudo route add default gw 192.168.1.1 eth0

حذف المسار الافتراضي​

# باستخدام ip
sudo ip route del default

# باستخدام route
sudo route del default

المسارات الثابتة​

إضافة مسار​

# مسار إلى شبكة محددة
sudo ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0

# مسار إلى مضيف محدد
sudo ip route add 10.0.0.50 via 192.168.1.1 dev eth0

# مسار عبر واجهة محلية
sudo ip route add 172.16.0.0/16 dev eth1

حذف مسار​

# حذف مسار
sudo ip route del 10.0.0.0/24

# أو تحديده بالكامل
sudo ip route del 10.0.0.0/24 via 192.168.1.1 dev eth0

أمثلة​

# مسار إلى شبكة خاصة عبر VPN
sudo ip route add 192.168.100.0/24 via 10.8.0.1 dev tun0

# مسار إلى خادم محدد
sudo ip route add 203.0.113.50 via 192.168.1.1 dev eth0

جداول التوجيه المتعددة​

عرض الجداول​

# قائمة الجداول
ip route show table all

# جدول محدد
ip route show table main
ip route show table local

الجداول الخاصة​

  • main: الجدول الرئيسي (الافتراضي)
  • local: المسارات المحلية (127.0.0.0/8، إلخ.)
  • default: المسارات الافتراضية

إضافة مسار في جدول محدد​

# مسار في جدول مخصص
sudo ip route add 10.0.0.0/24 via 192.168.1.1 table 100

# عرض الجدول
ip route show table 100

التكوين الدائم​

أوبونتو/ديبيان (Netplan)​

# /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
eth0:
addresses:
- 192.168.1.100/24
routes:
- to: 10.0.0.0/24
via: 192.168.1.1
- to: 0.0.0.0/0
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8

تطبيق:

sudo netplan apply

ريد هات/سينت أو إس​

# ملف: /etc/sysconfig/network-scripts/route-eth0
10.0.0.0/24 via 192.168.1.1 dev eth0
default via 192.168.1.1 dev eth0

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

Traceroute​

# تتبع المسار
traceroute 8.8.8.8
tracepath 8.8.8.8 # باستخدام iputils

# باستخدام mtr (التثبيت إذا لزم الأمر)
sudo apt install mtr
mtr 8.8.8.8

التحقق من الاتصال​

# Ping
ping -c 4 8.8.8.8
ping -c 4 google.com

# عرض المسار المستخدم
ip route get 8.8.8.8

التحقق من المسار الافتراضي​

# المسار الافتراضي
ip route show default

# هل البوابة متاحة؟
ping -c 2 $(ip route | grep default | awk '{print $3}')

أمثلة عملية​

سكربت تكوين التوجيه​

#!/bin/bash
# تكوين التوجيه

INTERFACE="eth0"
GATEWAY="192.168.1.1"

# المسار الافتراضي
sudo ip route add default via $GATEWAY dev $INTERFACE

# مسار إلى شبكة خاصة
sudo ip route add 10.0.0.0/24 via $GATEWAY dev $INTERFACE

# التحقق
ip route show

التحقق من التوجيه​

#!/bin/bash
# التحقق من تكوين التوجيه

echo "=== المسارات ==="
ip route show

echo "=== المسار الافتراضي ==="
ip route show default

echo "=== اختبار الاتصال ==="
ping -c 2 8.8.8.8

ملخص​

في هذا الفصل، تعلمت:

التوجيه: قرار إرسال حزم الشبكة
الجداول: main، local، جداول مخصصة
المسار الافتراضي: بوابة للوجهات غير المعروفة
المسارات الثابتة: مسارات محددة إلى الشبكات/المضيفين
التكوين: Netplan، ملفات route-*
استكشاف الأخطاء وإصلاحها: traceroute، ping، ip route get


الخطوات التالية​

الفصل 7.3: DNS وحل الأسماء
الفصل 7.4: أدوات الشبكة


تم إنشاء الفصل في: ديسمبر 2024