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;