如何獲取域名在全國的解析質量

    首先,咱們爲何關心一個域名在某個地方的真實解析ip?當咱們使用dns 後,域名解析的結果,對於網站方是不可控的,做爲cdn 的用戶,怎麼知道本身網站在某個省的真實質量?若是不知道真實質量,怎麼調用新的節點去覆蓋?bash

    其次,咱們怎麼去獲取某個域名解析,在某個省或者市的真實質量?當使用融合cdn的時候,域名出現跨運營商,跨省解析,都是頗有可能的。服務器

    第一點是作域名監控的意義,第二點咱們該如何去實現,實現的關鍵就是edns 協議。網站

    咱們怎樣作一個域名的全網真是ip查詢呢?回顧下,咱們上網的通常流程(圖片網上搜的)code

    通常不設置dns server 的話,咱們使用的localdns 都是isp dns 。當咱們發出請求的時候,全部向baidu.com 所在權威服務器發出的請求,都是isp dns 服務器 所在ip 查對應view 解析的結果。cdn

    說到這,關鍵的點就出來了,咱們可以模擬isp dns 發送請求給權威服務器,或者說,我能把ip 信息傳導到權威服務器,權威服務器能根據這個ip 匹配出對應view ,將解析結果返回,這個問題就能夠解決。這個能作嗎?能作,用edns 協議就能夠。server

    edns 網上有不少簡介了,原理就是擴充協議,附帶ip 信息。能夠從新編譯bind 附帶subnet 去抓包查看協議的每一個字段:dns

dig -t A www.alibaba.com @202.119.160.11 
; <<>> DiG 9.10.3-P4-Ubuntu <<>> -t A www.alibaba.com @202.119.160.11
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18762
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.alibaba.com.		IN	A
;; ANSWER SECTION:zhiwei
www.alibaba.com.	300	IN	CNAME	www-cn.gds.alibaba.com.
www-cn.gds.alibaba.com.	120	IN	A	106.11.62.61
;; AUTHORITY SECTION:
gds.alibaba.com.	6460	IN	NS	gdsns1.alibaba.com.
gds.alibaba.com.	6460	IN	NS	gdsns2.alibaba.com.
;; Query time: 34 msec
;; SERVER: 202.119.160.11#53(202.119.160.11)
;; WHEN: Sun Jul 24 22:08:59 CST 2017
;; MSG SIZE  rcvd: 127

    使用edns 後,就能透傳ip信息了,那咱們怎麼去監測全網域名的質量?權威服務器都支持edns ?若是權威服務器不支持edns ,如何作?若是權威服務器支持edns,咱們直接向權威發請求?若是向localdns 發送請求edns 請求,哪些支持,哪些不支持?若是localdns 支持,可是權威不支持,又會是什麼狀況?而後,目前支持edns 的localdns 有哪些?圖片

    總結下,直接向權威發edns 作監控是不合適的,加大了權威的負擔。通常會向localdns 發請求,目前,支持比較好的是dnspod 和 谷歌的localdns, 114不穩定,百度的也有點問題。而後,dnspod 和 谷歌的localdns 都會透傳 edns 請求,若是權威並不支持,那這個請求就不會獲取到解析結果。ip

    說到這,基本就知道該若是實現了,全國每一個省每一個運營商的網段選出幾個ip,分別構造edns 請求,就能夠獲得真實的解析地址,最後經過 httptrace 或者ping 就能夠獲取想要的指標。cmd

相關文章
相關標籤/搜索