Java Web 深入分析(2) DNS

DNS :Domain Name System,域名系统 ,通俗的来说需要把我们日常见到的URL 网址信息解析成IP地址,例如

DNS域名解析过程

  • 用户浏览器:用户在浏览器地址栏输入域名进行访问,浏览器最先进行解析,先去浏览器缓存中找这个域名的IP地址。TTL 控制缓存时间限制,太长导致IP变化后域名无法解析,太短每次都要解析一次

  • 用户操作系统:如果用户浏览器缓存中没有域名的记录,就会去操作系统中查找是否有这个DNS解析结果,Windows用户下(Linux是 exc/hosts)其实就去找c:\windows\system32\drivers\etc这个里的hosts文件里面有没有,如果你在这里指定了一个域名、IP映射关系,那么实际上浏览器就会去访问这个IP,这也就是 域名劫持,如图我就我的localhost修改为pzh

  • Local DNS Server:如果etc文件中还没有这个记录,那么就会去这个本地服务器里面找,它可能是学校、小区所在地的DNS服务器,大约八成的解析工作在这里完成,即返回解析结构给浏览器。window下通过 ipconfig 查看 该服务器地址,Linux通过 $ cat /etc/resolv.conf查看,如果还没有找到就会去rootserver根域名服务器请求解析了

  • Root Server:根域名服务器会给本地服务器返回一个所查询域名所在的主域名服务器(gTLD server) 例如 .com .org .cn

背景导入:根服务器主要用来管理互联网的主目录,全世界只有13台(这13台根域名服务器名字分别为“A”至“M”),1个为主根服务器在美国。其余12个均为辅根服务器,其中9个在美国,欧洲2个,位于英国和瑞典,亚洲1个位于日本。毫不夸张的说如果这几台服务器出点问题,整个互联网都可能瘫痪。

gTLD Server: 国际顶级域名服务器,例如 .org .com .cn 等,根据跟服务器返回的向对应的 gTLD 服务器发送请求,然后gTLD 会返回该域名的 Name Server 地址

  • Name Server:该服务器就是 该域名所在的域名服务器,加入你购买一个某域名提供商的域名,那么该域名解析任务就有该域名提供商的 Name server完成。
  • GTM:实际上不只这些步骤可能更多,也可能不只一个name server 服务器,或者有一个GTM 来负载均衡控制

DNS解析方式

  • A记录:A是address ,可以将一个或者多个域名解析成一个IP地址,不能将一个域名解析出多个IP地址
  • MX记录:将某个域名下的邮件服务 xxx@aa.com => 1.1.1.1:xxx,其中aa.com 对应着 1.1.1.1
  • CNAME记录:别名解析,就是将一个域名设置成一个或者多个名字而已,
  • NS记录:该域名有指定的DNS服务器去解析
  • TXT记录:主机名或者域名设置txt记录说明

跟踪DNS域名解析过程

  • windows : cmd下输入 : nslookup www.baidu.com
  • Linux: dig www.baidu.com

清除DNS缓存

  • windows : cmd下输入 : ipconfig/flushdns
  • Linux: 可以通过 /etc/init.d/nscd restart 来清除缓存
posted @ 2017-12-03 23:35  言非言  阅读(274)  评论(0编辑  收藏  举报