解說DNS負載均衡
域名解析是我們瀏覽網絡的基礎,也是網絡建立發展的基石。那么如何對龐大的域名解析系統進行管理和優化呢?我們可以使用負載均衡技術,通過這種技術的調和,使DNS更加合理化。那么具體的相關內容讓我們一起看文中是如何解釋的吧。
一、解析負載均衡
a、最早實現負載均衡功能的可能是DNS機制。
DNS配置中,有多個IP地址對應同一個域名時,DNS服務器就用Round Robin算法(輪詢)把某一個IP地址返回給用戶,從而在一定程度實現了負載均衡。
b、類F5BIG-IP(3DNS)設備
可以將這類設備看做”硬件的DNS服務器“,用戶要訪問的域名由BIG-IP/3DNS負責解析。這個域名對應一組IP(或者叫IPPool),BIG-IP通過各種負載均衡策略,給用戶返回不同的IP地址,一般是返回用戶就近的地址,同時實現負載均衡。
二、4、7層交換負載均衡
a、***類為負載均衡交換機,就是常說的4、7層交換機,像Alteon、Arrowpoint和Foundry等。簡單說來,有負載均衡功能的交換機是把傳統的2、3層交換的功能擴展到更高層(其實就是既分析IP包頭,又看包里的內容)。通常,因為基于交換的設備沒有什么代碼,又是基于ASIC的,所以交換機會提供較好的性能和較高的可靠性。
b、第二類為基于PC服務器的產品,像F5、Radware和Intel等,這類產品在吞吐量和并發上會有性能的瓶頸。
c、第三類為基于服務器端的軟件代理工具,這類產品是運行在每臺服務器上的特殊軟件,如LVS(4/7層),Haproxy(7層)等。由于軟件是依賴于平臺的,當服務器上裝有別的軟件時,可能會在可靠性及其他性能上有所下降。
三、趨勢
前面介紹的全是在本地如何做到負載均衡。現在明顯的趨勢是:比較大的站點都是由跨網絡、跨地域的許多服務器組成的。形成這種局面的主要原因有2個,一個是高可靠性。當我們在一個地點采用負載均衡等技術后,在該地的工作我們已經做得很好了,但問題是如果這個地方的訪問量大到超過設計容量、托管數據中心的Internet接入慢了或斷了,那我們的站點就會受到影響。另一個是使客戶能更快地訪問到信息。我們在服務器端做了許多工作,響應能力很強。但由于Internet的延時,對客戶的響應時間還有可能太長。中國如何做到跨網絡、跨地域的服務器之間負載均衡呢?使用全球負載均衡Global Server Load Balance,GSLB)技術就可以做到。前面,我們曾介紹了用DNS做負載均衡,但采用DNS的缺陷在于它不能讓用戶去訪問最近、最快的服務器。GSLB如何做到這一點呢?全球平衡設備就充當授權域名服務器的角色。它們互相通訊,根據各種參數智能地選擇某個站點,答復本地DNS,而不是機械地給出列表上的下一個IP地址。
用DNS框架解決GSLB有2個問題。首先,DNS解析會占用較長的時間,使對最終用戶的響應時間變長。因為DNS的體系就是層次的,一般請求都要經過幾個域名服務器后才會到達授權域名服務器,從而得到應答。其次,不同的GSLB產品使用不同的準則來確定客戶端最終訪問的服務器。通常,全球平衡設備是根據本地DNS的信息確定該選中哪個服務器。實際上,全球平衡設備見不到真正的客戶端,只能見到轉發解析請求的本地DNS。
用DNS框架解決GSLB的一個好處是可以平衡各種類型的流量。如果是HTTP應用,GSLB產品可以用HTTP的重定向來確定提供服務的服務器,加速響應。客戶端的請求發到全球負載均衡設備上,由全球負載均衡設備再把請求用HTTP重定向發到恰當的服務器上。這種方式的優點在于:首先,負載均衡設備直接與客戶端鏈接,這樣在重定向時可以有準確的信息來判斷。其次,HTTP的重定向會節省時間。因為在這種方式下,只需要建立2個TCP鏈接,一個是從客戶端到負載均衡設備,另一個是從負載均衡設備到真正提供內容的服務器。而DNS方式需要建立3個鏈接,一個是從本地DNS到平衡設備,一個是從平衡設備到客戶端,還有一個是從客戶端到真正提供內容的服務器。HTTP重定向的缺陷是很明顯的:它只能平衡HTTP包,不能平衡FTP等流量,更別說音頻、視頻了。
無論用哪種方法解決GSLB,都要確定到底是由哪個服務器最終響應客戶請求。一般說來有5個準則:接近程度、響應時間/延時、丟包情況、本地服務器的負載和本地服務器的健康情況。前3個衡量網絡鏈路的性能,剩下的2個表示單個服務器的性能和狀態。
大多數情況下,平衡設備都用客戶本地的DNS服務器與應用服務器之間路由器的跳數表示接近程度。由于Cisco獨特的技術,它可以根據BGP、IGP和OSPF等協議獲得網絡拓撲信息和路由信息,從而得知哪個應用服務器離客戶端的本地DNS最近。另外一些產品允許手動設定接近程度。這個手段使得人們可以設定策略來限制某些流量流入到特定的網絡上,比如由于國際鏈路很貴,能在國內訪問的請求就可以限定在國內。