一日接到站點報修,一個程序訪問CDN地址的緩存緩慢,經常有卡死顯現,按照常規思路開始排查
遠程桌面問題電腦
開始——運行——CMD
nslookup p_w_picpaths.xxxx.com
服務器: XXX-rod-01
Address: 10.10.10.10
非權威應答:
名稱: yd.xdwscache.glb0.lxdns.com
Addresses: 123.103.14.237
221.233.79.237
Aliases: p_w_picpaths.xxxx.com
p_w_picpaths.xxxx.com.cdn20.com
當ping兩個地址的發現211.233.79.237不通,由於CDN地址經常變化,以爲是常規故障,於是在防火牆上對此地址進行了放行,可以ping通了,但是訪問依然緩慢,從本站點看,網絡正常,服務器的DNS解析正常,於是問題陷入一個僵局。
後聯繫CDN提供商的工程師,那邊工程師回饋我們訪問的地址是一個聯通地址,而解析出來訪問緩慢的地址是電信的地址,於是有了思路。
返回的地址經查詢爲電信地址,而現場的Internet出口爲聯通,跨網段訪問自然緩慢,考慮到CDN的智能DNS,會根據出口地址的來源來返回相應的電信/聯通IP地址,而公司的DNS是多出口,於是登錄DNS服務器,對p_w_picpaths.xxxx.com做了一條條件轉發器到聯通的公網DNS做解析。
清除DNS緩存,重新解析時發現可以正常解析爲聯通地址,可是奇怪的是幾分鐘後,地址重新解析爲電信地址,這讓我十分的費解,於是重新進入DNS服務器查找,發現轉發器默認的解析地址指向了電信的服務器,當更改爲聯通服務器後正常。
總結,1、智能DNS解析是看你的解析服務器的地址
2、條件轉發器級別是高,但是轉發器會在後面做遞歸查詢,重新刷新DNS緩存導致異常
3、臨時解決辦法可以在PC機上綁定HOST文件來解決。