DNS服务

网友投稿 262 2022-11-04

DNS服务

一 DNS系统的作用及类型

1.1 DNS概念

1.2 DNS使用的协议及端口号

1.3 NDS系统类型

1.4 两种查询方式

二 BIND的安装和配置文件

2.1 DNS相关软件

2.2DNS的配置文件

三 使用BIND构建域名服务器

3.1 正向解析

3.2 反向解析

3.3 主从解析服务

3.4 分离解析服务

一 系统的作用及类型

1.1 DNS概念

DNS域名系统(Domain Name System缩写DNS,Domain,Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

全球互联网DNS根服务器分布差异巨大

全球互联网中枢顶级域名服务器的分布俗称"母服务器",准确的说法是世界上有13个根服务器系统。其实全球至少有1000多台根服务器,北京有3台。另外,在这13个根服务器系统之上,还有一个更高级的、隐藏着的母服务器。全世界所有的顶级域名,都是由这台母服务器来确定的。全球1000多台根服务器上的解析系统都是这台母服务器的复制,这13个根服务器系统由12家机构管理,分布在全球100多个地区。所以每一个编号的根服务器系统,不是一台机器,而是有几十台或上百台服务器。

目前广泛使用的互联网是第一代互联网,采用的互联网协议版本号为4,即IPv4。美国是第一代互联网的创立者,占有网络核心资源,处于绝对垄断地位。随着互联网的蓬勃发展,对IP地址的需求也迅猛增加,IPFv4所能提供的地址很快将发完。第二代互联网所依据的协议是IPv6。它可以提供无限数量的IP地址。

"未来在推进IPv6的过程中,中国可能通过IPv6获得互联网根服务器",他解释,目前中国已经开展了下一代互联网根服务器的研究,证明在IPv6下面,可以最多有25个根服务器,并且可以跟IPv4服务器之间形成互通。

1.2  DNS使用的协议及端口号

DNS的默认端口为53。 DNS端口分为TCP和UDP。

TCP是用来做区域传送,多用于主从同步在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNSs数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息。

UDP是用来做DNS解析的域名:通常由一个完全合格域名(FQDN)标识。FQDN全称 Fully Qualified Domain Name,它能准确表示出其相对于DNS域树根的位置,也就是节点到DNS树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用"."分隔,对于DNS域google来说,其完全正式域名(FQDN)为google.com。

例如,google为 com域的子域,其表示方法为google.com,而 ww 为 google域中的子域,可以使用wwrw .google.com.丧示。

注意:通常,FQDN有严格的命名限制,长度不能超过256字节,只允许使用字符a-z,0-9,A-Z2和减号(-)。点号(.)只允许在域名标志之间(例如"google.com")或者FQDN的结尾使用。域名不区分大小,由最顶层到下层,可以分成:根域、顶级域、二级域、子域即全域名:同时带有主机名和域名的名称FQDN = Hostname + DomainName如:.baidu . com.

注意:最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上:abc.com=w .abc.com.

1.3 域名体系结构

​根域名、顶级域名(一级域名)、二级域名,三级域名、四级域名或主机

所有的域名必须以点结尾

一级域名: .cn (中国) .us .tw .kr(韩国).jp(日本).hk(香港)uk(英国)........二级域名:.com.cn(中国商业组织) edu .cn(教育机构) .org.cn (非盈利) .net.cn (中国运营商)三级域名:sina.com.cn nb.com.cn haixi.com.cn ... ... . ..

组织域:.com .org .net .cc

国家域: .cn .tw(台湾).hk (香港) .iq .ir .jp (日本)反向域

114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用。

8.8.8.8是GOoGLE公司提供的DNS,该地址全球通用,相对来说,更适合国外以及访问国外网站的用户使用

223.5.5.5和223.6.6.6:阿里云DNS

FQDN:(Fully Qualified DomainName)全限定域名:同时带有主机名和域名的名称。从全限定域名中包含的信息可以看出主机在域名树中的位置。

1.4 两种查询方式

​(1)递归查询

递归查询是一种DNS服务器的查询模式,在该模式下DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果 DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

总的一句话,就是客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现。

(2)迭代查询

DNS服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS

服务器并不直接回复查询结果,而是告诉客户机另一台 DNS服务器地址,客户机再向这台DNS服务器提交请求,依次循环直到返回查询的结果为止。

总的一句话,客户机的请求需要自己挨个去查询才能得到结果,服务器没有结果时候只会给你提供其它服务器的地址,而不会帮你去请求查询,这与递归截然相反。

从递归和迭代查询可以看出:

客户端-本地DNS服务器:

这部分属于递归查询本地DNs服务端---外网:这部分属于迭代查询

递归查询时,返回的结果只有两种:查询成功或查询失败

迭代查询又称作重指引,返回的是最佳的查询点或者主机地址。

1.5 DNS服务器类型:

(1)主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构逝l域名

服务器时,需要自行建立所负责区域的地址数据文件。

(2)从域名服务器:当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从

域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器

的位置,以便服务器能自动同步区域的地址数据库。注:

(3)缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个

远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。级存域名服

务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他NS服务

器作为解析来源。

(4)转发域名服务器:负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到

就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

二 BIND的安装和配置文件

2.1 DNS相关软件

BIND (Berkeley Internet Name Daemon)

BIND是应用最广泛的DNS服务程序

官方站点: ​​需要使用的库函数。

bind-chroot-9.9.4-37.e17.x86_64.rpm 1

为BIND服务提供一个伪装的根目录(将/var/named/ chroot/文件夹作为 BIND 服务的根目录),以提高安全性。

默认已安装bind-utils 和 bind-libs,因此只需要安装 bind 和 bind-chroot即可

2.2DNS的配置文件

BIND主配置文件named.conf

[root@localhost ~]. rpm -qc bind

/承查询bind软件配置文件所在路径

etc/ logrotate.d/ named

/主配置文件控制系统全局

/etc/ named.rfc1912.zones

/区域配置文件控制具体单个区域

/var/named/ named. localhost

/区域数据配置文件区域信息

/etc/named.conf  主配置文件

options {

listen-pn port 53 ( 192.168.126.30; };

监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有

#listen=on-v6 port 53 { ::l; };

#ipv6行如不使用可以注释掉或者删除

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 ( 192.168.126.0/24; };

允许使用本DNS解析服务的网段,可以多个网段,也可用any代表所有)

zone ".”IN{           #正向解析”.”根区域

type hint;             #类型为根区域

file "named.ca";

#区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息):

/etc/ named.rfc1912.zones 区域配置文件

zone "benet.com"IN {             #正向解析"benet.com""区域

type master;                    # 类型为主区域

file "benet.com.zone";

#指定区域数据文件为benet.com.zone

allow-update { none; ] ;

};

配置正向区域数据文件 /var/named/ named. localhost

cd /var/ named/

cp -p named.localhost benet.com. zone (与区域配置文件名称一致)

保留源文件的权限和属主的属性复制

vim /var/named/benet.com. zone

$TTL 1D    #有效解析记录的生存周期

@  IN SOA benet.com. admin.benet.com. (

"@"符号表示当前的DNS区域名

0   ; serial           #更新序列号,可以是10位以内的整数

1D  ; refresh         #刷新时间,重新下载地址数据的间隔

1H  ; retry           #重试延时,下载失败后的重试问隔

1w  ; expire          #大效时间,超过该时间仍无法下载则放弃番

3H)  ; minimum      #无效解析记录的生存周期,

NS   benet.com.     #记录当前区域的DNS服务器的名称

A   192.168.126.30    记录主机IP地址

IN  MX  10  mail.benet.com.    #MX为邮件交换记录,数字越大优先级越低

IN  A   192.168.126.30     #记录正向解析. benet.com对应的IP

mail  IN  A    192.168.126.31  #记录正向解析mail. benet.com对应的IP

ftp IN CNAME         #CNAME使用别名,ftp是 IN  A    192.168.126.100  #泛域名解析,“*"代表任意主机名

"@"这里是一个变量,当前DNS区域名

SOA记录中的更新序列号用于同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。

"benet.com."此为完全合格域名(FQDN),后面有个"."不能漏掉

​​"admin.benet.com."表示管理员邮箱,这里的"@"符号已有其他含义,所以用"."代替​​

IN表示internet

三 使用BIND构建域名服务器

3.1 正向解析

正向解析查询过程:

先查本机的缓存记录

查询hosts文件

查询dns域名服务器,交给dns域名服务器处理

以上过程成为递归查询:我要一个答案你直接会给我结果

这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步

求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器

求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器

求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器

本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端

windows系统查询dns缓存命令: ipconfig /displaydnswindows

系统清理dns缓存命令: ipconfig /flushdns

linux清dns缓存需要安装nscd软件,启动、执行nscd -i hosts

实验:

服务器ip地址 192.168.126.30

安装软件

[root@localhost etc]# yum install -y bind

​修改配置文件/etc/named.conf

[root@localhost etc]# cp -p /etc/named.conf /etc/named.conf.bak # 先备份

[root@localhost etc]# vim /etc/named.conf

​ 修改区域配置文件/etc/ named.rfc1912.zones

[root@localhost etc]# vim /etc/named.rfc1912.zones

​配置正向区域数据文件 /var/named/ named. localhost

cd /var/ named/

cp -p named.localhost benet.com. zone (与区域配置文件名称一致)

保留源文件的权限和属主的属性复制

vim /var/named/benet.com. zone

​启动服务,关闭防火墙和增强

systemctl start named

systemctl stop firewalld

setenforce o

#如果服务启动失败,可以查看日志文件来排查错误

tail -f /var/ log/messages

#如果服务启动卡住,可以执行下面命令解决

rndc-confgen -r /dev/urandom -a

#对域名语法进行检查( named.conf)

named-checkconf -z letc / named.conf

在客户端的域名解析配置文件中添加DNS服务器地址

vi /etc/ resolv .conf

nameserver 192.168.126.30

#修改完后立即生效.需提前把网卡中设置的DNS注释并重启网卡

vi /etc/ sysconfig/ network-scripts/ifcfg-ens33#修改完后需要重启网卡

DNS1=192.168.126.30

systemctl restart network

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

[root@localhost ~]# systemctl restart network

[root@localhost ~]# vim /etc/resolv.conf

​测试DNS解析 使用客户机ip192.168.126.40

​验证成功

​3.2 反向解析(ip解析成域名)

(在上面正向解析的基础上做)

vim /etc/named.rfc1912.zones

192.168.126.30反向则是126.168.192

zone "126.168.192.in-addr.arpa"IN{

type master;

file "benet.com.zone.local";

指定反向解析的数据文件,也可以跟正向解析的数据文件相同

allow-update { none; };

) ;

​cd /var/ named/

cp -p benet.com. zone benet.com. zone .local

Vim /var/named/benet.com.zone.local

$TTL 1D#有效解析记录的生存周期,默认单位为秒

IN SOA benet.com, admin.benet.com.

0 :serial

更新序列号,10位以内数字,用于主从同步,主服务器这个数值要大于从服务器否则无法同步

1D: refresh

1H: retry

1W; expire

3H ); minimum#无效解析记录的生存周期

NS  benet.com.

A  192.168.126.30

30  IN PTR  . benet.com.

31  IN PTR  mail.benet. com..

30是192.168.126.30的意思

PTR反向指针功能:反向解析

​重新加载

systemctl restart named

rndc reload也可以重载配置文件

客户端验证

3.3 主从解析服务

实验环境:

主服务器: 192.168.126.30

从服务器: 192.168.126.40

1、配置主服务器192.168.126.30

yum install -y bind  安装bind服务

[root@localhost ~]# cp /etc/named.conf /etc/named.conf.bak  先备份

[root@localhost ~]# vim /etc/named.conf      编辑主配置文件

[root@localhost ~]# vim /etc/named.rfc1912.zones    修改区域配置文件

配置区域数据文件

cd /var/ named/

[root@localhost named]# cp -p named.localhost benet.com.zone

[root@localhost named]# cp -p named.localhost benet.com.zone.local

[root@localhost named]# vim /var/named/benet.com.zone

[root@localhost named]# vim /var/named/benet.com.zone.local

关闭防火墙和增强,开启服务

2 从服务器配置

yum install -y bind  安装bind服务

[root@localhost ~]# cp /etc/named.conf /etc/named.conf.bak  先备份

[root@localhost ~]# vim /etc/named.conf      编辑主配置文件

​修改区域配置文件

[root@localhost ~]# vim /etc/named.rfc1912.zones    修改区域配置文件

正反向解析

关闭防火墙和增强,启动服务

验证

3.4 分离解析服务

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MyBatis动态SQL如何实现前端指定返回字段
下一篇:PXE批量装机
相关文章

 发表评论

暂时没有评论,来抢沙发吧~