Linux网络之DNS域名解析服务

目录

1、DNS的自我介绍:

2、DNS服务器类型:

(1)缓存域名服务器:

(2)主域名服务器:

(3)从域名服务器:

3、DNS查询类型及原理:

4、正向解析:

5、 Linux网络服务之DNS正反向解析项目实验:

DNS反向解析:


1、DNS的自我介绍:

 在TCP/IP网络中的设备之间进行通信,是利用和依赖于IP地址实现的。但数字形式的IP地址是很难记(64.233.189.147),而域名形式的地址更加直观和更容易被用户记住(www.baidu.com)。

域名解析:是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。

域名解析:也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。

2、DNS服务器类型:

(1)缓存域名服务器:

提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。

(2)主域名服务器:

管理和维护所负责解析的域内解析库的服务器。

(3)从域名服务器:

从主服务器或从服务器"复制"(区域传输)解析库副本。

扩充:

IPv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个,英国1,瑞典1,日本1

IPv6的根名称服务器:全球共25个,中国1主3从,美国1主2从

3、DNS查询类型及原理:

(1)递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)

(2)迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)

Linux网络之DNS域名解析服务

本地名称解析配置文件:hosts
Linux: /etc/hosts
windows: c/windows/system32/drivers/etc/hosts

windows系统查询dns缓存命令:ipconfig /displaydns
windows系统清理dns缓存命令:ipconfig /flushdns

大型、分布式的互联网DNS解析库:

根. 根域名DNS服务器:专门负责根域名;

一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区);

.com(工商 企业)        .net(网络供应商)      .edu(教育机构)         .cn(中国国家域名)        .org(团体组织)        .gov (*部门)

Linux网络之DNS域名解析服务

 补充部分域名地址:

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

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

223.5.5.5 和 223.6.6.6 是阿里云DNS。

4、正向解析:

区域解析库:由众多资源记录RR(Resource Record)组成;

记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX;

SOA:起始授权记录,一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录;

A(internet Address):作用,域名解析成IP地址。

AAAA(FQDN): --> IPV6。

PTR(PoinTeR):反向解析,ip地址解析成域名。

NS(Name Server):专用于标明当前区域的DNS服务器,服务器类型为域名服务器。

CNAME :别名记录。

MX(Mail eXchanger):邮件交换器。

TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等;

#固定格式
name    [TTL]       IN              rr_type         value
        缓存时间     internet记录     区域解析库        值


$TTL 1D
@       IN SOA  master.abc.com. admin.abc.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master.abc.com.
master  A       192.168.91.100
www     A       192.168.91.103
db      A       192.168.91.101
IN      MX 10   mail.abc.com.
mail    A       192.168.91.10
ftp     CNAME   www



$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.80.10        #记录主机IP地址
IN   MX 10    mail.benet.com.      #MX为邮件交换记录,数字越大优先级越低
www  IN A     192.168.80.10        #记录正向解析www.benet.com对应的IP
mail IN A     192.168.80.11        #MX为邮件交换记录,数字越大优先级低 
ftp  IN CNAME  www                 #CNAME使用别名,ftp 是www的别名
*    IN A   192.168.80.100         #泛域名解析,“*"代表任意主机名

5、 Linux网络服务之DNS正反向解析项目实验:

#yum仓库安装bind软件包
[root@localhost ~]#yum install bind bind-utils -y
#关闭防火墙
[root@localhost ~]#systemctl stop firewalld.service
[root@localhost ~]#setenforce 0
#开启服务
[root@localhost ~]#systemctl start named
#过滤查看一下named
[root@localhost ~]# netstat -natp | grep named
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      2136/named          
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      2136/named          
tcp6       0      0 ::1:53                  :::*                    LISTEN      2136/named          
tcp6       0      0 ::1:953                 :::*                    LISTEN      2136/named          
#更改网卡域名DNS地址
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 
DNS1=127.0.0.1
#重启网卡
[root@localhost ~]#systemctl restart network
#查看配置文件包
[root@localhost ~]# 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

#先host一下百度域名地址
[root@localhost ~]# host www.baidu.com
;; connection timed out; no servers could be reached
#修改一下配置
[root@localhost ~]#vim /etc/named.conf 
#可以修改配置,注释,或者删除这两行
listen-on port 53 { any; };
allow-query     { any; };
# // listen-on port 53 { 127.0.0.1; };
# // allow-query     { localhost; };

#重新加载DNS服务
[root@localhost ~]#rndc reload
server reload successful
#再host一下百度域名
[root@localhost ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 180.101.49.11
www.a.shifen.com has address 180.101.49.12

#自己编写域名
[root@localhost named]# vim /etc/named.rfc1912.zones 
zone "apple.com" {
   type master;
   file "apple.com.zone";
   allow-update { none; };
};
#再cd到 /var/named目录下
[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
#保留权限复制
[root@localhost named]# cp -p named.localhost apple.com.zone
#编辑数据库文件,解析记录对应关系
[root@localhost named]#vim apple.com.zone
$TTL 1D
@       IN SOA  master.apple.com. admin.apple.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master.apple.com.
master  IN      A       192.168.59.131
www             A       192.168.59.132
                MX  10  mail.apple.com.
mail    IN      A       192.168.59.30
ftp     IN      CNAME   www
*               A       192.168.59.132   #代表泛域名
@               A       192.168.59.132   #代表不需要主机名字
#重启一下服务
[root@localhost named]# rndc reload
server reload successful
#客户端1访问服务器编写的域名
[root@localhost ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.59.131
[root@localhost ~]# host www.apple.com
www.kgc.com has address 192.168.59.132
www.kgc.com mail is handled by 10 mail.kgc.com.
[root@localhost ~]# host mail.kgc.com
mail.kgc.com has address 192.168.59.30
[root@localhost ~]# host wwwwwwww.kgc.com
wwwwwwww.kgc.com has address 192.168.59.132
[root@localhost ~]# host kgc.com
kgc.com has address 192.168.59.132
#客户端2做http服务实验,测试
#先yum安装httpd软件包
[root@localhost ~]# yum install httpd -y
已安装:
  httpd.x86_64 0:2.4.6-97.el7.centos                                               
作为依赖被安装:
  apr.x86_64 0:1.4.8-7.el7                      apr-util.x86_64 0:1.5.2-6.el7     
  httpd-tools.x86_64 0:2.4.6-97.el7.centos      mailcap.noarch 0:2.1.41-2.el7     

完毕!
[root@localhost ~]# cd /var/www/html
[root@localhost html]# ls
[root@localhost html]# vim index.html
[root@localhost html]# ls
[root@localhost html]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.59.132  netmask 255.255.255.0  broadcast 192.168.59.255
#开启httpd服务
[root@localhost html]# systemctl start httpd


#服务器端或浏览器访问IP地址
[root@localhost named]# curl 192.168.59.132
hello word....
[root@localhost named]# curl www.apple.com
hello word....

DNS反向解析:

#服务器端
#先修改区域配置文件(在文末添加)
zone "59.168.192.in-addr.arpa" IN {
        type master;
        file "yun.com.zone";
        allow-update { none; };
};
#复制正向解析文件
[root@localhost named]# cp apple.com.zone yun.com.zone -p
#编辑文件
[root@localhost named]# vim yun.com.zone 
$TTL 1D
@       IN SOA  master.yun.com. admin.yun.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master.yun.com.
master  IN      A       192.168.59.131
100     IN      PTR     www.yun.com.
88      IN      PTR     db.yun.com.
#重启服务
[root@localhost named]# rndc reload
server reload successful

#客户端进行验证
[root@localhost ~]# host 192.168.59.100
100.59.168.192.in-addr.arpa domain name pointer www.yun.com.
[root@localhost ~]# host 192.168.59.88
88.59.168.192.in-addr.arpa domain name pointer db.yun.com.

总结:

DNS在网络中是非常重要的,各大厂面试题里的常驻选手,大家可以多了解一下域名解析服务的原理及步骤,能够构建主从域名和分离解析域名服务器。

上一篇:Nginx教程(三) Nginx日志管理


下一篇:Linux分离解析