BIND的安装配置:
dns服务,程序包名叫bind,程序名named
程序包:
bind
bind-libs
bind-utils
bind-chroot: /var/named/chroot/
bind:
服务脚本:/etc/rc.d/init.d/named 接受start、stop等
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, (rfc请求注解文档,明确说明协议的工作细节) /etc/rndc.key(用rpm包安装)
解析库文件:/var/named/ZONE_NAME.ZONE
注意:
(1) 一台物理服务器可同时为多个区域提供解析;
(2) 必须要有根区域文件;named.ca
(3) 应该有两个(如果包括ipv6的,应该更多)实现localhost(联系自己:127.0.0.1)和本地回环地址的解析库;
rndc: remote name domain controller,默认与bind安装在同一主机,且只能通过127.0.0.1来连接named进程;提供辅助性的管理功能;
监听在953/tcp
@可以表示当前区域的名字,在/etc/named.rfc1912.zones中
区域解析都在/var/named目录下
主配置文件:被切割成两段:/etc/named.conf和/etc/named.rfc1912.zones
全局配置:options {}
日志子系统配置:logging {}
区域定义:本机能够为哪些zone进行解析,就要定义哪些zone;
zone "ZONE_NAME" IN {}
注意:任何服务程序如果期望其能够通过网络被其它主机访问,至少应该监听在一个能与外部主机通信的IP地址上;
dnssec:
建议测试时关闭dnssec;
主DNS名称服务器:步骤
(1) 在主配置文件中定义区域(在/etc/named.rfc1912.zones中)
zone "ZONE_NAME" IN {
type {master|slave|hint|forward}; //hint表示根
file "ZONE_NAME.zone"; //(这个文件可以可以写成相对路径,相对于/etc/named.conf中的options中directory指向的路径)
};
(2) 定义区域解析库文件
出现的内容:
宏定义;
资源记录;
#cd /var/named
#vim magedu.com.zone
示例:
$TTL 86400
$ORIGIN magedu.com.
@ IN SOA ns1.magedu.com. admin.magedu.com(邮箱) (
2015042201
1H
5M
7D
1D )
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.100.11
ns2 IN A 172.16.100.12
mx1 IN A 172.16.100.13
mx2 IN A 172.16.100.14
www IN A 172.16.100.11
www IN A 172.16.100.12
ftp IN CNAME www
#named-checkzone "magedu.com" /var/named/magedu.com.zone
利用named-checkzone检查magedu.com域内的区域文件:/var/named/magedu.com.zone是否有语法错误
配置缓存服务器:监听外部地址即可
#yum install bind 安装bind
#yum list bind*
1、#vim /etc/named.conf
可以修改监听的地址,如果把listen-on这一行用//注释掉,和当前效果一样,监听所有地址
2、#vim /etc/named.conf
options {
11 listen-on port 53 { 127.0.0.1; };
12 listen-on-v6 port 53 { ::1; };
13 directory "/var/named"; //定义工作目录,即区域解析库文件
14 dump-file "/var/named/data/cache_dump.db";
15 statistics-file "/var/named/data/named_stats.txt";
16 memstatistics-file "/var/named/data/named_mem_stats.txt";
17 allow-query { localhost; }; 这里可以注释掉或者把localhost改为any,允许所有主机查询
18 recursion yes; //这里表示本地主机支持做递归查询,如果本地主机不支持,就改为no
19
20 // dnssec-enable yes;
21 // dnssec-validation yes;
22
23 /* Path to ISC DLV key */
24 // bindkeys-file "/etc/named.iscdlv.key";
25
26 // managed-keys-directory "/var/named/dynamic"; 20-26行需要注释掉
27 };
# ss -tunlp | grep :53 //查看监听端口
至此,缓存服务器就配置好了。
2、配置主DNS服务器 //本次配置是在IP为192.168.108.160
# vim /etc/named.rfc1912.zones
(1)、添加:正向解析区域
zone "magedu.com" IN { //只需定义类型和区域解析库路径 (magedu.com为区域名称)
type master; //区域类型:主服务器
file "magedu.com.zone"; //区域解析库相对路径,相对与/var/named目录
};
(2)、定义区域解析库文件
#cd /var/named
# vim magedu.com.zone
$TTL 86400
$ORIGIN magedu.com.
@ IN SOA ns1.magedu.com. admin.magedu.com (
2018070110
1H
5M
7D
1D)
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 192.168.108.160 //当前主机
ns2 IN A 192.168.108.138
ns3 IN A 192.168.108.166
mx1 IN A 192.168.108.138
mx2 IN A 192.168.108.166
www IN A 192.168.108.160
* IN A 192.168.108.166
#named-checkconf //检查主配置文件是否有语法错误
#named-checkzone "magedu.com" /var/named/magedu.com.zone
利用named-checkzone命令区域和区域库文件是否有错误
#ps aux | grep named //查看named进行是谁的身份执行的
#ll /etc/named.conf -l
#ls -l /var/named //为了安全,应该让属主为root,属组为named
如果没改:则:
#chmod 640 magedu.com.zone
# chown :named magedu.com.zone
#service named restart
# rndc status //查看named状态
至此,主DNS服务器配置完成
# dig -t A www.magedu.com @192.168.108.160 //在本机输入查找命令就可以
如果想要轮询解析www.magedu.com的话
可以添加www的A记录
#service named reload 或者
#rndc reload 重新加载
# dig -t A www.magedu.com //如果此处解析不指明本地IP,则会通过etc/resolv.conf中nameserver地址解析的
# vim /etc/resolv.conf //可以修改nameserver的IP地址为本地IP
测试命令:dig的使用
dig [-t type] name [@SERVER] [query options]( @SERVER省略表明使用本机的IP)
dig用于测试dns系统,因此,不会查询hosts文件进行解析;
flags: qr aa rd ra aa表示权威答案
查询选项:
+[no]trace:跟踪解析过程
+[no]recurse:进行递归解析
测试反向解析:
dig -x IP @SERVER
模拟区域传送:
dig -t axfr ZONE_NAME @SERVER
例如:dig -t axfr magedu.com @172.16.100.11
#dig -t axfr 247.17.172.in-addr.arpa @172.17.237.248//反向区域传送