1、DNS服务简介
DNS服务解析过程
客户机进行查询名称时,会查询本地DNS服务器来解析此名称,一般客户机发送的查询消息都包括3条信息:
1.指定DNS域名,表示完全的FQDN,完全合格的域名
2.指定查询类型,根据类型指定资源记录,或者作为查询操作的专门类型
3.DNS域名的指定类别
DNS 查询以各种不同的方式进行解析:
1.递归--DNS服务器可代表请求客户机来查询或联系其他 DNS 服务器,以完全解析该名称,并随后将应答返回至客户机(从客户端到本地DNS服务器)
2.迭代--客户机直接向根域名服务器进行查询解析名称(DNS服务器之间的交互查询)
具体流程:hosts-->本地DNS解析器缓存-->本地DNS服务器(本地配置资源/缓存)-->转发模式(是/否)-->根域名服务器
1、在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。
6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
常用的名称解析服务
1.本地名称解析配置文件:/etc/hosts
2.集中管理:NIS,用数据库进行管理name:ip
3.分布式管理:DNS(解决以上两种方法的缺陷)
DNS基本介绍
1.FQDN是完全合格域名/全程域名的缩写,Fully Qualified Domain Name,即是域名。
访问时将由DNS进行解析,得到IP。
FQDN = Hostname + DomainName
2.DNS:域名服务(Domain Name Service) 应用层协议
架构:C/S
端口:53/udp, 53/tcp
主流的DNS软件:
BIND:Bekerley Internat Name Domain
ISC (www.isc.org)
unbound:更安全的,比较新
bind网站:https://www.isc.org/bind/
3.本地名称解析配置文件:hosts
/etc/hosts
%WINDIR%/system32/drivers/etc/hosts
122.10.117.2 www.magedu.com
93.46.8.89 www.google.com
hostname, # 查看主机名
hostname -f # 查看FQDN
dnsdomainname # 查看域
uname -n # 查看主机名
一般网页打不开,qq可以,可能就是DNS服务出问题了!!
域名:是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。
DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。
2、关于DNS的配置介绍
1) 访问控制
1、访问控制
访问控制的指令:
allow-query {
}: 允许查询的主机;白名单
allow-transfer {
}:允许区域传送的主机;白名单
allow-recursion {
}: 允许递归的主机,建议全局使用
allow-update {
}: 允许更新区域数据库中的内容
2、安全选项:
dnssec-enable yes;
dnssec-validation yes;
当传输使用时,有时候需要关闭dnssec功能
2、转发配置
first:先请求转发服务器,没有结果就自己去根服务器自己找
only:只转发服务器请求
1)全局转发: 对非本机所负责解析区域的请求,全转发给指定的服务器
Options {
forward first|only;
forwarders { ip;};
};
2)特定区域转发:仅转发对特定的区域的请求,比全局转发优先级高
zone "ZONE_NAME" IN {
type forward;
forward first|only;
forwarders { ip;};
};
3、bind的ACL
bind中基础的安全相关的配置:
acl: 把一个或多个地址归并为一个集合,并通过一个统一的名称调用
1、bind有四个内置的acl:
none 没有一个主机
any 任意主机
localhost 本机
localnet 本机的IP同掩码运算后得到的网络地址
注意:
只能先定义后使用;因此一般定义在配置文件中,处于options的前面
2、格式:
acl acl_name {
ip;
net/prelen; ……
};
示例:
acl mynet {
172.16.0.0/16;
10.10.10.10;
};
3、只缓存服务器实现
1)域名的介绍
DNS域名:
根域:. (最高层次的域名服务器,本地域名服务器解析不了的域名就会向其求助)
一级域名:Top Level Domain: tld com, edu, mil, gov, net, org, int,arpa
三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
二级域名
三级域名
最多127级域名
ICANN(The Internet Corporation for Assigned Names and Numbers) 互联网名称与数字地址分配机构,负责在全球范围内对互联网通用顶级域名 (gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理

ipv4---全球13个DNS根服务器,由UDP报文决定的
[root@szb etc]# cat /var/named/named.ca
Ipv6--全球25个NS根服务器
互联网域名
域名注册:
代理商:万网, 新网, godaddy
注册完成以后,想自己用专用服务来解析
管理后台:把NS记录指向的服务器名称,和A记录指向的服务器地址
2)DNS理论解析
DNS查询类型:
递归查询
迭代查询
一、主机向本地域名服务器的查询一般都是采用递归查询。
所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。 因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
二、本地域名服务器向根域名服务器的查询的迭代查询。
迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。
然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。
最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机

具体可参考:https://www.cnblogs.com/qingdaofu/p/7399670.html
1.名称服务器:
域内负责解析本域内的名称的主机
根服务器:13组服务器
2.解析类型:
FQDN --> IP
IP --> FQDN
3.注意:
正反向解析是两个不同的名称空间,是两棵不同的解析树
4.名词解析
ping # 验证网络畅通和速度之外
dig # 从DNS域名服务器查询主机地址信息,可以用来测试域名系统工作是否正常
host # 是常用的分析域名查询工具,可以用来测试域名系统工作是否正常
nslookup
查看域名注册信息
[root@VM-4-16-centos ~]# whois baidu.com
3)只缓存服务器
自己既是客户端也是DNS服务器
向根服务器进行查询
DNS只管在互联网上解析地址,对于能不能访问互联网是路由问题
1.yum -y install bind bind-utils # 安装程序,bind-utils主要是测试工具
[root@szb etc]# rpm -qi bind # 查看软件信息
[root@szb etc]# rpm -ql bind # 查看软件配置文件
/var/named # DNS数据库存放地址
/var/named/named.ca # 存放的13个根
/var/log/named.log # 日志信息
2.vim /etc/named.conf # 修改配置文件
1. listen-on port 53 {
127.0.0.1; }; # 影响远程主机的查询:
1)默认监听的ip地址对应的端口在:127.0.0.1/53 udp
2)**开启远程用户访问的ip**
可以设置localhost,远程用户可以允许通过当前主机的所有ip进行访问
2. allow-query {
localhost; }; # 权限:允许查询
1)修改any或者某个网段的主机
2)设置允许哪些用户远程可以发送请求向DNS服务器进行查询
或者删掉上面的两条记录,也可以实现
4.添加DNS本地回环地址
[root@szb etc]# vim /etc/sysconfig/network-scripts/ifcfg-eth

本文详细介绍了DNS服务的基础知识,包括DNS服务简介、访问控制、转发配置和BIND的ACL设置。接着讲解了如何实现只缓存服务器、DNS主服务器、反向区域服务和主从复制服务。还探讨了DNS子域委派、转发、CDN和GSLB的工作原理以及智能DNS的实现。最后,讨论了在Internet架构中部署DNS服务的步骤和报错分析。
最低0.47元/天 解锁文章
2189

被折叠的 条评论
为什么被折叠?



