引言: 筆者所在單位——西安鐵路局園區互聯網建設完成后,DNS查詢將不可避免的成為影響用戶上網質量的因素之一。為解決問題,可在網站群建設中增加DNS緩存服務器基礎設施來消除DNS查詢延時問題。本地化DNS緩存服務器可以擺脫ISP提供的有限DNS地址,可以將多臺公共DNS服務器作為上端查詢服務器,保證整個上網過程的平穩與無故障。
隨著企業私有數據中心建設的逐步深入和細化,以及跨網應用軟件的逐步普及,將會有越來越多的部門級用戶通過集中接入出口網關訪問互聯網絡信息資源。用戶在互聯網環境下進行各種資源和網站的訪問以及數據交互,域名是重要的組成部分之一。
對于域名的服務一般由各地的ISP服務商提供2-4個DNS域名服務器,供本地的上網者使用。這就形成了這樣一個局面:上網的人很多,而實際服務的DNS服務器很少,一次域服務查詢請求需要耗費幾十至幾百毫秒,特別困難時間DNS查詢將會達到上千毫秒的耗時,同時也會消耗一定的網絡帶寬。一方面:ISP的DNS服務器數量有限,大量的用戶請求必然帶來DNS查詢排隊等待的時效性問題。另一方面:DNS服務器本身只是提供一種單純的服務,這個服務對于各個ISP服務商來說基本沒有盈利的能力。雖然在網絡訪問中ISP提供的DNS服務器出現問題將導致用戶無法進行正常的網絡訪問,但處于成本考慮ISP也不會向用戶提供更多的DNS服務器。通過DNS速度測試可以看到,往往DNS查詢就會讓用戶體驗大打折扣。西安鐵路局園區互聯網建設完成后,DNS查詢將不可避免成為影響用戶上網質量的因素之一。
為解決以上問題,可以在網站群建設中增加DNS緩存服務器基礎設施來消除DNS查詢延時問 題。DNS服務本地化。也就是說,當用戶訪問一個域名時,他最先訪問的是自己機器上的DNS服務器,由本地DNS緩存服務器提供該域名的解析,這樣就將原來的缺少DNS服務器的局面完全改變。使用本地化DNS服務器后,最高可以提高20%的上網速度,可以獲得更快的網絡瀏覽速度。越是網絡帶寬不足或者質量差,就越能體現本地化DNS服務器的作用。更為關鍵的是,本地化DNS緩存服務器可以擺脫ISP提供的有限DNS地址,可以將多臺公共DNS服務器作為上端查詢服務器,保證整個上網過程的平穩與無故障。同時也可以減少用戶通過出口網關進行DNS查詢產生的數據流量,這些特點對于用戶來說是有實際意義的。
另 外,Dnsmasq作 為Linux系統上緩存DNS服務器安裝方便,操作簡單,非常適合作為本地DNS緩存服務器使用。
1.使用命令apt-get install dnsmasq(Debian/Ubuntu系列)或者yum install dnsmasq(RedHat系列)安裝dnsmasq軟件。
2.使 用vi /etc/dnsmasq.conf命令對該文件進行修改,修改內容如下:

其中cache-size行表示DNS緩存區大小,以M為單位,建議根據機器內存盡量設置的大一些,這樣有利于緩存足夠多的DNS并快速返回給下端DNS查詢用戶。
3.使用命令vi /etc/resolv.dnsmasq.conf編輯該文件,resolv.dnsmasq.conf中設置的是真正的上游DNS服務器,dnsmasq會首先尋找本地的hosts文件再去尋找緩存下來的域名,最后去上游DNS服務器尋找。
4.啟用防火墻規則(假定DNS監聽IP地址192.168.0.71配置在eth0設備,用戶需要根據自己的實際進行修改):

通過以上配置,即可將客戶端主機DNS設置為該緩存DNS服務器地址,以獲取更高效快速的DNS查詢服務,生產系統中可以配置兩臺這樣的緩存DNS服務器,以避免DNS單點故障。
使用GOOGLE提供的DNS基準測試工具(DNS Benchmark)進行分析(如圖 1),圖中192.168.0.71為本地DNS緩存服務器,211.137.130.3為運營商ISP提供的默認DNS服務器,其他為公共DNS權威服務器,測試中可以看到本地緩存DNS服務器各項指標最好,同時,在Tabular Data選項框數據列表中我們也可以看到本地DNS的各項可靠性指標均在100%,優于ISP提供的默認DNS服務器,同時由于本地DNS緩存服務器配置了多臺公共DNS服務器進行域名向上遞歸查詢,這樣即使ISP提供的DNS不可用,只要網絡通暢可達,也不會造成網絡的不可用。

圖1 DNS基準測試分析