DNS解析全过程
2015-06-26 11:07
267 查看
浏览器输入一个网址,要访问该网址必须由DNS解析出对应的服务器的IP地址。对于大型网站来说,一个网站对应多台服务器,那么DNS解析出的可能是进行负载均衡的服务器的IP地址。DNS解析过程总体上来说是先查缓存,缓存没有命中然后迭代查询本地(ISP)DNS服务器,由本地DNS服务器递归查询的过程。
整体过程如下图所示:
我们以访问www.example.microsoft.com为例进行说明:
浏览器中输入www.example.microsoft.com访问时,浏览器会首先检查浏览器缓存看是否存在域名到服务器ip的对应关系
如果没有检查操作系统缓存(Windows去检查C:\Windows\System32\drivers\etc\hosts,linux检查/etc/hosts文件)然后检查路由器缓存,如果有本地DNS服务器则去查本地DNS服务器缓存,如果没有,然后检查首选DNS或者备选DNS服务器(ISP DNS服务器)缓存,80%的域名都可以到此步查找到对应的服务器IP地址。
如果本地DNS服务器或者ISP DNS服务器没有对应的记录,则由改服务器递归的进行DNS解析。首先该DNS服务器会向13个根域名服务器发送DNS查询,根域名服务器返回对应的域名DNS服务器(.com)地址 ,DNS服务器向.com域名发送DNS查询报文得到microsoft.com DNS服务器的地址,然后DNS服务器向microsoft.com DNS服务器查询最后得出www.example.microsoft.com对应的ip地址。
DNS解析过程是通过发送或者接受DNS查询和响应报文完成的。DNS报文格式由12字节的首部(必须字段)和4个长度可变的可选字段组成。DNS在区域中传递使用TCP协议,DNS解析过程使用UDP,53端口。
整体过程如下图所示:
我们以访问www.example.microsoft.com为例进行说明:
浏览器中输入www.example.microsoft.com访问时,浏览器会首先检查浏览器缓存看是否存在域名到服务器ip的对应关系
如果没有检查操作系统缓存(Windows去检查C:\Windows\System32\drivers\etc\hosts,linux检查/etc/hosts文件)然后检查路由器缓存,如果有本地DNS服务器则去查本地DNS服务器缓存,如果没有,然后检查首选DNS或者备选DNS服务器(ISP DNS服务器)缓存,80%的域名都可以到此步查找到对应的服务器IP地址。
如果本地DNS服务器或者ISP DNS服务器没有对应的记录,则由改服务器递归的进行DNS解析。首先该DNS服务器会向13个根域名服务器发送DNS查询,根域名服务器返回对应的域名DNS服务器(.com)地址 ,DNS服务器向.com域名发送DNS查询报文得到microsoft.com DNS服务器的地址,然后DNS服务器向microsoft.com DNS服务器查询最后得出www.example.microsoft.com对应的ip地址。
DNS解析过程是通过发送或者接受DNS查询和响应报文完成的。DNS报文格式由12字节的首部(必须字段)和4个长度可变的可选字段组成。DNS在区域中传递使用TCP协议,DNS解析过程使用UDP,53端口。
相关文章推荐
- 使用批处理命令设置windows系统的ip地址和dns附图
- 保护DNS服务器的几点方法小结
- 域名DNS解析的故障解决方法
- DNS的工作原理图解说明
- 计算机名DNS网关IP(大家可以用来学习)
- CMD和vbs修改 IP地址及DNS的实现代码
- linux下如何快速让DNS修改生效
- linux中查询dns示例
- MySQL DNS的使用过程详细分析
- winmydns DNS服务器架设
- Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP
- windows服务器 的DNS服务器备份与还原步骤小结
- 浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
- Linux命令行修改IP、网关、DNS的方法
- python实现dnspod自动更新dns解析的方法
- 用VBS设置静态IP和DNS服务器地址的代码
- Linux下用dnsmasq做dns cache server的配置方法
- Win7+xp命令行 一键修改IP、DNS
- Windows Server 2008 R2 DNS 服务器迁移方法
- windows2003 DNS服务器配置(图文详解)