DNS,Domain Name System或者Domain Name Service(域名系统或者余名服务)。域名系统为Internet上的主机分配域名地址和IP地址。用户使用域名地址,该系统就会自动把域名地址转为IP地址。域名服务是运行域名系统的Internet工具。执行域名服务的服务器称之为DNS服务器,通过DNS服务器来应答域名服务的查询。
第一步:当客户端通过路由器发出请求时,在没有缓存和权威应答时,路由器会先去找根服务器,根服务器通过子域委派解析com的ip
第二步:当根收到路由器的请求时,根没有路由器所需要的请求内容,根服务器的配置文件里有con的域名解析(子域委派),路由器收到com的ip之后去找com
第三步:当路由器请求com服务器时,com的配置文件有域名的解析(子域委派),然后com将域名的解析的ip告诉路由器
第四步:路由器通过com解析得到的ip地址最终得到了请求内容
[root@web named]# ifconfig eth3
...
inet addr:192.168.153.9
...
[root@web named]# vim /etc/named.conf
.....
listen-on port 53 { any; };
allow-query { any; };
dnssec-enable no;
dnssec-validation no;
//zone "." IN {
// type hint;
// file "named.ca";
//};
#这个//表示注释,注释的内容可以删除,以上内容是要修改的,其余的可以不变
[root@web named]# cat /etc/named.rfc1912.zones
zone "." IN {
type master;
file "root.zone";
};
[root@web named]# cat /var/named/root.zone #root.zone这个文件是上步file提到的文件,这个文件是需要我们自己来建的
$TTL 1D
@ IN SOA ns. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.
ns. A 192.168.153.9
com. NS ns.com.
ns.com. A 192.168.153.8
说明:root.zone这个文件的我们可以这样得来cp -p named.localhost root.zone,根服务器通过子域委派给com 其ip为192.168.153.8
[root@web named]# ifconfig eth3
...
inet addr:192.168.153.8
...
[root@web named]# cat /var/named/named.ca
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 192.168.153.9
说明:此文件里的注释(;)后的内容可以不删除,除注释外文件的内容只需上面的部分,以此来模拟根环境
[root@web named]# vim /etc/named.conf
.....
listen-on port 53 { any; };
allow-query { any; };
dnssec-enable no;
dnssec-validation no;
#这是此文件所需要改动的部分,此文件其余的不变
[root@web named]# vim /etc/named.rfc1912.zones
...
zone "com" IN {
type master;
file "com.zone";
};
说明:在此文件里最后加上即可
[root@web named]# vim /var/named/com.zone
$TTL 1D
@ IN SOA ns.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.com.
ns A 192.168.153.8
magedu.com. NS ns1.magedu.com.
ns1.magedu.com. A 192.168.153.7
说明:com通过子域委派到magedu.com ip为192.168.153.7
[root@web named]# ifconfig eth3
...
inet addr:192.168.153.7
...
[root@web named]# cat /var/named/named.ca
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 192.168.153.9
[root@web named]# vim /etc/named.conf
.....
listen-on port 53 { any; };
allow-query { any; };
allow-transfer {192.168.153.6;}; #这个是主从中从的ip,只允许此ip的主机可以下载我的DNS
dnssec-enable no;
dnssec-validation no;
#这是此文件所需要改动的部分,此文件其余的不变
[root@web named]# cat /etc/named.rfc1912.zones
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
};
说明:正向解析
zone "153.168.192.in-addr.arpa" IN {
type master;
file "192.168.153.zone";
};
说明:反向解析
[root@web named]# cat /var/named/magedu.com.zone
$TTL 1D
@ IN SOA ns1.magedu.com. rname.invalid. (
0 ; serial 说明:这个是编号
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.magedu.com.
NS ns2.magedu.com.
ns1 A 192.168.153.7
ns2 A 192.168.153.6
www A 1.1.1.1
ftp A 2.2.2.2
说明:此文件的名字要与正向解析中file里的文件名字一样,这样才可以访问到此文件
[root@web named]# cat /var/named/192.168.153.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
1 ; serial 说明:这个是编号
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.magedu.com.
6 PTR ns.magedu.com.
7 PTR www.magedu.com.
说明:此文件的名字要与反向解析中file里的文件名字一样,这样才可以访问到此文件
[root@web named]# ifconfig eth3
...
inet addr:192.168.153.6
...
[root@web named]# cat /var/named/named.ca
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 192.168.153.9
[root@web named]# vim /etc/named.conf
.....
listen-on port 53 { any; };
allow-query { any; };
dnssec-enable no;
dnssec-validation no;
#这是此文件所需要改动的部分,此文件其余的不变
[root@web slaves]# cat /etc/named.rfc1912.zones
zone "magedu.com" IN {
type slave;
masters {192.168.153.7;};
file "slaves/MAGEDU.COM.ZONE";
};
说明:正向解析的从里的文件 masters中的ip是主的ip
zone "153.168.192.in-addr.arpa" IN {
type slave;
masters {192.168.153.7;};
file "slaves/192.168.153.zone";
};
说明:反向解析的从里的文件 masters中的ip是主的ip
说明:其余的文件不需要配置,生成从的配置文件我们只需重启一下服务即可,当主的配置文件变时,我们将从的/var/named/slaves这里的文件清空即可,然后我们在重启从的服务
[root@web named]# ifconfig eth2
...
inet addr:192.168.153.10
...
[root@web named]# cat /var/named/named.ca
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 192.168.153.9
[root@web named]# 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.
//
acl yangyuan {
192.168.153.7;
};
acl zhang {
192.168.153.5;
};
说明:上面的2个acl的内容是限制条件,与下面的allow-query{ ...;};搭配使用,里面填写的name如yangyuan,那么就只能是yangyuan里的ip可以通过此主机来访问,本次我们的allow-query{any;};是为了acl与视图来配合使用的
options {
listen-on port 53 { any; };
// listen-on-v6 port 53 { ::1; };
forwarders {192.168.153.12;}; #这个是全局转发的ip地址,当我们访问到这台机器时,会转发到192.168.153.12这个机器上访问
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 { yangyuan;zhang }; #只允许这两个acl中的ip访问
recursion yes;
dnssec-enable no;
dnssec-validation no;
/* 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;
};
};
view yangyuan.view {
match-clients {yangyuan;};
include "/etc/named.yy.zones";
};
说明:这个视图是与acl yangyuan相对应的match-client这里说了
view zhang.view {
match-clients {zhang;};
include "/etc/named.zx.zones";
};
说明:这个视图是与acl zhang相对应的match-client这里说了
//include "/etc/named.rfc1912.zones"; #这个是注释的内容,视图不需要这个文件
include "/etc/named.root.key";
[root@web named]# vim /etc/named.yy.zones
zone "example.com" IN {
type master;
file "example.com.zone";
};
zone "magedu.com" IN {
type forward;
forwarders {192.168.153.12;}; #区域转发,只转发访问magedu.com的请求,转发到192.168.153.12这个机器上
};
[root@web named]# vim /var/named/example.com.zone
$TTL 1D
@ IN SOA ns.example.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.example.com.
ns A 192.168.153.10
www A 110.110.110.110
[root@web named]# vim /etc/named.zx.zones
zone "example.com" IN {
type master;
file "example.com.ZONE";
};
[root@web named]# cat example.com.ZONE
$TTL 1D
@ IN SOA ns.example.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.example.com.
ns A 192.168.153.10
www A 120.120.120.120
总结:在/etc/named.conf里这个文件include"/etc/named.rfc1912.zones"我们不需要是因为他是全局的配置文件,我们启用的视图的目的就是条件式的访问,视图就代替了这个文件
[root@web named]# ifconfig eth3
...
inet addr:192.168.153.12
...
[root@web named]# vim /etc/named.conf
.....
listen-on port 53 { any; };
allow-query { any; };
dnssec-enable no;
dnssec-validation no;
#这是此文件所需要改动的部分,此文件其余的不变
[root@web ~]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
};
[root@web ~]# vim /var/named/magedu.com.zone
$TTL 1D
@ IN SOA ns.magedu.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.magedu.com.
ns A 192.168.153.12
www A 3.3.3.3
[root@web network-scripts]# vim /etc/resolv.conf
# Generated by NetworkManager
domain magedu.com
search magedu.com gx.com
nameserver 192.168.153.10
root@web ~]# ifconfig eth2
...
inet addr:192.168.153.5
...
[root@web ~]# nslookup
> www.magedu.com
Server: 192.168.153.10
Address: 192.168.153.10#53
Non-authoritative answer:
Name: www.magedu.com
Address: 3.3.3.3 #转发后的域解析得到的ip
> www.example.com
Server: 192.168.153.10
Address: 192.168.153.10#53
Name: www.example.com
Address: 120.120.120.120
root@web ~]# ifconfig eth2
...
inet addr:192.168.153.5
...
[root@web ~]# nslookup
> www.magedu.com
Server: 192.168.153.10
Address: 192.168.153.10#53
Non-authoritative answer:
Name: www.magedu.com
Address: 1.1.1.1 #这是magedu.com中的ip
> www.example.com
Server: 192.168.153.10
Address: 192.168.153.10#53
Name: www.example.com
Address: 120.120.120.120
说明:上面的测试是用192.168.153.5的主机来测试的,其中acl zhang{192.168.153.5;};限制了ip,局部转发只有192.168.153.7才允许其进行局部转发,所以上面访问www.magedu.com时的地址是1.1.1.1
[root@web named]# ifconfig eth3
...
inet addr:192.168.153.7
...
[root@web named]# dig www.magedu.com @192.168.153.10
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.magedu.com @192.168.153.10
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30634
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;www.magedu.com. IN A
;; ANSWER SECTION:
www.magedu.com. 86400 IN A 3.3.3.3
;; AUTHORITY SECTION:
magedu.com. 86400 IN NS ns.magedu.com.
;; ADDITIONAL SECTION:
ns.magedu.com. 86400 IN A 192.168.153.12
;; Query time: 5 msec
;; SERVER: 192.168.153.10#53(192.168.153.10)
;; WHEN: Sat Sep 15 02:52:52 2018
;; MSG SIZE rcvd: 81
说明:这个测试我们是用192.168.153.7来做的,我们的这个ip是允许局部转发的,所以其访问的www.magedu.com的ip解析是3.3.3.3,注意我们dig后跟的ip地址是缓存路由的地址,因为我们没有配nameserver这个,所以只能临时的指定一下路由的ip来使用
root@web ~]# ifconfig eth2
...
inet addr:192.168.153.5
...
[root@web ~]# nslookup
> www.magedu.com
Server: 192.168.153.10
Address: 192.168.153.10#53
Non-authoritative answer:
Name: www.magedu.com
Address: 3.3.3.3
说明:域名www.magedu.com的解析是从转发主机中解析得到的
> www.example.com
Server: 192.168.153.10
Address: 192.168.153.10#53
Name: www.example.com
Address: 120.120.120.120
说明:域名www.example.com的解析本来是该从转发中的主机解析的,但是我们转发主机里没有配www.example.com的文件,所以这个解析是正常的解析,并不是转发主机解析的