01--DNS服务器3
BIND
dns服务的程序包名称为bind,服务名称为named;
BIND的安装:
yum list all bind* bind-libs //库文件 bind-utils //bind工具 bind.x86_64 //主程序包文件 bind-devel //bind的开发工具 bind-sdb //将bind内容关联到数据库的时候使用的报文
yum install bind -y //安装主程序包即可
BIND的常见文件
rpm -ql bind | less
服务脚本程序:/etc/rc.d/init.d/named
我们的 named 服务启动就是使用的这个脚本程序;
主配置文件:/etc/named.conf,/etc/named.rfc1912.zones,/etc/rndc.key
rndc(remote name domain controller)远程控制管理工具,这个我们之后再说;/etc/rndc.key是rndc的与共享密钥文件;
/etc/named.conf是全局主配置文件,/etc/named.rfc1912.zones是正反向域定义文件;
解析库文件:/var/named/ZONE_NAME.ZONE
库解析文件时用来负责保存本区域的所有数据;
注意:
一台物理服务器可以同时为多个区域提供解析;(可以有多个解析库文件)
必须要有根区域文件:name.ca //我们通过name.ca文件找到互联网上的根域名服务器;
默认情况下,有两个(包括Ipv6的,甚至更多)实现localhost和本地回环地址解析库文件;
配置正向解析
1、配置主配置文件 /etc/named.conf
这里,我们注意两个配置即可:1、listen-on 监听DNS解析的网卡端口地址;2、指定allow-query 解析所有的DNS请求;
主配置文件格式说明:
全局配置:option{};
日志子系统配置:logging{}; //指定的日志文件
区域定义:本机能够为那些zone进行解析,就要定义那些zone;
zone "ZONE_NAME"IN {};
启动DNS服务,查看监听端口:
/etc/init.d/named start ss -tunlp | grep :53
2、配置/etc/named.rfc1912.zones 来指定正向解析区域
/etc/named.rfc1912.zones 文件的配置格式:
zone "ZONE_NAME" IN {
type {master|slave|hint|foward}; //hint只作为缓存服务器
file "ZONE_NAME.zone";
};
vim /etc/named.rfc1912.zones
这里指定的test.com.zone文件的目录,就是named.conf中指定的目录 /var/named 目录;
3、配置正向库文件
vim /var/named/test.com.zone
其中,首先定义了两个宏,$TTL和$ORIIGIN,然后首先要定义SOA记录,之后就关联NS记录和MX邮件记录,所有的这些记录都需要写A记录;最后为www服务器定义了一个CNAME记录;
named-checkconf //检测域名配置错误与否 named-checkzone "test.com" /var/named/test.com.zone //检测test.com的正向解析库文件是否有错误
4、配置授权
这里我们要限制一下啊其他用户用偶者访问这个权限,所以我们要限制下:
chmod 640 test.com.zone chown :named test.com.zone
5、重启服务
/etc/init.d/named restart
6、无论客户访问什么,我们的dns服务器都不给出否点答案
vim /var/named/test.com.zone * IN CNAME www //将访问指向某一个主机即可 test.com. IN CNAME www //如果没有输入主机名,就直接指向www主机即可;
/etc/init.d/named reload
测试工具用法
这里,我们需要使用一些测试工具来测试我们的dns服务器的配置;
dig
安装dig工具
yum install bind-utils //安装bind工具
测试我们的正向解析情况
dig -t A www.test.com @192.168.94.128
如果这里不指定192.168.94.128地址来指定DNS服务,就默认使用/etc/resolv.conf的域名来进行dns解析;
dig的用法:
dig工具用于测试dns系统,因此,不会查询hosts文件的内容;
dig [-t type] name [@SERVER] [query options]
例如:
dig -t NS test.com @192.168.94.128 dig -t SOA test.com @192.168.94.128
其中 flag 位中的 aa 就是标识这个解析答案位权威答案;
dig -t A www.baidu.com
可以看到,这个就不是一个权威答案,且我们这里时指定了CNAME记录了的;
查询选项:
+[no]trace //跟踪解析过程
+[no]recurse //进行递归解析,默认就是递归解析;
dig -t A www.baidu.com +trace
模拟区域传送,全脸查送【这非常危险】
dig -t axfr ZONE_NAME @SERVER
dig -t axfr test.com @192.168.94.128
host
host : DNS lookup utility DNS查看工具
host [-t type] name [SERVER]
nslookup
交互式的dns解析工具
nslookup [-option] [name | -] [server ip]
在交互式模式下使用这个模式
server ip指明使用那个DNS server 进行查询解析;
这个工具使用起来不太方便;
配置反向解析
反向区域
区域名称:完了过地址的反写.in-addr.arpa //这种写法时固定的,无法改变;
1、配置/etc/named.rfc1912.zones 文件,添加zone文件,添加反向zone区域;
zone "ZONE_NAME" IN {
type {master|slave|forword};
file "完了过地址.zone"; //可以随意命名,但是不能冲突
};
vim /etc/named.rfc1912.zone
2、配置区域解析库文件
需要注意的时:不需要MX和A,以及AAAA记录,以PTR记录为主;
vim /var/named/192.168.94.zone
3、修改文件权限
chmod 640 /var/named/192.168.94.zone chown :named 192.168.94.zone
检查配置文件语法是否正确
named-checkconf named-checkzone "94.168.192.in-addr.arpa" 192.168.94.zone
从新载入配置文件
/etc/init.d/named reload
4、测试反向解析
也可以使用dig来及逆行测试
dig -x 192.168.94.131 @192.168.94.128