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

مفاهيم DNS و Route 53

ما هو DNS؟​

نظام DNS (نظام أسماء النطاقات) هو النظام الذي يترجم أسماء النطاقات (مثل: www.example.com) إلى عناوين IP (مثل: 192.0.2.1).

┌─────────────────────────────────────────────────────────────┐
│ DNS - المفهوم │
├─────────────────────────────────────────────────────────────┤
│ │
│ بدون DNS : │
│ ────────── │
│ http://192.0.2.44 ← صعب التذكر! │
│ http://52.84.133.67 ← قد يتغير! │
│ │
│ مع DNS : │
│ ───────── │
│ http://www.mon-site.com ← سهل التذكر! │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ المستخدم خادم DNS خادم الويب │ │
│ │ │ │ │ │ │
│ │ │ "www.mon-site.com?" │ │ │ │
│ │ ├────────────────────►│ │ │ │
│ │ │ │ │ │ │
│ │ │ "192.0.2.44" │ │ │ │
│ │ │◄────────────────────┤ │ │ │
│ │ │ │ │ │ │
│ │ │ اتصال بـ 192.0.2.44 │ │ │
│ │ ├────────────────────────────────────►│ │ │
│ │ │ │ │ │ │
│ │ │ صفحة الويب │ │ │
│ │ │◄────────────────────────────────────┤ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

هرمية DNS​

┌─────────────────────────────────────────────────────────────┐
│ هرمية DNS │
├─────────────────────────────────────────────────────────────┤
│ │
│ . (الجذر) │
│ │ │
│ ┌──────────────┼──────────────┐ │
│ │ │ │ │
│ .com .org .ca │
│ │ │ │ │
│ ┌────┴────┐ │ │ │
│ │ │ │ │ │
│ amazon google wikipedia gc │
│ │ │ │ │ │
│ ┌──┴──┐ ┌──┴──┐ │ │ │
│ www s3 www mail www www │
│ │
│ مثال كامل : │
│ www.amazon.com. │
│ ─── ────── ─── ─ │
│ │ │ │ └── الجذر (ضمني) │
│ │ │ └────── TLD (نطاق المستوى الأعلى) │
│ │ └─────────── SLD (نطاق المستوى الثاني) │
│ └──────────────── نطاق فرعي │
│ │
└─────────────────────────────────────────────────────────────┘

أنواع سجلات DNS​

الأهم​

┌─────────────────────────────────────────────────────────────┐
│ أنواع السجلات │
├─────────────────────────────────────────────────────────────┤
│ │
│ TYPE A (Address) │
│ ──────────────── │
│ يربط اسمًا بعنوان IPv4 │
│ www.example.com → 192.0.2.44 │
│ │
│ TYPE AAAA │
│ ───────── │
│ يربط اسمًا بعنوان IPv6 │
│ www.example.com → 2001:0db8:85a3::8a2e:0370:7334 │
│ │
│ TYPE CNAME (Canonical Name) │
│ ─────────────────────────── │
│ ينشئ اسمًا مستعارًا لاسم آخر │
│ blog.example.com → www.example.com │
│ ⚠️ لا يمكن أن يكون في الجذر (example.com) │
│ │
│ TYPE ALIAS (خاص بـ AWS) │
│ ─────────────────────────── │
│ مثل CNAME ولكن يعمل في الجذر │
│ example.com → d1234.cloudfront.net │
│ ✅ يمكن أن يكون في الجذر! │
│ │
│ TYPE MX (Mail Exchange) │
│ ─────────────────────── │
│ خوادم البريد للنطاق │
│ example.com → mail1.example.com (الأولوية 10) │
│ │
│ TYPE TXT │
│ ──────── │
│ نص عشوائي (التحقق، SPF، DKIM) │
│ example.com → "v=spf1 include:_spf.google.com ~all" │
│ │
│ TYPE NS (Name Server) │
│ ───────────────────── │
│ خوادم DNS الموثوقة للمنطقة │
│ example.com → ns1.route53.aws.com │
│ │
└─────────────────────────────────────────────────────────────┘

جدول ملخص​

النوعالاستخدامالمثال
Aاسم → IPv4www → 192.0.2.44
AAAAاسم → IPv6www → 2001:db8::1
CNAMEاسم مستعار (ليس الجذر)blog → www
ALIASاسم مستعار (الجذر مسموح)@ → ALB
MXخوادم البريد@ → mail.example.com
TXTنص، تحققSPF، DKIM
NSخوادم DNS@ → ns1.aws.com

TTL (مدة الحياة)​

┌─────────────────────────────────────────────────────────────┐
│ TTL - مدة الحياة │
├─────────────────────────────────────────────────────────────┤
│ │
│ يشير TTL إلى المدة التي يمكن فيها تخزين سجل في الذاكرة │
│ المؤقتة (بالثواني) │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ طلب DNS ذاكرة محلية Route 53 │ │
│ │ │ │ │ │ │
│ │ │ طلب │ │ │ │
│ │ ├─────────────►│ │ │ │
│ │ │ │ │ │ │
│ │ │ "غير مخزن، أطلب من Route 53" │ │
│ │ │ ├──────────────►│ │ │
│ │ │ │ │ │ │
│ │ │ │ 192.0.2.44 │ │ │
│ │ │ │ TTL: 300 │ │ │
│ │ │ │◄──────────────┤ │ │
│ │ │ │ │ │ │
│ │ │ يخزن 5 دقائق │ │ │ │
│ │ │ │ │ │ │
│ │ │ 192.0.2.44 │ │ │ │
│ │ │◄─────────────┤ │ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ TTL قصير (60-300 ثانية) TTL طويل (3600-86400 ثانية) │
│ ──────────────────── ───────────────────────── │
│ ✅ تغييرات سريعة ✅ طلبات DNS أقل │
│ ❌ طلبات DNS أكثر ❌ انتشار بطيء │
│ حالات: الترحيل، الفشل حالات: المواقع الثابتة │
│ │
└─────────────────────────────────────────────────────────────┘

Route 53 - خدمة DNS من AWS​

الميزات​

┌─────────────────────────────────────────────────────────────┐
│ ROUTE 53 - الميزات │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. DNS موثوق │
│ ───────────────── │
│ يستضيف مناطق DNS لنطاقاتك │
│ 100% SLA من التوافرية │
│ │
│ 2. تسجيل النطاقات │
│ ─────────────────────────── │
│ شراء النطاقات (.com، .net، .io...) │
│ تجديد تلقائي │
│ │
│ 3. فحوصات الصحة │
│ ───────────── │
│ مراقبة النقاط النهائية │
│ يزيل الأهداف المعطلة تلقائيًا │
│ │
│ 4. سياسات التوجيه │
│ ───────────────────── │
│ بسيط، موزون، زمن الانتقال، الفشل، الموقع الجغرافي... │
│ │
│ 5. سجلات ALIAS │
│ ───────────── │
│ التوجيه إلى موارد AWS بدون IP │
│ (ALB، CloudFront، S3، API Gateway...) │
│ │
└─────────────────────────────────────────────────────────────┘

المناطق المستضافة​

┌─────────────────────────────────────────────────────────────┐
│ المناطق المستضافة │
├─────────────────────────────────────────────────────────────┤
│ │
│ منطقة مستضافة = حاوية للسجلات لنطاق │
│ │
│ منطقة مستضافة عامة │
│ ────────────────── │
│ • متاحة من الإنترنت │
│ • للمواقع العامة │
│ • التكلفة: $0.50/شهر لكل منطقة │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ منطقة مستضافة : example.com │ │
│ │ │ │
│ │ NS example.com ns-123.awsdns-45.com │ │
│ │ SOA example.com ns-123.awsdns-45.com admin │ │
│ │ A example.com 52.84.133.67 │ │
│ │ A www 52.84.133.67 │ │
│ │ CNAME blog www.example.com │ │
│ │ MX example.com 10 mail.example.com │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ منطقة مستضافة خاصة │
│ ─────────────────── │
│ • متاحة فقط من VPC │
│ • للموارد الداخلية │
│ • DNS خاص (db.internal، api.internal) │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ منطقة مستضافة : internal.company │ │
│ │ VPCs المرتبطة : vpc-prod، vpc-dev │ │
│ │ │ │
│ │ A db.internal.company 10.0.1.50 │ │
│ │ A api.internal.company 10.0.2.30 │ │
│ │ A cache.internal.company 10.0.3.20 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

إعداد CLI​

# إنشاء منطقة مستضافة عامة
aws route53 create-hosted-zone \
--name example.com \
--caller-reference unique-string-1234

# إنشاء منطقة مستضافة خاصة
aws route53 create-hosted-zone \
--name internal.company \
--caller-reference unique-string-5678 \
--vpc VPCRegion=us-east-1,VPCId=vpc-xxx \
--hosted-zone-config PrivateZone=true

# إنشاء سجل A
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890ABC \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "www.example.com",
"Type": "A",
"TTL": 300,
"ResourceRecords": [{"Value": "192.0.2.44"}]
}
}]
}'

# إنشاء ALIAS إلى ALB
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890ABC \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "example.com",
"Type": "A",
"AliasTarget": {
"HostedZoneId": "Z35SXDOTRQ7X7K",
"DNSName": "my-alb-1234.us-east-1.elb.amazonaws.com",
"EvaluateTargetHealth": true
}
}
}]
}'

ملخص​

المفهومالوصف
DNSيترجم الأسماء إلى IPs
A Recordاسم → IPv4
CNAMEاسم مستعار (ليس الجذر)
ALIASاسم مستعار AWS (الجذر مسموح)
TTLمدة التخزين المؤقت
Hosted Zoneحاوية للسجلات

القسم التالي : سياسات التوجيه