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

[经验分享] CentOS6上DNS服务器的安装配置-基础篇

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-6 08:31:18 | 显示全部楼层 |阅读模式
一、 DNS简介:
DNS(Domain Name System),是互联网的一种很重要的基础服务,DNS服务作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。当在DNS区域传送机制运行在TCP协议,使用端口号53。

二、 DNS查询方式:

DNS共有两种查询方法:

  • 递归查询


wKioL1WZNTfBh4pYAACeasmvBxo318.jpg

由局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域的根域服务器进行查询,再由根域名服务器一级级向下查询。最后,将得到的查询结果返回结局部DNS服务器,再由局部DNS服务器返回给客户端。

2.迭代查询

wKiom1WZM4Wxd6kqAAC5lMDNk0s041.jpg
当局部DNS服务器自己不能回答客户机的DNS查询请求时,也可以通过迭代查询的方式进行域名解析,如图2所示。局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其他DNS服务器的IP地址返回给客户端DNS程序,客户端DNS程序再继续向这些DNS服务器发出查询请求,直到得到查询结果为止。


三、常用DNS资源记录类型及示例:

任何解析库文件的第一个记录类型必须是SOA

RRType结构:
Name[ttl] INRRTypevalue


1. SOA记录:
Start Of Authority
Name: 区域名称, 通常可以简写成@
[ttl]: time to live, 此值可以省略
IN: 是固定的,表示Internet
RRType: 就是Record Resource Type, 可以使A,AAAA,SOA,NS,CNAME等等
value: 主DNS服务器的FQDN,也可以是当前区域的区域名称

例如: @INSOAns.magedu.com.admin.magedu.com.(
serial number;解析库的版本号,例如20150703
refresh time;周期性同步时间间隔
retry time;重试的时间间隔
expire time;过期时长, 从服务器放弃解析的时间间隔
nagative answer ttl; 否定答案的统一缓存时长
)

#最后面的. 不能省略,管理员的邮箱地址不能使用@,因为这里@有特殊意义,通常用.来代替
记录如果很长,可以使用()来表示 括号内都是一行的内容
serial number,需要给定一个起始值,以后每一次更改,就会自动增加,window dns会自动生成,linux需要自己指定


2. NS记录:
name server 表明域名解析服务器的记录
name: 区域名称
value: DNS服务器的FQDN

例如: @IN    NS   ns.magedu.com.   

注意:
如果有多台NS服务器,每一个都必须有对应的NS记录,否则不会被识别成dns服务器,RR有变化,也不会notify
对于正向解析来讲,每个NS的FQDN都应该有一个A记录


3. MX记录:
Mail eXchanger 邮件服务记录
name: 区域名称
value: 邮件服务器的FQDN

例如:
@IN   MX  10mail.magedu.com.
@IN   MX  20mail.magedu.com.

注意:
如果有多台MX服务器,每一个都必须有对应的MX记录,单各MX记录还有优先级属性
对于正向解析文件来讲,每一个邮件服务器的FQDN都应该有一个A记录


4. A记录:
IPv4 Address
name: FQDN
value: IP

例如:
www.magedu.com.INA 1.1.1.1
www.magedu.com.IN  A 1.1.1.2

pop3.magedu.com.IN  A   1.1.1.3
imap.magedu.com. INA   1.1.1.3

5. AAAA记录:
IPv6 Address 类似A记录,不详述

6. CNAME记录:
Canonical Name 别名记录
name:FQDN
value:FQDN

例如:
www.magedu.com. INA    1.1.1.4
web.magedu.com.IN  CNAME www.magedu.com.

7. PTR记录:
pointer 反向解析记录
name: 逆向主机IP地址(不包含网络地址)加后缀in-addr.arpa.  

例如: 172.16.100.7/16, 网络地址是172.16,主机地址,100.7,其name为7.100.in-addr.arpa.

value: FQDN

例如:
7.100.in-addr-arpa.IN  PTR www.magedu.com.

常用的DNS资源记录也就这几种,下面来介绍如何在CentOS6下使用bind软件来实现DNS服务器搭建及配置。


四、CentOS6下DNS服务器搭建及简单配置

在Linux系统中,最常用的DNS服务器软件是bind(Bekerley Internet Name Domain),是由isc.org维护更新的,可以通过rpm -ql bind来查看bind的配置文件及二进制命令。

注意: 这次实验是在内网搭建DNS服务器,并不能对外网提供解析服务,如果需要对外提供DNS服务,还需要到域名注册商去注册域名
绑定我们的DNS服务器才能实现对外DNS服务。

1. bind安装
1
#yum install -y bind.x86_64




2. 修改bind主配置文件 /etc/named.conf
1
#vim /etc/named.conf



定义区域:

#此配置文件中,可以用//来标示注释
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
options {
        //listen-on port 53 { 127.0.0.1; };
        //listen-on-v6 port 53 { ::1; };
        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     { localhost; };
        recursion yes;
        //dnssec-enable yes;   //和dnssec相关的内容先不解释,和安全相关
        //dnssec-validation yes;
        //dnssec-lookaside auto;
        /* 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;
        };
};
zone "." IN {
        type hint;
        file "named.ca";  //13个根节点都在这个文件中
};
include "/etc/named.rfc1912.zones";  //定义区域内各种记录的zone配置文件
//include "/etc/named.root.key";  //和dnssec相关,先注释掉,下篇博客解释高级应用时候在做详细解释




3. 修改区域定义文件/etc/named.rfc1912.zones
1
#vim /etc/named.rfc1912.zones



在此文件中,bind默认创建了5个zone,分别是:
1
2
3
4
5
zone "localhost.localdomain"
zone "localhost" IN
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"
zone "1.0.0.127.in-addr.arpa"
zone "0.in-addr.arpa"



本地解释,IPv6的本地解析及其反向本地解析区域,我们保持默认即可,在文件最下方继续追加我们需要创建的区域(zone)
追加内容:
1
2
3
4
zone "mageedu.com" IN {
        type master;
        file "mageedu.com.zone";
};




4. 修改区域解析库文件 /etc/named/mageedu.com.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
$TTL 3600
@       IN      SOA     ns.mageedu.com. admin.mageedu.com. (
        20150705
        2H
        10M
        7D
        1D)
        IN      NS      ns.mageedu.com.
        IN      MX 10   mail.mageedu.com.
ns.mageedu.com. IN      A       172.16.100.7
mail.mageedu.com.       IN      A       172.16.100.8
www.mageedu.com.        IN      A       172.16.100.9
pop.mageedu.com.        IN      CNAME   mail.mageedu.com.




5. 修改区域解析库文件的权限及属性
1
2
#chgrp named /var/named/mageedu.com.zone
#chmod 640 /var/named/mageedu.com.zone




6. 检查配置文件的语法

CentOS6下可以使用:
1
#service named configtest




由于CentOS7,不在使用Service启动,所以可以使用以下两个命令单独查看:
1
2
#named-checkconf 查看主配置文件/etc/named.conf的语法错误
#named-checkzone 查看区域定义文件/etc/named.rfc1912.zones的语法错误




7. DNS服务器启动
1
2
#service named reload #只要是没有改变监听端口,都可以使用reload命令来重新载入配置信息
#rndc reload





至此,一个区域为"mageedu.com"的正向解析就创建好了,可以提供解析服务了。
但是要注意,需要将客户端的/etc/resolv.conf的DNS服务器地址修改成我们提供DNS服务器的IP
1
#vim /etc/resolv.conf





五、DNS客户端测试工具

bind-utils包提供了三款DNS客户端测试工具:
1
#rpm -ql bind-utils




/usr/bin/dig
/usr/bin/host
/usr/bin/nslookup

接下来,按个介绍下:

a. 正向解析测试:


1). host -t RRType NAME [SERVER]

host -t A www.mageedu.com 使用本机/etc/resolve.conf的name erver来解析
host -t A www.mageedu.com 172.16.100.7 使用指定的dns服务器来解析
注意: 指定记录,需要特定记录的格式,例如 NS记录,就需要指定一个区域的名字:
host -t NS mageedu.com 172.16.100.7

2). nslookup
nslookup>
server IP:
set type={A|SOA|NS|MX...}
name: 一定要和type对应的名称

3). dig
dig -t TYPE name @server
类型可使用: AXFR
例如:dig -t AXFR mageedu.com @172.16.100.7

测试反向解析不使用-t PTR,而使用-x选项

dig: 查询选项
+trace

+recurese
+norecurese


可以用dig -t NS @a.root-servers.net.来生成 name.ca文件,确保获取到的都是最新的根dns


b. 反向区域测试:

区域名称为逆向网络地址加 .in-addr-arpa.
例如:
zone "100.16.172.in-addr.arpa." IN {
type master;
file "172.16.100.zone";
};


反向区域解析库文件: /var/named/172.16.100.zone

$TTL 600  #每一个dns条目的缓存秒数
@IN SOA ns.magedu.com. admin.magedu.com.  (
20140801  ; 分好后可以写注释
2H ;
10M
7D
1D)

IN NS ns.mageedu.com.  #这里name没有填写,表示和上一条的name一致

//反向解析无MX记录

7 IN PTR ns.mageedu.com.
8 IN PTR www.mageedu.com.
9 IN PTR mail.mageedu.com.


然后可以使用如下几种方法测试反向解析:
1
2
#host -t x 172.16.100.9 172.16.100.7
#dig -t x 172.16.100.7 @172.16.100.7




测试区域
1
#dig -t AXFR 100.16.172.in-addr.arpa @172.16.100.7




#172.16.100.in-addr.arpa 是反向区域的名字



说明:
1. 正向解析和反向解析文件中的名称可以仅适用于相对名称,他们均相对当前区域而言

@ IN NS ns
ns IN A 172.16.100.7
mail IN A 172.16.100.8
www IN A 172.16.100.9
pop IN CNAME mail

或者在zone文件里增加变量$ORIGIN指明简写后的部分
例如:  $ORIGIN mageedu.com

2. 绝对后缀可以使用$ORIGIN来定义
正向
$ORIGIN mageedu.com
反向
$ORIGIN 172.16.100.in-addr-arpa.

下篇博客会介绍bind的高级应用,例如便已安装,区域传送及压力测试等。


运维网声明 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.iyunv.com/thread-83573-1-1.html 上篇帖子: 使用cobbler安装centos6.6(vmware) 下篇帖子: RHEL6.5系统更换Centos系统YUM源 服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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