域名访问过程

安全咨询 0 513

一般域名解析顺序

1) 浏览器缓存
  当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址(若曾经访问过该域名且没有清空缓存便存在);
  2) 系统缓存
  当浏览器缓存中无域名对应IP则会自动检查用户计算机系统Hosts文件DNS缓存是否有该域名对应IP;
  3) 路由器缓存
  当浏览器及系统缓存中均无域名对应IP则进入路由器缓存中检查,以上三步均为客户端的DNS缓存
  4) ISP(互联网服务提供商)DNS缓存
  当在用户客服端查找不到域名对应IP地址,则将进入ISP DNS缓存中进行查询。比如你用的是电信的网络,则会进入电信的DNS缓存服务器中进行查找;
  5) 根域名服务器
  当以上均未完成,则进入根服务器进行查询。全球仅有13台根域名服务器,1个主根域名服务器,其余12为辅根域名服务器。根域名收到请求后会查看区域文件记录,若无则将其管辖范围内顶级域名(如.com)服务器IP告诉本地DNS服务器;
  6) 顶级域名服务器
  顶级域名服务器收到请求后查看区域文件记录,若无则将其管辖范围内主域名服务器的IP地址告诉本地DNS服务器;
  7) 主域名服务器
  主域名服务器接受到请求后查询自己的缓存,如果没有则进入下一级域名服务器进行查找,并重复该步骤直至找到正确纪录;
  8)保存结果至缓存
  本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时将该结果反馈给客户端,客户端通过这个IP地址与web服务器建立链接。

Hosts

hosts是一个没有扩展名的系统文件,可以用记事本打开。其作用就是将一些常用的域名与其对应的IP地址建立联系,当用户在浏览器输入一个需要登录的网址时,系统会首先从hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,系统会再将在网址提交给DNS域名解析服务器进行IP地址的解析,hosts的请求级别与DNS高。

DNS解析过程

将域名转换为IP地址

如果本地域名服务器的本地缓存没有该域名记录客户机,发送域名解析请求,到本地域名服务器

本地域名服务器,发送域名解析请求,到根域名服务器

根域名服务器,返回顶级域名服务器地址,到本地域名服务器

本地域名服务器,发送域名解析请求,到顶级域名服务器

顶级域名服务器,返回授权域名服务器地址,到本地域名服务器

本地域名服务器,发送域名解析请求,到授权域名服务器

授权域名服务器,返回域名对应ip地址,到本地域名服务器

本地域名服务器,发送ip地址,到客户机,并且在本地记录

DNS协议属于应用层。

局域网+路由器访问域名

路由器-网络地址转换-NAT机制

路由器采用了NAT(Network AddressTranslation,网络地址转换)机制, 使得LAN内的主机可以共享同一个外网IP(公网IP)上网。

在这种机制下, LAN内的主机都将获取到一个与路由器(比如192.168.0.1)同网段的一个局域网ip。所有的发往外网的局域网ip报文都会先发送到路由器, 路由器完成NAT(涉及到解包、修改源地址和端口、封包), 将局域网ip转换为公网(WAN口)ip, 然后发送出去。

主机DNS解析方式

LAN内主机访问某个域名时, 需要使用DNS获取服务器IP, 一般通过DNS解析函数, 这些函数会发出DNS请求报文。这时主机DNS解析分为两种方式。DNS代理和普通模式。

  • DNS代理

代理模式开启时, 一般将主机的DNS设置为路由器ip(如192.168.0.1), 如果DHCP模式开启, 则主机自动获取到的DNS一般也是路由器ip。

在这种情况下, 主机发出的DNS报文目的地址将是路由器ip(192.168.0.1),路由器将该报文的目的地址修改为真实的DNS服务器ip, 并进行NAT转换后发送出去。

  • 普通模式

普通模式时, 一般将主机的DNS设置为真实的DNS服务器ip, 如果DHCP模式开启, 则主机自动获取到的DNS也是真实的DNS服务器ip。

这种情况下, 主机发出的DNS报文目的地址就是真实的DNS服务器ip, 路由器进行NAT转换后发送出去。

域名访问报错,IP访问正常

IP访问报错,域名访问正常

一般的网站会选择放在虚拟主机,且在主机上放置了很多个网站,而每个网站绑定1个或以上域名,虚拟主机上,例如Apache主机的配置会将对应的ip解析到对应的网站目录的,实现一台服务器上配置多个站点;一般用户在访问的时候,会产生一个http请求报文,上面的host信息可以提供给服务器,告诉服务器要访问的域名,从而实现一台主机绑定一个IP,即使有多个网站,也不会相互干扰。但使用IP访问,主机不知道用户访问的具体目录,请求便会出现错误。

这里指的是共享主机,如果是独立的主机,网站则是可以使用IP进行访问的。


也许您对下面的内容还感兴趣:

留言0

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。