centos6.6配置dns服务器

服务器环境 centos 6.6 minimal

安装
安装bind

因为依赖关系所以需要安装这些包

rpm -ivf bind-9.8.2-0.30.rc1.el6.x86_64.rpm bind-libs-9.8.2-0.30.rc1.el6.x86_64.rpm portreserve-0.0.4-9.el6.x86_64.rpm
安装bind-chroot,可以使bind即使被黑也不会影响系统
rpm -ivf bind-chroot-9.8.2-0.30.rc1.el6.x86_64.rpm 
安装caching-nameserver,生成配置文件的范本,在6以下的版本需要单独安装,我这个系统是centos 6.6,不需要单独安装
配置文件

编辑配置

vim /etc/named.conf

添加要解析的zone

// 这里zone的名称要写对,一定要记得结尾的".",和平时在浏览器输入的网址不同
zone "baidu.com." IN {
        // 类型,根据当前dns服务器的类型设置,用的较多的有master和slave,
        type master;
        // zone的配置文件,记得这个文件要能被named程序读取,文件目录为named.conf文件中options的directory选项,默认为"/var/named";
        file "baidu.com.ca";
};

配置zone的配置文件
复制一份已有的配置文件,进行修改

cp -p /var/named/named.localhost /var/named/baidu.com.ca

配置zone

; dns主从服务器配置,下面的含义为一天
$TTL 1D
; @ 和空格都代表当前zone的名称,也就是baidu.com.,前面的@表明当前zone,后面的@代表主服务器,rname.invalid.代表服务器维护人的邮箱也就是 rname@invalid.
@       IN SOA  @ rname.invalid. (
                                        0       ; serial 
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1

解释下上面的参数

参数 解释
$TTL 代表SOA记录的有效期
Serial 代表这个zone 文件的版本,每当zone 文件内容有变动,name server 管理者就应该增加这个号码,因为slave 会将这个号码与其copy 的那份比对以便决定是否要再copy 一次(即进行zone 传输
Refresh Slave server 每隔这段时间(秒),就会检查Master server 上的serial number。不过这里会发生一个问题就是,在master server 在update data 完成到slave server 来检查时再update 可能还有好一段时间,因此这段期间master/slave DNS server间zone files 就可能出现不一致。所以在Bind较新的版本中便加入"notify"功能,使用者在"named.conf" 设定中在需要的zone 中加入"notify"的设定,则master server在update 完成某个zone file 的data 后便会主动发个讯息(NOTIFY),借以通知该其它的slave servers,因此如果slave servers 也有支援这个"notify"功能时,接下来slave servers 马上就可以做zone 传输来更新数据
Retry 当从服务器无法和主站进行串行检查时,要每隔几秒再试一次
Expire 当时间超过Expire 所定的秒数而slave server 都无法和master 取得连络,那么slave 会删除自己的这份copy
Minimum 代表这个zone 文件中所有record 的内定的TTL 值,也就是其它的DNS server cache 这个record时,最长不应该超过这个时间
NS IN NS ns1.kutea.net. (name server, 用来指定操作的DNS服务器主机名称,NS记录是不允许用主机IP地址来表示的。有过域名注册和使用域名的朋友或许知道 域名商要求你指定你域名解释的NS服务器时,你用服务器IP地址来替换,就会报错。就是这个原因了。NS记录其本身就不允许用IP地址来制定
A 和 AAAA A记录 address,即主机记录。(就是将一个域名对应IP地址的记录。)例如下面
IPv4和IPv6指定A记录的格式是:
www IN A 122.128.109.86
mail IN AAAA CDCD:910A:2222:5498:8475:1FF1:3900:2027
PTR 其中这个记录是出现在反向解析zone文件中):
Pointer , 定义某一 IP 地址对应的 domain name ,就是将 IP 地址转换成主机的FQDN
86 IN PTR www.kutea.net. (注意别名记录后面有个小数点)
CNAME Canonical name , 可为同一部主机设定许多别名,例如cdn.kutea.net的别名可为
www.kutea.net和ftp.kutea.net 因此所设定的别名都会连到同一台服务器上。
MX mail exchanger,设定区域中担任邮件服务器的主机,所有要送往那部机器的mail 都要经过mail exchanger 转送。注意 而数字则是该主机邮件传递时的优先次序,此值越低表示有越高的邮件处理优先权。
mail IN MX 3 ns.kutea.net.

因为使用空格代替当前zone又点不直观,就直接写完整的域名了

$TTL 1D

baidu.com.      IN SOA  master.baidu.com. root.baidu.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
; 可以查询baidu.com.下的网址的服务器有下面几个
baidu.com.      NS      master.baidu.com.
baidu.com.      NS      slave1.baidu.com.
baidu.com.      NS      slave2.baidu.com.
; 把ccc.baidu.com交给ddd.baidu.comDNS服务器来处理
ccc.baidu.com.  NS      ddd.baidu.com.
; 上面用到了这几个域名,所以这里需要只想,不然程序会报错
master.baidu.com.       A       192.168.1.99
slave1.baidu.com.       A       192.168.1.99
slave2.baidu.com.       A       192.168.1.99
; 下面就是真实解析的域名了
www.baidu.com.  A       192.168.1.99
; 下面这种写法代表的是aaa.baidu.com
aaa     A       192.168.1.99
; ipv6地址的解析
www.baidu.com.  AAAA    ::1

修改named.conf,允许所有ip可以访问,可以根据需要自己调整,找到下面两项修改

listen-on port 53 { 0.0.0.0/0; };

allow-query     { 0.0.0.0/0; };

ok

配置查询不在配置文件里面的ip

上面配置完成之后,就可以获取到已经设置了的域名的ip,但是没有在配置文件的就不行了

dnssec-enable yes;

标签: linux

添加新评论