2017最新DNS
一、DNS基础理论
1. 域名结构
层次结构:域名系统采用层次结构,每个域名由若干个标号(labels)组成,标号之间用点号分隔,在“jocent.me”中,“jocent”是二级域名,“me”是顶级域名。
唯一性:域名必须保证全球唯一性,避免重复和冲突。
长度限制:每个标号不超过63个字符,整个域名的总长度不能超过255个字符。
2. 域名服务器
根域名服务器:最高层次的域名服务器,负责顶级域名的解析,全球共有13组根域名服务器,通过任播(Anycast)技术实现高可用性和负载均衡。
顶级域名服务器:负责管理特定顶级域名下的二级域名。
权限域名服务器:负责具体域的解析工作。
本地域名服务器:用户设备首先访问的DNS服务器,缓存常用域名以提高解析速度。
二、DNS协议报文格式
1. 头部
会话标识(2字节):用于匹配请求和响应报文。
标志(2字节):包括查询/响应标志、opcode、AA、TC、RD、RA和rcode等字段。
数量字段:包括问题数、资源记录数、授权资源记录数和附加资源记录数。
2. 查询问题部分
格式:包含要查询的域名和查询类型。
示例:对于“jocent.me”,查询类型通常是A记录(IPv4地址)。
3. 回答部分
资源记录(Resource Record, RR):包含域名对应的IP地址等信息。
权威名称服务器(Authoritative Name Server, NS):指向该域的权威服务器。
起始授权机构(Start of Authority, SOA):提供关于该域的权威服务器的信息。
三、DNS解析过程
1. 客户端发起请求
当用户在浏览器中输入域名时,客户端向本地DNS服务器发送查询请求。
2. 本地DNS缓存查询
本地DNS服务器首先检查自身的缓存,看是否已经有该域名的缓存记录,如果有,直接返回对应的IP地址,解析过程结束。
3. 本地DNS服务器查询
如果本地DNS服务器缓存中没有该域名的记录,它会向根DNS服务器发送查询请求。
4. 根DNS服务器响应
根DNS服务器收到请求后,会告知本地DNS服务器负责该域名顶级域名(如.com、.org等)的权威DNS服务器的地址。
5. 查询顶级域名服务器
本地DNS服务器根据根DNS服务器提供的地址,向对应的顶级域名服务器发送查询请求。
6. 顶级域名服务器响应
顶级域名服务器会告知本地DNS服务器负责该域名二级域名(如 example.com 中的 example)的权威DNS服务器的地址。
7. 查询权威DNS服务器
本地DNS服务器继续向二级域名的权威DNS服务器发送查询请求。
8. 权威DNS服务器响应
权威DNS服务器查询到该域名对应的IP地址后,将其返回给本地DNS服务器。
9. 本地DNS服务器缓存并响应
本地DNS服务器将查询到的IP地址缓存起来,并返回给客户端。
10. 客户端与目标服务器通信
客户端获得IP地址后,就可以使用该IP地址与目标服务器进行通信。
四、公共DNS服务推荐
1. Google Public DNS
IPv4:8.8.8.8
,8.8.4.4
IPv6:2001:4860:4860::8888
,2001:4860:4860::8844
优点:全球分布广泛,速度快,稳定性高。
缺点:某些国家和地区可能无法访问。
2. OpenDNS
IPv4:208.67.222.222
,208.67.220.220
优点:提供家长控制功能,可以过滤恶意网站。
缺点:部分地区可能存在延迟。
3. V2EX DNS
IPv4:199.91.73.222
,178.79.131.110
优点:支持DoH(DNS over HTTPS),安全性高。
缺点:相对较新,覆盖范围可能不如前两者广泛。
4. Alibaba DNS
IPv4:223.5.5.5
,223.6.6.6
优点:国内用户访问速度快,稳定性好。
缺点:国际用户可能效果一般。
五、常见问题解答
Q1: 什么是递归查询和迭代查询?
递归查询:客户端向本地DNS服务器发出一次查询请求后,等待最终结果,如果本地DNS服务器无法解析,则以DNS客户机的身份向其他DNS服务器查询,直到得到最终答案。
迭代查询:本地DNS服务器向根DNS服务器查询,根DNS服务器告诉它下一步应该查询的顶级域名服务器地址,然后它再去查,每次它都是以客户机的身份去各个服务器查询。
Q2: 如何更改操作系统中的DNS服务器设置?
Windows:
1. 打开“控制面板”。
2. 选择“网络和共享中心”。
3. 点击当前连接的网络,选择“属性”。
4. 双击“Internet协议版本4(TCP/IPv4)”。
5. 选择“使用下面的DNS服务器地址”,输入首选和备用DNS服务器地址。
6. 点击“确定”保存设置。
7. macOS:
1. 打开“系统偏好设置”。
2. 选择“网络”。
3. 选择当前连接的网络,点击“高级”。
4. 切换到“DNS”标签。
5. 点击左下角的“+”按钮添加DNS服务器地址。
6. 点击“好”保存设置。
7. Linux:
编辑/etc/resolv.conf
文件,添加或修改nameserver
条目为所需的DNS服务器地址。
nameserver 8.8.8.8 nameserver 8.8.4.4
8. 保存文件并重启网络服务或重启系统使配置生效。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/111307.html