1.BIND服务器简介:
Bind是Berkeley Internet Name Domain Service的简写,它是一款实现DNS服务器的开放源码软件。Bind原本是美国DARPA资助伯克利大学(Berkeley)开设的一个研究生课题,后来经过多年的变化发展,已经成为世界上使用最为广泛的DNS服务器软件,目前Internet上半数以上的DNS服务器有都是用Bind来架设的。
1.1 服务的特性:
运行于后台,处于监听(listen)状态
1.2 DNS服务器类型:
- 缓存服务器:不负责解析,仅为加速,不需要注册
- 主DNS服务器:负责解析本地客户端请求
- 辅助DNS服务器:辅助服务器的区域数据都是从主服务器复制而来,其数据都是只读的
1.3 bind详解:
- 包名:bind
- 进程:named
- 协议:dns
使用端口:53(tcp,udp)
相关包:
- bind-chroot:将named进程的活动范围限定在chroot目录,保证安全性。
- bind-devel:与开发相关的头文件和库文件(编译安装bind时所需)
- bind-libs:bind服务器端和客户端都使用到的公共库文件
- bind-utils : bind客户端工具
程序文件:/usr/sbin/named
bind权限相关:
安装完named会自动创建用户named系统用户
[root@yh ~]# grep "named" /etc/passwd
named:x:24:24:Named:/var/named:/sbin/nologin
【配置文件】:
[root@yh ~]# rpm -qc bind
/etc/logrotate.d/named/etc/named.conf //主配置文件
/etc/named.rfc1912.zones //区域配置文件(用include指令包含在主配置文件)
/etc/named.root.key //根区域的key文件以实现事务签名;
/etc/rndc.conf //rndc(远程名称服务器控制器)配置文件
/etc/rndc.key //rndc加密密钥
/etc/sysconfig/named
/var/named/named.ca //13个根服务器存放文件/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
重点只需要关心主配置文件:
主配置文件: named.conf,每个语句都要使用分号结尾;其功能如下:
- 定义区域
- 定义各区域的全局配置
- 定义视图
- 定义日志
dig命令:
语法:
dig -t 资源记录类型 名称 @server-ip
//常用选项:
dig -x IP @server-ip:查询反向解析
dig - t 资源记录类型 名称 +trace:追踪解析过程
dig -t axfr zone :验证完全区域传送
2. DNS(bind)服务器的配置:
DNS服务器配置分四个:
- 配置正向解析的bind
- 配置反向解析的bind
- 配置辅助bind
- 实现主辅DNS之间的区域传送
bind中有四个内置的acl:
- none: 没有一个主机
- any: 任意主机
- local :本机
- localnet: 本机的IP同掩码运算后得到的网络地址
配置正向、反向解析
//yum安装bind
[root@yh ~]# yum install -y bind
//自己创建或修改主配置文件(/etc/named.conf)
[root@yh ~]# vim /etc/named.conf
//注释如下三行:
//listen-on port 53 { 127.0.0.1; };
//listen-on-v6 port 53 { ::1; };
//allow-query { localhost; };
//启动服务
[root@yh ~]# systemctl restart named
[root@yh ~]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 10 192.168.19.129:53 *:*
LISTEN 0 10 127.0.0.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:953 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 ::1:953 :::*
LISTEN 0 100 ::1:25 :::*
//编辑区域配置文件/etc/named.rfc1912.zones
[root@yh ~]# vim /etc/named.rfc1912.zones
//正向
zone "yh.com" IN { //新增区域
type master;
file "yh.com.zone";
allow-update { none; };
}
//反向
zone "192.168.19.in-addr.arpa" IN {
type master;
file "192.168.19.zone";
allow-update { none; };
};
//创建区域数据文件(/var/named/***.zone)
[root@yh ~]# vim /var/named/yh.com.zone
$TTL 1D
@ IN SOA cljhfy.com. admin.yh.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS www.yh.com.
NS ftp.yh.com.
A 127.0.0.1
AAAA ::1
MX 10 mx.test.com.
ttl IN A 192.168.19.129
www IN A 192.168.19.129
bbs IN CNAME www
mx IN A 192.168.19.129
ftp IN A 192.168.19.129
[root@yh ~]# vim /var/named/192.168.19.com.zone
$TTL 1D
@ IN SOA test.com. admin.test.com. (
0
2H
10M
7D
1D )
NS ttl.yh.com.
A 127.0.0.1
AAAA ::1
128 IN PTR yh.com.
128 IN PTR www.yh.com.
128 IN PTR ftp.yh.com.
128 IN PTR mx.yh.com.
//重启服务
[root@yh ~]# systemctl restart named
验证
[root@yh ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.19.129
//dns指向我设置好的IP
[root@cl129 ~]# nslookup 192.168.19.129
Server: 192.168.19.129
Address: 192.168.19.129#53
128.163.19.129.in-addr.arpa name = ftp.yh.com.
128.163.19.129.in-addr.arpa name = yh.com.
128.163.19.129.in-addr.arpa name = mx.yh.com.
128.163.19.129.in-addr.arpa name = www.yh.com.
[root@cl129 ~]# nslookup yh.com
Server: 192.168.19.129
Address: 192.168.19.129#53
Name: cljhfy.com
Address: 127.0.0.1
[root@cl129 ~]# nslookup ftp.yh.com
Server: 192.168.19.129
Address: 192.168.19.129#53
Name: ftp.yh.com
Address: 192.168.19.129
[root@cl129 ~]# nslookup mx.yh.com
Server: 192.168.19.129
Address: 192.168.19.129#53
Name: mx.yh.com
Address: 192.168.19.129
[root@cl129 ~]# nslookup www.yh.com
Server: 192.168.19.129
Address: 192.168.19.129#53
Name: www.yh.com
Address: 192.168.19.129