کانفیگ Name Server با استفاده از BIND بر روی CentOS 7


BIND یکی از محبوبترین سرورهای DNS است که در شبکه اینترنت استفاده می شود. این سرور میتواند بعنوان یک سرور authoritative، سرور recursive و یا سرور ذخیره نام عمل کند و طیف وسیعی از ویژگیها را پشتیبانی می کند.

در این آموزش ایجاد سرورهای اولیه و ثانویه BIND بعنوان یک authoritative name servers توضیح داده می شود. این روش برای name server عمومی یا خصوصی مناسب است. با این حال name server های خصوصی internal معمولا شامل عناصر بازگشتی و ذخیره سازی برای تحلیل DNS های محلی می باشند.

بسیار تاکید می شود که name server های اولیه و ثانویه در شبکه ها و مکانهای فیزیکی جداگانه قرار داشته باشند.این امر باعث می شود که اگر یکی از name server ها بنا به دلایلی همچون در دسترس نبودن سرور، شبکه و یا مشکلات دیتاسنتر در دسترس نبود name server دیگر در دسترس باشد.

تجهیزات مورد نیاز :
• دو سرور ( اولیه و ثانویه)
• CentOS or Red Hat Enterprise Linux 7
• BIND 9
• یک دامین ( بعنوان مثال zagrio.com)
• آدرس IP اولیه : 192.0.2.1
• آدرس IP ثانویه : 192.0.2.2

آماده سازی سرورها :
هر دو شبکه و فایروالهای host ها باید به ترافیک TCP و UDP از طریق پورت 53 اجازه ورود دهند. درخواستهای استاندارد DNS بیشتر از طریق پورت 53 اتقاق می افتد. با اینحال اگر حجم پاسخ بیشتر از 512 بایت باشد ممکن است باعث DNSSEC شود که درخواست به پورت 53 TCP فرستاده می شود.
انتقالهای Zone بین name server های اولیه و ثانویه از طریق پورت 53 صورت می گیرد.

firewall-cmd --permanent --zone=public --add-port=53/tcp firewall-cmd --permanent --zone=public --add-port=53/udp firewall-cmd --reload
نصب BIND :
BIND بصورت پیش فرض در مخازن CentOS موجود می باشد. bind-utils برای تست و عیب یابی مسائل مربوط به DNS بسیار مفید می باشد.

yum -y install bind bind-utils
کانفیگ سرور اولیه :
اولین قدم اصلاح فایل named.conf است که معمولا بعنوان یک name server برای ذخیره سازی کانفیگ می شود.

nano /etc/named.conf
برای اینکه name server به درخواستهای خارجی پاسخ دهد، named process به یک IP آدرس Public نیاز دارد.تمامی IP آدرس های مقدار دهی شده به سرور متصل خواهند شد.

... listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; ...
نیاز است که Name server ها به تمام درخواستهای مناطق معتبر پاسخ دهند اما بصورت پیش فرض اجازه ندارند که درخواست ها را بین مناطق انتقال دهند.

... allow-query { any; }; allow-transfer { none; }; recursion no; ...
در اینجا یک فایل named.conf کامل برای تنظیم کردن سرویسهای authoritative name داریم.

options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; allow-transfer { none; }; recursion no; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";

مسیر فایلهای Zone و جزئیات Zone باید در فایل etc/named.rfc1912.zones/ اضافه شود.

nano /etc/named.rfc1912.zones

قسمت نام دامین باید با مسیر فایلی که حاوی اطلاعات Zone می باشد ایجاد شود که این منطقه اصلی و آدرس IP سرور دوم می باشد.

zone "zagrio.com" IN { type master; file "zagrio.com"; allow-transfer { 192.0.2.2; }; };
};

این فایل را ذخیره کنید و سپس ببندید.


ایجاد یک Zone File :
اکنون یک Zone File واقعی می توان ایجاد کرد :

nano /var/named/zagrio.com
Zone File شامل تنظیمات دامین و هر رکورد منبع می باشد.در اینجا مثالی از یک دامنه با رکوردهای منبع آن آورده شده است.

$TTL 3H @ IN SOA @ hostmaster.zagrio.com. ( 0 ; serial 3H ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS ns1.zagrio.com. @ IN NS ns2.zagrio.com. @ IN A 192.0.2.10 @ IN MX 10 host2.zagrio.com. @ IN MX 20 host3.zagrio.com. ns1 IN A 192.0.2.1 ns2 IN A 192.0.2.2 host1 IN A 192.0.2.10 host2 IN A 192.0.2.11 host3 IN A 192.0.2.12 www IN CNAME zagrio.com. mail IN CNAME host2.zagrio.com. gopher IN CNAME host3.zagrio.com. zagrio.com. IN TXT "v=spf1 ip4:203.0.113.42 include:_spf.google.com ~all"

@ در فایل Zone نام دامین را نشان می دهد. در این مثال @ معادل دامین zagrio.com است. علامت . در انتهای نام دامین برای شناسایی انتهای نام دامین در Zone File استفاده می شود.
Zone File را ذخیره کنید و از ویرایشگر خارج شوید.قبل از شروع سرویس شما باید تائید کنید که در فایل named.conf هیچ خطایی وجود ندارد.

named-checkconf
اکنون BIND named می تواند فعال و start شود.

systemctl enable named systemctl start named
کانفیگ سرور ثانویه :
به سرور ثانویه log in کنید و etc/named.conf/ را برای مطابقت با سرور اصلی اصلاح کنید.

nano /etc/named.conf
به قسمت named.conf. در کانفیگ سرور اولیه مراجعه کنید. هنگامی که فایل update شد نیاز است که etc/named.rfc1912.zones/ در zone سرور ثانویه اضافه شود.

zone "zagrio.com" IN { type slave; file "slaves/zagrio.com"; masters { 192.0.2.1; }; };
فایل zone را ذخیره کنید و از ویرایشگر خارج شوید.قبل از شروع سرویس باید مطمئن شوید که هیچ خطایی در فایل named.conf وجود ندارد.

named-checkconf
اکنون فرآیند name ثانویه در هنگام بوت می تواند enable و start شود.

systemctl enable named systemctl start named
تست DNS Resolution:
با دستور dig زیر میتوان هردو name server را برای برگرداندن رکوردهای دامین بر روی سرور فعال کرد.

dig any zagrio.com @localhost
شما می بایست نتایجی که از یک host راه دور که قادر است به name serverها متصل شود را بازیابی کنید و تطابق دهید. این اتصال اعلام می شود و قوانین فایروال در اینجا بکاربرده می شود.

dig any zagrio.com @192.0.2.1 dig any zagrio.com @192.0.2.2
اصلاح Zone File :
Zone File را می توان در name server های اولیه تغییر داد. هنگامی که رکوردهای منبع حذف ، اضافه و یا اصلاح می شوند ، شما باید یه یاد داشته باشید که شمار سریال zone را افزایش دهید. در ادامه شماره سریال Zone مربوط به zagrio.com نشان داده می شود.

... @ IN SOA @ hostmaster.zagrio.com. ( 0 ; serial 3H ; refresh ...
اگر شماره سریال از صفر شروع شود، مقدار بعدی 1 خواهد بود.

... @ IN SOA @ hostmaster.zagrio.com. ( 1 ; serial 3H ; refresh ...
هنگامیکه شماره سریال Zone افزایش می یابد، نیاز است که Zone مجددا بارگزاری شود که بدون نیاز به restart کردن named process می توان اینکار را انجام داد.

rndc reload example.com
reload همچنین انتقال Zoneبه سرور ثانویه را آغاز می کند.

Reverse DNS :
Reverse DNS نام دامنه را به IP آدرس تبدیل می کند.برخی از سرویسها مانند SMTP یا Kerberos ممکن است به این سرویس نیاز داشته باشند.
در اکثر موارد در مورد فضای IP آدرس های عمومی ، reverse DNS توسط ارائه دهنده خدمات مدیریت IP subnets بکار گرفته می شود. پیشنهاد می شود که اگر نیاز به تنظیمات reverse DNS دارید با پشتیبانی ارائه دهنده خدمات تماس بگیرید.
در برخی شرایط ممکن است بخواهید reverse DNS برای یک subnet که به سمت سرور شما هدایت شده است را استفاده نمائید. و یا ممکن است بخواهید که reverse DNS را به یک آدرس خصوصی یا شبکه داخلی متصل کنید در این شرایط یک دامین مخصوص به نام in-addr.arp برای ارائه اینکار استفاده می شود.
برای زیر شبکه 192.0.2.0/24 Zone File 2.0.192.in-addr.arpa می شود و فرآیند پیکربندی برای یک Zone File نرمال همانند name server های اولیه و ثانویه می باشد.

nano /var/named/2.0.192.in-addr.arpa
در اینجا یک مثال از رکوردهای PTR فایل Zone مربوط به 2.0.192.in-addr.arpa داریم:

$TTL 3H @ IN SOA @ hostmaster.zagrio.com. ( 2 ; serial 3H ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS ns1.zagrio.com. @ IN NS ns2.zagrio.com. 1 IN PTR ns1.zagrio.com. 2 IN PTR ns2.zagrio.com. 10 IN PTR host1.zagrio.com. 11 IN PTR host2.zagrio.com. 12 IN PTR host3.zagrio.com
عیب یابی مشکلات DNS :
خطاهای نحوی در فایلهای کانفیگ خیلی آسان نادیده گرفته می شوند.بنابراین همیشه توصیه می شود قبل از start یا restart کردن فرآیند named ،دستور named-checkconf اجرا شود.

named-checkconf
وقتی خطایی رخ می دهد فایل named log اولین مکان برای شروع جستجو می باشد. فایل log در CentOs در مسیر زیر یافت می شود:

/var/named/data/named.run
bind-utils شامل چندین منبع مانند dig، nslookup و host می باشد. که می توان به منظور درخواست های مستقیم در برابر authoritative name server از آنها استفاده کرد.آنها از نام دامین، authoritative server و در صورت تمایل از یک رکورد منبع بعنوان پارامتر استفاده می کنند.

dig mx zagrio.com @192.0.2.1
یک پرس و جو با authoritative name server رکوردهای منبع و Zone فعلی را بدون در نظر گرفتن caching یا TTL نشان می دهد.
اخرین نکته برای عیب یابی دامنه های ثبت شده بر روی اینترنت است که بمنظور بررسی ثبت دامنه از authoritative name server می باشد و اینکه نام دامنه منقضی نشده باشد.

whois zagrio.com

آیا این پاسخ به شما کمک کرد؟


 چاپ این مقاله

خوانده شده

نحوه پیدا کردن فایلهای حجیم در سرورهای لینوکس از طریق SSH

دستور خاصی جهت پیدا کردن فایلهای حجیم در سیستم عامل های لینوکس وجود ندارد، با این حال شما می...

راه اندازی سرور و کلاینت NFS بر روی CentOS 7.2

در این مقاله چگونگی راه اندازی یک سرور NFS و یک کلاینت NFS بر روی یک CentOS 7.2  آموزش داده می...

چگونه از rsync برای همگام سازی (Sync ) دایرکتوریهای Remote و Local بر روی یک VPS استفاده کنیم:

مقدمه : Rsync که پایه و اساس remote sync است، یک ابزار برای همگام سازی فایل های Local و...

دستورات مفید SSH برای مدیریت CFS

CFS یکی از بهترین نرم افزارهای فایروال برای سرورهای لینوکسی می باشد. در این مقاله برخی از دستورات...

نحوه ZIP و UNZIP کردن فایلها بوسیله SSH

ابتدا از طریق نرم افزار Putty و یا Terminal به سرور خود متصل شوید. برای ZIP کردن فایلها دستور...

Powered by WHMCompleteSolution