DNS协议
- DNS服务器相当于网络世界记录IP地址的地址簿。由于DNS服务器的重要性,它一定要设置成高可用、高并发和分布式的。
- 域名服务器是按照树状结构组织的,因而域名查找是使用递归的方法,并通过缓存的方式增强性能。
根DNS服务器:返回顶级域DNS服务器的IP地址;
顶级域DNS服务器:返回权威DNS服务器的IP地址;
权威DNS服务器:返回相应主机的IP地址。
- 为了提高DNS的解析性能,很多网络都会就近部署 DNS缓存服务器。本地域名服务器(本地DNS)先查看本地的缓存是否有记录,如果有则直接使用,如果没有则需要通过递归解析出IP地址。DNS递归解析流程如下:
A.客户端发出一个DNS请求(如问www.163.com的IP是什么),首先发给本地DNS。(本地DNS如果是通过DHCP协议配置,则它由网络服务商自动分配。)
B.本地DNS收到来自客户端的请求,如果能找到www.163.com,它就直接返回IP地址,如果没有找到,本地DNS会去问它的根域名服务器,www.163.com的IP地址在何处(根域名服务器不直接用于域名解析,但能指明一条道路)。
C.根DNS收到来自本地DNS的请求,发现后缀是.com,会给本地DNS一个.com的顶级域名服务器的地址。
D.本地DNS转向问顶级域名服务器,顶级域名服务器会给它一个负责www.163.com区域的权威DNS服务器的IP地址。
E.本地DNS转向问权威DNS服务器(权威DNS服务器是域名解析结果的原出处),权威DNS服务器查询后将对应的IP地址告诉本地DNS。
F.本地DNS再将IP地址返回客户端,客户端和目标建立连接。
- DNS可以做内部负载均衡。如多个应用要访问数据库,在这些应用里应该配置这个数据库域名而不是IP地址,因为一旦这个数据库换到了另外一台机器上而改变了IP地址的话,就需要将这些应用全部修改一遍IP地址,但是如果配置了域名,则只要在DNS服务器里将域名映射为新的IP地址。在这个基础上,如果某个应用要访问另外一个应用,如果配置另外一个应用的IP地址,那么这个访问就是一对一的。但是当被访问的应用面临多个应用访问且撑不住的时候,需要配置成为域名来进行负载均衡,在域名解析时,这次返回第一个IP,下次返回第二个IP,就可以实现负载均衡。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!