DNS概念:
簡單來講DNS就是系統(tǒng)上的一個占用53端口的服務,用來提供域名和IP地址的相互轉換。比如你訪問ip.gs,路由器是不可能知道這個地址,你需要先連接到DNS服務器,DNS服務器會返回ip.gs的IP地址,這樣在網上就可以正常的路由了。反向解析是用來實現證明你這個IP地址是被認可的,尤其可以用來抵御偽造的郵件服務器泛濫。
一、安裝BIND服務器軟件并啟動
1.安裝bind:
yum install bind bind-chroot nslookup -y
在安裝完BIND后,系統(tǒng)會多一個用戶named。
2.啟動DNS服務
systemctl start named.service
3.查看named進程是否正常啟動:
[root@test-node2 named]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: active (running) since 二 2018-05-29 22:19:41 CST; 12min ago
Process: 1422 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
Process: 1420 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
Main PID: 1425 (named)
CGroup: /system.slice/named.service
└─1425 /usr/sbin/named -u named -c /etc/named.conf
4.DNS采用的UDP協(xié)議,監(jiān)聽53號端口,進一步檢驗named工作是否正常:
ss -anpu |grep name
5.防火墻開放TCP和UDP的53號端口:
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
6.測試:
[root@test-node2 named]# dig www.baidu.com @192.168.1.92
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> www.baidu.com @192.168.1.92
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 375
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com. IN A
;; Query time: 321 msec
;; SERVER: 192.168.1.92#53(192.168.1.92)
;; WHEN: 二 5月 29 22:37:38 CST 2018
;; MSG SIZE rcvd: 42
返回數據無異常。初步配置完成!
二、DNS服務的相關配置文件
對于BIND,需要配置的主要文件為/etc/named.conf。另外兩個文件,/etc/named.isc-dlv.key保存加密用的可以,/etc/named.rfc1912.zones擴展配置文件。
1.修改主配置文件/etc/named.conf
要注意在修改之前要先進行備份,使用cp -p /etc/named.conf /etc/named.conf.bak
命令備份,參數-p表示備份文件與源文件的屬性一致。
vim /etc/named.conf修改文件:
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; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
2.修改/etc/named.rfc1912.zones
//正向區(qū)域配置
zone "hello.com" IN {
type master;
file "hello.com.zone";
allow-update { none; };
};
//反向區(qū)域配置
zone "1.168.192.in-addr.arpa" IN {
type master;
file "hello.com.local";
allow-update { none; };
};
3.添加/var/named/hello.com.zone
可以將模板文件復制一份,在進行修改
使用命令cp -p /var/named/named.localhost /var/named/hello.com.zone
進入hello.com.zone 進行配置
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.1.92
www A 192.168.1.92
4.添加/var/named/hello.com.local
$TTL 1D
@ IN SOA hello.com. root (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.1.92
AAAA ::1
92 IN PTR www.hello.com.
三、在Linux下的DNS客戶端的設置及測試
配置/etc/resolv.conf文件。
nameserver 192.168.1.92
BIND軟件包本身提供了測試工具nslookup
[root@test-node2 named]# nslookup hello.com
Server: 192.168.1.92
Address: 192.168.1.92#53
Name: hello.com
Address: 192.168.1.92
四. 添一條dns (node1 192.168.1.91)
vim /etc/named.rfc1912.zones
//加入一個域名node1
zone "node1" IN {
type master;
file "data/node1.zone";
allow-update { none; };
};
cd /var/named/
cp -p named.localhost data/node1.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.1.91
[root@test-node2 named]# nslookup node1
Server: 192.168.1.92
Address: 192.168.1.92#53
Name: node1
Address: 192.168.1.91