无懈可击之完美dns架构
一:dns简介:DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由解析器以及域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。域名与IP地址之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。 二:dns的阶层式管理模式:每一级dns服务器只管理其相邻的下一级dns,如图: 三:dns的查询过程: 第一种是本地解析:就是客户端可以使用缓存信息就地应答,这些缓存信息是通过以前的查询获得的 第二种是递归查询:即设定的DNS服务器代表客户端向其他DNS服务器查询,以便完全解析该名称,并将结果返回至客户端。 第三种是迭代查询:即设定的DNS服务器向客户端返回一个可以解析该域名的其他DNS服务器,客户端再继续向其他DNS服务器查询。 四: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服务器用windowsserver 2003. 拓扑方案: 一:首先配置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相关的软件包:如图: 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 #编辑该文件如图所示: [root@lyt etc]# vim named.rfc1912.zones #编辑区域声明文件 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 #编辑该区域的数据库文件如图: [root@lyt named]# service named restart [root@lyt named]# rndc reload #将dns的更新重新加载 二:配置windows server 2003主机: 1:选择:开始——〉设置——〉控制面板——〉添加或删除程序——〉添加/删除windows组件 2:开始——〉设置——〉控制面板——〉管理工具——〉dns 三:测试Linux主机和windows server主机的连通性: 四:修改Linux上主区域的数据库文件,查看windows server 主机上的辅助区域变化: [root@lyt named]# vim a.com.db [root@lyt named]# rndc reload #将dns的更新重新加载 五:限制windows主机到Linux主机上复制主区域内容 1:在named.conf文件中做限制: [root@lyt named]# cd ../../etc/ [root@lyt etc]# vim named.conf #再次编辑次文件,如图: [root@lyt etc]# vim ../var/named/a.com.db [root@lyt etc]# rndc reload 2:在区域文件named.rfc1912.zones中做限制,只能限制某个区域: 将上一步骤中的named.conf文件中的allow-transfer { 192.168.101.100; };禁用,然后用named.rfc1912.zones 作测试: [root@lyt etc]# vim named.rfc1912.zones [root@lyt etc]# rndc reload 案例二:主dns服务器用windows server 2003, 辅助dns:linux 。实现主dns服务器内容同步到辅助dns服务器中。 拓扑方案: 一:配置windows server 2003主机 二:配置linux主机: [root@lyt etc]# vim named.rfc1912.zones [root@lyt etc]# rndc reload [root@lyt etc]# cd ../var/named/slaves/ [root@lyt slaves]# more b.com.db #查看b.com.db中的信息,如图: 三:如果windows server主机中有更新:查看linux主机上是否能够同步信息: [root@lyt slaves]# service named restart [root@lyt slaves]# rndc reload [root@lyt slaves]# cat b.com.db 案例三:反向区域: 1:要求:使用linux主机创建反向区域。windows server 2003主机创建反向区域,作为linux主机的备份dns服务器: 首先配置linux主机: [root@lyt ~]# cd /var/named/chroot/etc/ [root@lyt etc]# vim named.rfc1912.zones [root@lyt named]# cp -p named.local 10.10.10.db 配置windows server 2003主机: 用xp主机进行测试: 2:要求:使用windows server 2003创建反向区域。linux主机建立反向区域,作为辅助区域: 配置linux主机: [root@lyt ~]# cd /var/named/chroot/etc/ [root@lyt etc]# vim named.rfc1912.zones [root@lyt etc]# service named restart [root@lyt etc]# cd ../var/named/slaves/ 案例四:区域的委派与转发1: 1:linux主机做父域,windows server 2003主机做子域 委派:将相关区域解析权限下放给某一台DNS服务器在委派服务器上只存储一条委派方与被委派方的记录。 转发:一般是本地的DNS不能为本地的用户进行服务,然后转发到其他指定的DNS。(转发可以通过转发器和根提示来实现) 说明:在北京总公司有一台dns服务器,域名是c.com,北京分公司的域名是bj.c.com。在上海的分公司域名是sh.c.com。在北京总公司的dns服务器上建立父子域,并对上海分公司dns服务器授权。上海分公司通过设置根提示和转发其来解析北京总公司及北京分公司。 拓扑方案: 一:首先配置linux上的dns-server:(在上个案例中已经将有关dns的软件包安装完毕,现在只修改配置文件) [root@lyt etc]# pwd #显示当前目录 /var/named/chroot/etc [root@lyt etc]# vim named.rfc1912.zones [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域,对上海分公司进行委派: [root@lyt named]# vim bj.c.com.db #编辑bj.c.com子域的数据库文件如图: [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已经安装。这里不用安装了) 三:用xp主机进行测试: 1:dns指向linux主机: 查看解析结果: 2:使xp主机的dns指向windows server 2003主机: 查看解析结果: 在windows server 2003主机上设置根提示: 在xp主机上再次测试,xp主机dns指向子域sh.c.com。设置根提示之后解析成功: 将windows server 2003主机上设置的根提示删除,然后设置转发器: 在xp主机上使用ipconfig /flushdns清除缓存,然后再次进行测试: 2:区域的委派与转发2:windows server 2003主机做父域,linux主机做子域: 首先配置winodws server 2003主机: 在linux主机上配置委派的域sh.d.com: [root@lyt etc]# vim named.rfc1912.zones [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 使用xp主机进行测试:dns指向windows server 2003: dns指向linux主机(sh.d.com子域): 在linux主机上设置根提示: [root@lyt named]# vim named.ca #编辑dns的根指向文件 [root@lyt named]# service named restart 再次用xp主机测试: 在linux主机上设置转发器:(将根指向删除) 1:无条件转发: [root@lyt named]# cd ../../etc/ [root@lyt etc]# vim named.conf 2:配置有条件转发: [root@lyt etc]# vim named.rfc1912.zones [root@lyt etc]# rndc reload 用xp主机,再次进行测试: 看完务必赞一个,写博客好辛苦!!! 本文转自 liuyatao666 51CTO博客,原文链接:http://blog.51cto.com/5503845/973781,如需转载请自行联系原作者