DNS服务理论详解+DNS主从服务实操-centos7

  • 理论部分

  • 1、什么是DNS

DNS(Domain Name System)域名系统
在Internet中使用IP地址来确定计算机的地址,这种以数字表示的IP地址不容易记忆。为了便于对网络地址的管理和分配,人们采用了域名系统,引入了域名的概念。通过为每台主机建立IP地址与域名之间的映射关系,用户可以避开难记的IP地址,而使用域名来唯一标识网络中的计算机。域名和IP地址之间的关系,就像是某人的姓名和身份证号码之间的关系,显然,记住名字比记住身份证号码容易的多。

2、主机名和域名的区别

主机名是内网的名字;域名是外网的名字。
主机名和域名其实是两个完全可以不同的名字,但是有很多软件(如邮件系统postfix)会默认认为它们一致。

3、在DNS中,域名包括根域、顶级域、二级域和主机名。如下图

在这里插入图片描述

全世界共有13台DNS根域服务器。
顶级域:由Internet名称授权机构管理,有两种常见的类型,如下:组织域:.com(商业) 、 .org (组织) 、 .edu(教育) 、 .gov (政府) 、 .net(通讯) 、 .mil(军事) 、 .info(信息)
国家或地区顶级域:
Cn(中国) 、 hk(中国香港) 、 uk(英国) 等

4、域名解析过程

在这里插入图片描述

域名解析的过程:

  • 第一步:客户端用户从浏览器输入www.baidu.com网站网址后回车,系统会查询本地hosts文件及DNS缓存信息,查找是否存在网址对应的IP解析记录。如果有就直接获取到IP地址,然后访问网站,一般第一次请求时,DNS缓存是没有解析记录的;
  • 第二步:如果客户端没有DNS缓存或hosts没有对应www.baidu.com网站网址的域名解析记录,那么,系统会把浏览器的解析请求,交给客户端本地设置的DNS服务器地址解析(此DNS为LDNS,即Local DNS),如果LDNS服务器的本地缓存有对应的解析记录,就会直接返回IP地址;如果没有,LDNS会负责继续请求其它的DNS服务器;
    第三步:LDNS会从DNS系统的“.”根开始请求www.baidu.com域名的解析,经过一系列的查找各个层次DNS服务器,最终会查找到www.baidu.com域名对应的授权DNS服务器,而这个授权DNS服务器,正是该企业购买域名时用于管理域名解析的服务器。这个服务器有www.baidu.com对应的IP解析记录,如果此时都没有,就表示企业的运维人员么有给www.baidu.com域名做解析;
  • 第四步:baidu.com域名对应的授权DNS服务器会把www.baidu.com对应的最终IP解析记录发给LDNS;
  • 第五步:LDNS把收到来自授权DNS服务器关于www.baidu.com对应的IP解析记录发给客户端浏览器,并且在LDNS本地把域名和IP的对应解析缓存起来,以便下一次更快的返回相同的解析请求的记录;
  • 第六步:客户端浏览器获取到了www.baidu.com的对应IP地址,接下来浏览器会请求获得的IP地址对应的Web服务器,Web服务器接收到客户的请求并响应处理,将客户请求的内容返回给客户端浏览器;至此,一次访问浏览网页的完整过程就完成了。

5、查询的方式

从查询方式分类:
递归查询:客户端向dns服务求请求域名解析的查询过程
迭代查询:dns服务器向其他dns服务器查询的过程
从查询内容分类:
正向解析:根据主机名称(域名)查找对应的 IP 地址
反向解析:根据 IP 地址查找对应的主机域名

6、域的概念

实际上,每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”(区域),根据所管理的区域地址数据的来源不同,DNS系统可以分为不同的类型。在同一台DNS服务器中,相对于不同的区域来说,也拥有不同的身份。常见的几种类型如下:
缓存域名服务器
通过向其他域名服务器查询获得域名 -> IP 地址记录
将域名查询结果缓存到本地,提高重复查询时的速度
主域名服务器
特定 DNS 区域的官方服务器,具有唯一性
负责维护该区域内所有域名 -> IP 地址的映射记录
从域名服务器
也称为 辅助域名服务器
其维护的 域名 -> IP 地址记录 来源于主域名服务器

2、搭建DNS服务器

服务基础

服务基础:
软件包:bind
服务名:named
默认端口:53
配置文件:主配置文件+区域数据文件
主配置文件:/etc/named.conf
安装:
[root@localhost ~]# yum -y install bind

3、DNS和DNS从服务器

操作环境如下:

serverip
client192.168.20.20
DNS-server192.168.20.30
web-server192.168.20.40
  • 4、使用DNS服务器做域名解析

  • 在web服务器上安装web程序并且设置域名

[root@localhost ~]# yum -y install httpd

修改配置
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf 
 95 #ServerName www.example.com:80
 修改:
  95 ServerName www.abc.com:80 ##取消注释后修改域名,随意
完事后启动服务且查看是否启动
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# netstat -anput | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      4055/httpd    
  • 安装和配置DNS服务器

[root@localhost ~]# yum -y install bind
修改配置文件
修改之前
13         listen-on port 53 { 127.0.0.1; };
21         allow-query     { localhost; };
35         dnssec-enable yes;
36         dnssec-validation yes;
60 include "/etc/named.root.key";
修改之后如下:
13         listen-on port 53 { any; }; #监听的端口和主机
21         allow-query     { any; };#允许谁对DNS进行域名查询
35         //dnssec-enable yes; #用//注释
36         //dnssec-validation yes;#用//注释
60 //include "/etc/named.root.key"; #不需要再加载/etc/named.root.key  此行注释 
## dnssec可以为DNS数据提供来源验证,为数据提供完整性验证,为查询提供否定存在验证
## 配置文件中出现include 表示配置要在include的地方加载 include指定的文件内容


  • 正向解析和反向解析的配置
[root@localhost ~]# vim /etc/named.rfc1912.zones 
文件最后追加如下内容
zone "abc.com" IN {
        type master;
        file "abc.com.zone";
        allow-update { none; };
};
zone "20.168.192.in-addr.arpa" IN {
        type master;
        file "fanxiang.arpa";
        allow-update { none; };
};
编辑正向解析和反向解析
[root@localhost named]# cp -p named.localhost abc.com.zone
[root@localhost named]# vim abc.com.zone 

$TTL 1D
@       IN SOA  abc.com. admin.abc.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1

www IN A 192.168.20.40
ftp IN A 192.168.20.40
news IN A 192.168.20.40

参数释义如下:
@ 代表当前解析的域
SOA 表示起始授权记录
test.com.  解析的域
admin.test.com. 管理员邮箱地址
serials 当主服务器的解析库发生变化 此序列号会+1
refresh 从服务器向master请求同步解析记录的时间间隔
retry 如果请求同步解析记录失败 再次尝试的时间间隔
expire 当从服务器联系不上主服务器的时候 多久会停止服务
minimum 不存在的记录缓存的时间是多长

==反向解析如下:==
[root@localhost named]# cp -p abc.com.zone fanxiang.arpa
[root@localhost named]# vim fanxiang.arpa 
$TTL 1D
@       IN SOA  abc.com. admin.abc.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
40 IN PTR www.abc.com
40 IN PTR ftp.abc.com
40 IN PTR news.abc.com
~                           

检测语法并启动服务
[root@localhost named]# named-checkconf /etc/named.conf 
[root@localhost named]# named-checkconf /etc/named.rfc1912.zones 
[root@localhost named]#  named-checkzone abc.com abc.com.zone 
zone abc.com/IN: loaded serial 0
OK
[root@localhost named]# named-checkzone abc.com fanxiang.arpa 
zone abc.com/IN: loaded serial 0
OK
启动服务
[root@localhost named]# systemctl start named
[root@localhost named]# netstat -anput | grep named
tcp        0      0 192.168.20.30:53        0.0.0.0:*               LISTEN      5567/named 
为客户端设置DNS服务
[root@localhost ~]# vim /etc/resolv.conf
nameserver 192.168.20.30
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.20.30
客户端检测域名解析是否正常
[root@localhost ~]# nslookup www.abc.com
Server:		192.168.20.30
Address:	192.168.20.30#53

Name:	www.abc.com
Address: 192.168.20.40

客户端直接通过域名也可以访问

在这里插入图片描述

配置DNS从服务器

从服务器搭建在web服务器上  ##不想开机器
修改DNS主服务器(192.168.20.30)的设置 并重启服务
[root@localhost named]# vim /etc/named.rfc1912.zones 
zone "abc.com" IN {
        type master;
        file "abc.com.zone";
        allow-transfer { 192.168.20.40; }; #加上这行
        allow-update { none; };
};
zone "20.168.192.in-addr.arpa" IN {
        type master;
        file "fanxiang.arpa";
        allow-transfer { 192.168.20.40; };#加上这行
        allow-update { none; };
};
[root@localhost named]# named-checkconf /etc/named.rfc1912.zones 
[root@localhost named]# systemctl restart named
安装、配置、启动从服务
[root@localhost ~]# yum -y install bind
[root@localhost ~]# vim /etc/named.conf 
 13         listen-on port 53 { any; }; #监听的端口和主机
 21         allow-query     { any; };#允许谁对DNS进行域名查询
 35         //dnssec-enable yes; #用//注释
 36         //dnssec-validation yes;#用//注释
 60 //include "/etc/named.root.key"; #不需要再加载/etc/named.root.key  此行注释 

[root@localhost ~]# vim /etc/named.rfc1912.zones  #文件末尾 追加内容 如下
zone "abc.com" IN {
        type slave;
        masters { 192.168.20.30; };
        file "slaves/abc.com.zone";
};
zone "20.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.20.30; };
        file "slaves/fanxiang.arpa";
};

[root@localhost ~]# named-checkconf /etc/named.conf 
[root@localhost ~]# named-checkconf /etc/named.rfc1912.zones 
[root@localhost ~]# systemctl start named
为客服端DNS设置从服务端IP并进行验证
[root@localhost ~]# vim /etc/resolv.conf   
nameserver 192.168.20.40
[root@localhost ~]# nslookup www.abc.com
Server:         192.168.20.40
Address:        192.168.20.40#53

Name:   www.abc.com
Address: 192.168.20.40
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值