الشبكات الفرعية وجداول التوجيه
ما هي الشبكة الفرعية؟
الشبكة الفرعية هي تقسيم فرعي لـ VPC الخاص بك. كل شبكة فرعية توجد في منطقة توافر واحدة.
┌─────────────────────────────────────────────────────────────┐
│ الشبكات الفرعية │
├─────────────────────────────────────────────────────────────┤
│ │
│ VPC (10.0.0.0/16) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────┐ │ │
│ │ │ المنطقة us-east-1 │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │
│ │ │ │ AZ 1a │ │ AZ 1b │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ ┌─────────┐ │ │ ┌─────────┐ │ │ │ │
│ │ │ │ │Subnet A │ │ │ │Subnet B │ │ │ │ │
│ │ │ │ │10.0.1.0 │ │ │ │10.0.2.0 │ │ │ │ │
│ │ │ │ │ /24 │ │ │ │ /24 │ │ │ │ │
│ │ │ │ └─────────┘ │ │ └─────────┘ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ └─────────────┘ └─────────────┘ │ │ │
│ │ │ │ │ │
│ │ └──────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ قاعدة: 1 شبكة فرعية = 1 AZ (لا يمكن أن تمتد) │
│ لكن: 1 AZ يمكن أن تحتوي على عدة شبكات فرعية │
│ │
└─────────────────────────────────────────────────────────────┘
الشبكة الفرعية العامة مقابل الشبكة الفرعية الخاصة
┌─────────────────────────────────────────────────────────────┐
│ عام مقابل خاص │
├─────────────────────────────────────────────────────────────┤
│ │
│ الإنترنت │
│ │ │
│ ▼ │
│ ┌──────────┐ │
│ │ IGW │ │
│ └────┬─────┘ │
│ │ │
│ ┌─────────────────────┼─────────────────────┐ │
│ │ VPC │ │ │
│ │ │ │ │
│ │ ┌─────────────────┴───────────────┐ │ │
│ │ │ الشبكة الفرعية العامة │ │ │
│ │ │ │ │ │
│ │ │ • مسار إلى IGW (0.0.0.0/0) │ │ │
│ │ │ • IP عام يتم تعيينه تلقائيًا │ │ │
│ │ │ • يمكن الوصول إليها من الإنترنت │ │ │
│ │ │ │ │ │
│ │ │ الموارد: موازن تحميل، │ │ │
│ │ │ بوابة NAT │ │ │
│ │ │ │ │ │
│ │ └─────────────────┬───────────────┘ │ │
│ │ │ │ │
│ │ │ (بوابة NAT) │ │
│ │ │ │ │
│ │ ┌─────────────────┴───────────────┐ │ │
│ │ │ الشبكة الفرعية الخاصة │ │ │
│ │ │ │ │ │
│ │ │ • لا يوجد مسار إلى IGW │ │ │
│ │ │ • لا يوجد IP عام │ │ │
│ │ │ • لا يمكن الوصول إليها من الإنترنت │ │ │
│ │ │ • يمكن الخروج عبر NAT │ │ │
│ │ │ │ │ │
│ │ │ الموارد: خوادم التطبيقات، │ │ │
│ │ │ قاعدة البيانات │ │ │
│ │ │ │ │ │
│ │ └──────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
الفروقات الرئيسية
| الميزة | الشبكة الفرعية العامة | الشبكة الفرعية الخاصة |
|---|---|---|
| مسار إلى IGW | ✅ نعم (0.0.0.0/0 → igw) | ❌ لا |
| IP عام تلقائي | ✅ قابل للتفعيل | ❌ لا |
| الوصول من الإنترنت | ✅ ممكن | ❌ غير ممكن |
| الوصول إلى الإنترنت | ✅ مباشر | ⚠️ عبر بوابة NAT |
| حالات الاستخدام | خوادم الويب، LB | قواعد البيانات، خوادم التطبيقات |
جداول التوجيه
ما هي جدول التوجيه؟
تحتوي جدول التوجيه على قواعد (مسارات) تحدد أين يتم توجيه حركة المرور الشبكية.
┌─────────────────────────────────────────────────────────────┐
│ جدول التوجيه │
├─────────────────────────────────────────────────────────────┤
│ │
│ جدول التوجيه = "لوحة توجيه" الشبكة │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ الوجهة │ الهدف │ النتيجة │ │
│ │ ─────────────────┼──────────────────┼────────────│ │
│ │ 10.0.0.0/16 │ local │ يبقى في VPC │ │
│ │ 0.0.0.0/0 │ igw-xxx │ الإنترنت │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ كيف يعمل: │
│ 1. يصل الحزمة مع الوجهة 8.8.8.8 │
│ 2. تحقق: 8.8.8.8 في 10.0.0.0/16؟ لا │
│ 3. تحقق: 8.8.8.8 في 0.0.0.0/0؟ نعم │
│ 4. يرسل إلى igw-xxx (بوابة الإنترنت) │
│ │
│ قاعدة: المسار الأكثر تحديدًا يفوز │
│ 10.0.0.0/16 أكثر تحديدًا من 0.0.0.0/0 │
│ │
└─────────────────────────────────────────────────────────────┘
جدول التوجيه العام مقابل الخاص
┌─────────────────────────────────────────────────────────────┐
│ جدول التوجيه العام مقابل الخاص │
├─────────────────────────────────────────────────────────────┤
│ │
│ جدول التوجيه العام │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ الوجهة │ الهدف │ الوصف │ │
│ │─────────────────┼─────────────────┼─────────────────│ │
│ │ 10.0.0.0/16 │ local │ حركة المرور الداخلية │ │
│ │ 0.0.0.0/0 │ igw-xxxxxxxx │ → الإنترنت │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ جدول التوجيه الخاص │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ الوجهة │ الهدف │ الوصف │ │
│ │─────────────────┼─────────────────┼─────────────────│ │
│ │ 10.0.0.0/16 │ local │ حركة المرور الداخلية │ │
│ │ 0.0.0.0/0 │ nat-xxxxxxxx │ → بوابة NAT │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ جدول التوجيه المعزول (خاص جدًا) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ الوجهة │ الهدف │ الوصف │ │
│ │─────────────────┼─────────────────┼─────────────────│ │
│ │ 10.0.0.0/16 │ local │ حركة المرور الداخلية │ │
│ │ (لا يوجد 0.0.0.0/0) │ لا يوجد إنترنت │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
ربط الشبكة الفرعية ↔ جدول التوجيه
┌─────────────────────────────────────────────────────────────┐
│ ربط الشبكة الفرعية - جدول التوجيه │
├─────────────────────────────────────────────────────────────┤
│ │
│ كل شبكة فرعية مرتبطة بجدول توجيه واحد │
│ │
│ ┌───────────────┐ │
│ │ جدول التوجيه │──────────┐ │
│ │ rtb-public │ │ │
│ └───────────────┘ │ │
│ │ │ │
│ │ ┌────▼────┐ │
│ ┌──────▼──────┐ │ شبكة فرعية │ │
│ │ شبكة فرعية │ │ 1b │ │
│ │ 1a │ │(عامة) │ │
│ │ (عامة) │ └─────────┘ │
│ └─────────────┘ │
│ │
│ ┌───────────────┐ │
│ │ جدول التوجيه │──────────┐ │
│ │ rtb-private │ │ │
│ └───────────────┘ │ │
│ │ │ │
│ │ ┌────▼────┐ │
│ ┌──────▼──────┐ │ شبكة فرعية │ │
│ │ شبكة فرعية │ │ 2b │ │
│ │ 2a │ │(خاصة) │ │
│ │ (خاصة) │ └─────────┘ │
│ └─────────────┘ │
│ │
│ جدول التوجيه الرئيسي: جدول التوجيه الافتراضي إذا لم يكن مرتبطًا │
│ │
└─────────────────────────────────────────────────────────────┘
إنشاء شبكة فرعية
عبر وحدة التحكم
1. VPC → الشبكات الفرعية → إنشاء شبكة فرعية
2. VPC: اختر VPC الخاص بك
3. اسم الشبكة الفرعية: public-1a
4. منطقة التوافر: us-east-1a
5. كتلة IPv4 CIDR: 10.0.1.0/24
6. إنشاء شبكة فرعية
عبر AWS CLI
# إنشاء شبكة فرعية عامة
aws ec2 create-subnet \
--vpc-id vpc-xxx \
--cidr-block 10.0.1.0/24 \
--availability-zone us-east-1a \
--tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=public-1a}]'
# تفعيل التعيين التلقائي لـ IP العام (للشبكة الفرعية العامة)
aws ec2 modify-subnet-attribute \
--subnet-id subnet-xxx \
--map-public-ip-on-launch
إنشاء وتكوين جدول توجيه
عبر AWS CLI
# إنشاء جدول توجيه
aws ec2 create-route-table \
--vpc-id vpc-xxx \
--tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=rtb-public}]'
# إضافة مسار إلى بوابة الإنترنت
aws ec2 create-route \
--route-table-id rtb-xxx \
--destination-cidr-block 0.0.0.0/0 \
--gateway-id igw-xxx
# ربط الشبكة الفرعية بجدول التوجيه
aws ec2 associate-route-table \
--route-table-id rtb-xxx \
--subnet-id subnet-xxx
خطة التوجيه الموصى بها
┌─────────────────────────────────────────────────────────────┐
│ خطة التوجيه الموصى بها │
├─────────────────────────────────────────────────────────────┤
│ │
│ VPC: 10.0.0.0/16 (65,536 عنوان) │
│ │
│ الشبكات الفرعية العامة (طبقة الويب) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ public-1a : 10.0.1.0/24 (AZ a) - 251 IPs │ │
│ │ public-1b : 10.0.2.0/24 (AZ b) - 251 IPs │ │
│ │ public-1c : 10.0.3.0/24 (AZ c) - 251 IPs │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ الشبكات الفرعية الخاصة (طبقة التطبيقات) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ private-1a : 10.0.11.0/24 (AZ a) - 251 IPs │ │
│ │ private-1b : 10.0.12.0/24 (AZ b) - 251 IPs │ │
│ │ private-1c : 10.0.13.0/24 (AZ c) - 251 IPs │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ الشبكات الفرعية لقاعدة البيانات (طبقة البيانات) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ database-1a: 10.0.21.0/24 (AZ a) - 251 IPs │ │
│ │ database-1b: 10.0.22.0/24 (AZ b) - 251 IPs │ │
│ │ database-1c: 10.0.23.0/24 (AZ c) - 251 IPs │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ اتفاقية التسمية: │
│ • 10.0.X.0/24 حيث X = 1-9 للعام │
│ • 10.0.X.0/24 حيث X = 11-19 للتطبيقات الخاصة │
│ • 10.0.X.0/24 حيث X = 21-29 لقاعدة البيانات │
│ │
└─────────────────────────────────────────────────────────────┘
أفضل الممارسات
1. دائمًا متعدد المناطق
✅ جيد: شبكات فرعية في 2 AZ على الأقل
❌ سيء: جميع الشبكات الفرعية في AZ واحدة
السبب: المرونة في حالة فشل AZ
2. فصل العام عن الخاص
✅ جيد:
- شبكات فرعية عامة لموازنات التحميل
- شبكات فرعية خاصة لخوادم التطبيقات
- شبكات فرعية معزولة لقواعد البيانات
❌ سيء: كل شيء في شبكات فرعية عامة
3. التخطيط للتوجيه
✅ جيد: خطة توجيه موثقة قبل الإنشاء
❌ سيء: CIDR عشوائي، احتمالية التداخل
نصيحة: اترك مساحة للنمو
ملخص
| المفهوم | الوصف |
|---|---|
| الشبكة الفرعية | شبكة فرعية في AZ |
| الشبكة الفرعية العامة | مسار إلى IGW، وصول إلى الإنترنت |
| الشبكة الفرعية الخاصة | لا يوجد مسار IGW، معزولة |
| جدول التوجيه | قواعد توجيه حركة المرور |
| local | مسار تلقائي لـ VPC |
| 0.0.0.0/0 | المسار الافتراضي (الإنترنت) |
اختبار التحقق
- هل يمكن أن تمتد الشبكة الفرعية عبر عدة AZ؟
- ما الذي يجعل الشبكة الفرعية "عامة"؟
- ما هو المسار الذي يجعل الشبكة الفرعية عامة؟
- كم عدد العناوين القابلة للاستخدام في /24؟
- ما هو جدول التوجيه الرئيسي؟
القسم التالي: بوابة الإنترنت