建立DNS服務器(正向解析)
linux沒有緩存 windows有dns緩存 權威結果,非權威結果 無論是正向解析數據庫還是反向解析數據中 寫管理員郵件地址或完整域名(FQDN)都要再后面加上點。否則系統會自動不上區域名稱。 實驗環境先清理防火墻規則,關閉防火墻.
centos7 systemctl disable firewalld centos6 chkconfig iptables off [root@centos7 ~]# iptables -F [root@centos7 ~]# systemctl disable firewalld [root@centos7 ~]# systemctl is-enabled firewalld disabled [root@centos6 ~]# iptables -F [root@centos6 ~]# chkconfig --list iptables iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@centos6 ~]# chkconfig iptables off
安裝bind會有個安裝前腳本
[root@centos7 ~]# rpm -q --scripts bind preinstall scriptlet (using /bin/sh): if [ "$1" -eq 1 ]; then /usr/sbin/groupadd -g 25 -f -r named >/dev/null 2>&1 || :; ####創建named用戶組 /usr/sbin/useradd -u 25 -r -N -M -g named -s /sbin/nologin -d /var/named -c Named named >/dev/null 2>&1 || :; ####創建named用戶 fi; :; postinstall scriptlet (using /bin/sh): /sbin/ldconfig if [ $1 -eq 1 ] ; then # Initial installation systemctl preset named.service >/dev/null 2>&1 || : fi if [ "$1" -eq 1 ]; then # Initial installation [ -x /sbin/restorecon ] && /sbin/restorecon /etc/rndc.* /etc/named.* >/dev/null 2>&1 ; # rndc.key has to have correct perms and ownership, CVE-2007-6283 [ -e /etc/rndc.key ] && chown root:named /etc/rndc.key [ -e /etc/rndc.key ] && chmod 0640 /etc/rndc.key fi :; preuninstall scriptlet (using /bin/sh): # Package removal, not upgrade if [ $1 -eq 0 ] ; then # Package removal, not upgrade systemctl --no-reload disable named.service > /dev/null 2>&1 || : systemctl stop named.service > /dev/null 2>&1 || : fi postuninstall scriptlet (using /bin/sh): /sbin/ldconfig # Package upgrade, not uninstall systemctl daemon-reload >/dev/null 2>&1 || : if [ $1 -ge 1 ] ; then # Package upgrade, not uninstall systemctl try-restart named.service >/dev/null 2>&1 || : fi
1、安裝bind包,啟動服務 2、創建zone信息 指明區域信息,domain:magedu.com 指明區域數據庫 /var/named/magedu.com.zone 修改配置文件,/etc/named.conf
/etc/named.conf listen-on port 53 { local; }; allow-query { any; }; /etc/named.rfc1912.zones zone "magedu.com" IN { type master; file "magedu.com.zone"; ###什么名字不重要,但是創建區域數據文件時,名字和這里的配置要一致。 }; 創建區域數據庫文件/var/named/magedu.com [root@centos7 ~]# vim /var/named/magedu.com.zone $TTL 1D ####全局定義TTL值,也可每條記錄單獨定義。 @ IN SOA ns1 admin.magedu.com ( ####soa必須寫主dns的名稱 2016092901 ####版本號不能超過十位 1D 1H 1W 3H ) IN NS ns1 ####也可以寫 ns1.magedu.com. 注意點 IN NS ns2 ns1 IN A 192.168.154.139 ####ns1后面會自動補全 ns1.magedu.come. 注意點不要忘記寫 ns2 IN A 192.168.154.133 websrv IN A 192.168.154.139 www IN CNAME websrv * IN CNAME websrv ####匹配任意以magedu.com為后綴的主機名。 ~ 配置郵件服務器必須要寫優先級,哪怕就是一個也要寫。
注意創建區域數據庫文件要修改權限和所屬組。
[root@centos7 ~]# ll /var/named/magedu.com.zone -rw-r--r--. 1 root root 206 Sep 29 10:45 /var/named/magedu.com.zone [root@centos7 ~]# chgrp named /var/named/magedu.com.zone [root@centos7 ~]# chmod 640 /var/named/magedu.com.zone [root@centos7 ~]# ll /var/named/magedu.com.zone -rw-r-----. 1 root named 206 Sep 29 10:45 /var/named/magedu.com.zone [root@centos7 ~]#
3、檢查配置 named-checkconf 檢查主配置文件 named-checkzone "magedu.com" "/var/named/magedu.com.zone"
[root@centos7 ~]# named-checkzone "magedu.com" "/var/named/magedu.com.zone" zone magedu.com/IN: loaded serial 2016092901 OK
4、重啟服務 systemctl reload named rndc reload ####專門管理dns的工具
5、測試工具測試 測試FQDN(www.magedu.nslookup) 測試客戶端的/etc/resolv.conf文件需要修改,但是不能重啟網絡服務否則被沖掉。 改為當前dns服務器地址。
ping、host、dig、nslookup(查詢反向解析)
[root@centos6 ~]# host www.magedu.com www.magedu.com is an alias for websrv.magedu.com. websrv.magedu.com has address 192.168.154.139 [root@centos6 ~]# ping www.magedu.com PING websrv.magedu.com (192.168.154.139) 56(84) bytes of data. 64 bytes from 192.168.154.139: icmp_seq=1 ttl=64 time=0.267 ms 64 bytes from 192.168.154.139: icmp_seq=2 ttl=64 time=0.400 ms [root@centos6 ~]# dig www.magedu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> www.magedu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39890 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.magedu.com. IN A ;; ANSWER SECTION: www.magedu.com. 86400 IN CNAME websrv.magedu.com. websrv.magedu.com. 86400 IN A 192.168.154.139 ;; AUTHORITY SECTION: magedu.com. 86400 IN NS ns1.magedu.com. magedu.com. 86400 IN NS ns2.magedu.com. ;; ADDITIONAL SECTION: ns1.magedu.com. 86400 IN A 192.168.154.139 ns2.magedu.com. 86400 IN A 192.168.154.133 ;; Query time: 12 msec ;; SERVER: 192.168.154.139#53(192.168.154.139) ;; WHEN: Wed Sep 28 14:43:24 2016 ;; MSG SIZE rcvd: 137
客戶端查詢使用的是UDP協議,但是兩臺dns同步數據,無論是通知更新還是主動更新,UDP和TCP連個協議的53號端口都需要打開。
建立反向解析區域
[root@centos6 ~]# nslookup 192.168.154.139 Server: 192.168.154.139 Address: 192.168.154.139#53 ** server can't find 139.154.168.192.in-addr.arpa.: NXDOMAIN [root@centos6 ~]# nslookup > www.magedu.com Server: 192.168.154.139 Address: 192.168.154.139#53 www.magedu.com canonical name = websrv.magedu.com. Name: websrv.magedu.com Address: 192.168.154.139 >
創建區域信息
zone "154.168.192.in-addr.arpa" IN { ####解析一個網段。網絡號反寫。 type master; file "154.168.192.zone"; };
建立反向解析數據庫 SOA和NS 記錄是必須加的。
[root@centos7 ~]# vim /var/named/154.168.192.zone $TTL 86400 @ IN SOA ns1.magedu.com. admn.magedu.com. ( 2016092901 1D 10M 1W 1D ) IN NS ns1.magedu.com. 139 IN PTR ns1.magedu.com 139 IN PTR websrv.magedu.com. 133 IN PTR ns2.magedu.com. ~ [root@centos7 ~]# named-checkconf [root@centos7 ~]# named-checkzone "154.168.192.in-addr.arpa" "/var/named/154.168.192.zone" zone 154.168.192.in-addr.arpa/IN: loaded serial 2016092901 OK
測試:
nslookup
[root@centos6 ~]# nslookup 192.168.154.139 Server: 192.168.154.139 Address: 192.168.154.139#53 139.154.168.192.in-addr.arpa name = ns1.magedu.com.154.168.192.in-addr.arpa. 139.154.168.192.in-addr.arpa name = websrv.magedu.com. [root@centos6 ~]# nslookup > 192.168.154.133 Server: 192.168.154.139 Address: 192.168.154.139#53 133.154.168.192.in-addr.arpa name = ns2.magedu.com.
dig
[root@centos6 ~]# dig -x 192.168.154.139 ######################## ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -x 192.168.154.139 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20321 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;139.154.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 139.154.168.192.in-addr.arpa. 86400 IN PTR websrv.magedu.com. 139.154.168.192.in-addr.arpa. 86400 IN PTR ns1.magedu.com.154.168.192.in-addr.arpa. ;; AUTHORITY SECTION: 154.168.192.in-addr.arpa. 86400 IN NS ns1.magedu.com. ;; ADDITIONAL SECTION: ns1.magedu.com. 86400 IN A 192.168.154.139 ;; Query time: 0 msec ;; SERVER: 192.168.154.139#53(192.168.154.139) ;; WHEN: Wed Sep 28 15:44:07 2016 ;; MSG SIZE rcvd: 140 [root@centos6 ~]# dig -t PTR 139.154.168.192.in-addr.arpa #################### ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t PTR 139.154.168.192.in-addr.arpa ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22917 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;139.154.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 139.154.168.192.in-addr.arpa. 86400 IN PTR ns1.magedu.com.154.168.192.in-addr.arpa. 139.154.168.192.in-addr.arpa. 86400 IN PTR websrv.magedu.com. ;; AUTHORITY SECTION: 154.168.192.in-addr.arpa. 86400 IN NS ns1.magedu.com. ;; ADDITIONAL SECTION: ns1.magedu.com. 86400 IN A 192.168.154.139 ;; Query time: 1 msec ;; SERVER: 192.168.154.139#53(192.168.154.139) ;; WHEN: Wed Sep 28 15:45:52 2016 ;; MSG SIZE rcvd: 140
建立從服務器
1、建立從dns服務器,安裝bind,關閉防火墻,開啟服務。 2、建立區域信息,從的dns不需要建立區域數據庫文件 從主dns上同步過來的數據放到/var/named/slave/目錄下。
修改配置主配置文件
[root@centos6 ~]# vim /etc/named.conf // // named.conf // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { // listen-on port 53 { 127.0.0.1; }; ###############注釋掉,即使監聽在本地所有ip上 // listen-on-v6 port 53 { ::1; }; 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 { localhost; }; ###############注釋掉即使允許所有主機訪問 recursion yes; dnssec-enable yes; dnssec-validation yes; /* 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"; ~
修改區域配置文件
[root@centos6 ~]# vim /etc/named.rfc1912.zones // named.rfc1912.zones: // // Provided by Red Hat caching-nameserver package // // ISC BIND named zone configuration for zones recommended by // RFC 1912 section 4.1 : localhost TLDs and address zones // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zo nes-02.txt // (c)2007 R W Franks // // See /usr/share/doc/bind*/sample/ for example named configuration files. // ne "localhost.localdomain" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "magedu.com" { ################## type slave; masters {192.168.154.139;}; file "slaves/magedu.com.slave" };
重新加載配置文件。
[root@centos6 ~]# rndc reload server reload successful [root@centos6 ~]# ll /var/named/slaves/magedu.com.slave -rw-r--r--. 1 named named 433 Sep 28 16:08 /var/named/slaves/magedu.com.slave [root@centos6 ~]# cat /var/named/slaves/magedu.com.slave $ORIGIN . $TTL 86400 ; 1 day magedu.com IN SOA ns1.magedu.com. admin.magedu.com.magedu.com. ( 2016092901 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 604800 ; expire (1 week) 10800 ; minimum (3 hours) ) NS ns1.magedu.com. NS ns2.magedu.com. $ORIGIN magedu.com. * CNAME websrv ns1 A 192.168.154.139 ns2 A 192.168.154.133 websrv A 192.168.154.139 www CNAME websrv
傳送的日志信息 [root@centos6 ~]# cat /var/log/messages | grep "named"
Sep 28 16:08:48 centos6 named[6656]: reloading configuration succeeded Sep 28 16:08:48 centos6 named[6656]: reloading zones succeeded Sep 28 16:08:48 centos6 named[6656]: zone magedu.com/IN: Transfer started. Sep 28 16:08:48 centos6 named[6656]: transfer of 'magedu.com/IN' from 192.168.154.139#53: connected using 192.168.154.133#49986 Sep 28 16:08:48 centos6 named[6656]: zone magedu.com/IN: transferred serial 2016092901 Sep 28 16:08:48 centos6 named[6656]: transfer of 'magedu.com/IN' from 192.168.154.139#53: Transfer completed: 1 messages, 9 records, 242 bytes, 0.001 secs (242000 bytes/sec) Sep 28 16:08:48 centos6 named[6656]: zone magedu.com/IN: sending notifies (serial 2016092901)
注意:默認建立輔助dns,主dns不需要做任何配置,輔助dns就能從主dns上同步數據。但是不安全。 dns默認任何人同步它的dns記錄。默認任何做它的從dns。
[root@centos6 ~]# dig -t axfr magedu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t axfr magedu.com ;; global options: +cmd magedu.com. 86400 IN SOA ns1.magedu.com. admin.magedu.com.magedu.com. 2016092901 86400 3600 604800 10800 magedu.com. 86400 IN NS ns1.magedu.com. magedu.com. 86400 IN NS ns2.magedu.com. *.magedu.com. 86400 IN CNAME websrv.magedu.com. ns1.magedu.com. 86400 IN A 192.168.154.139 ns2.magedu.com. 86400 IN A 192.168.154.133 websrv.magedu.com. 86400 IN A 192.168.154.139 www.magedu.com. 86400 IN CNAME websrv.magedu.com. magedu.com. 86400 IN SOA ns1.magedu.com. admin.magedu.com.magedu.com. 2016092901 86400 3600 604800 10800 ;; Query time: 1 msec ;; SERVER: 192.168.154.139#53(192.168.154.139) ;; WHEN: Wed Sep 28 16:36:46 2016 ;; XFR size: 9 records (messages 1, bytes 242)
/etc/named.conf文件中,添加一條 allow-transfer {192.168.154.133;}; ###添加上輔助dns的IP地址。 只能是添加的指定主機可以同步dns數據。 從dns也可以從其它從dns那里同步數據。 [root@centos6 ~]# dig -t axfr magedu.com @192.168.154.133 使用dig命令 @指定抓取那個dns 所以輔助dns也需要配置該條目。禁止其它dns抓取數據。
正向區域數據庫文件傳輸完畢。 反向區域數庫的同理。
3、主dns配置 主dns上必須有輔助dns的NS記錄和A記錄,主dns改版本號,才能通知輔助dns更新區域數據庫文件。
[root@centos7 ~]# cat /var/named/magedu.com.zone $TTL 1D @ IN SOA ns1 admin.magedu.com ( 2016092901 1D 1H 1W 3H ) IN NS ns1 IN NS ns2 ###################### ns1 IN A 192.168.154.139 ns2 IN A 192.168.154.133 ###################### websrv IN A 192.168.154.139 www IN CNAME websrv * IN CNAME websrv
4、同步機制 第一次啟動從dns會從主dns上拉取數據。 主dns上數據有改變,必須改版本號才能同步區域數控文件。 從dns定期更新主dns上數據,如版本號無改變則不更新。
反向區域的從
從服務器配置 /etc/named.rfc1912.zones 添加反向區域信息。
zone "154.168.192.in-addr.arpa" { type slave; masters {192.168.154.139;}; file "slaves/154.arpa.zone"; };
named-checkconf 檢查主配置文件。
重新加載配置
[root@centos6 ~]# rndc reload server reload successful [root@centos6 ~]# ll /var/named/slaves/ total 8 -rw-r--r--. 1 named named 394 Sep 28 16:57 154.arpa.zone -rw-r--r--. 1 named named 433 Sep 28 16:08 magedu.com.slave [root@centos6 ~]# cat /var/named/slaves/154.arpa.zone $ORIGIN . $TTL 86400 ; 1 day 154.168.192.in-addr.arpa IN SOA ns1.magedu.com. admn.magedu.com. ( 2016092901 ; serial 86400 ; refresh (1 day) 600 ; retry (10 minutes) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS ns1.magedu.com. $ORIGIN 154.168.192.in-addr.arpa. 133 PTR ns2.magedu.com. 139 PTR ns1.magedu.com PTR websrv.magedu.com.
注意主dns的反向區域需要有輔助dns的NS記錄否則,即使序列號改變也不會通知給輔助dns。
創建子域
兩種情況,訪問量不大,可以父域和子域都在一個主機上。 在一個主機上創建 在父域dns上直接創建子域的區域信息。 配置/etc/named.rfc1912.zones
zone "game.magedu.com" { type master; file "game.magedu.com.zone"; };
在/etc/named下創建子域區域數據庫文件。
注:在/etc/named.rfc1912.zones文件中,mageduc.com和game.magedu.com是平級的兩個區域。 dns沒有創建子域,只是相當于多了個區域而已。 同理可以什么都不修改,直接將子域的A記錄放到父域的區域數據庫中。
在子域的數據庫文件中,需要定義NS和NS的A記錄,A記錄指向的是本主機。 區域數據庫文件中盡量使用@符號,這樣可以靈活引用配置文件中定義的區域名稱。
$TTL 1D @ IN SOA ns1 admin.magedu.com ( 2016092902 1D 1H 1W 3H ) IN NS ns1 IN NS ns2 ns1 IN A 192.168.154.139 ns2 IN A 192.168.154.133
================================================================================
子域授權:分布式數據庫 定義一個子區域:
1、主dns的父域的區域數據庫需要配置子域信息。 加上如下信息。 study IN NS ns1.study.magedu.com. ns1.study IN A 192.168.154.140
注意關閉 /etc/named.conf ###dns安全相關的配置,不能注釋掉。注釋掉默認相當于開啟。 dnssec-enable no; dnssec-validation no;
建立根、頂級域名服務器,二級域名服務器
原創文章,作者:yyw,如若轉載,請注明出處:http://www.www58058.com/56548