以用户输入开源中国的域名www.oschina.net为例,DNS解析大约有以下几个步骤:
如果第一步本地无法解析该域名,那么操作系统会把该域名发送给LDNS(当地的域名服务器)解析。比如通过校园网上网的话就是LDNS就是学校的域名服务器,在家的话就是当地上网服务提供商比如电信DNS服务器。LDNS同样会缓存一段时间内的域名解析结果,基本上大部分域名解析工作都可以在这里完成。
如果LDNS仍然无法解析,LDNS服务器会向Root Server服务器请求解析。Root Server服务器会返回给LDNS一个地址,该地址是所查询域的主域名服务器(gTLD Server)的地址,比如我们的例子,则返回.net主域名的服务器地址。
LDNS拿到gTLD Server服务器地址后,向该主域名服务器请求解析,gTLD Server服务器同样会返回给LDNS一个地址,该地址是所查询的域名注册的域名服务器。www.oschina.net当初是在哪个域名提供商的服务器上申请的域名,则这个域名解析任务由该域名提供商的服务器完成。这个服务器一般称为Name Server域名服务器。
Name Server域名服务器查询域名/IP映射表,返回相应的IP地址和TTL给LDNS。LDNS返回解析结果给用户,用户根据TTL值缓存到本地,域名解析过程结束。
注意:windows系统中可以通过ipconfig查询LDNS服务器地址,可以通过ipconfig /flushdns刷新缓存。
域名解析主要有两种方式:递归解析和反复解析。