Bind DNS--域名解析协议

1、dns概念:
DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。
DNS系统使用的是网络的查询,那么自然需要有监听的port。DNS使用的是53端口,在/etc/services(搜索domain)这个文件中能看到。通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次以TCP这个协议来重新查询。所以启动DNS时,会同时启动TCP以及UDP的port53。
1.1因特网的域名结构
由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。“域”(domain)是名字空间中一个可被管理的划分。
域名只是逻辑概念,并不代表计算机所在的物理地点。域名可分为三大类:
(1)国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(country code top-level domains,cc表示国家代码contry-code)。
(2)通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。
(3)基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名
1.2域名服务器类型
根据域名服务器起的作用,可以把域名服务器划分为以下类型:
(1)根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。所以根域名服务器是最重要的域名服务器。
(现如今全球一共投放13个根服务器,根服务器主要用来管理互联网的主目录,全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本)
(2)顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。
(3)权限域名服务器:负责一个“区”的域名服务器。
(4)本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。
(5)DNS缓存服务器:不负责解析域,只是缓存域名解析的结果
(6)转发服务器:凡是可以向其他DNS服务器转发解析请求的DNS服务器都称为转发DNS服务器
其中(1、2、3)统称为授权服务器
在这里插入图片描述
在这里插入图片描述

2 DNS域名解析的过程

以在浏览器中输入例如www.qq.com这个域名为例

  1. 先查询本地hosts文件是否存在该网址映射关系,若存在则解析成功
  2. 若本地hosts文件中不存在映射关系,将查询本地dns解析器缓存中是否存在该网址的映射关系,若存在则解析完成。
  3. 若以上两步都没有映射关系,则查找本地dns服务器,即tcp/ip中设置的首选dns服务器,若所要查询的域名包含在本地区域配置资源中,则会将对应的ip地址返回给主机,完成解析
  4. 如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
  5. 如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回给本地dns服务器一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理qq.com的DNS服务器地址给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www . qq .com主机。
    在这里插入图片描述
    查询方式:
    递归:客户端向指定的服务器查询
    迭代:DNS服务器之间查询

3、dns解析方式:

3 DNS解析方式
正向解析:将FQDN(域名)----->IP
反向解析:将IP----->FQDN(域名)

4、配置:

1、正向解析:域名——>ip

1 )安装bind软件

[root@kongd ~]# yum install -y bind      //提供bind dns服务的套件叫bind但是执行服务名称是named
[root@kongd ~]# systemctl stop firewalld    //临时将防火墙以及selinux设置为警告模式
[root@kongd ~]# setenforce 0
也可以不停止防火墙,但是要放行dns服务:
[root@kongd ~]# firewall-cmd --permanent --add-service=dns
[root@kongd named]# firewall-cmd --reload

2) 查看配置文件:(只介绍其中几个重要的配置文件)

[root@llh ~]# rpm -qc bind
/etc/logrotate.d/named
**/etc/named.conf**        //bind主配置文件 
/etc/named.iscdlv.key
**/etc/named.rfc1912.zones**     //定义zone区域的文件
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named    //启动服务时的相关文件
/var/named/named.ca    // 根解析库----/var/named是数据配置文件目录
/var/named/named.empty    
/var/named/named.localhost    //本地主机解析库
/var/named/named.loopback   

3)配置主配置文件
注意配置时每一句都有分号结尾

[root@llh ~]# vim /etc/named.conf
options {
        listen-on port 53 { 192.168.154.140; };   //对哪一个主机进行监听
//      listen-on-v6 port 53 { ::1; };       //不使用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.150/24; };   //允许谁访问查询(允许所有--any)
        :wq 保存退出
 [root@llh ~]# named-checkconf      //语法检查
        

4)配置区域文件:

[root@llh ~]# vim /etc/named.rfc1912.zones 
zone "huhu.com" IN {                               //域名区域
        type master;                           //类型为主区域类型
         file "huhu.com.zone";            //区域文件--域名后面要带.zone
        allow-update { none; };           //允许谁更新
};

type类型:
主DNS服务器:数据修改 (接受用户请求返回数据)master 权限域名服务器
辅助dns服务器:定期请求数据同步 slave
缓存dns服务器:只缓存dns数据 hint -----无解析功能
在这里插入图片描述
5)配置上述区域文件中的 file “huhu.com.zone”; 数据文件:
注意:建议复制模板文件进行配置:

[root@llh ~]# cd /var/named
[root@llh named]# ll 
total 16    //只展示所需内容
-rw-r-----. 1 root  named  152 Jun 21  2007 named.localhost  //正向区域配置模板
-rw-r-----. 1 root  named  168 Dec 15  2009 named.loopback
[root@llh named]# cp -p named.localhost huhu.com.zone    //拷贝模板
[root@llh named]# vim huhu.com.zone
$TTL 1D
@       IN SOA  ns1.huhu.com. admin.huhu.com. (
                                        2020021201      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns1
        MX 5    mail.huhu.com.
ns1     A       192.168.154.140
mail    A       192.168.154.140
www     A       192.168.154.11
web     CNAME   www
 :wq
 [root@llh named]# named-checkzone huhu.com /var/named/huhu.com.zone   //区域数据文件语法检测
zone huhu.com/IN: loaded serial 2020021201
OK       //表示没有语法错误

注意: @表示起始授权记录处指定的区域(huhu.com域名),此时下面资源记录参数中均可将huhu.com.域省略Com后面一定要加点,才能表示出完整的格式,而后面IN前面省略了@则是因为可以继承上面的SOA前面的name
相关知识补充:
资源记录是DNS区域中用于指定某个特定名称或对象的信息条目。一个资源记录包含5个字段,并按以下格式组织:
Owner-name TTL class type data
www.dyzx.edu 500 IN A 192.168.1.3
在这里插入图片描述
DNS资源记录及其种类
①SOA记录——起始授权(Start Of Authority)记录,每个区域都有一条SOA记录,用于指定本区域内负责解析的DNS服务器中哪个是主授权服务器,以及管理区域的负责人的邮箱地址和主、辅授权DNS服务器之间实现数据同步的控制参数
②NS记录——域名服务器(Name Server)记录,用于将域名映射到区域内的授权DNS服务器。区域内每个公开的主/辅授权DNS服务器都有一条NS记录。
③A记录——也称正向解析记录,用于说明一个域名对应的IPv4地址是什么。
④AAAA记录——用于说明一个域名对应的IPv6地址,即将域名映射到IPv6地址。
⑤CNAME记录——别名(Canonical Name)记录,用于给主机设置另外一个新域名,该记录是新域名到原域名的映射。此前的原域名应设置过相应的A记录或AAAA记录。
⑥PTR记录——也称指针记录或反向解析记录,用于将IP地址逆向映射到域名。
⑦MX记录——邮件交换(Mail Exchange)记录,用于将属于该区域的邮件域(即邮箱地址@后面的字符串)映射到邮件服务器的域名。
⑧SRV记录——用于查找支持“Windows域”服务的特定主机
6):启动服务并测试:
[root@llh named]# systemctl start named //注意服务名称
安装本地测试软件:
[root@llh named]# yum install bind-utils -y

  • 临时测试:
    1. nslookup
[root@llh named]# nslookup       -----**交互式**
> server 192.168.154.140#53
^C[root@llh named]# 
[root@llh named]# nslookup
> server 192.168.154.140      //临时指定主机
Default server: 192.168.154.140
Address: 192.168.154.140#53
> www.huhu.com           //测试域名  
Server:		192.168.154.140
Address:	192.168.154.140#53
Name:	www.huhu.com
Address: 192.168.154.11        //解析成功
> web.huhu.com              //测试别名
Server:		192.168.154.140
Address:	192.168.154.140#53
web.huhu.com	canonical name = www.huhu.com.
Name:	www.huhu.com         //解析成功
Address: 192.168.154.11         //域名对应ip地址
> set type=mx               //测试邮件服务器需要指定类型
> huhu.com
Server:		192.168.154.140
Address:	192.168.154.140#53
huhu.com	mail exchanger = 5 mail.huhu.com.              //解析成功
> exit      //退出
[root@llh named]# nslookup ns1.huhu.com 192.168.154.140       ----**-非交互式**
Server:		192.168.154.140
Address:	192.168.154.140#53
Name:	ns1.huhu.com
Address: 192.168.154.140
  1. host //与nslookup用法类似,但可以 -t 指定资源记录中type类型
[root@llh named]# host ns1.huhu.com 192.168.154.140 
Using domain server:
Name: 192.168.154.140
Address: 192.168.154.140#53
Aliases: 
ns1.huhu.com has address 192.168.154.140   //解析成功
[root@llh named]# host -t MX huhu.com 192.168.154.140   //-t 指定邮件类型mx(不区分大小写)
Using domain server:
Name: 192.168.154.140
Address: 192.168.154.140#53
Aliases: 
huhu.com mail is handled by 5 mail.huhu.com.   //解析成共
  1. dig
[root@llh named]# dig -t MX huhu.com @192.168.154.140 
  • 永久测试:
    修改配置文件:/etc/resolv.conf
[root@llh named]# vim /etc/resolv.conf 
search huhu.com            //修改搜索域名
nameserver 192.168.154.140     //添加自己的dns服务器ip
nameserver 192.168.154.1
:wq

此时测试时:
[root@llh named]# host -t MX huhu.com
huhu.com mail is handled by 5 mail.huhu.com. //不用指定dns服务器ip即可解析成功

2.反向解析:ip--------->域名

在以上正向解析的基础上修改以下部分:
1、修改区域配置文件
[root@llh named]# vim /etc/named.rfc1912.zones
zone “154.168.192.in-addr.arpa” IN { // “ ”内为网络位倒着写
type master;
file “192.168.154.zone”;
allow-update { none; };
};
图中红色框为模板,蓝色为参照模板缩写内内容在这里插入图片描述
2、配置上述区域文件中的 file “192.168.154.zone”; 数据文件:
依旧拷贝模板:

[root@llh named]# pwd
/var/named
[root@llh named]# ll
total 20
-rw-r-----. 1 root  named  152 Jun 21  2007 named.localhost
-rw-r-----. 1 root  named  168 Dec 15  2009 named.loopback  //反向解析模板
[root@llh named]# cp -p named.loopback 192.168.154.zone   //复制模板
[root@llh named]# vim 192.168.154.zone    //注意:一定要对应正向解析的域名和ip写
$TTL 1D
@       IN SOA  ns1.huhu.com. admin.huhu.com. (
                                        2020031201      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
           NS      ns1.huhu.com.     //反向解析此处一定要写完整
ns1      A       192.168.154.140
140     PTR     ns1.huhu.com.      //前面写上正想解析中对应的主机
           PTR     mail.huhu.com.     //前面没写代表继承上一个主机位
11       PTR     www.huhu.com.
11       PTR     web.huhu.com.      
:wq
检测语法是否有误:
[root@llh named]# named-checkconf    //检测主配置文件
[root@llh named]# named-checkzone huhu.com 192.168.154.zone    //检测zone
zone huhu.com/IN: loaded serial 2020031201
OK          //语法正确

3、重启测试:

[root@llh named]# systemctl restart named
由于正向解析中已经配置过永久解析,所以此处直接使用:
[root@llh named]# host -t ptr 192.168.154.140  
140.154.168.192.in-addr.arpa domain name pointer ns1.huhu.com.   
140.154.168.192.in-addr.arpa domain name pointer mail.huhu.com.  

[root@llh named]# host -t ptr 192.168.154.11    
11.154.168.192.in-addr.arpa domain name pointer www.huhu.com.
11.154.168.192.in-addr.arpa domain name pointer web.huhu.com.

[root@llh named]# nslookup 192.168.154.140
Server:		192.168.154.140
Address:	192.168.154.140#53
140.154.168.192.in-addr.arpa	name = ns1.huhu.com.
140.154.168.192.in-addr.arpa	name = mail.huhu.com.

dig -x 192.168.154.140    //可以查看更多解析出来的详细信息
发布了34 篇原创文章 · 获赞 26 · 访问量 1708

猜你喜欢

转载自blog.csdn.net/Alkaid__3/article/details/104785139