文章目录
前言
我们访问网站的时候一般都是会通过一个网址去访问其指定对应的网页,一般都不会通过IP地址去访问网站,因为同一个服务的不同区域的IP定位会有不同的划分,所以我们可以将多个不同的IP地址映射成同一个域名来进行访问,一方面避免了我们IP地址的不确定性,另一方面也简化了我们的网站访问
一、BIND域名服务基础
DNS–》bind(.rpm包的名称)
yum install bind
1、DNS概念
DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住IP。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)
2.为什么需要DNS解析域名为IP地址?
计算机在网络上通讯时只能识别IP地址(网络通讯大部分是基于TCP/IP协议,而TCP/IP是基于IP地址的),比如我要在浏览器中访问百度的地址,我可以在地址栏直接输入180.101.49.11就能访问到百度的首页。但是我们无法记住更多的IP地址。那么域名就出现了,域名是由一串用”.”分隔的唯一名字。所以现在我们访问网站的时候,就可以在浏览器地址栏中输入域名(www.baidu.com),那么DNS就会把域名翻译成IP,然后访问IP
3.DNS使用的协议及端口号
DNS的默认端口为53, DNS端口分为TCP和UDP
TCP是用来做区域传送,多用于主从同步
UDP是用来DNS解析的
4.DNS系统的作用及类型
正向解析:根据域名地址查找对应的IP地址
反向解析:根据IP地址查找对应的域名
DNS系统的分布式数据结构
根域:.
一级域名代表国家:.cn(中国)
二级域名代表组织机构:.com.cn(中国商业组织).edu.cn(教育机构)
子域/三级域:sina.com.cn
主机名:www,mail,new
5.DNS解析原理
PC机访问www.baidu.com
本地解析顺序
–》缓存
–》/etc/hosts
–》/etc/resolve.conf或者网卡
/etc/resolve.conf
nameserver 8.8.8.8
找到“本地DNS–8.8.8.8”
DNS解析系统(由多种类型的DNS服务器构成)
DNS域名服务器系统是按照域名的层级关系来对应解析根域、顶级域、二级域、三级域/子域
根域–》根服务器解析“.”
顶级域–》顶级域名服务器.cn,.us等
二级域–》权威域名服务器.com.cn
三级域/子域–》权威域名服务器baidu.com.cn
主机名–》权威域名服务器www.baidu.com.cn
DNS系统映射,将域名解析成IP地址
1 ) 现在我有一台电脑,在浏览器中输入www.baidu.com域名,浏览器会从浏览器的DNS缓存中检查是否有这个网址的映射关系,如果有,就返回IP,完成域名解析.
2 ) 如果没有,操作系统会先检查自己本地的hosts文件是否有这个网址的映射关系,如果有,就返回IP,完成域 名解析。看到这里大家应该都猜到了,有DNS的地方,就有缓存。浏览器、操作系统、本地DNS、根域名服务器, 它们都会对DNS结果做一定程度的缓存。
3 ) 如果还没有,我的电脑就要向本地DNS服务器发起请求查询www.baidu.com这个域名。
4 ) 本地DNS服务器拿到请求后,先检查一下自己的缓存中有没有这个地址,有的话直接返回。这个时候拿到的IP地址,会被标记为非权威服务器的应答
5 ) 如果本地DNS服务器的缓存中没有的话,本地DNS服务器会从配置文件中读取13个根DNS服务器的地址,然后向其中一台发起请求
6 ) 根DNS服务器拿到请求后,知道他是com.这个顶级域名下的,所以会返回com域名中的NS记录(用来表明哪台服务器对该域名进行解析),其实就是一个IP(com对应的服务器IP)
7 ) 本地DNS服务器根据返回的IP(com DNS服务器)发起请求,com DNS服务器发现你这请求的是baidu.com这个域,查到这个域的NS记录,然后返回IP(baidu.com)
8 )本地DNS服务器在根据IP(baidu.com DNS服务器)访问这些权威服务器,baidu.com服务器在A记录(正向解析记录,域名到IP地址的映射)中查找到www.baidu.com的IP地址,返回IP(www.baidu.com)
9 ) 最终本地DNS服务器拿到用户想访问的www.baidu.com的IP,返回给客户端,并进行缓存操作,以便下次使用。
查询方式
递归查询
递归查询是一种 DNS 服务器的查询模式,在该模式下 DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机,如果 DNS 服务器本地没有存储查询 DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
就是客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现。
迭代查询
DNS 服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台 DNS 服务器地址,客户机再向这台 DNS 服务器提交请求,依次循环直到返回查询的结果为止。
客户机的请求需要自己挨个去查询才能得到结果,服务器没有结果时候只会给你提供其它服务器的地址,而不会帮你去请求查询,这与递归截然相反。
从迭代和递归查询可以看出:
客户端-》本地DNS服务器端:属于递归查询
本地DNS服务端-》外网:属于迭代查询
递归查询时返回结果只有两种:查询成功或查询失败
迭代查询又称为重指引,返回的是最佳的查询点或者主机地址
DNS解析方式:通过迭代或者递归的方式解析域名-IP映射关系
6.DNS的类型
正向解析
反向解析
分离解析
二.DNS正向解析
1、下载安装服务
centos7中DNS服务由bind提供,DNS服务软件包名称为bind
[root@yzq named]# yum install -y bind
2.DNS配置文件
[root@yzq named]# vim /etc/named
named/ named.rfc1912.zones
named.conf named.root.key
named.iscdlv.key
BIND主配置文件named.conf
/etc/logrotate.d/named 主配置文件,控制系统全局
/etc/named.rfc1912.zones 区域配置文件,控制具体单个区域
/var/named/named.localhost 区域数据配置文件 区域信息
3.修改主要配置文件
[root@yzq named]# vim /etc/named.conf
4.修改区域配置文件
[root@yzq named]# vim /etc/named.rfc1912.zones
5.配置正向区域数据文件
区域数据配置模板
[root@yzq named]# cd /var/named/
[root@yzq named]# ls
data named.ca named.localhost slaves
dynamic named.empty named.loopback
[root@yzq named]# cat named.localhost
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
复制区域数据配置模板到刚刚配置的DNS指向的位置
[root@yzq named]# cp -p named.localhost yzq.com.zone
[root@yzq named]# ls
data named.ca named.localhost slaves
dynamic named.empty named.loopback yzq.com.zone
进入区域数据文件进行修改
[root@yzq named]# vim yzq.com.zone
6.启动服务,关闭防火墙
[root@yzq named]# systemctl start named
[root@yzq named]# systemctl stop firewalld
[root@yzq named]# setenforce 0
7.在客户端的域名解析配置文件中添加DNS服务器
将原本指向外网的DNS修改指向本地
[root@yzq named]# vim /etc/resolv.conf
[root@yzq named]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.28.10
8.验证结果
解析域名,可以成功解析
[root@yzq named]# nslookup www.yzq.com
Server: 192.168.28.10
Address: 192.168.28.10#53
Name: www.yzq.com
Address: 192.168.28.10
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/76562.html