官术网_书友最值得收藏!

4.4.1 路由解析

在介紹DNS域名解析時,筆者曾提到翻譯域名無須像查電話本一樣刻板地一對一翻譯,根據來訪機器、網絡鏈路、服務內容等各種信息,可以玩出很多“花樣”,內容分發網絡將用戶請求路由到它的資源服務器上就是依靠DNS服務器來實現的。根據我們對DNS域名解析的了解,一次沒有內容分發網絡參與的用戶訪問,其解析過程如圖4-5所示。

圖4-5 沒有內容分發網絡參與的用戶訪問的解析過程

那么,有內容分發網絡介入會發生什么變化呢?我們不妨先來看一段對網站“icyfenix.cn.”進行DNS查詢的真實應答記錄,這個網站就是通過國內的內容分發網絡對位于GitHub Pages上的靜態頁面進行加速的。通過dig或者host命令,能夠很方便地得到DNS服務器的返回結果(結果中頭4個IP的城市地址是筆者手工加入的,后面的其他記錄就不一個一個查了),如下所示:


$ dig icyfenix.cn

; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> icyfenix.cn
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60630
;; flags: qr rd ra; QUERY: 1, ANSWER: 17, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;icyfenix.cn.                   IN      A

;; ANSWER SECTION:
icyfenix.cn.            600     IN      CNAME   icyfenix.cn.cdn.dnsv1.com.
icyfenix.cn.cdn.dnsv1.com. 599  IN      CNAME   4yi4q4z6.dispatch.spcdntip.com.
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  101.71.72.192  #浙江寧波市
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  113.200.16.234 #陜西省榆林市
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  116.95.25.196  #內蒙古自治區呼和浩特市
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  116.178.66.65  #新疆維吾爾自治區烏魯木齊市
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  118.212.234.144
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  211.91.160.228
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  211.97.73.224
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  218.11.8.232
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  221.204.166.70
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  14.204.74.140
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  43.242.166.88
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  59.80.39.110
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  59.83.204.12
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  59.83.204.14
4yi4q4z6.dispatch.spcdntip.com.  60 IN  A  59.83.218.235

;; Query time: 74 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sat Apr 11 22:33:56 CST 2020
;; MSG SIZE  rcvd: 152

根據以上解析信息,DNS服務為“icyfenix.cn.”的查詢結果先返回了一個CNAME記錄(icyfenix.cn.cdn.dnsv1.com.),遞歸查詢該CNAME時,返回了另一個看起來更奇怪的CNAME(4yi4q4z6.dispatch.spcdntip.com.)。繼續查詢后,這個CNAME返回了十幾個位于全國不同地區的A記錄,很明顯,這些A記錄就是分布在全國各地、存有本站緩存的CDN節點。CDN路由解析的具體工作流程如下。

·架設好“icyfenix.cn.”的服務器后,在你的CDN服務商上將服務器的IP地址注冊為“源站”,注冊后你會得到一個CNAME,即本例中的“icyfenix.cn.cdn.dnsv1.com.”。

·在你購買域名的DNS服務商上將得到的CNAME注冊為一條CNAME記錄。

·當第一位用戶來訪時,將首先發生一次未命中緩存的DNS查詢,域名服務商解析出CNAME后,返回給本地DNS,之后鏈路解析的主導權就開始由內容分發網絡的調度服務接管了。

·本地DNS查詢CNAME時,由于能解析該CNAME的權威服務器只有CDN服務商所架設的權威DNS,這個DNS服務將根據一定的均衡策略和參數,如拓撲結構、容量、時延等,在全國各地能提供服務的CDN緩存節點中挑選一個最適合的,并將它的IP代替源站的IP地址,返回給本地DNS。

·瀏覽器從本地DNS拿到IP地址后,將該IP當作源站服務器來進行訪問,此時該IP的CDN節點上可能有,也可能沒有緩存過源站的資源,這點將在稍后的4.4.2節討論。

·經過內容分發后的CDN節點,就有能力代替源站向用戶提供所請求的資源了。

以上步驟反映在時序圖上,如圖4-6所示,讀者可自行與本節開頭給出的沒有內容分發網絡參與的圖4-5進行對比。

圖4-6 有內容分發網絡參與的路由解析過程

主站蜘蛛池模板: 虹口区| 聊城市| 南陵县| 盐源县| 浦县| 石门县| 英德市| 石棉县| 文昌市| 武平县| 海安县| 游戏| 沁水县| 五原县| 东光县| 灵寿县| 淮阳县| 镇江市| 湄潭县| 中阳县| 读书| 驻马店市| 彰化县| 兴宁市| 遂川县| 泽州县| 汝城县| 鲁甸县| 公安县| 忻城县| 岐山县| 楚雄市| 安康市| 奉化市| 宽甸| 大石桥市| 富裕县| 嵊泗县| 光山县| 庆城县| 嵩明县|