下面假设客户访问[url]www.abc.com[/url]的dns请求流程如图:
2, 运营商的Local DNS服务器从RootDNS得知[url]www.abc.com[/url]由DNS-CTC、DNS-CNC、DNS-USA1和DNS-USA2来解析,即RootDNS同时返回此4个DNS服务器地址给LDNS(这是DNS的工作原理,它一定会返回所有关于请求的记录,在此即4个DNS服务器。如果只返回一个DNS而此DNS刚好中断服务了,那么Local DNS只能是解析失败了),步骤2和3;这里需要注意的是RootDNS返回这四台DNS是完全按照配置的脚本的顺序来返回的,那这个例子来说,RootDNS按照如下顺序返回DNS-CTC、DNS-CNC、DNS-USA1和DNS-USA2,而美国客户的请求也是先从DNS-CTC开始轮询请求的;
3, Local DNS轮询向这4个DNS服务器发出域名解析的请求,直到返回数据,步骤4;
4, 假如DNS-CTC相应LDNS的域名解析请求,同时返回2台GTM的地址(Listener),步骤5;
5, 接受到请求的GTM首先查询在本地是否有该Local DNS的就近性表项,如果存在,则直接给Local DNS返回速度最快的服务器地址。如果不存在,则通知另外一台GTM发起对该Local DNS的查询,步骤6和7;
6, 两台3DNS分别对LocalDNS进行Probe。例如GTM-A查询该Local DNS的RTT时间为50ms,而GTM-B查询同一Local DNS的RTT时间为100ms,则此时在两台GTM内都形成了该Local DNS的对应就近性表记录;
7, 接受到Local DNS请求的GTM-A根据系统的就近性表返回相应的Data Center内的WEB服务器地址(即1.1.1.1),步骤8;
8, Local DNS获得地址后,将该地址返回给用户,到此DNS请求过程结束,步骤9;
9, 用户向[url]www.albc.com[/url](1.1.1.1)网站发起访问,步骤10。
本文转自 chris_lee 51CTO博客,原文链接:http://blog.51cto.com/ipneter/93384,如需转载请自行联系原作者