ما هي منطقة DNS؟
منطقة DNS هي جزء مستقل من مساحة أسماء DNS تديره مؤسسة أو مسؤول محدد. تضم المنطقة سجلات DNS لنطاق واحد أو أكثر وتخدمها خوادم أسماء موثوقة. وبينما يكون النطاق اسماً في شجرة DNS، تمثل المنطقة حدّاً إدارياً يحدد خوادم الأسماء المسؤولة عن الإجابة عن الاستعلامات.
النطاق مقارنةً بالمنطقة
من الضروري فهم الفرق بينهما:
النطاق
النطاق اسم في تسلسل DNS:
example.com (domain)
└── www.example.com (subdomain)
└── blog.example.com (subdomain)
└── api.example.com (subdomain)
المنطقة
المنطقة هي نطاق إداري للسجلات:
منطقة واحدة للنطاق والنطاقات الفرعية:example.com zone contains:
- example.com
- www.example.com
- blog.example.com
- api.example.com
Managed by: ns1.example.com, ns2.example.com
منطقة لنطاق فرعي مفوض:
example.com zone contains:
- example.com
- www.example.com
- Delegation: api.example.com → different nameservers
api.example.com zone (separate) contains:
- api.example.com
- v1.api.example.com
- v2.api.example.com
Managed by: ns1.apihost.com, ns2.apihost.com
مكونات المنطقة
ملف المنطقة
ملف نصي يضم جميع سجلات DNS الخاصة بالمنطقة:
; example.com zone file
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
7200 ; Refresh
3600 ; Retry
1209600 ; Expire
3600 ; Minimum TTL
)
; Nameserver records
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
; A records
@ IN A 203.0.113.50
www IN A 203.0.113.50
blog IN A 203.0.113.51
; MX records
@ IN MX 10 mail.example.com.
mail IN A 203.0.113.52
; CNAME records
ftp IN CNAME www.example.com.
; TXT records
@ IN TXT "v=spf1 include:_spf.google.com ~all"
سجل SOA (بداية السلطة)
يجب أن تحتوي كل منطقة على سجل SOA واحد بالضبط:
example.com. IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
7200 ; Refresh
3600 ; Retry
1209600 ; Expire
3600 ; Minimum TTL
)
حقول SOA:
| الحقل | الغرض | قيمة مثال |
|---|---|---|
| خادم الأسماء الأساسي | خادم الأسماء الرئيسي | ns1.example.com |
| بريد المسؤول | جهة الاتصال، مع تحويل @ إلى . | admin.example.com ([email protected]) |
| Serial | رقم إصدار المنطقة | 2024010101 |
| Refresh | فترة فحص الخادم الثانوي | 7200 ثانية، ساعتان |
| Retry | فترة إعادة المحاولة عند فشل التحديث | 3600 ثانية، ساعة |
| Expire | المدة قبل توقف الثانوي عن الاعتماد على النسخة | 1209600 ثانية، 14 يوماً |
| Minimum TTL | مدة التخزين السلبي | 3600 ثانية، ساعة |
سجلات NS (خوادم الأسماء)
تحدد الخوادم الموثوقة للمنطقة:
example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.
وتخبر هذه السجلات العالم بالخوادم التي ينبغي الاستعلام منها عن سجلات المنطقة.
أنواع المناطق
المنطقة الأساسية (Master)
المصدر الموثوق الذي تعدل فيه سجلات المنطقة:
ns1.example.com (primary)
→ Zone file edited here
→ Changes made directly
→ Notifies secondaries of updates
المنطقة الثانوية (Slave)
نسخ للقراءة فقط تكرر بياناتها من الأساسي:
ns2.example.com (secondary)
→ Retrieves zone data from primary
→ Cannot be edited directly
→ Automatically syncs based on SOA refresh interval
نقل المنطقة (AXFR):
1. Secondary checks SOA serial number
2. If primary serial is higher → request full zone transfer
3. Primary sends entire zone
4. Secondary updates its copy
النقل التزايدي (IXFR):
1. Secondary requests only changes since last serial
2. Primary sends diff
3. More efficient for large zones with small changes
المنطقة الأمامية
تربط أسماء النطاقات بعناوين IP، وهي الأكثر شيوعاً:
example.com → 203.0.113.50
www.example.com → 203.0.113.50
المنطقة العكسية
تربط عناوين IP بأسماء النطاقات، باستخدام سجلات PTR:
50.113.0.203.in-addr.arpa → example.com
وتُستخدم من أجل:
- التحقق من خوادم البريد
- التسجيل والأمان
- استكشاف الأعطال وإصلاحها
تفويض المنطقة
ينشئ التفويض مناطق مستقلة للنطاقات الفرعية:
المنطقة الأم، example.com
; example.com zone
@ IN A 203.0.113.50
www IN A 203.0.113.50
; Delegate api.example.com to different nameservers
api IN NS ns1.apihost.com.
api IN NS ns2.apihost.com.
; Glue records (if needed)
ns1.api IN A 198.51.100.1
ns2.api IN A 198.51.100.2
المنطقة المفوضة، api.example.com
ملف منطقة مستقل تماماً على خوادم أسماء مختلفة:
; api.example.com zone (on ns1.apihost.com)
@ IN A 198.51.100.10
v1 IN A 198.51.100.11
v2 IN A 198.51.100.12
لماذا نستخدم التفويض؟
- تنظيمياً: تدير فرق مختلفة مناطق مختلفة.
- تقنياً: استخدام مزودي DNS مختلفين، مثل API على AWS والموقع على Cloudflare.
- للأداء: توزيع حمل DNS.
- للأمان: عزل الخدمات الحساسة.
إدارة المنطقة
إدارة الرقم التسلسلي
تتتبع الأرقام التسلسلية إصدارات المنطقة، وغالباً تستخدم صيغة YYYYMMDDnn:
2024010101 ; January 1, 2024, version 01
2024010102 ; January 1, 2024, version 02
2024010201 ; January 2, 2024, version 01
قاعدة حاسمة: يجب أن يزيد الرقم التسلسلي مع كل تغيير، وإلا فلن تحدث الخوادم الثانوية.
أمان نقل المنطقة
المشكلة: تكشف عمليات نقل المنطقة جميع سجلات DNS. الحل: اقصر نقل المناطق على الخوادم الثانوية المصرح بها. إعداد BIND:zone "example.com" {
type master;
file "/var/named/example.com.zone";
allow-transfer { 203.0.113.52; 203.0.113.53; }; // Secondary IPs only
notify yes;
};
TSIG، توقيع المعاملة: صادق على عمليات النقل بمفاتيح مشتركة:
key "transfer-key" {
algorithm hmac-sha256;
secret "base64-encoded-key";
};
allow-transfer { key transfer-key; };
التحقق من إعداد المنطقة
الاستعلام عن سجل SOA
dig example.com SOA
; ANSWER SECTION:
example.com. 3600 IN SOA ns1.example.com. admin.example.com. (
2024010101 7200 3600 1209600 3600 )
الاستعلام عن سجلات NS
dig example.com NS
; ANSWER SECTION:
example.com. 86400 IN NS ns1.example.com.
example.com. 86400 IN NS ns2.example.com.
طلب نقل المنطقة (AXFR)
dig @ns1.example.com example.com AXFR
# If allowed, returns entire zone
# If denied, returns transfer failed
ترفض معظم خوادم الأسماء العامة AXFR لمنع إفشاء المعلومات.
إعدادات المناطق الشائعة
موقع ويب بسيط
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
@ MX 10 mail.example.com
mail A 203.0.113.51
@ TXT "v=spf1 mx -all"
منطقة متعددة الخدمات
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
blog CNAME hosting.wordpress.com.
shop CNAME shops.myshopify.com.
cdn CNAME d111111abcdef8.cloudfront.net.
@ MX 10 aspmx.l.google.com.
نطاقات فرعية مفوضة
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
; Delegate api to AWS Route 53
api NS ns-123.awsdns-01.com.
api NS ns-456.awsdns-02.net.
; Delegate cdn to Cloudflare
cdn NS ns1.cloudflare.com.
cdn NS ns2.cloudflare.com.
أفضل ممارسات ملف المنطقة
1. زد الرقم التسلسلي دائماً: بعد كل تغيير، وإلا فلن تحدث الخوادم الثانوية.
2. استخدم أرقاماً تسلسلية مبنية على التاريخ: صيغة YYYYMMDDnn أوضح.
3. قيد نقل المنطقة: اسمح للخوادم الثانوية المصرح بها فقط.
4. استخدم خوادم أسماء متعددة: اثنان على الأقل، ويفضل على شبكات مختلفة.
5. اضبط TTL مناسباً: وازن بين فائدة التخزين وسرعة التحديث.
6. اختبر قبل التطبيق: تحقق من صيغة الملف قبل تحميله.
7. راقب نقل المناطق: تأكد من مزامنة الخوادم الثانوية.
8. وثق التفويضات: سجل المناطق المفوضة ومواقع خوادمها.
9. انسخ ملفات المنطقة احتياطياً: تمنع النسخ المنتظمة فقدان البيانات.
10. استخدم التحكم في الإصدارات: تتبع تغييرات الملف بمرور الوقت.
ميزات متقدمة للمنطقة
DNSSEC (توقيع المنطقة)
وقّع سجلات المنطقة تشفيرياً:
example.com. IN A 203.0.113.50
example.com. IN RRSIG A 8 2 3600 (
signature-data-here )
يحمي ذلك من تسميم الذاكرة والتلاعب.
DNS الديناميكي (DDNS)
اسمح بتحديثات المنطقة برمجياً:
# Update A record dynamically
nsupdate -k Kupdate.key <<EOF
server ns1.example.com
update delete www.example.com A
update add www.example.com 300 A 203.0.113.51
send
EOF
وهو مفيد من أجل:
- تحديث عناوين IP المنزلية
- البنية القابلة للتوسع التلقائي
- اكتشاف الخدمات
عروض المنطقة (DNS المنقسم)
قدم بيانات منطقة مختلفة حسب عنوان IP للعميل:
Internal clients: example.com → 10.0.0.50 (internal)
External clients: example.com → 203.0.113.50 (public)
حالات الاستخدام:
- إصدارات داخلية وخارجية مختلفة للموقع
- موارد الشبكة الخاصة
- استجابات جغرافية
استكشاف مشكلات المنطقة وإصلاحها
فشل نقل المنطقة
العرض: الخوادم الثانوية غير متزامنة. الفحص:# Check if primary allows transfers
dig @ns1.example.com example.com AXFR
# Check secondary logs for errors
tail -f /var/log/named.log
الحلول:
- تحقق من إعدادات allow-transfer.
- افحص الاتصال الشبكي بين الخوادم.
- تأكد من زيادة الرقم التسلسلي.
عدم زيادة الرقم التسلسلي
العرض: لا تنتشر التغييرات إلى الخوادم الثانوية. الحل: زد الرقم التسلسلي دائماً مع كل تعديل للمنطقة.عدم عمل التفويض
العرض: لا يُحل النطاق الفرعي. الفحص:# Verify delegation
dig example.com NS
dig api.example.com NS
# Should show different nameservers for delegated subdomain
الحلول:
- تحقق من سجلات NS في المنطقة الأم.
- افحص سجلات Glue عندما تكون خوادم الأسماء داخل النطاق الفرعي.
- تأكد من ضبط المنطقة الابنة.
مناطق DNS هي أساس الإدارة الموزعة لـ DNS، وفهم بنيتها وتفويضها وإدارتها يتيح تصميم DNS بفاعلية للمؤسسات بمختلف أحجامها.