智能DNS解析?

智能DNS解析 是如何做到的
我們一般查詢的是類似於公共DNS伺服器也就是8.8.8.8 或者114.114.114.114。這類伺服器上面緩存 負責解析域名的DNS伺服器(類似於DNSPOD)的緩存。
問題在於 如果在DNSPOD上面設置智能解析。但是我們訪問的是8.8.8.8 的時候去解析一個採用DNSPOD作為解析服務的域名。DNSPOD如何根據來源 給出智能解析結果(因為我們沒有訪問DNSPOD的伺服器,他是咋知道的 8.8.8.8如果沒有這個紀錄應該是根據根伺服器遞歸,也就是DNS會根據8.8.8.8(任播)這台伺服器後面負責遞歸的伺服器的IP給出結果才對啊)。


看到你的描述,想必對dns解析還是有一定了解的。我就不科普DNS了。

本想借你的問題,開個子域名到dnspod
分析分析,無奈人家不支持子域名添加。江湖傳聞的最大第三方DNS廠子竟然不支持3級域名添加。看看下面,我只能呵呵了...

看來,自從dnspod從了鵝廠後瞧不起咱這小門小戶了。得嘞,幸虧我還有CloudXNS這把瑞士軍刀在手。

CloudXNS不知道的同學請移步到此https://www.cloudxns.net/Index/AboutXns.html

你的問題是域名解析商是怎麼知道來源的?也就是如何精確解析的。


這裡要拋出一個概念,edns-client-subnet。它是google提交了一份DNS擴展協議,允許DNS resolver傳遞用戶的ip地址給authoritative DNS server. 如果DNS支持該協議,就可以獲取用戶真實的IP地址,進行準確的調度。

我的分析過程:

我在cloudXNS添加解析線路:

cloudXNS中的線路相當豐富,精確到省市各個運營商和海外線路;有圖為證:

為了解釋這個問題,我添加了代表性的 線路。然後分別dig域名:

我從電信北京設備dig域名。

可以看到返回是電信默認線路的A類地址。

然後我直接查詢CloudXNS的授權伺服器。

發現返回的是8.8.8.8。顯然走的是海外線路。

為嘛尼?抓報瞧瞧:

發包:

收包:

從上面可以看到,在additional records區域會攜帶客戶端ip地址。這就是edns-client-subnet的原理。這也是CloudXNS給大家帶來的驚喜,當然既然號稱瑞士軍刀,彩蛋還不止於此,據說CloudXNS最近還推出了httpdns,完全繞過了運營商,解析精確度高達99.999%嘍,真心NB...


回歸問題,8.8.8.8 是publicDNS,在收到用戶請求時候,會把客戶的LDNS的ip地址填充到Additional records區域,所以遞歸後傳的還是LDNS的IP。說到這估計你的疑慮已經消除了。

---------------------------分割線----------------------------------------------------------

感謝 橙芒果 同學的評論

若用戶用的是 public DNS,填充是用戶的源公網IP而不是LDNS了。


你的說法是正確的。看了我的結論估計是短路了。用8.8.8.8 就是繞開LDNS 。 怎麼會填充addr區域呢?

空說無憑,上代碼:

第一步:更改LDNS:用8.8.8.8來做DNS

第二步:檢查公網ip(ip138或者traceroute 公網域名)

看到我們的公網ip是163.53.243.17

第三步發起DNS詢問

第四步:抓包查看

00 a3 35 f3 翻譯過來就是163.53.243.0


可見攜帶的是公網ip地址

分享即學習

微信公眾號

CDN那些事


這裡得益於 Google 的 EDNS 協議,DNSPod 在 2012 年的時候就已經支持該協議,詳見:https://www.v2ex.com/t/46596 (DNSPod 與 Google Public DNS 建立合作關係,已經對 8.8.8.8 開啟了 edns 協議)。

並且在最近幾年,我們與 Google 的遞歸 DNS 團隊也有著非常密切的技術交流,整個技術的使用已經非常成熟了。


智能DNS全稱為「基於分散式架構的高速智能DNS解析服務系統」,是由睿江雲研發的一套智能DNS系統。可以隨時把域名託管到EflyDNS域名智能解析服務平台,享受DNS域名智能解析服務,讓域名能夠為各種網路來源的訪問用戶提供更好的網路瀏覽體驗。


推薦閱讀:

IP報文的目的IP地址是私有IP地址,網路層如何處理的?
nginx不是使用epoll么? epoll貌似是同步的吧! 那nginx的非同步非阻塞到底非同步在哪裡?
DNS劫持和HTTP劫持有什麼區別?

TAG:互聯網產品 | 計算機網路 | DNS | DNSPod |