簡單cdn(八)

7.8 雜項

 

7.8.1 部署cdn的重點和難點

 

整個cdn最重要的部分就是全局智能dns服務,這是cdn不可替代的組件。在沒有出現視圖view功能之前(或者當某些系統管理員不知道有這樣的功能),甚至有人以dns輪詢方式調度用戶對緩存服務器的訪問,這種形式會讓用戶的體驗時好時壞。

 

7.8.2 取得和歸類中國大陸ip地址列表

 

在本章“7.3.3”節,我們用了一個腳本get_ip.sh來取得和歸類ip地址,而未說明是怎樣一回事情。那麼,在本章的結尾我把它補充一下。

 

我們知道,亞太地區的ip地址由APNIChttp://www.apnic.net)分配,通過訪問APNIC官方站點的url http://www.apnic.net/publications/research-and-insights/stats ,可以知道在何處得到ip地址分配的有用信息(如圖7-8所示)。
7-8 通過ftp方式可以取得原始數據

點擊圖7-8加下劃線的那個鏈接,就進入ftp站點 ftp://ftp.apnic.net/,再點幾次鼠標,最後定位在ftp://ftp.apnic.net/apnic/stats/apnic/README.TXT,這個文件幫助我們瞭解該下載哪個文件以及文件的格式。讓我們按照這個README.TXT的提示,在瀏覽器裏打開頁面文件ftp://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest ,除去註釋行,我們將看見形如“apnic|JP|asn|173|1|20020801|allocated”的文本行。把這個文件下載下來,過濾一下,變可以把分配給中國大陸(第2個字段爲“CN”)單獨提取出來。在前面的get_ip腳本,用wget下載這個delegated-apnic-latest文件,然後再用grep CN提取出來形成一個單獨的文件。具體的操作就是一下兩步:

(1)                             wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O /root/ipnic/ip_apnic

(2)                             grep 'apnic|CN|ipv4|' /root/ipnic/ip_apnic | cut -f 4,5 -d'|'|sed -e 's/|/ /g' | while read ip cnt
do
echo $ip:$cnt
    mask=$(cat << EOF | bc | tail -1
pow=32;
define log2(x) {
if (x<=1) return (pow);
pow--;
return(log2(x/2));
}
log2($cnt)
EOF)
echo $ip/$mask>> cn.net

done

在得到ip地址段以後,通過網站www.cnnic.net.cn查詢這個地址段屬於那個運營商,或者在linux下用whois工具查詢。用訪問網站的方式,一次只能查詢一個地址段,根本無法完成所有地址的查詢。而使用whois則可用遍歷方式逐個查詢,然後按關鍵字歸類,形成幾個單獨的文件。

 

可能由於各ip地址租用方未能按同一的標準在apnic提交註冊信息,get_ip.sh腳本以正則表達式“netname”取得的值就未必能清楚反應運營商的名稱,如“netname:      KLSF-LID-BJ”就很難從字面上連接是那個運營商的網絡。如果你想判別更精準一些,則需要藉助其他正則表達式如“mnt-by”作爲輔助條件。

 

7.8.3 應急處理

 

Cdn服務運營中,有可能出現某個運營上機房網絡不可用的情況--如設備故障或機房維護操作--這樣一來,就導致某個區域的用戶徹底不能訪問。出現這種極端情況時,我們需要把出故障的機房資源臨時從dns的轉發列表刪除,然後把前往這些機房的訪問轉發到其它地方,接下來,還是以我的實例來做說明。

 

現在假定我們放置服務器的電信idc託管機房出故障,造成電信的用戶不能訪問我的網站。在我發現故障以後,打開區文件telecom.sery.cn.zone,把它裏面的A記錄做修改,如果要把它的流量切換到網通機房,則把A記錄對應的 ip改成跟unicom.sery.cn.zone的設置一樣。

 

在進行流量切換操作時,很可能因爲瞬間流量過大而使系統過載,因此在設計簡單cdn容量的時候,每個點應該至少能承受整個系統用戶的訪問,否則當你從一個故障機房切換流量時,順便也吧另一個點也撐死了,這種結果當然不是我們想要的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章