RHEL DNS服务器详细配置

Linux RHEL6 DNS服务器最全最详细配置什么是域名?计算机和计算机通过tcp/ip数据传输的使用ip 地址的标示, 但是ip 地址不好记, 故此使用一个好记的名字给“人”用, 这个名字就叫域

Linux RHEL6 DNS服务器最全最详细配置

什么是域名?

计算机和计算机通过tcp/ip数据传输的使用ip 地址的标示, 但是ip 地址不好记, 故此使用一个好记的名字给“人”用, 这个名字就叫域名

域名的格式是

xxx.xxx.xxxx.xxxx.xxxx.xxxx. 格式

------------------------------

域名标准整体域名有个起始点叫做“根”标记为域名所表现的“.”(这个. 在使用的时候是可以省略的, 但是在做服务的时候加上)

域名在看的时候要从右向左看

比如

www.sina.com

看的时候是这样看的

. 根起始

.com 根下的.com 域

.sina .com域下的sina 名称域

www 主机

---------------

所有的域名都是在/下面的(不能私自申请), 谁是“根”->www.internic.com .com 商业公司

.net 网络公司

.com.cn 中国国家域名

.com.hk 香港区域域名

.com.tw 台湾域名

.org 非盈利组织

.gov 政府

.edu 教育

--------------

名称域(掏钱可以申请, 很容易, 只能申请没有被使用的)

www.baidu.com 搜索“域名注册”

--------------

主机是自己建立的, 如果自己管理就不用花钱了, 托给别人管理, 价格私聊. --------------

user1.web.qq.com

根下的.com 域, 名称叫qq, 主机叫user1.web

--------------

案例

公司买了个域名叫test.com,

需要建立www.test.com

做法:

1、安装RadHad 的 Linux RHEL 6.

2、Linux 下面使用的DNS 服务端软件叫bind

rpm -qa | grep bind #查询是否安装了bind 软件

,

3、如果没有安装就需要安装了

rpm -ivh rpm -ivh /media/Packages/bind-9.7.3-8.P3.el6.i686.rpm(把光盘挂载在/media上的) 或是 yum install bind* -y(这个先联网才行, 有时候会安装不成功, 我是没有安装成功过, 很多人都说这样可以装)

4、建立缓存DNS 服务(把dns 做的和电信那个一样, 使用这个服务就可以解析互联网上面所有的注册dns 的内容, 比如本来是用电信的dns 解析, 做好这个以后就可以不用电信的了, 用自己的)

注明:RHEL 6把bind*全装了缓存那个就装好了. 只需要配置就可以了 RHEL 5需要安装cachenameserver 软件

------------------------------------------------------------------- /etc/named.conf分析

options { #选项

listen-on port 53 { 127.0.0.1; }; #服务监听端口为53

listen-on-v6 port 53 { ::1; }; #服务监听端口为53(ipv6)

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; #DNS加密

dnssec-validation yes; #DNS加密高级算法

dnssec-lookaside auto; #DNS加密的相关东西

/* Path to ISC DLV key */

bindkeys-file "/etc/named.iscdlv.key"; #加密用的key (私钥公钥的加密, 很强)

/*默认安装没有这一项的设置转发, 本服务器不能解析的域名交由下面设置的DNS 服务器去解析*/

forward first; //forward指令用户设置DNS 转发的工作方式, 可以设置"first" 或是"only","first" 设置优先使用forwardersDNS 服务器做域名解析, 如果查询不到再使用本地DNS 服务器作域名解析;"only" 设置只使用forwarders DNS 服务器做域名解析, 如果查询不到则返回DNS 客户端查询失败. 这条一般不要写来得好点.

forwarders { 202.96.128.166;202.96.128.86; };

};

logging { #日志

channel default_debug {

file "data/named.run"; #运行状态文件

severity dynamic; #静态服务器地址(根域)

};

};

zone "." IN { #根域解析

type hint;

,

file "named.ca"; #根域配置文件

};

include "/etc/named.rfc1912.zones"; #扩展配置文件(新开域名) /etc/named.rfc1912.zones 文件分析

zone "localhost.localdomain" IN { #本地主机全名解析

type master; #类型为主域

file "named.localhost"; #域配置文件(文件存放在/var/named目录中) allow-update { none; }; #不允许客户端更新

};

zone "localhost" IN { #本地主机名解析

type master;

file "named.localhost";

allow-update { none; };

};

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" IN { #ipv6本地地址反向解析

type master;

file "named.loopback";

allow-update { none; };

};

zone "1.0.0.127.in-addr.arpa" IN { #本地地址反向解析

type master;

file "named.loopback";

allow-update { none; };

};

zone "0.in-addr.arpa" IN { #本地全网地址反向解析(和/域更新用的) type master;

file "named.empty";

allow-update { none; };

};

/var/named/named.localhost文件分析

$TTL 1D #更新为最长1天

@(使用域的域名) IN SOA(权威DNS 服务器) @(权威DNS 服务器的名称) rname.invalid. (rname@invalid的邮件) (

0 ; serial #域名版本号, 主域版本号要比辅域版本号大, 辅域才会进行同步. 1D ; refresh #辅助域名服务器刷新时间

1H ; retry #辅助域名服务器重新检测时间

1W ; expire #辅助域名服务器放弃检测时间

3H ) ; minimum #有效的最小生存期限 #以上这五个参数是控制辅助域名服务和主域名服务通信用的

NS (域名服务器) @(域名服务器名称)

A (正向解析) 127.0.0.1(正向解析的ip )

AAAA (ipv6正向解析) ::1(ipv6正向解析的ip)

,

-----------------------------------------文件分析结束

---------------------------------------

做DNS 缓存服务应用

1、修改/etc/named.conf

vi /etc/named.conf

修改本地使用为全部计算机都可以使用

改{ 127.0.0.1; }为{ any; }

改{ ::1; }为{ any; }

改{ localhost; }为{ any; }

添加转发服务器: forwarders { 202.96.128.166;202.96.128.86; };

2、重启named 服务

service named restart

chkconfig named on

完了

正向解析

做test.com 的www 主机解析

1、在/etc/named.rfc1912.zones文件中开启test.com 的域名, 添加 vi /etc/named.rfc1912.zones

添加

zone "test.com" IN {

type master;

file "test.com.hosts";

};

2、在/var/named中添加test.com.hosts 文件

cd /var/named

cp named.localhost test.com.hosts

vi test.com.hosts

修改为

$TTL 1D

@ IN SOA @ rname.invalid. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS @

A 127.0.0.1

www IN A 你需要改的ip #这里只加了一个www 的, 若要加其他的只须另起一行添加就可以

ftp IN A 你需要改的ip

mail IN MX 你需要改的ip #MX记录

pop IN CNAME mail # CNAME记录

------------------

,

在这里写一下域名解析相关名词解释,A 记录、CNAME 、MX 、NS 记录

1) ,A 记录设置:

A (Address) 记录是用来指定主机名(或域名)对应的IP 地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的二级域名。

必须需要到注册商的域名管理界面去设置成正确的有效稳定的DNS 。在注册商修改DNS 可能需要24-72小时才能反映在根服务器上。

TTL 值全称是“生存时间(Time To Live)”,简单的说它表示DNS 记录在DNS 服务器上缓存时间。要理解TTL 值,请先看下面的一个例子:

假设,有这样一个域名myhost.abc.com (其实,这就是一条DNS 记录,通常表示在abc.com 域中有一台名为myhost 的主机)对应IP 地址为1.1.1.1,它的TTL 为10分钟。这个域名或称这条记录存储在一台名为 dns.abc.com的DNS 服务器上。

现在有一个用户在浏览器中键入一下地址(又称URL ):http://myhost.abc.com 这时会发生什么呢?

该访问者指定的DNS 服务器(或是他的ISP, 互联网服务商, 动态分配给他

的)8.8.8.8就会试图为他解释 myhost.abc.com,当然8.8.8.8这台DNS 服务器由于没有包含myhost.abc.com 这条信息,因此无法立即解析,但是通过全球 DNS的递归查询后,最终定位到dns.abc.com 这台DNS 服务器,dns.abc.com 这台DNS 服务器将myhost.abc.com 对应的 IP地址1.1.1.1告诉8.8.8.8这台DNS 服务器,然有再由8.8.8.8告诉用户结果。8.8.8.8为了以后加快对 myhost.abc.com这条记录的解析,就将刚才的1.1.1.1结果保留一段时间,这就是TTL 时间,在这段时间内如果用户又有对 myhost.abc.com这条记录的解析请求,它就直接告诉用户1.1.1.1,当TTL 到期则又会重复上面的过程。

2) ,MX 记录设置:

MX 记录是邮件路由记录,用户可以将该域名下的邮件服务器指向到自己的mail server 上,然后即可自行操控所有的邮箱设置。您只需在线填写您服务器的IP 地址,即可将您域名下的邮件全部转到您自己设定相应的邮件服务器上。

大多数SMTP 要求MX 记录指向一个主机名。因此请将MX 记录指定到一个主机名,而不是IP 地址。如:先将mail.whatis.cn 解析到18.5.1.249 再将MX 记录设置为mail (或者mail.whatis.cn.)[以“.”结尾的主机名表示主机名的全称(FQDN);而不是用“.”结尾的主机名表示在该域名下的主机名。]

“优先级”仅对MX 记录有效,其他类型的记录将忽略优先级。

如果没有自己的邮件服务器,可以使用邮件转发。但做了邮件转发后,将删除原来的MX 记录。要谨慎。

3) ,CNAME 记录设置:

CNAME 记录是别名记录。这种记录允许您将多个名字映射到同一台计算机。通常用于同时提供WWW 和MAIL 服务的计算机。例如,有一台计算机名为

“host.abc.com”(A 记录)。它同时提供WWW 和MAIL 服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME ):WWW 和MAIL 。这两个别名的全称就是www.abc.com 和“mail.abc.com”。实际上他们都指向

“host.abc.com”。

泛解析是指“主机名”栏中填“*”而做的全部解析。

4) ,NS (Name Server)记录

,

是域名服务器记录,用来指定该域名由哪个DNS 服务器来进行解析。比如: NS1.BLUEHOST.COM

NS2.BLUEHOST.COM

5) ,URL (Uniform Resource Locator )转发,网址转发:

功能:如果您没有一台独立的服务器(也就是没有一个独立的IP 地址)或者您还有一个域名B ,您想访问A 域名时访问到B 域名的内容,这时您就可以通过URL 转发来实现。url 转发可以转发到某一个目录下,甚至某一个文件上。而cname 是不可以,这就是url 转发和cname 的主要区别所在

域名A 记录: A(Address)记录是域名与IP 对应的记录。

域名别名记录:别名(CName,Canonical Name) 记录,是域名与域名的别名对应的记录。

动态域名解析:A 记录中域名对应的IP 是静态IP ,把域名解析到动态IP 上,就叫动态域名解析。

国内域名服务商一般只免费提供A 记录,不免费提供动态域名解析。国外域名服务商基本上所有功能都提供,建议选国外域名商。

---------------------

3、修改文件权限

chown root.named test.com.hosts

本人测试过, 这条命令不操作也没有什么问题.

4、重启named 服务, 测试即可

service named restart

-------------

#这里写一下bind 的启动与停止:

/etc/rc.d/init.d/named #bind的启动脚本

service named start #启动bind 服务器命令

service named stop #停止bind 服务器命令

service named status #查询bind 服务器状态命令

service named restart #重新启动bind 服务器命令

--------------

5, 注意, 在这个时候你在服务器上使用host 命令去测试没有问题, 但是你用其他pc 去测试你会发现解析不了, 同时telnet 域服务器IP 的53端口都不通, 这个是由于服务器的防火墙是开着的, 这时候我们要把服务器的防火墙关闭. service iptables stop

然后再测试就可以了.

反向解析

反向解析test.com 的www 主机

1、在/etc/named.rfc1912.zones文件中开启100.168.192.in-addr.arpa 的反向域名

vi /etc/named.rfc1912.zones

添加

zone "100.168.192.in-addr.arpa" IN {

type master;

file "192.168.100.rev";

};

,

2、在/var/named中添加192.168.100.rev 文件

cd /var/named

cp named.localhost 192.168.100.rev

vi 192.168.100.rev

修改为

$TTL 1D

@ IN SOA @ rname.invalid. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS @

A 127.0.0.1

1 IN PTR www.test.com. #此处 1 是IP 地址的最后一个 "."后面的数字 ----------

PTR 反向解析的意思

1.100.168.192.in-addr.arpa. IN PTR www.test.com.

192.168.100.1的反向解析的域名是www.test.com

.100.168.192.in-addr.arpa. 是可以省略不写的

----------

3、修改文件权限

chown root.named 192.168.100.rev

本人测试过, 这条命令不操作也没有什么问题.

4、重启named 服务, 测试即可

service named restart

5, 注意, 若在测试时候发现反解析不了, 检查一下所有的拼写有没有错之类的, 若觉得自己写得没有错但还是反解析不出来, 最好是重新再写一遍, 本人就有这样的经验.

配置辅助域名服务器

辅助域名服务器的配置

比较简单,只需要修改name.conf 以及named.rfc1912.zones 两个文件,辅助域名服务器的区域解析文件是从主DNS 服务器上继承下来的,因此不必再作设置。你可以从sample 目录复制模板进行配置,当然,最简单的方法就是直接从主DNS 服务器上去复制了。因为,事实上name.conf 的设置和主DNS 服务器是完全一样的,这里就不作配置说明了。

唯一不一样的就是在写正向或是反射域名解析时将type 后面的参数写成 slave 和加上一句 masters{主域的IP;}就可以了.

1, 安装, 此安装跟主服务器一样的

1) 、从主DNS 服务器上去复制named.conf 到辅域名服务器的/etc目录下.

2) 、重启named 服务

service named restart

chkconfig named on

,

完了

2, 假设主域服务器的IP 地址是:192.168.100.2,在从域名服务器上

#vi /etc/named.rfc1912.zones

添加

zone "test.com" IN {

type slave; #这个地方在主域上是写master, 而在这里就应该写slave. file "test.com.zone"; #这个写得跟主域一样就好了

masters{192.168.100.2;} #这里写上主域的IP 地址.

};

zone "100.168.192.in-addr.arpa" IN {

type slave;

file "slaves/100.168.192.rev";

masters{192.168.100.2;}

};

其余的都不动了, 区域文件会自动从主域名服务器上继承过来的. 同步过来的文件就会放在 /var/named/slaves里的, 为什么是这个目录呢, 在named.conf 里定义了一个工作目录是/var/named,而在这里又加上了slaves, 所以就是

/var/named/slaves了.

3、重启named 服务, 测试即可

service named restart

4, 注意, 这里同步要看一下主域上区域文件的版本号, 版本要比辅域上要大才会同步, 有时候不能同步时, 往往要修改版本号才会同步.

-----------------

这里写几个常用的命令

1,tail /var/log/messages #查看日志, 方便定位我们的服务器问题出在哪里. 2,ps aux |grep named #查看named 进行运行用户

3,ls -ld /var/named/slaves #打印出/var/named/slaves的目录权限出来, 方便查看用户是不有读写权限

4,chmod g w /var/named/ #修改群用户对/var/named/目录的写权限

------------------

这里写一下辅域同步时的一些问题

1,zone XXX.XXX.XXX.in-addr.arpa/IN: refresh: unexpected rcode (SERVFAIL) from master XXX.XXX.XXX.XXX#53 (source 0.0.0.0#0)

这个问题是本人测试很多次, 查找了很多资料, 最后解决方式是把 反解析区域文件重新写了一遍就可以, 本人也不清楚是哪写错了.

2,dumping master file: tmp-XXXXXXXXX: open: permission denied

这个问题是由辅域服务存放区域文件的目录没有写的权限, 添加上写的权限就可以.

3,transfer of 'test.com/IN' from XXX.XXX.XXX.XXX#53: failed to connect: host unreachable

这个问题, 可以用辅去ping 一下主域, 若是通的话就可能是主域防火墙开着的问题; 若是不通的话就是网络问题.

4,zone test.com/IN: refresh: retry limit for master XXX.XXX.XXX.XXX#53 exceeded (source 0.0.0.0#0)

,

这个问题是防火墙开着原因, 可以用其他PC 去telnet 一下主域服务器的53端口, 若是不通的话就可以关闭主域的防火墙.

------------------

我们有必要了解一下主辅DNS 区域复制原理:如下图3所示主辅DNS 服务器数据同步的过程,master DNS 服务器每次修改完成并重启服务后, 将传送notify 给所有的slave DNS服务器.slave DNS服务器将查询master 服务器的SOA 记

录,master DNS 服务器收到请求后将SOA 记录发送给Slave DNS 服务器,Slave DNS 服务器收到后同时对比查询结果中的serial 值, 如果serial 值不大于本机的话将结束数据同步过程;但是如果serial 值大于本机的话,slave DNS 将发送zone transfer 请求要求(AXFR/IXFR).Master 响应zone transfer 请求并传送结果, 直到整个slave 更新完成.

------------------

这里只涉及到DNS 服务器的安装设置, 有时候我们也会考虑一些服务器安全问题, 下面给一下链接, 对于安全问题视频讲得比较清楚.

视频里讲到了rndc, 在我没有去研究, 有兴趣的朋友可以去研究下.rhdc reload 就是跟重启 named服务是一样的.

-----------------

这是里写一些日志说明

1,client XXX.XXX.XXX.XXX#58478: transfer of

'XXX.XXX.XXX.in-addr.arpa/IN': AXFR started

AXFR:这个是表明辅域上没有这个区域文件, 同步方式是完全同步方式, 将整个区域文件同步过去.

2,client XXX.XXX.XXX.XXX#58478: transfer of

'XXX.XXX.XXX.in-addr.arpa/IN': IXFR started

IXFR:这个是表明辅域上已经有了这个区文件, 同步方式是以增量的方式进行同步过去的.

标签: