DNS服务详解

本文详细介绍了DNS系统的工作原理,包括域名系统结构、查询过程、迭代与递归查询的区别,以及根域、顶级域和二级域的关系。同时,列举了DNS常用术语如A记录、AAAA记录、CNAME记录等,并简述了DNS服务的搭建和配置文件。

一、DNS简介
  DNS(Domain Name System,缩写为DNS)即域名系统,域名系统是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。DNS域名系统的主要组成部分是解析器和域名服务器,服务器有转发服务器和主服务器两种。在同一个网络中,所有主机的IP地址及其对应的域名都被保存在域名服务器中,一个IP地址能对应很多个域名,一个域名则只能对应一个相应的IP地址。因为一个服务器对应一个IP地址,在一台只有一个IP地址的服务器上可以有多个网站,而不同的网站域名是不同的,所以可以有多个域名。
  DNS是一种可以将域名和IP地址相互做映射的层次结构的分布式数据库系统,它主要包括了域名空间(domain name space)和资源记录、域名服务器(name server)、解析器(resolver);
  在这里插入图片描述
  DNS系统采用递归查询请求的方式来相应用户的查询,其一般过程如下:
    1)客户端首先向首选域名服务器查询;
    2)首选域名服务器检查本地资源记录,如果存在则作权威回答,如果不存在,则检查本地缓存,如果有记录则直接返
      回结果。若本地资源记录和缓存记录都不存在,则向根域名服务器查询;
    3)根域名服务器返回相应顶级域的权威域名服务器的地址,首选域名服务器继续向该顶级权威域名服务器查询;
    4)顶级权威域名服务器返回次级域的权威域名服务器地址,首选域名服务器如此迭代查询,直到得到对查询域名的权
      威回答,保存在本地缓存中并返回给客户端,完成此次查询;
     
     在这里插入图片描述

查询方式:
  迭代查询:客户端从本地DNS服务器发出请求后,一直处于等待状态,直到本地名称服务器返回查询结果。
  递归查询:客户端和本地DNS服务器的查询就属于递归查询,客户端发出查询请求后处于等待状态,本地DNS以客户端的
       身份询问下一个DNS服务器,直到本地DNS服务器返回确定回复或者否定回复。
       在这里插入图片描述
  
 根域、顶级域、二级域和主机名关系图
 在这里插入图片描述
 全球共有13台DNS根域服务器,顶级域是由Internet名称授权机构管理,两两种常见类型,组织域:.com(商业)、.org(组织)、.edu(教育)、.gov(政府)、.net(通讯)、.mil(军事)、.info(信息);国家或者地区顶级域:cn(中国)、hk(中国香港)、uk(英国)等。

DNS常用术语:
  主机名:因特网上的主机或Web站点的名称。主机名映射到IP地址,但是主机名和IP地址之间没有一对一关系。
  A记录:代表主机名和IP地址的对应关系,即将名称转换为IP地址,A记录是对一个IPv4地址指定一个域名。
  AAAA记录:是对一个IPv6地址与指定的域名转换映射的关系。
  RR:资源记录,用来存放与域名相关的数据。每条资源记录都包括域名、生存时间、信息类型、资源记录和值五项。
  TTL:生存时间,DNS记录被外部DNS服务器缓存的时间总和,已秒为单位。
  CNAME记录:一种特殊的DNS记录,用来创建域名的别名。例如www.aaa.com.cn是aaa.com.cn的别名,也就是用户访
         问www.aaa.com.cn将被指向到和aaa.com.cn相同的IP地址。当IP地址发生变化时只需要更新aaa.com.cn的
         入口,www.aaa.com.cn会自动指向到正确地地方。
  NS记录:域名服务器记录,用来指定由哪个DNS服务器解析域名。
  MX记录:邮件交换记录,用来指定由哪台邮件服务器负责接收给定域名网站的邮件,主要对给定域名网站的邮件接收服务
       器进行记录。在不止一台邮件服务器的情况下一般由最低优先权(容易获取的)的服务器来接收邮件。
  SOA记录:起始授权记录,位于zone文件中的第一条资源记录,提供zone的基本数据(如区域的源名称、作为区域主要信
        息源的服务器名称和该区域的其他基本属性等)和更新时间参数。
  TXT记录:用来保存域名的附加文本信息。
   PTR:代表从IP地址到查找主机名的映射。

二、DNS服务搭建

[root@yang ~]# yum install   bind   bind-chroot  bind-utils   -y
			//安装服务软件包
			
[root@yang ~]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback

配置文件介绍:
  /etc/named.cof:BIND的主文件,设置一般的name参数,指向该服务器使用的域数据库的信息源。
  /var/named/named.ca:根域名配置服务器指向文件,指向根域名配置服务器,用于告诉缓存服务器的初始化。
  /var/named/localhost.zone:localhost区正向域名解析文件,用于将本地IP地址(127.0.0.0)转换为本地回送IP地
               址(127.0.0.1)
  /var/named/name.local:localhost区反向域名解析文件,用于将localhost名字转换为本地回送IP地址(127.0.0.1)
  /etc/named.rfc1912.zones:区块设置文件

[root@yang ~]# vim /etc/named.conf 
12 options {
 13         listen-on port 53 { any; };     //监听的地址改为本机所有地址;
 14         listen-on-v6 port 53 { ::1; };
 15         directory       "/var/named";
 16         dump-file       "/var/named/data/cache_dump.db";
 17         statistics-file "/var/named/data/named_stats.txt";
 18         memstatistics-file "/var/named/data/named_mem_stats.txt";
 19         recursing-file  "/var/named/data/named.recursing";
 20         secroots-file   "/var/named/data/named.secroots";
 21         allow-query     { any; };    //接受的查询地址也改为所有地址;

[root@yang ~]# named-checkconf /etc/named.conf  //检查配置文件是否有语法错误
[root@yang ~]# systemctl start   named   //启动named服务
[root@yang ~]# ss -tunlp | grep "53"	//查看端口是否监听
udp    UNCONN     0      0      192.168.149.151:53                    *:*                   users:(("named",pid=46843,fd=519),("named",pid=46843,fd=518),("named",pid=46843,fd=517),("named",pid=46843,fd=516))
udp    UNCONN     0      0      127.0.0.1:53                    *:*                   users:(("named",pid=46843,fd=515),("named",pid=46843,fd=514),("named",pid=46843,fd=513),("named",pid=46843,fd=512))
udp    UNCONN     0      0       ::1:53                   :::*                   users:(("named",pid=46843,fd=523),("named",pid=46843,fd=522),("named",pid=46843,fd=521),("named",pid=46843,fd=520))
tcp    LISTEN     0      10     192.168.149.151:53                    *:*                   users:(("named",pid=46843,fd=22))
tcp    LISTEN     0      10     127.0.0.1:53                    *:*                   users:(("named",pid=46843,fd=21))
tcp    LISTEN     0      128    127.0.0.1:953                   *:*                   users:(("named",pid=46843,fd=24))
tcp    LISTEN     0      10      ::1:53                   :::*                   users:(("named",pid=46843,fd=23))
tcp    LISTEN     0      128     ::1:953                  :::*                   users:(("named",pid=46843,fd=25))

[root@yang ~]# nslookup www.baidu.com   //做一下解析测试
Server:		192.168.149.2
Address:	192.168.149.2#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 112.80.248.75
Name:	www.a.shifen.com
Address: 112.80.248.76

[root@yang ~]# vim /etc/named.rfc1912.zones  //编辑区域注册配置文件
zone "jyy.com" IN {   //添加一个jyy.com的域名配置
        type master;  //设置为主区域
        file "jyy.com.zone";   //设置区域文件名称
        allow-update { none; };	//设定是否允许自动更新
};

zone "149.168.192.in-addr.arpa" IN {   //设置反向解析网段
        type master;    //设置为主区域
        file "149.168.192.zone";  //设置区域文件名称
        allow-update { none; };   //设置是否允许自动更新
};

[root@yang ~]# cd /var/named/
[root@yang named]# cp -a named.localhost  jyy.com.zone  
				  //正向解析文件。要与named.rfc1912.zone中的file定义的相同
[root@yang named]# cp -a  named.loopback  149.168.192.zone
				 //反向解析文件。要与named.rfc1912.zone中的file定义的相同
[root@yang named]# vim jyy.com.zone 
$TTL 1D
@       IN SOA  @ admin.jyy.com. (  //起始授权记录及管理员地址
                                        0       ; serial   //序列号
                                        1D      ; refresh   //刷新时间
                                        1H      ; retry	//重试时间
                                        1W      ; expire	   //过期时间
                                        3H )    ; minimum	   //否定答案的TTL值
        NS      www.jyy.com.
www     A       192.168.149.151
ns1     A       192.168.149.100
ns2     A       192.168.149.200
bbs     A       192.168.149.111

[root@yang named]# vim 149.168.192.zone 
$TTL 1D
@       IN SOA  @ admin.jyy.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      www.jyy.com.  
www     A       192.168.149.151
11      PTR     aaa.jyy.com.
22      PTR     bbb.jyy.com.

[root@yang named]# named-checkzone "jyy.com."  jyy.com.zone    //检查区域文件语法错误
zone jyy.com/IN: loaded serial 0
OK
[root@yang named]# named-checkzone "jyy.com."  149.168.192.zone 
zone jyy.com/IN: loaded serial 0
OK

[root@yang ~]# vim /etc/resolv.conf   //编辑本机DNS文件
# Generated by NetworkManager
search localdomain
nameserver 192.168.149.151    //指明DNS服务器地址为本地地址

[root@yang ~]# systemctl restart named	//重启服务

======= 测试正向解析 ========
[root@yang ~]# nslookup www.jyy.com
Server:		192.168.149.151
Address:	192.168.149.151#53

Name:	www.jyy.com
Address: 192.168.149.151

[root@yang ~]# nslookup ns1.jyy.com
Server:		192.168.149.151
Address:	192.168.149.151#53

Name:	ns1.jyy.com
Address: 192.168.149.100

[root@yang ~]# nslookup ns2.jyy.com
Server:		192.168.149.151
Address:	192.168.149.151#53

Name:	ns2.jyy.com
Address: 192.168.149.200

[root@yang ~]# nslookup bbs.jyy.com
Server:		192.168.149.151
Address:	192.168.149.151#53

Name:	bbs.jyy.com
Address: 192.168.149.111


======= 测试反向解析 ========
[root@yang ~]# nslookup 192.168.149.11
Server:		192.168.149.151
Address:	192.168.149.151#53

11.149.168.192.in-addr.arpa	name = aaa.jyy.com.

[root@yang ~]# nslookup 192.168.149.22
Server:		192.168.149.151
Address:	192.168.149.151#53

22.149.168.192.in-addr.arpa	name = bbb.jyy.com.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值