部署DNS 服務器
前言
域名系統(英文:Domain Name System,縮寫:DNS)是互聯網的一項服務。它作爲將域名和IP地址相互映射的一個分佈式數據庫,能夠使人更方便地訪問互聯網。DNS使用TCP和UDP端口53。當前,對於每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。
部署DNS 服務器
centos系統配置
關閉防火牆
# systemctl stop firewalld --臨時關閉防火牆
# systemctl disable firewalld --永久關閉防火牆
關閉selinux
臨時關閉:
# setenforce 0
永久關閉:
# vim /etc/selinux/config
SELINUX=disabled --將enforcing改爲disabled
# reboot --重啓系統永久生效
安裝BIND
BIND是開源軟件,可讓您在Internet上發佈您的域名系統(DNS)信息,併爲您的用戶解析DNS查詢。 BIND這個名字代表“BerkeleyInternet Name Domain”,因爲該軟件起源於20世紀80年代早期在加州大學伯克利分校。
BIND是迄今爲止互聯網上使用最廣泛的DNS軟件,它提供了一個強大而穩定的平臺,在這個平臺上,組織可以建立分佈式計算系統,並知道這些系統完全符合已發佈的DNS標準。
啓動DNS服務
yum -y install bind*
# systemctl startnamed.service --啓動DNS服務
# systemctl enable named.service --設置爲開機啓動
# netstat -anlp | grep named --查看監聽端口爲53
配置BIND軟件
修改DNS服務的配置文件
修改/etc/named.conf
options {
listen-on port 53 { 192.168.74.84; };
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 { any; };
紅色處1中將127.0.0.1改爲本機IP:192.168.74.82;紅色處2中將localhost改爲any。否則,除本機外其他服務器不能使用DNS服務。如果這樣的話,我們的DNS就沒意義了。
增加正向解析功能
1)修改/etc/named.rfc1912.zones並將下面的信息寫入到/etc/named.rfc1912.zones文件中
zone "test.com" IN {
type master;
file "data/test.com.zone";
};
2)新建/var/named/data/test.com.zone文件
$TTL 1D
@ IN SOA dns.test.com. dns.www.test.com. (
20180224 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
@ IN NS dns.test.com.
dns.test.com. IN A 192.168.74.42
@ IN MX 10 mail.www.test.com.
mail.www.test.com. IN A 192.168.74.64
www.test.com. IN A 192.168.74.82
ftp.test.com. IN A 192.168.74.31
增加反向解析功能
1)修改/etc/named.rfc1912.zones並將下面的信息寫入到/etc/named.rfc1912.zones文件中
zone "74.168.192.in-addr.arpa" IN{
type master;
file "data/192.168.74.zone";
};
2) 新建/var/named/data/192.168.74.zone文件,內容如下
$TTL 1D
@ IN SOA dns.test.com. dns.www.test.com. (
20180224 ; serial
1D ; refresh
1H ; retry
1W ;expire
3H) ; minimum
@ IN NS dns.test.com.
88 IN PTR dns.test.com.
@ IN MX 10 mail.www.test.com.
4 IN PTR mail.www.test.com.
82 IN PTR www.test.com.
3 IN PTR ftp.test.com.
測試
# systemctl startnamed.service --啓動DNS服務
# systemctl enable named.service --設置爲開機啓動
# netstat -anlp | grep named --查看監聽端口爲53
dig www.test.com
[root@localhost ~]# dig www.test.com
; <<>> DiG9.9.4-RedHat-9.9.4-29.el7 <<>> www.test.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY,status: NOERROR, id: 49025
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1,AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.test.com. IN A
;; ANSWER SECTION:
www.test.com. 86400 IN A 192.168.74.82
;; AUTHORITY SECTION:
test.com. 86400 IN NS dns.test.com.
;; ADDITIONAL SECTION:
dns.test.com. 86400 IN A 192.168.8.88
;; Query time: 1 msec
;; SERVER: 192.168.74.84#53(192.168.74.84)
;; WHEN: 日 4月 22 16:40:55CST 2018
;; MSG SIZE rcvd: 91
上面的輸出有兩個重點,一個是問題查詢的是 www.test.com 的 A (Address)參數,並且從回答 (Answer) 裏面得到我們所需的 IP 參數。最後面一段的Server 項目非常重要!你得要看是否與你的設定相同的那部 DNS 服務器 IP 才行!以上面輸出爲例,我們可以看出DNS server服務器IP爲192.168.74.84。
nslookup 192.168.74.82
Server: 192.168.74.84
Address: 192.168.74.84#53
82.74.168.192.in-addr.arpa name = www.test.com.
參考資料
[1].http://dns-learning.twnic.net.tw/bind/intro3.html
[2].https://zh.wikipedia.org/wiki/%E5%9F%9F%E5%90%8D%E7%B3%BB%E7%BB%9F
[3]. http://www.isc.org/downloads/bind/