ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

简述DNS服务器原理,并搭建主-辅服务器

2022-05-16 08:33:21  阅读:159  来源: 互联网

标签:named magedu 查询 简述 DNS 服务器 com


简述DNS服务器原理,并搭建主-辅服务器。

 

DNS:(Domain Name System,域名系统),应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,基于C/S架构,服务器端:53/udp, 53/tcp

根域: 全球根服务器节点只有13个,10个在美国,1个荷兰,1个瑞典,1个日本
一级域名:Top Level Domain: tld
三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域arpa
通用顶级域名:com, edu, mil, gov, net, org, int

二级域名:magedu.com

三级域名:study.magedu.com

最多可达到127级域名

如:www.google.com. 这个域名,分解后含义如下:

. #表示根域
.com #表示顶级域
google.com #表示二级域
www #表示主机名

DNS服务器规则
(1) 每一个主机都知道根域在哪里;
(2) 上级必须知道下级;
(3) 下级不知道上级;
(4) 查询两段式递归查询和迭代查询;
(5) 根域不迭代(根全球有13台a-m.root-servers.net);
(6) 顶级域不迭代;
(7) 二级域服务器可以只提供权威查询不提供迭代或转发;


DNS的工作模式:
DNS查询以各种不同的方式进行解析,客户机可通过使用从以前查询获得的缓存信息就地应答查询,DNS服务器也可以使用其自身的资源记录缓存来应答查询。但更多是使用递归查询和迭代查询两种方式。

递归查询:DNS服务器收到一个域名解析请求时,如果所要检索的资源记录不在本地,DNS服务器将和自己的上一层服务器交互,获得最终的答案,并将其返回给客户

迭代查询:DNS服务器收到解析请求,首先在本地的数据库中查找是否有相应的资源记录,如果没有,则向客户提供另外一个DNS服务器的地址,客户负责把解析请求发送给新的DNS服务器地址


完整的DNS查询请求经过的流程

如:访问 www.google.com
(1)/etc/hosts:查看本地hosts文件有没有记录获取应IP地址,如果没有,进行下一步
(2)/etc/resolv.conf:查询DNS服务器,如8.8.8.8。若此DNS服务器本地有记录(如A记录)或缓存记录,则直接从本地中获取对应的IP,如果没有,进行下一步
(3)根DNS:通过8.8.8.8到根DNS服务器(.)去查询,返回.com主机的DNS服务器IP地址
(4).com:通过.com的DNS服务器去查询,返回google.com主机的DNS服务器IP地址
(5)google.com. :通过左侧的DNS服务器去查询,返回www.google.com主机的IP地址
(6)访问 www.google.com:8.8.8.8这台DNS服务器收到信息后会先把这条记录在本地,然后把查询数据结果返回客户端

在这个查询过程中,从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。

DNS工作原理:
1、当在浏览器中输入URL时,浏览器会先检查自己的缓存是否有域名IP的映射关系,有则直接使用IP进行通信
2、如浏览器没有缓存,则操作系统检查本地hosts文件是否有域名IP的映射关系,有则使用IP进行通信
3、如果hosts没有这个域名的映射,则查找本地DNS解析器缓存是否有映射关系,有则直接返回完成域名解析
4、如果还未找到映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,也就是本地DNS服务器,如果服务器已缓存了映射关系,则使用这个IP地址映射返回完成域名解析,此时解析不具有权威性
5、如果本地DNS服务器缓存已经失效,进行递归查询。


完整的查询请求经过的流程:
Client -->hosts文件 --> Client DNS Service Local Cache --> DNS Server (recursion递
归) --> DNS Server Cache -->DNS iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS…

实现DNS主-辅服务器

环境要求:

需要四台主机
DNS主服务器:10.0.0.8
DNS从服务器:10.0.0.18
web服务器:10.0.0.7
DNS客户端:10.0.0.6

前提准备:
关闭SElinux
关闭防火墙
时间同步

实现步骤

1、主DNS服务端配置

yum install bind -y

vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };

#只允许从服务器进行区域传输
allow-transfer { 从服务器IP;};

vim /etc/named.rfc1912.zones
#加上这段
zone "magedu.org" {
type master;
file "magedu.org.zone";
};

cp -p /var/named/named.localhost /var/named/magedu.org.zone
#如果没有-p,需要改权限。chgrp named magedu.org.zone

vim /var/named/magedu.org.zone
$TTL 1D
@ IN SOA master admin.magedu.org. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
NS slave
master A 10.0.0.8
slave A 10.0.0.18

systemctl start named #第一次启动服务
rndc reload #不是第一次启动服务
2、从DNS服务器配置

yum install bind -y

vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#不允许其它主机进行区域传输
allow-transfer { none;};

vim /etc/named.rfc1912.zones
zone "magedu.org" {
type slave;
masters { 主服务器IP;};

file "slaves/magedu.org.slave";
};

systemctl start named #第一次启动服务
rndc reload #不是第一次启动服务
ls /var/named/slaves/magedu.org.slave #查看区域数据库文件是否生成

3、客户端测试主从DNS服务架构

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=主服务器
DNS2=从服务器

#验证从DNS服务器是否可以查询
dig www.magedu.org
curl www.magedu.org

#在主服务器上停止DNS服务
systemctl stop named

#验证从DNS服务器仍然可以查询
dig www.magedu.org
curl www.magedu.org

搜索

复制

标签:named,magedu,查询,简述,DNS,服务器,com
来源: https://www.cnblogs.com/haiyueruxi/p/16275638.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有