策略DNS在多出口電子商務網站中的應用
雷明彬
[摘 要] 本文提出企業為了提高用戶對電子商務網站訪問的速度,必須要和大的ISP互聯,并指出了這樣做存在的問題,然后簡單介紹了域名系統和策略域名技術,可以依據此技術來解決存在問題,最后給出了一個具體的示例。
[關鍵詞] 網絡互聯 域名系統 策略域名 BIND
目前,我國大的互聯網服務提供商(ISP)有好幾家,每家ISP內部互訪速度都是很快的,但是這些ISP間互訪的速度由于其互聯的帶寬的制約,往往都是比較慢的,導致企業在部署電子商務網站時往往都需要同時接入這些ISP,才能保證大部分用戶的高速訪問。并且用戶訪問企業的電子商務網站時,必須根據自己接入的ISP,去選擇相應的企業電子商務網站,為了減輕用戶的負擔,企業往往要聲請多個域名,每個域名對應其接入的ISP。因此,這種辦法潛伏了兩個問題:一是用戶必須弄清楚自己接入的ISP是誰;二是用戶要去選擇該企業同本ISP對應的域名,導致企業域名不一致。是否有一種辦法,可以讓用戶不受這兩個問題的困繞,而能實現在企業在具有多個出口時高速訪問其部署的電子商務網站呢?
本文以xx企業電子商務網站部署為應用背景,探討依據策略DNS解決以上問題的一種方法,假設該企業同時接入了CerNet和ChinaNet這兩個大的ISP,CerNet分配的IP為:210.27.80.0/24,ChinaNet分配的IP為:61.150.47.0/24,企業申請的域名為:xx.com,網站的域名為:www.xx.com,對應CerNet的202.115.144.30和ChinaNet的61.139.87.3。
一、策略域名技術
域名系統(DNS:Domain Name System)的功能是實現主機域名和IP地址之間的相互轉換。用戶訪問某臺服務器提供的服務時,在應用程序中基本上都是輸入服務器的域名,然后再由DNS服務器將此域名稱解析為與之對應的IP地址,應用程序最后都是依靠IP地址來和服務器通訊的。傳統的DNS系統對任何主機請求的域名,最后解析出的IP地址都是一樣的,不能根據不同的用戶解析出不同的IP地址。
策略域名就是在這種情況下產生的,它可以根據不同IP的請求將同一個域名解析為不同的IP地址或則應用不同的安全策略(比如對內網用戶提供遞歸解析服務的同時忽略外網用戶的遞歸解析請求)。換句話說,對于CerNet ISP的接入用戶和ChinaNet ISP的接入用戶,企業的相同域名最后對應的IP地址是不同的。這樣的話,用戶訪問企業電子商務網站時由企業的DNS服務器根據用戶接入的ISP而解析出對應該ISP的地址,讓用戶能高速訪問到自己的網站,不再需要用戶去搞清楚自己接入的ISP,再去選擇企業對應的域名。
二、策略域名實現
Unix或Linux下的DNS服務軟件始終都是以Berkeley的BIND(Berkeley Internet Name Domain)程序為主流。BIND 8或者以前的版本無法實現策略域名解析,但從BIND 9開始才出現了View語句,可以實現策略域名解析,該語句實際上就是針對不同的用戶建立了一個域名和IP地址映射環境,根據不同的用戶請求去查詢不同的映射表,從而實現策略域名解析的。
下面為/etc/named.conf文件的主要內容:
acl edu-nets { 210.27.0.0/16;202.117.0.0/16;… };#所有教育網的網段列表(其中教育網的網段列表可以從教育科研網www.edu.cn獲取)
options{ directory “/var/named” #數據文件存放路徑
pid-file “/var/named/named.pid”;
};
view “CerNet”{ #定義名為CerNet的view
match-clients {edu-nets;};#匹配所有教育網的用戶
zone “.” {type hint;file “named.ca”;};
zone“0.0.127.IN-ADDR.ARPA”{type master; file “127.0.0”;};
zone “xx.com” {type master;file “xx.com.cernet”}; #教育網的解析文件
zone “144.115.202.in-addr.arpa” {type master;file “202.115.144”;};#教育網的反向解析文件
};
view “ChinaNet “{ #定義名為ChinaNet的view
match-clients {any;};#除了教育網以外的所有網絡
zone “.” {type hint; file “named.ca”};
zone“0.0.127.IN-ADDR.ARPA”{type master;file “127.0.0”;};
zone “xx.com” {type master;file “xx.com.chiannet”;};#公網的解析文件
zone“87.139.87.in-addr.arpa”{ type master;file“61.139.87”;};#公網的反向解析文件
};
然后設置/etc/named下的xx.com.cernet和xx.com.chiannet:
在xx.com.cernet文件中加上一條記錄:
www.xx.com IN A 202.115.144.30
在xx.com.chiannet文件中加上一條記錄:
www.xx.com IN A 61.139.87.30
經過這樣的配置之后,策略域名就可以正常工作了,教育網用戶訪問www.xx.com網站時,解析出的IP地址就是CerNet這個ISP分配的地址202.115.144.30,其他用戶訪問www.xx.com網站時,解析出的IP地址就是ChinaNet這個ISP分配的地址61.139.87.30,這樣就滿足了企業只需一個域名便可以實現不同ISP用戶高速訪問電子商務網站的需求。
三、小結
本文在RedHat Linux操作系統下,用BIND 9.3.1實現了域名的策略解析,解決了不同ISP用戶訪問企業電子商務網站速度慢這個一直困擾的問題。
[1](美)PaulAlbitz CricBetLiu:DNS與BIND(影印版).北京:清華大學出版社,2003
[2]李蔚澤:Red Hat Linux 9架站實務.北京:機械工業出版社,2005
[3]周明德:UNIX/Linux核心.北京:清華大學出版社,2004