一、什么是域名解析

    互联网是通过URL来请求和发布资源的,而URL中的域名,需要解析为IP地址,才能和远程的主机连接。将域名解析为IP地址,就是DNS的工作范畴。

二、域名解析过程

    域名解析过程大概可以分成10个步骤:

    1、检查浏览器的缓存:查看缓存中是否有该域名对应的IP地址,如果有,解析过程结束;否则进入第2步。

    2、检查本地操作系统:查看操作系统的缓存中是否这个域名的解析结果。如果有,解析结束;否则进入第3步;

    (Windows系统的hosts文件,linux中/etc/hosts)

    3、请求域名服务器来解析这个域名:操作系统会把这个域名解析请求,发送给本地域名服务器(这个服务器window下有配置)。查看这个域名服务器的缓存中是否有本次请求域名对应的IP,如果有,解析过程结束;否则,进入第4步;

    4、到Root Server,根域名解析服务器请求解析

    5、根域名服务器会返回给本地域名服务器一个所查询域名的主域名服务器地址;

    6、本地域名服务器再向主域名服务器发送请求;

    7、接收请求的主域名服务器查找并返回此域名对应的Name Server域名服务器地址;

    8、Name Server查询域名和IP关系映射表,然后将该IP和TTL返回;

    9、本地域名服务器缓存这个域名和IP的对应关系,缓存时间由TTL控制;

    10、解析结果返回给用户,用户根据TTL缓存再本地系统的缓存中,域名解析结果。

三、延伸

    1、上面的解析过程是迭代过程,即上一级的域名服务器告诉本地域名服务器下一步该向那个域名服务器发送请求,最后本地域名服务器找到域名服务器,并获得了域名IP关系映射和TTL,本地域名服务器需要发送多个请求同时接收多次应答;而递归过程,本地域名服务器之负责发送请求和接收返回结果,中间的过程是由上级域名服务器完成的。

    2、所谓域名劫持:一般发生再本地系统的DNS解析过程,因为本地系统存在这样一个hosts文件,黑客可以通过修改域名解析,把特定的域名解析到指定的IP上,这样就导致这些域名被劫持了。