Chromium 對root DNS 流量的影響
基於Chromium的瀏覽器如今佔據了七成以上的瀏覽器市場份額,它的某些行為可能會產生意想不到的巨大影響,比如DNS域名查詢。Chromium有一項功能叫omnibox,用戶可以在裡面輸入網站名字、網址和搜索查詢詞。但如何區分用戶輸入的一個單詞是域名(企業內聯網域名可以是一個單詞)還是查詢詞?Chromium採取的方法是在後台進行域名DNS查詢,檢查是否會返回有效的IP地址。
毫無疑問,這種關鍵字DNS 查詢在很多情況下是返回域名不存在的錯誤消息。這種域名錯誤信息叫NXDOMAIN,有些ISP 會在這上面打主意,對於無效域名它們會進行攔截重定向到廣告頁掙些廣告費。
Chromium 在DNS 查詢的的時候需要識別某個網絡是否存在NXDOMAIN 攔截。根據Chromium 的源代碼(intranet_redirect_detector.c),它使用的方法是在每次啟動、每次IP 地址變化、每次設備DNS 配置變更時對3 個隨機的7-15 字符長(現在固定為10 個字符長)的字符串進行DNS 查詢。
如果至少2 個隨機域名查詢到的IP 地址是相同的(即被重定向了),那麼Chromium 會認為存在NXDOMAIN 攔截,如果用戶輸入的詞查詢結果匹配了被重定向的IP,那麼Chromium 將不會有任何操作,否則會提示是否是本地域名。
Chromium的這種行為會在root DNS服務器留下記錄。根據亞太互聯網絡信息中心的統計,root服務器一半的查詢流量來自於Chromium的檢查。這相當於每天在root服務器系統查詢600億次。