java 发表于 2017-12-6 14:50:15

centos搭建域名服务器

本帖最后由 java 于 2017-12-8 14:39 编辑

DNS,全称Domain Name System,即域名解析系统。
名词解析:
http://www.linuxidc.com/Linux/2017-03/141245.htm
http://www.linuxidc.com/Linux/2017-07/145879.htm


FQDN:Fully Qualified Domain Name,完全合格域名,是指主机名加上全路径,例如ns1.baidu.com.

SOA:Start of Authority,起始授权记录,用于设置该域的序列号、刷新时间、过期时间等信息,在定义每个域时SOA只能定义一条,而且必须在起始位置定义。

NS:Name Server,域名服务器记录,作用是定义创建的新域是由哪个DNS服务器来负责解析。

MX:Mail eXchanger,邮件交换记录,指向的是一个邮件服务器,用来当发邮件的时候,根据收件人的地址后缀来定位邮件服务器,说白了就是让邮件服务器知道应该把这封邮件发到哪里去。

需要注意一点的是定义MX记录时因为@符号在DNS服务器配置中有特殊的含义,表示当前定义的域的域名。所以在定义邮件服务器时需要将@写为“.”号来代替,定义格式示例:mail1INMX 10mail1.baidu.com. 。

A:用来指定完全合格域(FQDN)名对应的IP记录,可以通过此设置改域名下,指定用户自己的WEB服务器地址,示例:www.baidu.com.INA172.16.81.250(注:此仅做演示,baidu.com.表示自己定义的区域名,并非真实的域名)。

CNAME:别名记录,这种记录允许将多个名字映射到同一台计算机,示例:ftp   IN   CNAME   www    (注:此处是省略了域名的写法,可以在区域开头位置定义域名$ORIGINbaidu.com.再次强调域名后边的“.”不可以省略)。

PTR:反向域名解析,即将IP地址转换为FQDN,此记录一般定义在反向域名解析中在定义反向区域时,区域的名称一般是取IP地址的网络地址然后反写组成,示例:原来IP地址为172.16.81.250,定义

$ORIGIN 81.16.172.

250   IN         PTR         www.baidu.com.

TTL:Time To Live ,生存时间,表示DNS记录在DNS服务器上的缓存时间,时间越长对于服务器的压力越小,时间越短表示服务器需要重新查询并生成缓存的频率越高,压力越大。

*:泛域名解析,用于指定域名下所有未创建域名记录同一定位到指定主机中,示例

*IN   CNAME    www#为所有未创建的域名记录定义一个别名指向www主机。
在centos系统下实现域名服务器通常是使用bind工具来完成DNS的功能,下边开始进行bind的安装与配置。
yum install bind-untils bind-y
rpm -ql bind
/etc/named.conf    #bind主配置文件
/etc/named.rfc1912.zones    #定义zone的文件
/etc/rc.d/init.d/named    #bind脚本文件
/etc/rndc.conf    #rndc配置文件
/usr/sbin/named-checkconf    #检测/etc/named.conf文件语法
/usr/sbin/named-checkzone    #检测zone和对应zone文件的语法
/usr/sbin/rndc    #远程dns管理工具
/usr/sbin/rndc-confgen    #生成rndc密钥
/var/named/named.ca    #根解析库
/var/named/named.localhost    #本地主机解析库
/var/named/slaves    #从文件夹

/////////////////////////////
安装DNS服务器软件

# yum install bind
配置相关配置文件

/etc/named.conf ,/etc/named.rfc1912.zones 为DNS主配置文件
/var/named/目录为DNS数据库文件存放目录,每一个域文件都放在这里。
/etc/rc.d/init.d/named 为DNS服务的服务脚本。

一 DNS正向解析

这里以 myserver.com域为例
mail.myserver.com 对应IP 为192.168.134.106;

1 首先编辑/etc/named.conf文件

      listen-on port 53 { any; };
      allow-query   { any; };
      dnssec-enable no;
      dnssec-validation no;

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

      zone "myserver.com" IN {
                type master;
                file "myserver.com.zone";
      };

      其中zone的格式为:

            zone “ZONE_NAMEIN {
            typemaster;
            file “ZONE_NAME.zone”
      }

3 新建解析库文件/var/named/myserver.com.zone

      # sudo vi /var/named/myserver.com.zone
$TTL 86400#定义缓存过期时长
$ORIGIN myserver.com.#域名后的“.”不能省略
@   IN SOAns1.myserver.com. admin.myserver.com. (
                  2017012301; serial#使用“;”号可以用于注释
                  2D; refresh
                  5M; retry
                  7D; expire
                  1D; minimum   #返回否定答案时最小缓存时长
                  )
@ INNSns1.myserver.com. #定义指定域名服务器
@ INNSns2.myserver.com.    #域名可以指定多个域名服务器,如果存在多个的情况下,此处ns2表示从域名服务器
ns1INMX 10 mail1   #定义邮件服务器,此记录也可指定多个
ns1INA192.168.134.106   #指定ns1域名服务器的IP地址
ns2INA192.168.134.106   #指定从域名服务器IP地址
mail1 INA192.168.134.106   #指定邮件服务器IP地址
wwwINA192.168.134.106    #指定该域名下的web服务器主机的IP地址
ftpINCNAME www      #将ftp主机设置为www别名
*   IN   CNAME www      #设置泛域名解析

///////////写文件时把上面的注释去掉////////////

4 修改解析库文件权限

      # sudo chgrp named /var/named/myserver.com.zone

5 检查 配置语法

      (1)检查配置文件语法

      # sudo named-checkconf   #检查配置文件有没有语法错误
      (2)检查域配置文件语法
      # sudo named-checkzone "myserver.com." "/var/named/myserver.com.zone"#检查解析库语法所有检查完毕之后没有问题
      zone myserver.com/IN: loaded serial 2017012301
      OK

6 启动named服务
service named start 或 systemctl start named
开机自动启动chkconfig named on

7 测试
注意:要配置DNS服务器为本DNS服务器IP地址
或者使用dig命令则不需要修改DNS服务器

# nslookupwww.myserver.com
如果查找不到,则先修改本机的dns设置
sudo vi /etc/sysconfig/network-scripts/ifcfg-em1
把备用DNS改一下
DNS3=192.168.134.106#设置备DNS
重新启动下网络
systemctl restart network


********安装nslookup的方法****
命令yumprovides*/nslookup    就可以找到提供nslookup命令的软件包
使用 yum install -y bind-utils安装即可。
***************





java 发表于 2017-12-12 13:52:18

$TTL 86400
$ORIGIN hcjserver.com.
@   IN SOAns1.hcjserver.com. admin.hcjserver.com. (
                  2017121201; serial
                  2D; refresh
                  5M; retry
                  7D; expire
                  1D; minimum
                  )
@ INNSns1.hcjserver.com.
ns1INMX 10 mail1
ns1INA192.168.134.15
mail1 INA192.168.134.15
wwwINA192.168.134.15
@    IN A 192.168.134.15
ftpINCNAME www
*   IN   CNAME www
@ 表示根域名本身转到的地址(hcjserver.com)

上面的IN表示后面的数据使用的是INTERNET标准
IN SOA [主机名] [管理员email]
SOA表示授权开始
serial :本行前面的数字表示配置文件的修改版本,格式是年月日当日修改的修改的次数,每次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就不会反映出你的更新,也就对他们来说你更新是没有意义的。
refresh:以为单位的刷新频率 即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的
retry:上面的这个值是规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试
expiry:过期时间,上面这个用来规定从服务器在向主服务更新失败后多长时间后清除对应的记录,上述的数值是以分钟为单位的
minimum:缓存时间 没有指定生存期的数据,可以保存在数据库中的时间,及TTL
NS:表示是这个主机是一个域名服务器,
A:定义了一条A记录,即主机名到IP地址的对应记录
MX 定义了一邮件记录
CNAME:定义了对应主机的一个别名
PTR: Pointer的简写




java 发表于 2017-12-15 17:44:27

systemctl stop named
页: [1]
查看完整版本: centos搭建域名服务器