设为首页 收藏本站
查看: 770|回复: 0

[经验分享] RHEL6 DNS服务详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-25 08:21:08 | 显示全部楼层 |阅读模式

本篇博客主要讲解:

DNS原理、DNS缓存服务器、主从服务器、DNS转发

一、DNS原理

  网络通讯大部分是基于TCP/IP协议,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如“125.39.240.113”之类的IP地址,而不能认识域名。我们无法记住那么多数字组成的IP地址,但我们在访问网站时,几乎都是在浏览器地址栏中输入域名,就能看到我们所要访问的内容,这是因为有一个“DNS服务器”自动把我们的域名转换成相应的IP地址,而后查询出IP地址所对应的网页。

什么是DNS

  DNS( DomainName System)是“域名系统”的英文缩写,它是由解析器以及域名服务器组成。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。DNS使用TCP/53端口与UDP/53端口,主要使用“UDP”协议,服务器之间备份使用“TCP”协议。它的基本工作原理用图来表示如:

wKiom1SK83LjPqtfAAB7qAdEPpQ157.jpg

DNS域:

  互联网域名系统由名称注册机构负责维护分配、由组织和国家/地区的顶级域在 Internet 上进行管理。这些域名按照国际标准进行分配。常见的DNS域名称如:

  com:商业公司  edu:教育机构  net:网络公司  gov:政府机构  mil:军事政府机构 cn:中国

DNS域名称空间的组织方式

  根域:DNS域名使用时,由尾部点"."来指定名称位于根域或更高

  顶级域:用来表示某个国家或地区使用的名称类型 如: .cn

  二级域:由个人或组织在internet上使用的注册名称 如:mageedu.com

  子域:已注册的二级域名衍生的域名,也就是网站名 如:www.mageedu.com

  主机名:通常表示DNS域名的最左侧标签来标识网络上特定的计算机如: ns1  ns1.www.mageedu.com

Dns服务的工作过程

  当 DNS 客户机需要查询程序中使用的名称时,它会通过查询本地DNS服务器来解析该名称。客户机发送的每条查询消息都包括3条信息,以指定服务器应答的问题

1.  指定DNS 域名,表示为完全合格的域名 (FQDN)

2.  指定查询类型,可根据类型指定资源记录

3.  DNS域名指定的类别

  对于DNS 服务器,它始终应指定为 Internet 类别。例如,指定的名称可以是计算机的完全合格的域名,如im.qq.com,并且指定的查询类型用于通过该名称搜索地址资源记录

  DNS 查询以各种不同的方式进行解析。客户机有时可使用之前查询获得的缓存信息就地应答查询。DNS 服务器可使用其自身的资源记录信息缓存来应答查询,也可代表请求客户机来查询或联系其他 DNS 服务器,以完全解析该名称,并随后将应答返回至客户机。这个过程称为递归查询

  另外,客户机自己也可尝试联系其他的DNS 服务器来解析名称。如果客户机这么做,它会使用基于服务器应答的独立和附加的查询,该过程称作迭代查询,即DNS服务器之间的交互查询就是迭代查询。


比如说:

1.  在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析

2.  如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,看是否有这个网址映射关系,如果有,直接返回,完成域名解析

3.  如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性

4.  如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性                                            

5.  如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机

6.  如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机

注:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询!


===========================================================================================

二、DNS缓存服务器

1、规划

NS服务器是:172.16.14.5

www服务器是:172.16.14.6

2、安装软件包:

可以采用yum安装。

源码包官方网站下载https://www.isc.org/downloads/

本博客主要以rpm安装方式进行,我们使用(CentOS6.6)bind-9.8.2-0.30.rc1.el6.x86_64

3、配置文件细解

bind服务进程主配置文件/etc/named.conf

区域的定义,每个选项后面一定要加分号;

1
options  {                                     #定义全局选项
    directory "/var/named";                    #定义区域数据文件存放目录
};                                               
zone "." IN  {                                 #定义根区域
    type hint;                                 #定义区域类型为根
    file "named.ca";                           #定义数据文件
};                                               
zone "localhost" IN  {                          #定义本地解析区域
    type master|slave;                         #定义区域类型为主或辅
    file "named.localhost";                    #定义数据文件
};
zone "0.0.127.in-addr.arpa" IN  {               #定义反向解析区域
    type master|slave;                         #定义区域类型为主或辅
    file "named.loopback";                     #定义数据文件
};





区域配置文件 /etc/named.rfc1912.zones

区域数据文件 /var/named/

服务控制脚本 /etc/rc.d/init.d/named

可使用 service named start|stop|restart|reload 启动、停止、重启、重新加载

也可使用 rndc start|stop|reload|status 启动、停止、重新加载、查看状态

4.DNS资源记录类型

1
2
3
4
5
6
7
8
$TTL  600  #TTL:否定应答时常
    @     IN     SOA    [FQDN]magedu.com. admin.com.[管理员邮箱] (
                2013081001;  serial    #版本号(最长为10位数字)
                1D;  refresh           #定义检查刷新时间
                1H;  retry             #定义重试时间
                1W;  expire            #定义过期时间
                3H  ); minimum         #定义否定答案时长
SOA:起始授权记录

时间单位:M(分钟)、H(小时)、D(天)、W(周)、默认单位是秒

NS:区域名称-->主机名  如: magedu.com.   IN   NS   ns1.magedu.com

MX:(邮件) 区域名称-->FQDN 如: magedu.com. IN   MX 10 mail.magedu.com.  #数字(0-99)越小级别越高

              mail.magedu.com. IN   A    172.16.14.6

A:FQDN-->IPv4   

AAAA:FQDN-->IPv6

PTR:Ip-->FQDN  指针记录   CNAME:FQDN-->FQDN 别名记录

5.  配置缓存服务器

主配置文件 vim /etc/named.conf

1
2
3
4
5
6
7
options {
//      listen-on port 53 { 127.0.0.1;  };        #把本行注释默认只监听127.0.0.1的53端口
//      listen-on-v6 port 53 { ::1;  };           #把本行注释,我们不使用IPv6
        directory       "/var/named";            #定义区域数据文件存放目录
//      allow-query     { localhost;  };          #把本行注释,默认只允许本地查询
        recursion yes;                           #是否允许递归
  };

打开区域配置文件,可以只保留这两个区域  vim /etc/named.rfc1912.zones

1
2
3
4
5
6
7
8
9
10
zone "localhost" IN  {                         #定义本地解析区域
    type master;                               #定义区域类型为主
    file "named.localhost";                    #定义数据文件
    allow-update  { none;  };                  #是否允许更新
};
zone "0.0.127.in-addr.arpa" IN  {              #定义反向解析区域
    type master;                               #定义区域类型为主
    file "named.loopback";                     #定义数据文件
    allow-update  { none;  };                  #是否允许更新
};

保存并退出,使用  named-checkconf检查脚本是否有语法错误

启动DNS服务器,DNS进程为named:

1
2
1
[iyunv@localhost  ~]# service named start
Starting named:                                             [  OK  ]




修改本地DNS地址为本机:echo "nameserver 172.16.14.5">> /etc/resolv.conf

使用dig命令测试解析根:dig -t NS . @172.16.14.5  -t:指定资源记录类型

wKioL1SL6U6w7C_tAANrJDZ11kA288.jpg

6、把DNS服务加入到开机启动项
wKiom1SL6RCR1epZAACkRk46pWs954.jpg
===========================================================================================
三、配置主从DNS服务器
1、ip规划: NS服务器master:172.16.14.5 | slave:172.16.14.6
2、在master和slave上安装bind
yum -y install bind
bind的主配置文件:/etc/name.conf;
配置文件中主要讲解dns服务的区域定义与工作属性;而bind的配置文件属性也比较独特,不允许其他用户读写;
wKiom1SL6zeBozGnAAByIcUapns436.jpg

创建正向区域解析文件
vim /var/named/stu14.com.zone
wKioL1SL8X_w_Z7eAAK8178qfes910.jpg


创建反向区域解析文件
vim /var/named/14.16.172.zone

wKiom1SL8krhwz_dAAGM9HLsxhE289.jpg


检查区域配置文件
wKioL1SL87Tj_T0XAADVONC3AD8827.jpg

修改区域配置文件的权限为640,并修改其属组
wKiom1SL8_uQaGvfAAHYhEbNwqc686.jpg
检查语法是否有错误;
named-checkconfig



检测区域配置文件:
named-checkzone "stu14.com" /var/named/stu14.com.zone

named-checkzone "14.16.172.in-addr.arpa" /var/named/14.16.172.in-addr.arpa


启动named后,使用dig命令测试A记录与NS记录:dig -t A www2.stu14.com @172.16.14.5
wKiom1SL-BOD-IVaAAJUjUyu8zo222.jpg

测试NS记录
wKioL1SL-NeT2pOGAAIWb8h97b4714.jpg

从服务器配置
前期准备工作与master相同

编辑 vim /etc/named.rfc1912.zone

wKiom1SL-x2TzWekAAHMZBmPD7M842.jpg


修改一下主服务器(172.16.14.5)的主配置文件,允许从服务器区域传送:
wKioL1SL_VmDz1RVAAFG6nYYJlk353.jpg

修改主服务器的正向与反向区域配置文件,添加从服务器记录信息
wKioL1SMKQuAag4pAAHBD1GyDyc513.jpg

修改反向区域配置文件
wKiom1SMKXDCY17OAAGC4ijudwM338.jpg
重启named :service named restart


验证从服务器是否同步文件:
wKiom1SMKdejMcHNAAGC4ijudwM855.jpg

验证从服务器是否同步文件:
wKiom1SMKkuhijmKAADF85JXCPo885.jpg

DNS服务器添加一条正向解析的记录并重新加载配置文件,从服务器/var/named/slaves/下正向区域文件则会同步序列号及DNS新添加的一条正向解析记录;
wKioL1SMLN3RbBk1AAEvdoPISgU674.jpg



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-38595-1-1.html 上篇帖子: supervisor安装配置 下篇帖子: Linux学习之正则表达式&grep&egrep
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表