
累積:技海拾貝|
C
UMULATION
淺談通過GTM進(jìn)行DNS的智能解析
文:東軟信息技術(shù)服務(wù)有限公司馬新元
什么是DNS的智能解析
目前中國的網(wǎng)絡(luò)南北割據(jù),電信、網(wǎng)通等不同線路的互訪頗為困難,而智能解析是針
DNS
對目前國內(nèi)電信、聯(lián)通以及移動等線路互聯(lián)互通提供的一種解決方案。具備智能解析能力的
DNSDNS
除了具備一般的基本解析功能外,還可以自動識別請求發(fā)送者的來源,并
DNS
IPIDCIP
以根據(jù)其將域名智能的解析到雙線路機(jī)器的網(wǎng)通或電信的或位于不同中機(jī)器的,
便瀏覽者就近訪問你的網(wǎng)站而不會因?yàn)榫€路不同而導(dǎo)致訪問慢。
,
DNS智能解析的原理
DNS智能解析的基本原理是識別用戶的來路,并且根據(jù)用戶的來路,通過獨(dú)有的算法,
把用戶分配到網(wǎng)站離用戶最近的服務(wù)器上。例如我們將域名托管在可進(jìn)行免費(fèi)DNS智
能查詢的DNSPod,則DNSPod可根據(jù)用戶的來源,讓網(wǎng)通線路的用戶訪問到網(wǎng)站的
網(wǎng)通IP或者讓沈陽的用戶訪問到位于沈陽IDC機(jī)房中的服務(wù)器(這一切對用戶而言是
無感知的),而不需要像早年間很多網(wǎng)站為了保證不同線路的訪問質(zhì)量,建立一個網(wǎng)站
的若干鏡像站,讓用戶手動去選擇自己要訪問的站點(diǎn)。
智能DNS的實(shí)現(xiàn)方式有軟件和硬件,軟件中有久負(fù)盛名的bind,而硬件中有F5 的
GTM 。同時也有提供DNS服務(wù)的DNSPod等。
利用F5GTM進(jìn)行DNS的智能解析
F5 GTM全稱為Global Traffic Management即全局傳輸管理,它是一種廣域網(wǎng)負(fù)載
均衡設(shè)備,以DNS解析為主要工作,可處理多個數(shù)據(jù)中心的流量分配。與它相對應(yīng)的
還有LTM 全稱為Local Traffic Management即本地傳輸管理,是一種局域網(wǎng)負(fù)載均
衡設(shè)備,以TCP/UDP流量分發(fā)處理、優(yōu)化為主要工作,主要處理在一個數(shù)據(jù)中心內(nèi)的
1 / 5
流量分配,可以處理到流量的七層內(nèi)容。在本文中我們主要討論如何利用GTM進(jìn)行域
名的智能解析。
在現(xiàn)實(shí)的生產(chǎn)環(huán)境中,一個有DNS智能解析需求的網(wǎng)站,其服務(wù)器往往分布在不同的
IDC機(jī)房中,這些IDC使用不同的線路對外提供服務(wù);或者其服務(wù)器位于同一個IDC
機(jī)房中,但該IDC機(jī)房為該服務(wù)器提供了不同線路的出口。對應(yīng)這種情況,在GTM中
將使用某一線路的數(shù)據(jù)中心抽象為一個概念Datacenter。在一個Datacenter中包含
了大量的服務(wù)器,GTM中將其抽象為一個概念Server。每個服務(wù)器可以配置一個或多
個IP,對應(yīng)具體的這些IP以及相關(guān)的端口,GTM將其抽象為一個概念Virtual Server。
Datacenter、Server、Virtual Server ,GTM通過以上三個概念完成了對IDC機(jī)房
中物理網(wǎng)絡(luò)的描述。
那么具體的Datacenter、Server、Virtual Server在GTM中擔(dān)任何種角色呢?
? Virtual Server:GTM中的最小object,是Server和Pool的邏輯成員,其
IP即為GTM最終提供解析的結(jié)果。
? Server:用來代表一個服務(wù)器實(shí)體,類似于LTM中的node,有bigip rver,
non-bigip rver 兩類,隸屬于Datacenter中,同一rver不應(yīng)同時存在
于兩個Datacenter中。
? Datacenter:組織Server的容器,表示一個具體的數(shù)據(jù)中心。
在完成對物理的網(wǎng)絡(luò)的標(biāo)示以后,即涉及到如何將不同用戶所請求的域名地址正確的映
射到具體的IP上。這里就涉及到GTM的智能解析方式。GTM通過wide IP和pool 來
實(shí)現(xiàn)這一功能。
那么Wide IP和Pool又是何方神圣?
? Pool:是一個資源池,用來組織Virtual Server,是Wide IP的配置要素,同
一Virtual Server可以同時屬于多個Pool。
? Wide IP:對外呈現(xiàn)GTM所負(fù)載的智能域名,其下包含一個或多個Pool。
說完了這些比較枯燥的概念,我們用一個具體的例子來說明GTM智能解析的工作模式。
假設(shè)情景:我們有一個網(wǎng)站,該網(wǎng)站在北京和上海分
別放置了一臺鏡像服務(wù)器對外提供服務(wù)。北京的服務(wù)器IP為202.96.1.2是一個網(wǎng)通
地址,上海的服務(wù)器IP為116.238.1.2是一個電信地址。現(xiàn)在我們希望使用網(wǎng)通線路
的用戶在訪問這個網(wǎng)站時,實(shí)際訪問到的是北京服務(wù)器的IP地址202.96.1.2,電信
線路的用戶在訪問這個網(wǎng)站時實(shí)際訪問到的是上海服務(wù)器的IP地址116.238.1.2。(以
上域名及IP均為虛構(gòu),特此說明)
2 / 5
GTM如何來完成這個需求呢:
大體上分為兩個階段:第一階段,描述物理資源;第二階段,制定智能解析策略。以下
為具體步驟:
第一步:建立電信和網(wǎng)通線路的Datacenter
首先我們需要在從我們的網(wǎng)絡(luò)運(yùn)營商那里獲得網(wǎng)通和電信線路的地址池,并在GTM中
建立對應(yīng)的地址池CNC-Address、CT-Address。其次,我們將分別建立對應(yīng)網(wǎng)通和
電信線路的Datacenter: DC_CNC,DC_CT。最后我們將網(wǎng)通地址池CNC-Address
與網(wǎng)通Datacenter相對應(yīng) ,電信地址池CT-Address與電信Datacenter相對應(yīng),
這樣就基本完成了Datacenter的建立。
第二步:建立電信和網(wǎng)通線路的Server
我們在GTM中創(chuàng)建一個Server來表示網(wǎng)通線路的服務(wù)器,命名為rver_cnc,將
其加入到網(wǎng)通Datacenter DC_CNC中,表明該服務(wù)器是屬于網(wǎng)通Datacenter的,
并為其創(chuàng)建IP地址為202.96.1.2的Virtual Server用來作為GTM最終提供解析的
結(jié)果。
同理,我們創(chuàng)建電信線路的rver,命名為rver_ct,并將其加入電信Datacenter
DC_CT中,并為其創(chuàng)建IP地址為116.238.1.2的Virtual Server用來作為GTM最
終提供解析的結(jié)果。
通過以上兩步,我們完成了對物理資源的描述,在以下的步驟中,我們將進(jìn)行智能解析
策略的制定。
第三步:創(chuàng)建資源池Pool
我們在GTM創(chuàng)建一個資源池Pool_ , 并將剛才建立的
Virtual Server:rver_cnc、rver_ct加入到這個池中。在這個新建立的資源池
中我們將為這些Virtual Server創(chuàng)建規(guī)則,以確定當(dāng)DNS請求被本資源池響應(yīng)時,具
體將哪個Virtual Server的IP作為解析結(jié)果返回給用戶。
在本例中,我們將按照Topology的方式來決定具體將哪個Virtual Server的IP提供
給用戶。
所謂Topology的方式,即按照發(fā)起DNS解析請求者的IP的歸屬來確定使用哪些
Virtual Server來進(jìn)行響應(yīng)。GTM中所定義的Topology可以在
Continent/Country/IP Subnet/ISP四個層次進(jìn)行傳入IP的分類。本例中我們創(chuàng)建
了網(wǎng)通線路和電信線路的地址池,那么用戶發(fā)起的DNS解析請求就將按照用戶的IP
屬于哪一個地址池,來確定是將電信服務(wù)器還是網(wǎng)通服務(wù)器的IP返回給用戶。
3 / 5
第四步:建立域名到資源池的映射。
最后我們創(chuàng)建一個Wide IP :,表明:對外該GTM接受所
有對該域名的查詢請求,并將第三步建立的資源池Pool_添
加到該Wide IP中。表明所有對這個域名的解析都將由資源
池Pool_進(jìn)行。
至此,一個最簡化版本的智能解析就完成了。
此時一個網(wǎng)通線路的用戶在瀏覽器中輸入網(wǎng)站網(wǎng)址,
用戶的所配置的網(wǎng)通DNS將向我們的GTM發(fā)起該域名的查詢請求。我們的GTM在接
收到該查詢請求后,將使用資源池Pool_對該域名進(jìn)行解析,
由于該域名查詢請求的發(fā)起者IP地址包含在網(wǎng)通地址池中,GTM就將網(wǎng)通線路服務(wù)器
的IP地址返回給發(fā)起查詢的網(wǎng)通DNS,網(wǎng)通DNS進(jìn)一步將該IP地址作為查詢結(jié)果返
回給該用戶。這樣用戶事實(shí)上最終訪問到的服務(wù)器即為該網(wǎng)站的網(wǎng)通線路服務(wù)器,但整
個過程對于用戶而言是無感知的。
單純從以上的DNS智能解析方式來說,GTM的智能解析方式與一般的bind服務(wù)器通
過訪問控制列表結(jié)合視圖來進(jìn)行智能解析的方式差別并不大。但在實(shí)際的應(yīng)用中,GTM
提供了幾種比較有特點(diǎn)的功能以提高其智能解析能力。由于篇幅所限,本文將就比較有
代表性的功能Health Monitors 以及iRule進(jìn)行一下說明。其他的系統(tǒng)特性,可以在
網(wǎng)站上獲取到最新的資料。
首先介紹一下Health Monitor
Health Monitor一般譯為健康檢查,在 GTM中將會在Pool,以及Server中加入對
Virtual Server的健康檢查,以確定該服務(wù)器是否可以正常的對外提供服務(wù)。例如在
Pool中使用了健康檢查后,如通過健康檢查,某Virtual Server的服務(wù)處于不可用狀
態(tài),Pool將會利用已定義的負(fù)載平衡策略將其他可用的IP返回給用戶,以保證在部分
服務(wù)器宕機(jī)的情況下,用戶仍可以獲得所需服務(wù),從而保證用戶的使用體驗(yàn)。
GTM系統(tǒng)中默認(rèn)創(chuàng)建了幾種健康檢查的腳本,但是我們也可以根據(jù)需要進(jìn)行自定義健
康檢查腳本的編寫,自定義的健康檢查腳本可以根據(jù)檢測內(nèi)容的不同,定義檢測的類型、
時間周期、超時標(biāo)準(zhǔn),服務(wù)端口等信息,滿足用戶的檢測需求。
下面簡單介紹一下iRule
通過使用F5由事件驅(qū)動的iRule,可以定制全局流量的動態(tài)分配。GTM可以深入查看
DNS消息,向期望的數(shù)據(jù)中心、池或虛擬服務(wù)器分配應(yīng)用流量。這一功能可以減少延
遲,加強(qiáng)針對惡意攻擊的保護(hù),并改進(jìn)應(yīng)用性能。在GTM中iRules主要使用在Wide
IP模塊中,當(dāng)我們定義了多個資源池的時候,可以設(shè)定iRule,讓符合特定條件的流量
4 / 5
連接到特定的資源池進(jìn)行處理。這里所指的特定條件可以是DNS查詢請求發(fā)起者的IP
地址,也可以是URI這樣的通用資源標(biāo)識符。iRule規(guī)則使用的語法為TCL,目前GTM
可以支持TCL8.4版本的語法。
以下使用一個小例子來說明iRules的用法:
下面是一個簡單的iRule
when DNS_REQUEST {
if { [IP::addr [IP::client_addr] equals 10.10.10.10] } {
pool my_pool
}
}
當(dāng)我們?yōu)橐粋€Wide IP添加了這樣的iRule以后,每當(dāng)這個Wide IP監(jiān)聽到DNS請
求發(fā)送者的IP地址是10.10.10.10,就會將這個請求包傳遞給my_pool來進(jìn)行處理。
可見,使用iRule我們將可以更加靈活的定制智能解析策略。
使用智能解析時面臨的問題
GTM是通過用戶的來源IP來返回不同的解釋IP,而實(shí)際上,并不是實(shí)際用戶直接訪
問我們的 DNS,而是用戶所使用的DNS(比如說沈陽ADSL用戶的默認(rèn)DNS)負(fù)責(zé)
訪問我們的DNS,如果用戶自行修改了DNS,比如說電信的用戶硬要用網(wǎng)通的DNS,
或者網(wǎng)通的用戶使用國外的DNS(比如opendns之類的),就會導(dǎo)致判斷失誤。對于
這種問題,目前尚無較好的解決方法。
5 / 5

本文發(fā)布于:2023-11-01 12:37:41,感謝您對本站的認(rèn)可!
本文鏈接:http://www.newhan.cn/zhishi/a/1698813461203151.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:累積:技海拾貝.doc
本文 PDF 下載地址:累積:技海拾貝.pdf
| 留言與評論(共有 0 條評論) |