11月12日我參加了51CTO的技術沙龍"Exchange Server系統升級與遷移",兩位老師的分享都比較精彩,也讓我學到了一些EXCHANGE在升級和遷移方面的知識和經驗。記得當時有位朋友問到DNS輪詢的問題,因爲時間關係宋老師回答的比較簡略,在此我把這個問題展開一下,也算是一個補充吧。linux
DNS輪詢就是指DNS服務器將域名解析請求按照A記錄的順序,逐一分配到不一樣的IP上,同時在必定程度上也實現了簡單的負載均衡。緩存
咱們先看一下WINDOWS2003下如何設置DNS輪詢。好比:有兩臺WEB主機,A主機ip是 192.168.1.1,B主機ip是192.168.1.4 , 企業裏有單獨一臺DNS服務器,而後在該DNS服務器的正向區域裏(域名爲haiquan.net)分別創建兩個主機A記錄,第一個主機記錄的記錄IP是192.168.1.1, 第二個主機記錄的記錄IP是192.168.1.4,附圖:
安全
而後在DNS主機QINGYG上點擊右鍵選擇屬性,在出現的對話框中勾選"啓用循環",如圖:
服務器
注意:網絡掩碼排序能夠根據子網掩碼來判斷dns地址和客戶端是否在同一個網段或者離的比較近,而後優先返回較近的服務器的地址。網絡
注意:WINDOWS會緩存DNS結果,爲方便觀察輪詢狀況,咱們須要用"ipconfig /flushdns"來清空DNS緩存。dom
下面咱們看一下LINUX下如何設置DNS輪詢,以RHEL 5爲例:
一、首先須要安裝BIND並搭建DNS服務器(具體DNS搭建過程請參考相關資料)
#yum install -y bind* caching-nameserver*
安裝DNS服務器通常須要安裝如下三個數據包:ide
bind-utils-9.3.3-7.el5 查詢用測試
bind-chroot-9.3.3-7.el5 安全機制網站
caching-nameserver-9.3.3-7.el5 配置文件
二、修改區域數據配置文件(example.com.db),這裏主要看一下DNS輪詢配置
IN MX 10 mail.example.com.
... ...
mail IN A 192.168.1.9
IN A 192.168.1.10
IN A 192.168.1.11
在以上配置中,mail.example.com對應了3個IP地址,此時具體選擇哪一條A記錄,是由rrset-order語句決定的。另外,在反向解析文件中,這3個IP也都要對應mail主機,以避免有些郵件服務器爲了反垃圾郵件進行反向查詢時出現問題。
[root@linux252:/]#host mail.example.com
mail.example.com has address 192.168.1.9
mail.example.com has address 192.168.1.10
mail.example.com has address 192.168.1.11
總結一下:
DNS輪詢的配置是比較方便的,若是網絡擴增,新增的Web服務器只要增長一個公網IP便可。 但相對來講,DNS輪詢也有其自身的一些缺點,這個工做當中也是咱們須要注意的。
其一:若是某臺服務器宕機,DNS服務器是沒法知曉的,仍舊會將訪問分配到此服務器。修改DNS記錄所有生效通常要1-3小時,甚至更久;
其二:若是幾臺Web服務器之間的硬件配置不一樣,致使可以承受的壓力也是不一樣的,可是DNS輪詢解析目前不能很好的按權重進行分配。
其三:若是是須要身份驗證的網站,DNS解析沒法將驗證用戶的訪問持久分配到同一服務器。雖然有必定的本地DNS緩存,可是很難保證在用戶訪問期間,本地DNS不過時,而從新查詢服務器並指向了新的服務器,那麼原服務器保存的用戶信息是沒法被帶到新服務器的,並且可能被要求從新認證身份,並且來回切換時間長了各臺服務器都保存有用戶不一樣的信息,對服務器資源也是一種浪費。