写这篇博客主要目的在于总结巩固知识,大部分内容在网上可找到参考。
一、安装BIND服务器软件并启动
1.yum -y install bind*
在安装完BIND后,系统会多一个用户named。
二、DNS服务的相关配置文件
对于BIND,需要配置的主要文件为/etc/named.conf。另外两个文件,/etc/named.isc-dlv.key保存加密用的可以,/etc/named.rfc1912.zones扩展配置文件。
1.修改主配置文件/etc/named.conf
要注意在修改之前要先进行备份,使用cp -p /etc/named.conf /etc/named.conf.bak
命令备份,参数-p表示备份文件与源文件的属性一致。
vim /etc/named.conf修改文件:
-------------------------------------------------------------------------------------------------------------------
options {
listen-on port 53 { any; }; 监听在主机的53端口上。any代表监听所有的主机
listen-on-v6 port 53 { ::1; }; 如果此档案底下有规范到正反解的zone file 档名时,该档名预设应该放置在哪个目录底下
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服务器提出查询请求。any代表任何人
。。。
-------------------------------------------------------------------------------------------------------------------
三. 修改/etc/named.conf配置文件
vi /etc/named.conf
zone "healerjean.top" IN { // 定义要解析主域名
type master;
file "healerjean.top.zone"; // 具体相关解析的配置文件保存在 /var/named/yumaozdy.com.zone 文件中
allow-update { none; };
};
这里的healerjean.top可自定义, 例如要配置google.com的解析文件将名称改为google.com即可。
四.增加对应的域名配置文件
vi /var/named/healerjean.top.zone
$TTL 1D
@ IN SOA ns.healerjean.top. root (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimu
@ IN NS ns.healerjean.top.
ns IN A 176.122.155.186
www IN A 60.135.169.121
五.提升文件权限
chown root:named healerjean.top.zone # 这一步一定要做
六.重启服务
service named restart
关于*.zone文件配置注释
NS域名数据库有资源记录和区文件指令组成,由SOA(Start Of Authority起始授权机构记录,SOA 记录说明了在众多NS记录里那一台才是主名称服务器。)
RR开始,同时包括NS RR;正向解析文件包括A (internet Address,作用,FQDN --> IP)RR MX (Mail eXchanger,邮件交换器)RR和 CNAME(Canonical NAME 别名) RR 等;反向解析文件包括PTR(PTR: PoinTeR,IP --> FQDN) RR
RR 语法:name [TTL] IN type value (字段之间由空格和制表符隔开)
注意:
(1) TTL可从全局继承
(2) @可用于引用当前区域的名字
(3) 同一个名字可以通过多条记录定义多个不同的值;此时 DNS服务器会以轮询方
式响应
(4) 同一个值也可能有多个不同的定义名字;通过多个不同的 名字指向同一个值进行定义;此仅表示通过多个不同的名字 可以找到同一个主机
SOA记录:name: 当前区域的名字,例如“heiye.com.”
value: 有多部分组成
(1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
(2) 当前区域管理员的邮箱地址;地址中不能使用@符号,一般用.替换 如linuxedu.heiye.com
(3) 主从服务区域传输相关定义以及否定的答案的统一的TTL
例如:
heiye.com. 86400 IN SOA ns.heiye.com.
nsadmin.heiye.com. (
2015042201 ;
序列号 2H ;
刷新时间 10M ;
重试时间 1W ;
过期时间 1D ;
否定答案的TTL值
)
NS记录:name: 当前区域的名字 value: 当前区域的某DNS服务器的名字,例如 ns.heiye.com. 注意:一个区域可以有多个NS记录
例如:heiye.com. IN NS ns1.heiye.com.
heiye.com. IN NS ns2.heiye.com.
注意: (1) 相邻的两个资源记录的name相同时,后续的可省略 (2) 对NS记录而言,任何一个ns记录后面的服务器名字 ,都应该在后续有一个A记录
MX记录(Mail eXchanger):name: 当前区域的名字 value: 当前区域的某邮件服务器(smtp服务器)的主机名 , 一个区域内,MX记录可有多个;
但每个记录的value之前应 该有一个数字(0-99),表示此服务器的优先级;数字越小优 先级越高 例如:
heiye.com. IN MX 10 mx1.heiye.com.
IN MX 20 mx2.heiye.com.
注意: (1) 对MX记录而言,任何一个MX记录后面的服务器名字 ,都应该在后续有一个A记录
A记录(Addrss):name: 某主机的FQDN,例如www.heiye.com. value: 主机名对应主机的IP地址
例如:
www.heiye.com. IN A 1.1.1.1
www.heiye.com. IN A 2.2.2.2
mx1.heiye.com. IN A 3.3.3.3
mx2.heiye.com. IN A 4.4.4.4
*.heiye.com. IN A 5.5.5.5
heiye.com. IN A 6.6.6.6
避免用户写错名称时给错误答案,可通过泛域名解析进行解 析至某特定地址
其他记录:AAAA: name: FQDN value: IPv6
PTR: name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写 作4.3.2.1;而有特定后缀:in-addr.arpa.,所以完整写法为 :
4.3.2.1.in-addr.arpa. value: FQDN
例如: 4.3.2.1. in-addr.arpa. IN PTR www.heiye.com.
如1.2.3为网络地址,可简写成: 4 IN PTR www.heiye.com.
注意:网络地址及后缀可省略;主机地址依然需要反着写
别名记录:name: 别名的FQDN value: 真正名字的FQDN
例如: www.heiye.com. IN CNAME websrv.heiye.com.
named字段:
#####(1)根域以” . “结束,并且只有一个,没有上级域。而在Internet中,根域一般不需要表现出来。
#####(2)@:默认域,文件使用$ORIGIN domain 来说明默认域。
#####(3)ttl 全称”Time to Live “,以秒为单位记录该资源记录中存放高速缓存中的时间长度。通常此处设为空,表示采用SOA的最小ttl值。
#####(4)IN:将该记录标志为一个Internet DNS资源记录。
type字段:
#####(1)A记录:主机名对应的IP地址记录,用户可将该域名下网站服务器指向自己的Web服务器,同时也可设置域名的二级域名。
#####(2)MX记录:邮件交换记录可将该域下所有邮件服务器 指向自己的邮件服务器,只需在线填写服务器的IP地址。
#####(3)CNAME记录:别名记录,可允许多个名字映射到同一计算机,通常用于同时提供Web和邮件服务器的计算机。
#####(4)SOA记录:一个授权区的开始,配置文件的第一个记录必须是SOA的开始。
#####(5)PTR记录:用于地址到主机名的映射。
#####(6)HINFO记录:由一组描述主机的信息文件组成,通常包括硬件名称和操作系统名称。
value字段:
#####(1)A :存放IP地址。
#####(2)CNAME:设置主机别名。
#####(3)HINFO:通常为两行,分别对应Hareware(计算机硬件名称)和OS-type(操作系统名称)。
#####(4)NS:域名服务器的名称。
#####(5)PTR:主机真实名称。
测试检查配置文件错误的工具:nslookup、dig、named-checkzone、host、named-checkconf及dlint。