DNS解析服务器的搭建

DNS服务简介

1、DNS服务介绍

  • 在Internet中使用IP地址来确定计算机的地址,这种以数字表示的IP地址不容易记忆。为了便于对网络地址的管理和分配,人们采用了域名系统,引入了域名的概念。通过为每台主机建立IP地址与域名之间的映射关系,用户可以避开难记的IP地址,而使用域名来唯一标识网络中的计算机。域名和IP地址之间的关系,就像是某人的姓名和身份证号码之间的关系,显然,记住名字比记住身份证号码容易的多。

2、DNS解析过程

  • 查询www.benet.com
    在这里插入图片描述
    从查询方式分类

  • 递归查询:
    客户端得到结果只能是成功或失败

  • 迭代查询:
    DNS服务器如有客户机请求数据则返回正确地址
    DNS服务器没有请求数据则返回一个指针

从查询内容分类

  • 正向解析:
    根据主机名称(域名)查找对应的 IP 地址
  • 反向解析:
    根据 IP 地址查找对应的主机域名

DNS服务器安装及配置

  • 主配置文件:/etc/named.conf ----- 设置本服务器负责解析的域名
  • 地址库文件:/var/named/

1、安装Bind DNS软件包

[root@v1 nginx]# yum -y install bind*

2、搭建单区域DNS服务

2.1、修改DNS配置文件

  • 把配置文件其他内容删掉只留以下内容:
[root@v1 ~]# vim /etc/named.conf
options {directory       "/var/named";   地址库默认存放位置 };
zone "ys.com" IN {     指定本机服务负责解析的域名type master;   指定本机为权威DNS服务器 file "ys.com.zone";  指定地址库文件名称
};        

2.2、检查主配置文件是否书写正确

[root@v1 named]# named-checkconf /etc/named.conf
没有提示什么就说明没有问题

2.2、建立地址库文件 /var/named/ys.com.zone

[root@v1 ~]# cd /var/named/
[root@v1 named]# cp -p named.localhost  ys.com.zone  参考范本建地址库文件 
[root@v1 named]# vim ys.com.zone
NS  域名服务器(Name Server)记录
A   地址(Address)记录,仅用于正向解析区域
$TTL 1D
@       IN SOA  @ rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimum
@       NS      v1       //ys.com这个域名有v1.ys.com这台服务器负责
v1      A       192.168.2.10  //v1.ys.com这台服务器的IP地址时192.168.2.10
www     A       8.8.8.8     //www.ys.com的IP地址为8.8.8.8

2.3、检查地址库文件是否书写正确

[root@v1 named]# named-checkzone ys.com  ys.com.zone 
zone ys.com/IN: loaded serial 0
OK

2.4、启动服务并设置开机自启

[root@v1 named]# systemctl start named
[root@v1 named]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

2.5、在192.168.2.20主机上测试

[root@bogon ~]# vim /etc/resolv.conf   设置192.168.2.20的DNS服务器为192.168.2.10
# Generated by NetworkManager
nameserver 192.168.2.10
[root@bogon ~]# nslookup www.ys.com   解析www.ys.com域名对应的IP地址
Server:		192.168.2.10
Address:	192.168.2.10#53Name:	www.ys.com
Address: 8.8.8.8
注意:这里nslookup命令没有的话需要安装bind-utils这个软件

3、配置DNS轮询

3.1、修改DNS服务器上的ys.com地址库文件

[root@v1 named]# vim ys.com.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimum
@       NS      v1
v1      A       192.168.2.10
www     A       192.168.2.100
www     A       192.168.2.101
www     A       192.168.2.102
www     A       192.168.2.103

3.2、检查地址库文件是否书写正确

[root@v1 named]# named-checkzone ys.com   ys.com.zone 
zone ys.com/IN: loaded serial 0
OK

3.3、重启服务

[root@v1 named]# systemctl restart named

3.4、在192.168.2.20主机上测试

[root@bogon ~]# host www.ys.com
www.ys.com has address 192.168.2.100  第一个结果为192.168.2.100
www.ys.com has address 192.168.2.101
www.ys.com has address 192.168.2.102
www.ys.com has address 192.168.2.103
[root@bogon ~]# host www.ys.com
www.ys.com has address 192.168.2.101   第二个结果为 192.168.2.101
www.ys.com has address 192.168.2.100
www.ys.com has address 192.168.2.103
www.ys.com has address 192.168.2.102
[root@bogon ~]# host www.ys.com
www.ys.com has address 192.168.2.102  第三个结果为 192.168.2.102
www.ys.com has address 192.168.2.103
www.ys.com has address 192.168.2.100
www.ys.com has address 192.168.2.101
[root@bogon ~]# host www.ys.com
www.ys.com has address 192.168.2.103   第四个结果为 192.168.2.103
www.ys.com has address 192.168.2.102
www.ys.com has address 192.168.2.101
www.ys.com has address 192.168.2.100

4、配置多对一的泛域名解析

4.1、修改DNS服务器上的ys.com地址库文件

[root@v1 named]# vim ys.com.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimum
@       NS      v1
v1      A       192.168.2.10
*       A       192.168.2.100
这里的*是通配符

4.2、检查地址库文件是否书写正确

[root@v1 named]# named-checkzone ys.com   ys.com.zone 
zone ys.com/IN: loaded serial 0
OK

4.3、重启服务

[root@v1 named]# systemctl restart named

4.4、在192.168.2.20主机上测试

[root@bogon ~]# nslookup www.ys.com
Server:		192.168.2.10
Address:	192.168.2.10#53Name:	www.ys.com
Address: 192.168.2.100[root@bogon ~]# nslookup bbs.ys.com
Server:		192.168.2.10
Address:	192.168.2.10#53Name:	bbs.ys.com
Address: 192.168.2.100[root@bogon ~]# nslookup yyy.ys.com
Server:		192.168.2.10
Address:	192.168.2.10#53Name:	yyy.ys.com
Address: 192.168.2.100

5、配置DNS子域授权

  • 父域:192.168.2.10 ys.com
  • 子域:192.168.2.20 sz.ys.com

5.1、构建父(ys.com)服务器

5.1.1、修改主配置文件
  • 把配置文件其他内容删掉只留以下内容:
[root@v1 ~]# vim /etc/named.conf
options {directory       "/var/named";   地址库默认存放位置 };
zone "ys.com" IN {     指定本机服务负责解析的域名type master;   指定本机为权威DNS服务器 file "ys.com.zone";  指定地址库文件名称
};        

5.1.2、检查主配置文件是否书写正确

[root@v1 named]# named-checkconf /etc/named.conf
没有提示什么就说明没有问题
5.1.3、修改地址库文件
[root@v1 named]# vim ys.com.zone
......
@       NS      v1
v1      A       192.168.2.10
pc20    A       192.168.2.20   指定子域为192.168.2.20
*       A       192.168.2.100
5.1.4、检查地址库文件是否书写正确
[root@v1 named]# named-checkzone ys.com ys.com.zone 
zone ys.com/IN: loaded serial 0
OK
5.1.4、重启服务
[root@v1 named]# systemctl restart named
5.1.5、测试 —— 向父DNS可成功查询到父区域中的站点
[root@bogon named]# host  www.ys.com  192.168.2.10
Using domain server:
Name: 192.168.2.10
Address: 192.168.2.10#53
Aliases: www.ys.com has address 192.168.2.100

5.2、配置子DNS(sz.ys.com)服务器

5.2.1安装bind软件包
[root@bogon ~]# yum -y install bind*
5.2.2、修改主配置文件
[root@bogon ~]# cp -p /etc/named.conf  /etc/named.conf.bbk  //备份默认主配置文件
[root@bogon ~]# vim /etc/named.conf
options {directory 	"/var/named";
};zone "sz.ys.com" IN {type master;file "sz.ys.com.zone";
};
[root@bogon ~]# named-checkconf /etc/named.conf   //检查主配置文件书写是否正确
5.2.3、建立地址库文件:
[root@bogon ~]# cd /var/named/
[root@bogon named]# cp -p named.localhost  sz.ys.com.zone   参考范本创建地址库文件
[root@bogon named]# vim sz.ys.com.zone$TTL 1D
@       IN SOA  @ rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimum
@       NS      pc20			sz.ys.com这个域名是pc20.sz.ys.com这台服务器负责
pc20    A       192.168.2.20	pc20.sz.ys.com这台服务器IP地址是192.168.2.10
www     A       8.8.8.8			www.sz.ys.com这个域名对应的IP地址是8.8.8.8
[root@bogon named]# named-checkzone sz.ys.com sz.ys.com.zone  检查地址库文件是否书写正确
zone sz.ys.com/IN: loaded serial 0
OK
5.2.4、启动系统服务named,并设置开机自启
[root@bogon named]# systemctl start named
[root@bogon named]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
5.2.5、测试 —— 向子DNS可成功查询到子区域中的站点
[root@bogon named]# host  www.sz.ys.com   192.168.2.20
Using domain server:
Name: 192.168.2.20
Address: 192.168.2.20#53
Aliases: www.sz.ys.com has address 8.8.8.8

5.3、在父DNS上配置子域授权

  • 测试 —— 未配置子域授权时,向父DNS无法正确查询到子区域中的站点 若父DNS配置有 * 泛域名,则反馈的结果为对应的IP地址192.168.2.100,而不是子DNS中记 录的8.8.8.8:
[root@v1 nginx]# host www.sz.ys.com  192.168.2.10
Using domain server:
Name: 192.168.2.10
Address: 192.168.2.10#53
Aliases: www.sz.ys.com has address 192.168.2.100
  • 若父DNS未配置有 * 泛域名,则找不到解析结果(not found):
[root@v1 nginx]# host www.sz.ys.com  192.168.2.10
Using domain server:
Name: 192.168.2.10
Address: 192.168.2.10#53
Aliases: Host www.sz.ys.com not found: 3(NXDOMAIN)
  • 修改父DNS区域ys.com的地址库,添加授权子域信息
[root@v1 ~]# cd /var/named/
[root@v1 ~]# vim ys.com.zone
@	IN SOA	@ rname.invalid. (0	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimum
@			NS	v1
sz.ys.com.		NS      pc20.sz.ys.com.
v1              	A       192.168.2.10
pc20.sz.ys.com.		A	192.168.2.20
*       		A       192.168.2.100
[root@v1 named]# systemctl restart named  重启服务

5.4、测试子域授权查询

[root@v1 named]# host www.sz.ys.com  192.168.2.10
Using domain server:
Name: 192.168.2.10
Address: 192.168.2.10#53
Aliases: www.sz.ys.com has address 8.8.8.8

搭建并测试缓存DNS

  • 权威/官方DNS
  1. 至少管理一个DNS区域,需要IANA等官方机构授权
  2. 典型应用:根域DNS、一级域DNS、…
  • 缓存DNS
  1. 不需要管理任何DNS区域,但是能够提客户机查询,而且通过缓存、复用查询结果来加快速度。
  2. 典型应用:ISP服务商、企业局域网
  • 缓存DNS服务器的解析记录来源:
  1. 全局转发:将请求转发给指定的DNS(其他缓存DNS),请求递归服务。
  2. 根域迭代:依次向根、一级、二级……域的DNS服务器迭代

1、测试pc20是否可访问外部DNS

[root@bogon named]# host www.qq.com
www.qq.com has address 157.255.192.44
www.qq.com has address 61.241.44.148

2、访问指定DNS可用(全局转发的前提条件):

[root@bogon named]# host www.qq.com  202.106.0.20  --国内公共DNS服务器之一
Using domain server:
Name: 202.106.0.20
Address: 202.106.0.20#53
Aliases: www.qq.com has address 157.255.192.44
www.qq.com has address 61.241.44.148
;; connection timed out; no servers could be reached
www.qq.com is an alias for public-v6.sparta.mig.tencent-cloud.net.

3、将pc20配置为缓存DNS(全局转发式)

3.1、安装bind*软件包

[root@pc20 ~]# yum -y install bind*

3.2、建立主配置文件/etc/named.conf

  • 当收到来自客户机的DNS查询请求时,转发到外网的其他DNS服务器
[root@pc20 ~]# vim /etc/named.conf
options {forwarders  { 202.106.0.20; };   转发给202.106.0.20DNS服务器
};
[root@pc20 ~]# named-checkconf /etc/named.conf  检查主配置文件是否书写正确

3.3、启动系统服务named,并设置开机自启

[root@pc20 ~]# systemctl start named
[root@pc20 ~]# systemctl enable named

3.4、可向缓存DNS服务器pc207查询到公共域名(百度、网易等站点)

[root@pc20 ~]# host www.baidu.com  192.168.2.20  查询百度站点IP
Using domain server:
Name: 192.168.2.20
Address: 192.168.2.20#53
Aliases: www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 163.177.151.110
www.a.shifen.com has address 163.177.151.109[root@pc20 ~]# host  www.163.com  192.168.2.20  查询网易的站点IP
Using domain server:
Name: 192.168.2.20
Address: 192.168.2.20#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 z163ipv6.v.bsgslb.cn.
z163ipv6.v.bsgslb.cn has address 112.90.70.74
z163ipv6.v.bsgslb.cn has address 112.90.70.67
z163ipv6.v.bsgslb.cn has address 112.90.70.69
z163ipv6.v.bsgslb.cn has address 112.90.70.71
z163ipv6.v.bsgslb.cn has address 112.90.70.73
z163ipv6.v.bsgslb.cn has address 112.90.70.68
z163ipv6.v.bsgslb.cn has address 112.90.70.72
z163ipv6.v.bsgslb.cn has IPv6 address 2408:8756:c53:3::1:20
z163ipv6.v.bsgslb.cn has IPv6 address 2408:8756:c53:3::1:26
z163ipv6.v.bsgslb.cn has IPv6 address 2408:8756:c53:3::1:18
z163ipv6.v.bsgslb.cn has IPv6 address 2408:8756:c53:3::1:2a
z163ipv6.v.bsgslb.cn has IPv6 address 2408:8756:c53:3::1:28
z163ipv6.v.bsgslb.cn has IPv6 address 2408:8756:c53:3::1:1c


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部