解析廣域網(wǎng)(服務(wù)器)鏈路負(fù)載均衡
解析廣域網(wǎng)(服務(wù)器)鏈路負(fù)載均衡
歡迎大家來到學(xué)習(xí)啦,小編為大家揭開CDN的神秘面紗,歡迎大家閱讀。
CDN 是一個(gè)經(jīng)策略性部署的整體系統(tǒng).能夠幫助用戶解決分布式存儲(chǔ).負(fù)載均衡.網(wǎng)絡(luò)請(qǐng)求的重定向和內(nèi)容管理等問題.其目的是通過在現(xiàn)有的 Internet 中增加一層新的網(wǎng)絡(luò)架構(gòu).將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)" 邊緣 ".使用戶可以就近取得所需的內(nèi)容.解決 Internet 網(wǎng)絡(luò)擁塞狀況.提高用戶訪問網(wǎng)站的響應(yīng)速度.從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小.用戶訪問量大.網(wǎng)點(diǎn)分布不均等原因.解決用戶訪問網(wǎng)站的響應(yīng)速度慢的根本原因.
CDN是個(gè)很龐大的概念和體系.全世界CDN服務(wù)提供商屈指可數(shù).
我們熟悉的Google就是某CND的最大客戶.我們今天只選取其中一小部分來討論.
說了半天.看上去似乎很復(fù)雜.鑒于經(jīng)典的大多是搞WEB的.接觸的最多的是WEB服務(wù)器/數(shù)據(jù)庫等.既然是淺談.我就舉個(gè)簡單的例子.
比如你弄一網(wǎng)站.假設(shè)你有能力購買2臺(tái)服務(wù)器.作為WEB服務(wù).暫時(shí)我們認(rèn)為服務(wù)器本身不存在性能問題.一臺(tái)托管在北方的網(wǎng)通機(jī)房.一臺(tái)托管在南方的電信機(jī)房.2臺(tái)服務(wù)器內(nèi)容互為同步.則通過智能的DNS解析設(shè)備.將網(wǎng)通的用戶定位到北方網(wǎng)通的服務(wù)器上.將電信的用戶定位到南方電信的服務(wù)器上.這.就是最基礎(chǔ)的CDN.我的理解是 --- 廣域網(wǎng)的負(fù)載均衡.
2臺(tái)服務(wù)器放置問題我不想多談.有錢就行.2臺(tái)服務(wù)器內(nèi)容同步的方式很多.我也不想多談.今天主要是要談一下.如何實(shí)現(xiàn)讓網(wǎng)通的用戶去訪問放置在網(wǎng)通的服務(wù)器.電信的用戶去訪問放置在電信的服務(wù)器.
即如今很多服務(wù)提供商所謂的智能DNS解析.也就是互聯(lián)網(wǎng)鏈路的負(fù)載均衡.
(提問) 我們?cè)L問一個(gè)域名.比如 www.rzpgrj.com. 誰知道實(shí)際的訪問過程是怎么樣的?
(獎(jiǎng)勵(lì)) 誰知道的給100G.一組大棱光.一個(gè)源生虛空?沒人知道嗎?那不怪我了!
......
電信/網(wǎng)通.2條鏈路的負(fù)載均衡.我們先來談?wù)勥@個(gè).因?yàn)檫@個(gè)是訪問者最直觀的體驗(yàn).
既然CDN的目的是為了提高用戶訪問網(wǎng)站的響應(yīng)速度.最直接的方法就是做互聯(lián)網(wǎng)鏈路的智能導(dǎo)向.
當(dāng)然.CDN也涉及多臺(tái)服務(wù)器負(fù)載均衡.應(yīng)用的負(fù)載均衡.包括中間件的應(yīng)用負(fù)載均衡.因?yàn)闀r(shí)間關(guān)系暫且不表.
當(dāng)我們將 www.rzpgrj.com 輸入IE地址欄敲回車后.首先要去你的Local DNS做解析.什么是Local DNS?就是你本機(jī)網(wǎng)卡所設(shè)置的DNS服務(wù)器.比如我的是: 202.96.128.68.如果Local DNS沒有 www.Bluieidea.com 的Cache記錄.則Local DNS會(huì)詢問上級(jí)DNS服務(wù)器.注意.DNS的查詢結(jié)構(gòu)是樹狀的.最后查詢的DNS為root.即為root DNS.或者稱為根DNS.根DNS在全世界只有13臺(tái).中國境內(nèi)沒有.當(dāng)root DNS接受到請(qǐng)求后.通過查詢獲得的結(jié)果一般是: xuexila.com這個(gè)域的解析服務(wù)器為ns1.chinadns.com.要求你去詢問ns1.chinadns.com去做解析.ns1.chinadns.com是哪里來的?當(dāng)然是你申請(qǐng)注冊(cè)域名的機(jī)構(gòu)自己的DNS服務(wù)器.也就是你xuexila.com這個(gè)域名的隸屬DNS.隸屬DNS獲得了你域名解析的請(qǐng)求.則查詢A記錄.返回xuexila.com的IP地址給最初的PC Client端.完成了一次域名解析為IP地址的全部過程.
雖然很繞.但是如果能搞明白.那才能理解下面的關(guān)于智能DNS的技術(shù)原理.
上述DNS查詢的常規(guī)流程.基本上就是如下圖:
PC -> Local DNS -> Root DNS -> ns1.chinadns.com -> IP -> 返回給PC
智能DNS的工作原理即是在ns1.chinadns.com這一步.工作流程如下:
PC -> Local DNS -> Root DNS -> 智能DNS解析 -> 返回IP地址 -> 返回給PC
注意.上述的"返回IP地址"這一步.其實(shí)是根據(jù)PC的來源.智能的返回電信或者網(wǎng)通的IP地址.即如果請(qǐng)求解析的PC是電信線路的.則返回托管在南方電信機(jī)房的服務(wù)器的電信IP地址.反之.則返回托管在北方網(wǎng)通機(jī)房的網(wǎng)通的IP地址.
看到這里.出現(xiàn)了一個(gè)問題.如何判斷這個(gè)請(qǐng)求DNS的PC.他是電信線路還是網(wǎng)通線路呢?
有2個(gè)方法.一個(gè)聰明的.一個(gè)笨的.我們先說笨的方法.如果智能DNS有一張龐大的IP地址分配表.表里面有所有的電信IP地址段和所有的網(wǎng)通地址段.則可以通過查詢這個(gè)IP地址表來判斷.請(qǐng)求的PC是屬于哪個(gè)線路上的.這個(gè)方法是最直接.最高效.最穩(wěn)妥的方法.雖然的確是笨了點(diǎn).但是請(qǐng)各位注意.往往笨的方法就代表著穩(wěn)定.代表著高可用性.所以.我很遺憾的告訴大家.基本上銀行.證券.金融.這些重要部門.都是使用的這種笨的方法.
另外一個(gè)聰明的方法.則是通過智能的動(dòng)態(tài)檢測的方法.在智能DNS解析設(shè)備接受到PC的DNS請(qǐng)求的時(shí)候.將使用電信/網(wǎng)通的2條線路分別發(fā)送一個(gè)探測包.發(fā)送目標(biāo)可以為目標(biāo)PC的IP地址.不過更多的發(fā)送目標(biāo)為Local DNS.這個(gè)包可能是ICMP的PING包.也可能是反向DNS查詢的DNS包(TCP 53).當(dāng)2個(gè)包有回應(yīng)后.比較2個(gè)包的時(shí)間戳.延遲小的.則判定為優(yōu)先解析的鏈路.
說到這里.基本上把智能DNS解析的工作原理簡單的介紹了一下.當(dāng)然.實(shí)際環(huán)境中會(huì)有更復(fù)雜.更多方法更多手段來實(shí)現(xiàn).我寫這篇小文的目的.一來分享一下.二來混點(diǎn)威望.僅此而已.
CDN很龐大.我認(rèn)為此文主要是探討其中的一部分.即互聯(lián)網(wǎng)鏈路的負(fù)載均衡.也就是業(yè)內(nèi)稱為: 廣域網(wǎng)的全球負(fù)載均衡和應(yīng)用交付網(wǎng)絡(luò).