[置顶]DNS详解

DNS的作用:

DNS,Domain Name System或者Domain Name Service(域名系统或者余名服务)。域名系统为Internet上的主机分配域名地址IP地址。用户使用域名地址,该系统就会自动把域名地址转为IP地址。域名服务是运行域名系统的Internet工具。执行域名服务的服务器称之为DNS服务器,通过DNS服务器来应答域名服务的查询。

我们先把DNS的工作过程展现一下:

第一步:当客户端通过路由器发出请求时,在没有缓存和权威应答时,路由器会先去找根服务器,根服务器通过子域委派解析com的ip

第二步:当根收到路由器的请求时,根没有路由器所需要的请求内容,根服务器的配置文件里有con的域名解析(子域委派),路由器收到com的ip之后去找com

第三步:当路由器请求com服务器时,com的配置文件有域名的解析(子域委派),然后com将域名的解析的ip告诉路由器

第四步:路由器通过com解析得到的ip地址最终得到了请求内容

我们以完全模拟的方式再展现一遍DNS的工作原理:

根服务器:

[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

com服务器:

[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


magedu.com:

[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的文件,所以这个解析是正常的解析,并不是转发主机解析的

总结:以上就是我们的模拟的全部过程,其中有主从同步,子域委派,局部转发,全局转发,视图,acl条件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值