自学内容网 自学内容网

DNS域名解析服务器

DNS简介

DNS Domain Name System )是互联网上的一项服务,它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。
DNS 系统使用的是网络的查询,那么自然需要有监听的 port DNS 使用的是 53 端口,
/etc/services (搜索 domain )这个文件中能看到。通常 DNS 是以 UDP 这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次以TCP 这个协议来重新查询。所以启动 DNS 时,会同时启动TCP 以及 UDP port53
1 )因特网的域名结构
由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name) ”(domain) 是名字空间中一个可被管理的划分。
域名只是逻辑概念,并不代表计算机所在的物理地点。域名可分为三大类:
  • 国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(country code top-level domainscc表示国家代码contry-code)
  • 通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企业)net(网络服务机构)org(非营利组织)int(国际组织)gov(美国的政府部门)mil(美国的军事部门)
  • 基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。

2)域名服务器的类型划分

根据域名服务器起的作用,可以把域名服务器划分为以下类型:

  • 根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。所以根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。需要注意的是,在很多情况下,根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。
现如今全球一共投放 13 个根服务器
根服务器主要用来管理互联网的主目录,全世界只有 13 台。 1 个为主根服务器,放置在美国。其余
12 个均为辅根服务器,其中 9 个放置在美国,欧洲 2 个,位于英国和瑞典,亚洲 1 个,位于日本。所
有根服务器均由美国政府授权的互联网域名与号码分配机构 ICANN 统一管理,负责全球互联网域名
根服务器、域名体系和IP 地址等的管理。 这 13 台根服务器可以指挥 Firefox 或互联网 Explorer 这样的 Web浏览器和电子邮件程序控制互联网通信。换句话说—— 攻击整个因特网最有力、最直接,也是最致命的方法恐怕就是攻击根域名服务器了。
在与现有 IPv4 根服务器体系架构充分兼容基础上,由我国下一代互联网国家工程中心领衔发起的 雪人计划” 2016 年在美国、日本、印度、俄罗斯、德国、法国等全球 16 个国家完成 25 IPv6 (互联网协议第六版)根服务器架设,事实上形成了13 台原有根加 25 IPv6 根的新格局,为建立多边、民主、透明的国际互联网治理体系打下坚实基础。中国部署了其中的4 台,由 1 台主根服务器和 3 台辅根服务器组成,打破了中国过去没有根服务器的困境。
  • 顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。
  • 权限域名服务器:负责一个的域名服务器。
  • 本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器主从DNS服务器:为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个就是主DNS服务器(Master name server),负责解析至少一个域。其他的是辅助(从)DNS服务器(Slave name server):负责解析至少一个域,是主DNS服务器的辅助。当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。
  • 缓存DNS服务器:不负责解析域,只是缓存域名解析的结果。

DNS域名解析的过程

  1. DNS解析方式
  2. 正向解析:将FQDN----->IP
  3. 反向解析:将IP----->FQDN
1 、在浏览器中输入 www . qq .com 域名,操作系统会先检查自己本地的 hosts 文件是否有这个网址映射关系,如果有,就先调用这个IP 地址映射,完成域名解析。
2 、如果 hosts 里没有这个域名的映射,则查找本地 DNS 解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
3 、如果 hosts 与本地 DNS 解析器缓存都没有相应的网址映射关系,首先会找 TCP/IP 参数中设置的首选DNS 服务器,在此我们叫它本地 DNS 服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
4 、如果要查询的域名,不由本地 DNS 服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP 地址映射,完成域名解析,此解析不具有权威性。
5 、如果本地 DNS 服务器本地区域文件与缓存解析都失效,则根据本地 DNS 服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS 就把请求发至 13 台根 DNS ,根 DNS 服务器收到请求后会判断这个域名(.com) 是谁来授权管理,并会返回一个负责该顶级域名服务器的一个 IP
本地 DNS 服务器
收到 IP 信息后,将会联系负责 .com 域的这台服务器。这台负责 .com 域的服务器收到请求后,如果自己无法解析,它就会找一个管理qq.com DNS 服务器地址给本地 DNS 服务器。当本地 DNS 服务器收到这个地址后,就会找qq.com 域服务器,重复上面的动作,进行查询,直至找到 www . qq.com主机。
6 、如果用的是转发模式,本地 DNS 服务器就会把请求转发至上一级 DNS 服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS 或把请求转至上上级,以此循环。找到最后把结果返回给本地DNS 服务器,由此 DNS 服务器再返回给客户机。
注:从客户端到本地 DNS 服务器是属于递归查询,而 DNS 服务器之间使用的交互查询就是迭代查询。
114.114.114.114 是国内移动、电信和联通通用的 DNS ,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS
8.8.8.8 GOOGLE 公司提供的 DNS ,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用。

DNS服务器配置

提供DNS服务的软件叫bind,服务名是named。
[root@localhost ~]# yum install bind -y
[root@localhost ~]# rpm -ql bind
/etc/named.conf # bind主配置文件
/var/named/slaves # 从dns服务器文件夹
[root@localhost ~]# vim /etc/named.conf
options {
#定义监听端口,如果所有地址都监听,则只写端口
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
#定义数据文件目录
directory "/var/named";
#只允许本地主机进行查询
allow-query { localhost; };
};
#定义区域
zone "." IN {
type hint;
file "named.ca";
};

实验1:配置DNS正向解析

[root@localhost ~]# vim /etc/named.conf主配置文件
options {
#监听端口为53,大括号内数据内容可以为any
listen-on port 53 { 172.24.8.128; };
directory "/var/named";
};
zone "baidu.com" IN {
type master;
file "named.baidu.com";
};

正向解析文件资源记录(Resource RecordRR,常见的正解文件RR相关信息:

SOA主要是与区域有关,所以domain要写域名。而SOA后面会接七个参数,这七个参数的意义如下:

  • Master DNS服务器主机名:这个区域主要是哪台DNS作为Master的意思。
  • 管理员的Email,发生问题可以联系这个管理员。由于@在数据库文件中有特殊含义,所以将用“.”代替@
  • 序号(Serial),这个序号代表的是这个数数据库文件的新旧,序号越大代表越新。所以当你更改了数据库内容时,需要将这个数值放大。
  • 更新频率(Refresh)定义slave多久向Master要求数据更新。
  • 失败重新尝试时间(Retry),如果Slave无法对Master实现连接,那么在多长时间内,Slave会尝试重新连接到Master
  • 失效时间(Expire),如果一直尝试失败,持续连接到达这个设置值时限,那么Slave将不再继续尝试连接,并且尝试删除这份下载的zone file信息。
  • 缓存时间(Minumum TTL),如果这个数据库zone file中,每条记录都没有写到TTL缓存时间的话,那么就以这个SOA的设置值为主。ttl的意思是当这笔记录被其他DNS服务器查询到后,这个记录会在对方DNS服务器的缓存中,保持多久时间。如果写了$TTL,则以该值为准。

时间单位:M(分钟),H(小时),D(天),W(周),默认是秒

[root@localhost ~]# vim /var/named/named.baidu.com
$TTL 1D
@ IN SOA @ admin.baidu.com. ( 0 1D 1H 1W 3H )
IN NS ns.baidu.com.
IN MX 10 mail.baidu.com.
ns IN A 172.24.8.128
mail IN A 172.24.8.128
www IN A 172.24.8.128
ftp IN CNAME www
[root@localhost ~]# systemctl restart named
[root@localhost ~]# systemctl disable firewalld --now
[root@webserver ~]# setenforce 0
#客户端测试
host [-a] FQDN [server]
nslookup [FQDN] [server]
dig [options] FQDN [@server]
options:+trace代表从.开始追踪;-t type查询的数据主要有MX、NS、SOA、A等类型;-x查
询反解信
息
[root@localhost ~]# host www.baidu.com 172.24.8.128
[root@localhost ~]# nslookup www.baidu.com 172.24.8.128
[root@localhost ~]# dig -t A www.baidu.com @172.24.8.128

实验2:反向解析

[root@localhost ~]# vim /etc/named.conf
zone "8.24.172.in-addr.arpa" IN {
type master;
file "named.172.24.8";
};
#反向区域文件
[root@localhost ~]# vim /var/named/named.172.24.8
$TTL 1D
@ IN SOA ns.baidu.com. admin.baidu.com. ( 0 1D 1H 1W 3H )
IN NS ns.baidu.com.
128 IN PTR ns.baidu.com.
128 IN PTR www.baidu.com.
128 IN PTR mail.baidu.com.
128 IN PTR ftp.baidu.com.
#反解需要注意:主机名尽量使用完整的FQDN,即要写上“.”
#客户端测试
[root@localhost ~]# host 172.24.8.128 172.24.8.128
[root@localhost ~]# nslookup 172.24.8.128 172.24.8.128
[root@localhost ~]# dig -x 172.24.8.128 @172.24.8.128

实验3:主从DNS服务器

将一个区域文件复制到多个服务器上的过程叫做区域传送。将主服务器上的信息复制到辅助服务器上来实现。

1)完全区域传送:复制整个区域文件

#主DNS服务器的配置【主dns服务器的ip地址为172.24.8.128】
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { 172.24.8.128; };
directory "/var/named";
allow-transfer { 172.24.8.129; };
};
zone "baidu.com" IN {
type master;
file "named.baidu.com";
};
[root@localhost ~]# vim /var/named/named.baidu.com
$TTL 1D
@ IN SOA @ admin.baidu.com. ( 0 1D 1H 1W 3H )
IN NS ns.baidu.com.
IN NS slave.baidu.com.
IN MX 10 mail.baidu.com.
ns IN A 172.24.8.128
slave IN A 172.24.8.129
mail IN A 172.24.8.128
www IN A 172.24.8.128
ftp IN CNAME www
[root@localhost ~]# systemct restart named
#从DNS服务器的配置【从dns服务器的ip地址为172.24.8.129】
[root@localhost ~]# yum install bind -y
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { 172.24.8.128; };
directory "/var/named";
};
zone "baidu.com" IN {
type slave;
file "slaves/named.baidu.com";
masters {172.24.8.128;};
};
[root@localhost ~]# systemctl restart named
#测试
[root@localhost ~]# host www.baidu.com 172.24.8.129

2)增量区域传送:仅复制区域里变化的文件

#修改主服务器的区域配置文件,序号比之前的序号大【注:区域文件里面必须要写从服务器的NS和A记
录】
#主DNS服务器的配置【主dns服务器的ip地址为172.24.8.128】
[root@localhost ~]# vim /var/named/named.baidu.com
$TTL 1D
@ IN SOA @ admin.baidu.com. ( 1 1D 1H 1W 3H )
IN NS ns.baidu.com.
IN NS slave.baidu.com.
IN MX 10 mail.baidu.com.
ns IN A 172.24.8.128
slave IN A 172.24.8.129
mail IN A 172.24.8.128
www IN A 172.24.8.128
ftp IN CNAME www
www1 IN CNAME www
[root@localhost ~]# systemct restart named

1


原文地址:https://blog.csdn.net/m0_73832254/article/details/143785273

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!