一:dns简介:DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由解析器以及域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。域名与IP地址之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。

二:dns的阶层式管理模式:每一级dns服务器只管理其相邻的下一级dns,如图:

无懈可击之完美dns架构_IP地址 

三:dns的查询过程:

第一种是本地解析:就是客户端可以使用缓存信息就地应答,这些缓存信息是通过以前的查询获得的

第二种是递归查询:即设定的DNS服务器代表客户端向其他DNS服务器查询,以便完全解析该名称,并将结果返回至客户端。

第三种是迭代查询:即设定的DNS服务器向客户端返回一个可以解析该域名的其他DNS服务器,客户端再继续向其他DNS服务器查询。

无懈可击之完美dns架构_的_02

四:dns的服务器类型:

1:主dns服务器:记录可以修改,删除

2:辅助dns服务器:从主dns那里拷贝记录,不能修改,删除。

3.缓存dns服务器:

4:存根dns服务器:为某些特定的用户进行域名解析

五:dns资源记录

SOA(起始授权机构):此记录指定区域的起点。它所包含的信息有区域名、区域管理员电子邮件地址,以及指示辅 DNS 服务器如何更新区域数据文件的设置等

NS(名称服务器):此记录指定负责给定区域的名称服务器

A(主机): 此记录列出特定主机名的 IP 地址。

CNAME (标准名称):此记录指定标准主机名的别名。

MX邮件交换器记录:此记录列出了负责接收发到域中的电子邮件的主机。

PTR(指针) :把IP地址映射到域名。

六:dns区域:

正向区域:将主机名解析为ip地址

反向区域:将ip地址解析为主机名

案例一:北京总公司有一台主dns服务器 ,并且建立了一台辅助dns服务器,实现主dns服务器的内容同步到辅助dns服务器中。主dns服务器用Linux,辅助dns服务器用windows server  2003. 

拓扑方案:

无懈可击之完美dns架构_的_03

一:首先配置Linux主机:

1:[root@lyt ~]# mkdir /mnt/cdrom

[root@lyt ~]# mount /dev/cdrom /mnt/cdrom/

[root@lyt ~]# cd /mnt/cdrom/Server/

[root@lyt Server]# ll bind*        #查询与dns相关的软件包:如图:

无懈可击之完美dns架构_IP地址_04

2:[root@lyt Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm         #安装dns的主软件包

[root@lyt Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm          #有助于dns服务器安全的软件包

[root@lyt Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm         #dns服务器的缓存

[root@lyt named]# cd /var/named/chroot          #切换到dns服务器的根目录

[root@lyt named]# cd /var/named/chroot/etc/       #切换到dns服务器的主配置文档目录

[root@lyt etc]# cp -p named.caching-nameserver.conf   named.conf         #-p表示将文件的属性也拷贝一下,新文件名字一定是named.conf

[root@lyt etc]# vim named.conf      #编辑该文件如图所示:

无懈可击之完美dns架构_的_05

[root@lyt etc]# vim named.rfc1912.zones          #编辑区域声明文件

无懈可击之完美dns架构_域名_06

3:[root@lyt chroot]# cd /var/named/chroot/var/named/             #切换到dns服务器的区域文件中

[root@lyt named]# cp -p localhost.zone a.com.db             #使用模板拷贝成一个数据库文件

[root@lyt named]# vim a.com.db              #编辑该区域的数据库文件如图:

无懈可击之完美dns架构_的_07

[root@lyt named]# service named restart

[root@lyt named]# rndc reload              #将dns的更新重新加载

二:配置windows  server 2003主机:

1:选择:开始——〉设置——〉控制面板——〉添加或删除程序——〉添加/删除windows组件

无懈可击之完美dns架构_IP地址_08

无懈可击之完美dns架构_域名_09

无懈可击之完美dns架构_的_10

2:开始——〉设置——〉控制面板——〉管理工具——〉dns

无懈可击之完美dns架构_的_11

无懈可击之完美dns架构_IP地址_12

无懈可击之完美dns架构_IP地址_13

无懈可击之完美dns架构_域名_14

三:测试Linux主机和windows server主机的连通性:

无懈可击之完美dns架构_IP地址_15

无懈可击之完美dns架构_IP地址_16

无懈可击之完美dns架构_域名_17

无懈可击之完美dns架构_域名_18

无懈可击之完美dns架构_IP地址_19

无懈可击之完美dns架构_的_20

四:修改Linux上主区域的数据库文件,查看windows  server 主机上的辅助区域变化:

[root@lyt named]# vim a.com.db

无懈可击之完美dns架构_IP地址_21

[root@lyt named]# rndc reload           #将dns的更新重新加载

无懈可击之完美dns架构_域名_22

五:限制windows主机到Linux主机上复制主区域内容

1:在named.conf文件中做限制:

[root@lyt named]# cd ../../etc/

[root@lyt etc]# vim named.conf        #再次编辑次文件,如图:

无懈可击之完美dns架构_IP地址_23

[root@lyt etc]# vim ../var/named/a.com.db    

无懈可击之完美dns架构_IP地址_24

[root@lyt etc]# rndc reload

无懈可击之完美dns架构_域名_25 

2:在区域文件named.rfc1912.zones中做限制,只能限制某个区域:

将上一步骤中的named.conf文件中的allow-transfer { 192.168.101.100; };禁用,然后用named.rfc1912.zones 作测试:

[root@lyt etc]# vim named.rfc1912.zones

无懈可击之完美dns架构_域名_26

[root@lyt etc]# rndc reload

无懈可击之完美dns架构_域名_25

案例二:主dns服务器用windows  server  2003, 辅助dns:linux 。实现主dns服务器内容同步到辅助dns服务器中。

拓扑方案:

无懈可击之完美dns架构_域名_28

一:配置windows  server  2003主机

无懈可击之完美dns架构_的_29

无懈可击之完美dns架构_IP地址_30 

无懈可击之完美dns架构_域名_31 

无懈可击之完美dns架构_IP地址_32

无懈可击之完美dns架构_的_33 

无懈可击之完美dns架构_域名_34

无懈可击之完美dns架构_域名_35

无懈可击之完美dns架构_域名_36

无懈可击之完美dns架构_域名_37

无懈可击之完美dns架构_IP地址_38

二:配置linux主机:

[root@lyt etc]# vim named.rfc1912.zones

无懈可击之完美dns架构_域名_39

[root@lyt etc]# rndc reload

[root@lyt etc]# cd ../var/named/slaves/

[root@lyt slaves]# more b.com.db       #查看b.com.db中的信息,如图:

无懈可击之完美dns架构_IP地址_40

三:如果windows server主机中有更新:查看linux主机上是否能够同步信息:

无懈可击之完美dns架构_的_41

[root@lyt slaves]# service named restart

[root@lyt slaves]# rndc reload

[root@lyt slaves]# cat b.com.db

无懈可击之完美dns架构_的_42 

案例三:反向区域:

1:要求:使用linux主机创建反向区域。windows server 2003主机创建反向区域,作为linux主机的备份dns服务器:

首先配置linux主机:

[root@lyt ~]# cd /var/named/chroot/etc/     

[root@lyt etc]# vim named.rfc1912.zones

无懈可击之完美dns架构_的_43 

[root@lyt named]# cp -p named.local 10.10.10.db

无懈可击之完美dns架构_的_44

配置windows server 2003主机:

无懈可击之完美dns架构_的_45

无懈可击之完美dns架构_IP地址_46

无懈可击之完美dns架构_域名_47

无懈可击之完美dns架构_的_48

无懈可击之完美dns架构_IP地址_49

用xp主机进行测试:

无懈可击之完美dns架构_IP地址_50

无懈可击之完美dns架构_的_51 

2:要求:使用windows  server 2003创建反向区域。linux主机建立反向区域,作为辅助区域:

无懈可击之完美dns架构_IP地址_52

无懈可击之完美dns架构_的_53

无懈可击之完美dns架构_域名_54 

无懈可击之完美dns架构_的_55

无懈可击之完美dns架构_域名_56

配置linux主机:

[root@lyt ~]# cd /var/named/chroot/etc/

[root@lyt etc]# vim named.rfc1912.zones

无懈可击之完美dns架构_的_57

[root@lyt etc]# service named restart

[root@lyt etc]# cd ../var/named/slaves/

无懈可击之完美dns架构_的_58 

案例四:区域的委派与转发1:

1:linux主机做父域,windows  server  2003主机做子域

委派:将相关区域解析权限下放给某一台DNS服务器在委派服务器上只存储一条委派方与被委派方的记录。

转发:一般是本地的DNS不能为本地的用户进行服务,然后转发到其他指定的DNS。(转发可以通过转发器和根提示来实现)

说明:在北京总公司有一台dns服务器,域名是c.com,北京分公司的域名是bj.c.com。在上海的分公司域名是sh.c.com。在北京总公司的dns服务器上建立父子域,并对上海分公司dns服务器授权。上海分公司通过设置根提示和转发其来解析北京总公司及北京分公司。

拓扑方案:

无懈可击之完美dns架构_IP地址_59

一:首先配置linux上的dns-server:(在上个案例中已经将有关dns的软件包安装完毕,现在只修改配置文件)

[root@lyt etc]# pwd              #显示当前目录

/var/named/chroot/etc

[root@lyt etc]# vim named.rfc1912.zones   

无懈可击之完美dns架构_的_60

[root@lyt etc]# cd ../var/named/          

[root@lyt named]# cp -p localhost.zone c.com.db           #复制模板文件,-p表示连同属性一起复制

[root@lyt named]# cp -p  localhost.zone bj.c.com.db

[root@lyt named]# vim c.com.db          #编辑c.com域,对上海分公司进行委派:

无懈可击之完美dns架构_域名_61

[root@lyt named]# vim bj.c.com.db        #编辑bj.c.com子域的数据库文件如图:

无懈可击之完美dns架构_的_62

[root@lyt named]# named-checkconf /var/named/chroot/etc/named.conf           #检测主配置文档是否有错

[root@lyt named]# named-checkzone a.com /var/named/chroot/var/named/a.com.db        #检测区域文件是否有错

[root@lyt named]# service named restart      

二:配置windwos  server  2003主机:(在上个案例中,dns已经安装。这里不用安装了)

无懈可击之完美dns架构_的_63

无懈可击之完美dns架构_IP地址_64

无懈可击之完美dns架构_的_65 

无懈可击之完美dns架构_的_66

无懈可击之完美dns架构_IP地址_67

无懈可击之完美dns架构_域名_68

 无懈可击之完美dns架构_的_69

 无懈可击之完美dns架构_域名_70

无懈可击之完美dns架构_IP地址_71

三:用xp主机进行测试:

1:dns指向linux主机:

无懈可击之完美dns架构_域名_72

查看解析结果:

无懈可击之完美dns架构_域名_73

无懈可击之完美dns架构_域名_74

无懈可击之完美dns架构_的_75

无懈可击之完美dns架构_的_76

无懈可击之完美dns架构_域名_77 

无懈可击之完美dns架构_的_78

2:使xp主机的dns指向windows  server 2003主机:

无懈可击之完美dns架构_IP地址_79

查看解析结果:

无懈可击之完美dns架构_域名_80

无懈可击之完美dns架构_的_81

在windows  server  2003主机上设置根提示:

无懈可击之完美dns架构_域名_82

无懈可击之完美dns架构_域名_83

无懈可击之完美dns架构_的_84

无懈可击之完美dns架构_域名_85

在xp主机上再次测试,xp主机dns指向子域sh.c.com。设置根提示之后解析成功:

无懈可击之完美dns架构_的_86

无懈可击之完美dns架构_IP地址_87

将windows   server  2003主机上设置的根提示删除,然后设置转发器:

无懈可击之完美dns架构_域名_88

在xp主机上使用ipconfig /flushdns清除缓存,然后再次进行测试:

无懈可击之完美dns架构_域名_89

无懈可击之完美dns架构_IP地址_90

2:区域的委派与转发2:windows  server  2003主机做父域,linux主机做子域:

首先配置winodws server 2003主机:

无懈可击之完美dns架构_域名_91

无懈可击之完美dns架构_的_92

无懈可击之完美dns架构_的_93

无懈可击之完美dns架构_域名_94 

无懈可击之完美dns架构_的_95

无懈可击之完美dns架构_的_96

在linux主机上配置委派的域sh.d.com:

[root@lyt etc]# vim named.rfc1912.zones

无懈可击之完美dns架构_的_97 

[root@lyt etc]# cd ../var/named/

[root@lyt named]# cp -p localhost.zone sh.d.com.db

[root@lyt named]# vim sh.d.com.db

无懈可击之完美dns架构_域名_98

使用xp主机进行测试:dns指向windows  server  2003:

无懈可击之完美dns架构_IP地址_99

无懈可击之完美dns架构_域名_100

dns指向linux主机(sh.d.com子域):

无懈可击之完美dns架构_的_101

无懈可击之完美dns架构_的_102

无懈可击之完美dns架构_的_103

在linux主机上设置根提示:

[root@lyt named]# vim  named.ca            #编辑dns的根指向文件

无懈可击之完美dns架构_域名_104

[root@lyt named]# service named restart

再次用xp主机测试:

无懈可击之完美dns架构_IP地址_105

无懈可击之完美dns架构_域名_106

在linux主机上设置转发器:(将根指向删除)

1:无条件转发:

[root@lyt named]# cd ../../etc/    

[root@lyt etc]# vim named.conf          

无懈可击之完美dns架构_IP地址_107

无懈可击之完美dns架构_的_108 

 无懈可击之完美dns架构_IP地址_109

2:配置有条件转发:

[root@lyt etc]# vim named.rfc1912.zones

无懈可击之完美dns架构_域名_110

[root@lyt etc]# rndc reload

无懈可击之完美dns架构_域名_111

无懈可击之完美dns架构_的_112

用xp主机,再次进行测试:

无懈可击之完美dns架构_的_113

无懈可击之完美dns架构_IP地址_114

看完务必赞一个,写博客好辛苦!!!