一、什么是DN。
域名(Domain Name)又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。它的作用只是为了便于人们对网站的记忆。就好比通讯录,好友的手机号码根本记不了几个,所以使用名字来记录手机号,记住名字就知道手机号是那个朋友的。域名就相当于好友名字;IP地址就相当于好友手机号。
二、什么是DNS。
随着域名越来越多。便出现了一种系统,也就是DNS(Domain Name System)系统,它会起到综合管理域名的作用。其中我们最常使用的就是DNS服务器,每当我们登录网站的时候,都需要通过DNS服务器将域名转换为IP地址,然后进行网站的访问。
正向解析:域名→IP地址 (域名解析为IP地址)
反向解析:IP地址→域名 (IP地址解析为域名)
三、域名的组成。
以www.example.com为例,这个是我们司空见惯的一个网站。它的完整格式应为www.example.com.。从后往前拆解。
. :它是最高一级的域名节点,被称为根域名(root domain)。全球总共存在13台根域服务器。亚洲一台在日本,中国没有根域服务器,只有镜像根域服务器。
.com:*域,由ICANN 管理着所有的*域名。
*域分类:
国家地区域名:目前200多个国家都按照ISO3166国家代码分配了*域名,例如中国是cn,美国是us,日本是jp
通用*域名:例如表示工商企业的 .com,表示网络提供商的.net,表示非盈利组织的.org
新通用*域名:它是ICANN出台的一个新的开放政策,任何个人和公司都可以申请自己的域名后缀。其中全球注册量最大的新通用*域名包括..top、.win、.club、.party等。
example:二级域(注册域),可由个人或者组织申请注册。
www:三级域(子域)。
四、各个级别的域服务器关系。
五、访问网站的整个过程(以www.baidu.com为例)。
1、访问百度个网站时,会先去查系统内的hosts文件,如果有相对应的解析关系,则将解析出的IP地址返回到浏览器中进行访问。
2、若hosts文件中不存在解析关系,则会去查找缓存中是否有此解析关系的记录。如果有,则将解析出的IP地址返回到浏览器中。
3、若缓存中不存在解析关系,就会连接系统所配置的DNS服务器,因为为了安全、稳定与高效考虑,DNS服务器不可能只有一台,它是由几台甚至十几台做成集群模式(也成为分布式DNS服务器,每台服务器内保存的数据是一样的,只不过通过负载均衡的任务分发机制,可以同时执行成百上千万条解析任务),从而保障稳定安全高效。所以,连接DNS服务器的数据会先到达负载均衡,通过负载均衡内的分发机制,将这个解析任务发送给分布式DNS服务器中的一台服务器,通过DNS服务器的解析库再次查找此域名的解析关系。如果DNS服务器的解析库有此域名的解析关系,则将解析出的IP地址返回到系统中,最终通过浏览器进行访问。
4、若DNS服务器中解析库也没有记录此域名的解析关系,则会在DNS服务器的缓存(非解析库中的解析关系)中查找此域名的解析关系,如果有,则将解析出的IP地址返回到系统中,最终通过浏览器进行访问。
5、若在DNS服务器上都没有找到此域名的解析关系,则进行以下步骤进行查询:
a)、DNS服务器会联系到根域服务器,在根域服务器上会记录着*域服务器的IP地址。DNS服务器就通过“.com”这一*域名在根域服务器上找到了对应的*域服务器的IP地址。
b)、DNS服务器知道了对应”.com“*域服务器的IP地址,就可以连接到这一服务器,在*域服务器上记录着二级域服务器的IP地址。后通过“baidu.com”这一个二级域名在*域服务器上找到了对应的二级域服务器的IP地址。
c)、DNS服务器知道了对应“baidu.com”二级域服务器的IP地址,就可以连接到这一服务器,在二级域服务器上记录着三级域服务器的IP地址。后通过“www.baidu.com”这一个三级域名在二级域服务器上找到了对应的三级域服务器的IP地址。
d)、DNS服务器知道了对应“www.baidu.com”三级域服务器的IP地址,就可以连接到这一服务器。然后查询三级域服务器中的解析关系,从而找到"www.baidu.com"域名对应的IP地址,也就是服务器的IP地址。
e)、若DNS服务器最终查询到了解析关系,则将对应的IP地址返回到电脑中进行访问;若上面任意一步无法完成,则证明此域名不存在,也就无法访问此网站。
6、前面1-4是递归查询,第五步是迭代查询。
六、搭建DNS服务器。
在Linux中搭建DNS服务器的软件有很多,比较常用的就是bind,所以下面我也使用bind来搭建DNS服务器。
bind信息介绍:
服务名:named 端口号:UDP 53(域名解析);TCP 53(主从同步)
主配置文件:/etc/named.conf(配置服务的一些参数) 区域配置文件:/etc/named.rfc1912.zones(可调用正(反)向配置文件) 数据配置文件:/var/named/named.localhost(正向解析配置文件模板); /var/named/named.loopback(反向解析配置文件模板)
实验一:基本配置
1.1、测试网站配置
安装http服务。关闭防火墙。开启http服务即可。
1.2、DNS服务器配置
安装bind软件:yum -y install bind*
配置主配置文件:
配置区域配置文件:
配置正(反)向解析数据配置文件。
先复制一份。其中,正向解析数据配置文件:
反向解析数据配置文件:
修改文件权限。启动服务。
1.3、测试:
实验二、主从配置。
为了保障DNS服务器正常运行与数据安全,一般情况下是一主多备的模式,这样也可以减少主DNS服务器的访问压力。
2.1、配置前先介绍几个配置参数。
区域配置文件:/etc/named.rfc1912.zones(可调用正(反)向配置文件)
数据配置文件:/var/named/named.localhost(正向解析配置文件模板); /var/named/named.loopback(反向解析配置文件模板)
在原有的基础上,再次增加一台从服务器。
2.1、测试网站原有配置不变。
2.2、主DNS服务器配置
修改允许从服务器进行数据更新。
重启主DNS服务器的named服务(systemctl restart named)
2.3、从DNS服务器配置
安装bind软件:yum -y install bind*
配置/etc/named.conf
配置 /etc/named.rfc1912.zones
开启服务(systemctl restart named)
同步完成。
2.4、测试
将主DNS服务器关闭,用于模拟主DNS服务器故障,客户端地址DNS配置从DNS服务器地址。再次进行测试。