使用Bind提供域名解析服务
一、DNS域名解析服务
1)DNS(domain name system,域名系统)技术是一项用于管理和解析域名与IP直接对应关系的技术,DNS服务器主要分为三类:
主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系;
从服务器:从主服务器中获取的域名与IP地址对应关系并进行维护,以防主服务器宕机的情况;
缓存服务器:通过向其他域名解析服务器查询到域名与IP地址对应关系,并将经常查询的域名信息保存到本地服务器,以提高重复查询时的效率。
2)域名查询的方式有递归查询和迭代查询两种:递归查询是指用户向dns服务器发起请求时,dns服务器必须向用户返回一个查询结果,如果dns服务器本地没有存在与之对应的信息,该服务器则向其他服务器发起请求,并由该服务器返回一个查询结果给用户;迭代查询是指用户向dns服务器发起请求时,dns服务器向用户返回其他dns服务器的地址,用户再向其他dns服务器发起请求,这样依次重复,直到返回查询结果。
二、安装Bind服务程序
1)BIND(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。在生产环境中安装部署bind服务程序时加上chroot(俗称牢笼机制)扩展包,以便有效地限制bind服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全,安装命令:yum install bind-chroot。
bind服务中有3个关键文件:
主配置文件(/etc/named.conf):只有58行,而且在去除注释信息和空行之后,实际有效的参数仅有30行左右,这些参数用来定义bind服务程序的运行。
区域配置文件(/etc/named.rfc1912.zones):用来保存域名与IP地址对应关系的所有位置,类似于书本目录。
数据配置文件目录(/var/named):用于保存域名与IP地址真实的对应关系的数据配置文件。
2)bind服务程序的区域配置文件用来保存域名与IP地址对应关系的所在位置,该文件定义了域名与IP地址解析规则保存的文件位置以及服务类型,服务类型包含根域hint、主区域master、辅助区域slave,其中的master主区域和辅助区域slave就是常用在主服务器和从服务器中。
3)在实验中启动bind服务失败时,可通过执行named-checkconf和named-checkzone分别检查主配置文件和数据配置文件的语法错误或参数错误。
4)named服务开机自启:systemctl enable named.service
三、DNS解析
1)正向解析:通过域名查找主机的IP地址
2)反向解析:通过主机IP地址查找主机域名
正向解析实验:
1)修改主配置文件配置vi /etc/named.conf,修改监听地址(端口)为any,修改允许客户机更新为any;
2)设置dns地址为本机地址;
3)编辑区域配置文件vi /etc/named.rfc1912.zones,如下配置:
zone "test.com " IN {
type master; /* 服务类型 */
file “test.com.zone"; /* 配置文件所在的位置 */
allow-update {none;}; /* 允许哪些客户机更新 */
};
4)区域配置文件完成后,下一步是配置数据配置文件,即域名与IP地址对应关系的文件,首先在 /var/named目录喜复制一份数据配置模板:cp -a named.hostlocal test.com.zone ,cp 命令 -a 参数意思是保留原始文件的所有者,然后编辑数据配置文件 vi test.come.zone,数据配置如下:
$TTL 1D | #生存周期为1天 | ||||
@ | IN SOA | test.com. | root.test.com. | ( | |
#授权信息开始: | #DNS区域的地址 | #域名管理员的邮箱(不要用@符号) | |||
0;serial | #更新序列号 | ||||
1D;refresh | #更新时间 | ||||
1H;retry | #重试延时 | ||||
1W;expire | #失效时间 | ||||
3H;)minimum | #无效解析记录的缓存时间 | ||||
NS | ns.test.com. | #域名服务器记录 | |||
ns | IN A | 192.168.198.10 | #地址记录(ns.test.com.) | ||
IN MX 10 | mail.test.com. | #邮箱交换记录 | |||
IN A | 192.168.198.10 | #地址记录(mail.test.com.) | |||
www | IN A | 192.168.198.10 | #地址记录(www.test.com.) | ||
bbs | IN A | 192.168.198.20 | #地址记录(bbs.test.com.) |
保存退出后,重启named服务systemctl restart named ,然后通过nslookup命令 解析域名www.test.com得到192.168.198.10的IP地址。
反向解析实验:
1)编辑区域配置文件vi /etc/named.rfc1912.zones
zone "198.168.192.in-addr.arpa " IN {
type master; /* 服务类型 */
file “198.168.192.arpa"; /* 配置文件所在的位置 */
};
2)从/var/named中复制一份反向解析模板命名为198.168.192.arpa:cp -a named.loopback 198.168.192.arpa,然后编辑反向解析数据配置文件vi 198.168.192.arpa,数据配置文件如下:
$TTL 1D | ||||
@ | IN SOA | test.com. | root.test.com. | ( |
0;serial | ||||
1D;refresh | ||||
1H;retry | ||||
1W;expire | ||||
3H);minimum | ||||
NS | ns.test.com. | |||
ns | A | 192.168.198.10 | ||
10 | PTR | ns.test.com. | #PTR为指针记录,仅用于反向解析中。 | |
10 | PTR | mail.test.com. | ||
10 | PTR | www.test.com. | ||
20 | PTR | bbs.test.com. |
四、部署从服务器
1)配置流程为:
在主服务器的区域配置文件中允许从服务器的更新请求,并重新加载配置文件;
在从服务器配置文件中填写主服务器地址与要抓取的区域配置,并重新加载配置文件;
在从服务器中查看/var/named/slaves目录并使用nslookup命令验证结果。
五、安全加密传输
1)第一步是在主服务器中生成密钥:命令是dnssec-keygen -a HMAC-MD5 -b 128 -n HOST master-slave,-a参数是指定加密算法,-b参数是密钥长度,-n是密钥类型。这时会生成一个密钥。
2)在主服务器中创建密钥验证配置文件,进入bind服务程序用于保存配置文件的目录,把刚刚生成的密钥名称、加密算法和私钥加密字符串按照下面格式写入到tansfer.key传输配置文件中:
cd /var/named/chroot/etc/
vi /transfer.key
3)配置主/从服务器开启密钥验证功能并重新加载named服务,即在主/从服务器的主配置文件中添加:include “/etc/transfer.key;'”