搭建DNS服务器
第一节、安装部署
快速构建DNS服务器的基本过程:
- 安装 bind、bind-chroot 包
- 建立主配置文件 /etc/named.conf
- 建立地址库文件 /var/named/.. ..
- 启动 named 服务
配置及使用DNS客户端的基本过程: - 修改配置文件/etc/resolv.conf,添加nameserver=DNS服务器地址
- 使用host命令查询,提供目标域名作为参数
yum -y install bind bind-chroot
第二节、单区域DNS服务器
1、需求
测试阶段主要提供以下正向记录:
1. svs50.jluocc.cn ---> 192.168.4.50
2. svs51.jluocc.cn ---> 192.168.4.51
3. www.jluocc.cn ---> 192.168.4.52
配置完成后在客户机上验证查询结果
2、配置DNS服务器
1)安装 bind、bind-chroot 包
yum -y install bind bind-chroot
2)建立主配置文件 /etc/named.conf
mv /etc/named.conf /etc/named.conf.origin //备份默认配置
vim /etc/named.conf //建立新配置
options {
directory "/var/named"; //地址库默认存放位置
};
zone "jluocc.cn" { //定义正向DNS区域
type master; //主区域
file "jluocc.cn.zone"; //自定义地址库文件名
};
3)建立地址库文件 /var/named/jluocc.cn.zone
cd /var/named/
cp -p named.localhost jluocc.cn.zone
vim jluocc.cn.zone
$TTL 1D //文件开头部分可保持不改
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS svs50.jluocc.cn. //本区域DNS服务器的FQDN
svs50 A 192.168.4.50 //为NS主机提供A记录
svs51 A 192.168.4.51 //其他正向地址记录.. ..
www A 192.168.4.52
4)启动 named 服务,并设置开机自启
systemctl start named
systemctl enable named
systemctl status named
3、配置DNS客户机pc51并测试
1)修改配置文件/etc/resolv.conf,指定默认使用哪一台DNS服务器
vi /etc/resolv.conf
nameserver 192.168.4.50
2)使用host命令查询,提供目标域名作为参数
[root@server51 ~]# host svs50.jluocc.cn
svs50.jluocc.cn has address 192.168.4.50
[root@server51 ~]# host svs51.jluocc.cn
svs51.jluocc.cn has address 192.168.4.51
[root@server51 ~]# host www.jluocc.cn
www.jluocc.cn has address 192.168.4.52
[root@server51 ~]# ping www.jluocc.cn
PING www.jluocc.cn (192.168.4.52) 56(84) bytes of data.
64 bytes from 192.168.4.52 (192.168.4.52): icmp_seq=1 ttl=64 time=0.463 ms
第二节、特殊DNS解析
1、需求
- 为站点 www.jluocc.cn 提供DNS轮询解析,三台Web服务器节点的IP地址分别为:
192.168.4.52、192.168.4.110、192.168.4.120 - 配置泛域名解析实现以下解析记录:任意名称.jluocc.cn ---> 192.168.4.130
2、配置DNS轮询
1)修改DNS服务器上jluocc.cn区域的地址库文件,在末尾添加轮询地址记录
vim jluocc.cn.zone
www A 192.168.4.52
www A 192.168.4.110
www A 192.168.4.120
2)重启系统服务named
systemctl restart named
3)在客户机pc51上测试轮询记录
针对目标www.jluocc.cn执行多次查询,观察第1条结果的变化:
[root@server51 ~]# host www.jluocc.cn
www.jluocc.cn has address 192.168.4.52
www.jluocc.cn has address 192.168.4.110
www.jluocc.cn has address 192.168.4.120
[root@server51 ~]# host www.jluocc.cn
www.jluocc.cn has address 192.168.4.110
www.jluocc.cn has address 192.168.4.120
www.jluocc.cn has address 192.168.4.52
[root@server51 ~]# host www.jluocc.cn
www.jluocc.cn has address 192.168.4.110
www.jluocc.cn has address 192.168.4.52
www.jluocc.cn has address 192.168.4.120
3、配置多对一的泛域名解析
1)修改DNS服务器上指定区域的地址库文件,在末尾添加*通配地址记录
vim jluocc.cn.zone
* A 192.168.4.130
2)重启系统服务named
systemctl restart named
3)在客户机pc51上测试多对一的泛域名解析记录
当查询未知站点(地址库中没有明确记录)时,以 * 对应的IP地址反馈:
[root@server51 ~]# host xxx.jluocc.cn
xxx.jluocc.cn has address 192.168.4.130
[root@server51 ~]# host bbb.jluocc.cn
bbb.jluocc.cn has address 192.168.4.130
[root@server51 ~]# host ccc.jluocc.cn
ccc.jluocc.cn has address 192.168.4.130
第三节、配置DNS子域授权
1、需求
要求为上下级两个DNS区域建立父子关联,实现客户机向父DNS也可以查询
到子域内的FQDN,基本要求如下:
- 构建父DNS(jluocc.cn)服务器
- 构建子DNS(bj.jluocc.cn)服务器
- 在父DNS上配置子域授权
- 测试子域授权查询
为一个DNS区域添加授权子域时,需要修改此区域的地址库,添加以下记录:
子域域名. IN NS 子DNS的FQDN.
子DNS的FQDN. IN A 子DNS的IP地址
2、构建父DNS(jluocc.cn)服务器
1)将svr50配置为父DNS服务器,确认配置
主配置文件/etc/named.conf:
vim /etc/named.conf //建立新配置
options {
directory "/var/named"; //地址库默认存放位置
};
zone "jluocc.cn" { //定义正向DNS区域
type master; //主区域
file "jluocc.cn.zone"; //自定义地址库文件名
};
正向地址库文件:
vim jluocc.cn.zone
$TTL 1D //文件开头部分可保持不改
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS svs50.jluocc.cn. //本区域DNS服务器的FQDN
svs50 A 192.168.4.50 //为NS主机提供A记录
svs51 A 192.168.4.51 //其他正向地址记录.. ..
www A 192.168.4.52
确保服务已启用:
systemctl restart named
2)测试 —— 向父DNS可成功查询到父区域中的站点
[root@server51 ~]# host www.jluocc.cn 192.168.4.50
Using domain server:
Name: 192.168.4.50
Address: 192.168.4.50#53
Aliases:
www.jluocc.cn has address 192.168.4.110
www.jluocc.cn has address 192.168.4.120
www.jluocc.cn has address 192.168.4.52
3、构建子DNS(bj.jluocc.cn)服务器
1)将pc50配置为子DNS服务器,确认配置
安装软件包bind、bind-chroot:
yum -y install bind bind-chroot
建立主配置文件/etc/named.conf:
mv /etc/named.conf /etc/named.conf.origin
vim /etc/named.conf //建立新配置
options {
directory "/var/named"; //地址库默认存放位置
};
zone "bj.jluocc.cn" { //定义正向DNS区域
type master; //主区域
file "bj.jluocc.cn.zone"; //自定义地址库文件名
};
建立地址库配置文件:
cd /var/named/
cp -p named.localhost bj.jluocc.cn.zone
vim bj.jluocc.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS svs51.bj.jluocc.cn.
svs51 A 192.168.4.51
www A 1.2.3.4
2)启动系统服务named,并设置开机自启
systemctl start named
systemctl enable named
systemctl status named
3)测试 —— 向子DNS可成功查询到子区域中的站点
[root@server51 named]# host www.bj.jluocc.cn 192.168.4.51
Using domain server:
Name: 192.168.4.51
Address: 192.168.4.51#53
Aliases:
www.bj.jluocc.cn has address 1.2.3.4
4、在父DNS上配置子域授权
1)测试 —— 未配置子域授权时,向父DNS无法正确查询到子区域中的站点
若父DNS配置有 * 泛域名,则反馈的结果为对应的IP地址192.168.4.130,而不是子DNS中记
录的1.2.3.4:
[root@server51 named]# host www.bj.jluocc.cn 192.168.4.50
Using domain server:
Name: 192.168.4.50
Address: 192.168.4.50#53
Aliases:
www.bj.jluocc.cn has address 192.168.4.130
若父DNS未配置有 * 泛域名,则找不到解析结果(not found)
2)修改父DNS区域tedu.cn的地址库,添加授权子域信息
vim jluocc.cn.zone
bj.jluocc.cn. NS svs51.bj.jluocc.cn.
svs51.bj.jluocc.cn. A 192.168.4.51
systemctl restart named
5、测试子域授权查询
测试 —— 成功配置子域授权以后,向父DNS可以正确查询到子区域中的站点:
[root@server51 named]# host www.bj.jluocc.cn 192.168.4.50
Using domain server:
Name: 192.168.4.50
Address: 192.168.4.50#53
Aliases:
www.bj.jluocc.cn has address 1.2.3.4
第四节、搭建并测试缓存DNS
1、需求
求熟悉缓存DNS的工作过程,准备一台可上网的RHEL7虚拟机,并完成下列任务:
- 安装 bind、bind-chroot 包
- 搭建并测试基于全局转发器的缓存DNS
权威/官方DNS服务器的特点:
- 至少管理一个DNS区域,,需要IANA等官方机构授权
- 典型应用:根域DNS、一级域DNS、二级域DNS、三级域DNS、.. ..
缓存DNS服务器的特点: - 不需要管理任何DNS区域,但是能够替客户机查询,而且通过缓存、复用查询结果来加快响应速度
- 典型应用:ISP服务商、企业局域网
缓存DNS服务器的解析记录来源: - 方式1:全局转发:将请求转发给指定的公共DNS(其他缓存DNS),请求递归服务
- 方式2:根域迭代:依次向根、一级、二级……域的DNS服务器迭代
2、将pc50配置为缓存DNS(全局转发式)
1)建立主配置文件/etc/named.conf
当收到来自客户机的DNS查询请求时,转发到外网的其他DNS服务器
vim /etc/named.conf
options {
directory "/var/named"; //地址库默认存放位置
forwarders { 114.114.114.114; } ;
};
2)启动系统服务named,并设置开机自启
systemctl start named
systemctl enable named
systemctl status named
3)可向缓存DNS服务器pc50查询到公共域名(百度、网易等站点)
[root@server51 named]# host www.baidu.com 192.168.4.50
Using domain server:
Name: 192.168.4.50
Address: 192.168.4.50#53
Aliases:
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 14.215.177.39
www.a.shifen.com has address 14.215.177.38
[root@server51 named]# host www.163.com 192.168.4.50
Using domain server:
Name: 192.168.4.50
Address: 192.168.4.50#53
Aliases:
www.163.com is an alias for www.163.com.163jiasu.com.
www.163.com.163jiasu.com is an alias for www.163.com.bsgslb.cn.
www.163.com.bsgslb.cn is an alias for z163picipv6.v.bsgslb.cn.
z163picipv6.v.bsgslb.cn has address 118.121.192.154
z163picipv6.v.bsgslb.cn has address 118.121.192.152
z163picipv6.v.bsgslb.cn has address 118.121.192.153
z163picipv6.v.bsgslb.cn has address 118.121.192.156
z163picipv6.v.bsgslb.cn has IPv6 address 240e:974:c900:100::3:9
z163picipv6.v.bsgslb.cn has IPv6 address 240e:974:c900:100::3:8
z163picipv6.v.bsgslb.cn has IPv6 address 240e:97d:2008:60c::1f7
z163picipv6.v.bsgslb.cn has IPv6 address 240e:974:c900:100::3:7
z163picipv6.v.bsgslb.cn has IPv6 address 240e:97d:2008:60c::1f8
z163picipv6.v.bsgslb.cn has IPv6 address 240e:97d:2008:60c::1f5