命令:yum -y install bind
安装后对DNS服务的一些简单介绍:
named DNS服务的系统服务名称
/etc/named.conf DNS服务的主配置文件
/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-compilezone 检测zone及其zone文件配置语法是否合法
/usr/sbin/rndc 远程DNS管理工具
/usr/sbin/rndc-confgen 生成rndc密钥
/var/named/named.ca 记录的是根服务器的地址
/var/named/named.localhost 本地主机解析库
/var/named/slaves 记录从DNS服务器设置的文件夹
二、启动DNS服务
CentOS 6:service named start
CentOS 7:systemctl start named
三、编辑bind主配置文件/etc/named.conf
[root@CentOS6 ~]# vim /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 127.0.0.1; };
//IPv4的监听端口,可以直接注释掉,表示监听所有的本机IP,
//也可以直接在大括号里直接写成 {any; }
listen-on-v6 port 53 { ::1; }; //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 { any; }; //允许查询该DNS服务的主机IP
recursion yes; //是否允许递归查询
dnssec-enable yes;
dnssec-validation yes;
//这两处都DNS的扩展安全认证机制,一般情况下不用管他就行,
//但是在设置主从服务器与转发服务器时需要将这两个选项都设置成 no 。
/* 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"; //根区域文件名,使用的是相对路径,
//默认存放的是/var/named/named.ca
};
include "/etc/named.rfc1912.zones"; //定义zone区域的配置文件
include "/etc/named.root.key"; //根区域的key文件,跟事务签名有关
四、自定义zone(创建自己的DNS服务)
想要创建自己定义的DNS服务,需要在/etc/named.rfc1912.zones文件中添加自己想要设置的zone(区域),
然后在/var/named/目录下添加刚刚添加的区域解析库,该解析库的文件名要与设置zone里file字段定义的文件名一致。
(1)、创建正向解析:首先在/etc/named.rfc1912.zones中添加要设置的区域名
[root@CentOS6 ~]# vim /etc/named.rfc1912.zones
zone "qq.com" IN { //定义域名,IN 是 Internet 的意思,也可以不写。
type master; //定义该DNS是主还是从级别
file "qq.com.zone"; //该区域的解析库文件名,是相对路径,默认存放
//在 /var/named/ 目录下,该文件名可以随便定
//义,但要与下面在/var/named/ZONE_NAME.zone 文件名一致。
};
//然后保存退出。
//然后在/var/named/目录下创建新加的区域解析文件。
注意:创建该区域的解析库文件,该文件名必须要与 named.rfc1912.zones 里 file 字段定义的名称一致,该文件也可以通过将 /var/named/named.localhost 拷贝到该文件中,但是文件创建后必须注意修改文件的所属人、所属组和权限;建议使用 cp /var/named/named.localhost /var/named/ZONE_NAME.zone -p 指令,然后再对文件进行修改。
————————————————
版权声明:本文为CSDN博主「AhhSong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/AhhSong/article/details/78230108
[root@CentOS6 ~]# vim /var/named/qq.com.zone //文件名要与在/etc/named.rfc1912.zones设置的zone里file字段定义的文件名一致。
$TTL 86400 //定义缓存过期时长
$ORIGIN qq.com. //这一行可以不写,系统会自动从别处继承;若写的话,域名后的“.”不能省略,若省略系统会自动补全,可能会出现问题,比如若不全的就会补成qq.com.qq.com.
@ IN SOA ns1 admin.163.com.(
//只有ns1才是定义的域名称,这里使用的是类似变量的方式替代的;
//后面的那个163是这个DNS服务器管理员的邮箱,邮箱中的 @ 要用 . 来替代。
2017010101; serial
//序列号,该序列号定义后,若要在修改只能增,不能减;
//同时从DNS服务器会根据该序列号是否变化来决定是否从
//主DNS服务器上进行备份,此时是从服务器向主服务器拉
//(pull)数据进行数据同步;该序列号最多有10位,
//超出会报错。
2H; refresh //定义多长时间从DNS服务器会从
//主DNS服务器上拉(pull)数据。
5M; retry //定义主从DNS服务器同步数据时出现问题的话,
//要过多长时间再次尝试。
7D; expire //定义从DNS服务器多长时间内无法与主DNS服务
//器同步数据时,从DNS服务器上的数据会失效。
1D; MINTTL //DNS服务器无法返回给客户端正确回答时的
//否定回答要保存多久,避免客户端对同一无效
//请求在一段时间内发起多次访问。
)
@ IN NS ns1 //定义指定DNS服务器(NS前面的那些项可以不写,
//不写的话就会直接从上面继承,也可以只写一个 @ ;
//域名写的话就要写全:qq.com.)
@ IN NS ns2 //域名可以指定多个域名服务器,如果存在多个的情况下,
//此处ns2表示从域名服务器。
ns1 IN A 172.16.100.10 //指定ns1域名服务器的IP地址。
ns2 IN A 172.16.100.11 //指定从域名服务器IP地址。
ns1 IN MX 10 mail1 //定义邮件服务器,此记录也可指定多个,
//10表示此记录的优先级别,数字越小优先级越高。
mail1 IN A 172.16.100.10 //指定邮件服务器IP地址。
www IN A 10.20.57.10 //指定该域名下的web服务器主机的IP地址。
ftp IN CNAME www //将ftp主机设置为www别名。
* IN CNAME www //设置泛域名解析,可以使所有符合该域名
//后缀的链接都访问到该IP地址,
//但是该域名后缀的前面不能为空。
@(也可以直接只写一个域名:qq.com.) IN A 172.17.111 //也是一种
//泛域名解析,允许访问该域名后缀的链接的主机部分为空。
$GENERATE 1-100 server$ A 1.1.1$ //$为一个1-100内的数字,
//可以实现server1.qq.com--server100.qq.com之间
//100个链接的访问($GENERATE 应该为固定写法!!!)。
//保存退出。
//配置好后可以通过 named-checkzone /var/named/ZONE_NAME.zone 指令
//进行语法检查,若本身就在/var/naned目录下,就不用写绝对路径了。