DNS Zone File چیست؟
DNS از تعدای zone تشکیل شده که هر zone متناظر با یک دامنه و مسوول پاسخگویی به سوالات مربوط به دامنههایی است که زیر نظر آن هستند. Zoneها دارای ساختاری سلسله مراتبی هستند که در این ساختار، Zoneهای بالاتر، آدرس zoneهای پایینتر و آخرین zone نیز، آدرس نهایی وبسرور مورد نظر را فراهم میکند.
DNS Zone File
اطلاعات مورد نیاز یک سرور DNS در فایلی با نام DNS Zone File ذخیره میشوند. این فایل متنی، ارتباطی بین دامنه با IP و سایر منابع را در یک سطر نگهداری میکند که به آن resource record (RR) گفته میشود. این اطلاعات در بخشی با نام directive ذخیره میشوند.
هر DNS Zone File با دو بخش شروع میشود:
- Global Time to Live (TTL): تضمین میکند که recordهای این فایل پس از ارسال به کاربر، تا چه زمانی معتبر هستند. در ابتدای سطر مربوط به TTL، علامت "$" به کار برده میشود.
- Start of Authority (SOA) record: اسم دامنهي این zone ( primary authoritative name server )، به علاوهی تعدادی فیلد را مشخص میکند.
example.com IN SOA primary-name-server hostadmin-email-address(
serial-number
time-to-refresh
time-to-retry
time-to-expire
minimum-ttl )
- com: اسم دامنه
- primary-name-server: سرور ارایهدهندهی سرویس
- hostadmin-email-address: ایمیل admin مسوول zone
- serial-number: عددی است که درهربار تغییر file یک واحد به آن افزوده میشود تا فایل های قدیمی و جدید از یکدیگر متمایز باشند.
- time-to-refresh: زمان سپری شده از هنگامی که سرور primary به سرور secondary اعلام کرده است که خود را آپدیت کند.
- time-to-retry: زمانی که پس از fail شدن یک refresh باید صبر کرد و سپس دوباره اطلاعات را refresh کرد.
- time-to-expire: حداکثر زمانی که بعد از آن، دیگر این سرور مسوولیتی ندارد.
- minimum-ttl: حداقل مقدار زمانی که دیگر سرورها، اطلاعات zone را ذخیره میکنند.
بعد از این دو بخش، اطلاعات اصلی، تحت عنوان resource record ذخیره میشوند.
هر resource record (سطر) از بخش های زیر تشکیل شده است:
name Ttl record class record type record data
- name: به نوعی مشخصهی (identifier) آن record محسوب میشود. این بخش میتواند خالی باشد، به این معنا که برابر با name مربوط به resource record قبلی است.
- TTL: خلاصهی عبارت time to live است. تضمین میکند که اگر این رکورد به کاربر ارسال شود، تا چه زمانی معتبر است. اگر این بخش خالی باشد، global ttl به جای آن استفاده میشود.
- record class: مشخصکنندهی namespace است. برای مصارف معمولی اینترنت، مقدار آن برابر IN است.
- record type: نوع DNS record را تعیین میکند، مانند:
- A record: یک hostname را به یک IPv4 نگاشت میکند.
- AAAA record: یک hostname را به یک IPv6 نگاشت میکند.
- CNAME record : یک hostname را به یک hostname دیگر نگاشت میکند (aliasing).
- NS record: آدرس سرور DNS مسوول این zone را تعیین میکند (برای نمونه example.com)
- MX record: یک SMTP email server را برای دامنه تعیین میکند.
- ....
- Record data: براساس record type اطلاعات لازم این resource record را تامین میکند.
DNS Zone File قابلیت commentگذاری نیز دارد. در هرسطری میتوان با گذاشتن ";" (semicolon) نظر گذاشت.
در ادامه یک نمونه DNS Zone File آورده شده است.
$TTL 86400 ; 1 day
example.com IN SOA dns.example.com. root@example.com. (
57 ; serial
28800 ; refresh (8 hours)
7200 ; retry (2 hours)
2419200 ; expire (4 weeks)
86400 ; minimum (1 day)
)
IN NS dns.example.com.
dns IN A 192.0.2.1
example.com IN A 192.0.2.1
host01 IN A 192.0.2.101
host02 IN A 192.0.2.102
host03 IN A 192.0.2.103