الفصل 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