郭建偉



對于規模較大的企業來說,因為內網用戶很多,往往會租用多個運營商的線路,來滿足實際的上網需求。這樣做的好處有很多,例如當其中某條線路出現問題后,可以利用別的線路上網等。當擁有了多條上網線路后,就會面對如何對其進行有效管理和調度的問題。很多網絡廠商推出了對應的AD應用交付設備,可以化繁為簡的輕松實現出站負載均衡功能。
實驗環境的說明
這里使用深信服的某款AD設備,通過簡單的實驗,來說明如何實現出站鏈路的負載均衡。對于該AD設備來說,存在一個網絡管理接口,其默認IP包括10.254.254.254和10.252.252.252。該設備提供了多個接口,可以連接不同的網絡設備。在本實驗環境中,該AD設備的NET1接口配置的IP為200.150.60.0/24網段,連接的是電信線路。將NET2和NET3接口進行聚合綁定,配置的IP為100.68.30.0/24網段,連接的是聯通的線路。
使用上述連個接口,連接到運營商提供的路由器上,在該路由器上連接了IP為200.150.6.0/24網段的服務器,表示從內網訪問的電信上的目標設備。在該路由器上還連接了IP為100.68.3.0/24網段的服務器,表示從內網訪問的聯通上的目標設備。在該路由上還連接了IP為150.99.1.0/24網段的服務器,表示需要從內網訪問的其他ISP網絡上的目標設備。為了實現域名解析,在該路由器上又連接了四臺DNS服務器,分別表示電信DNS服務器,聯通DNS服務器,其他ISP網絡DNS服務器以及根DNS服務器。
因為AD設備的接口數量畢竟有限,為此可以為NET4接口創建兩個子接口,分別對應內網中VLAN 10和VLAN 20網段。對于前者來說,對應的是內網中的10.1.1.0/24網段。對于后者來說,對應的是內網中的192.168.1.0/24網段。當然,該接口所連接的交換機端口必須啟用Trunk鏈路,并配置對應的VALN,將內網主機等設備劃入對應的VLAN中。當然,這里在AD上啟用了端口聚合功能,在對端外網路由器上也需要啟用端口聚合功能。
在AD上配置WAN接口
在瀏覽中訪問“https://10.254.254.254”地址,輸入賬戶和密碼(默認均為“admin”),在該AD設備管理界面左側選擇“系統配置”→“設備管理”項,在右側的“WebConsole”面板中可以執行各種Linux網絡操作命令。在左側選擇“網絡配置”→“網絡接口”項,在右側點擊“新建”按鈕,選擇“WAN”項,點擊“下一步”按鈕,在接口設置界面(圖1)中輸入其名稱(例如“電信接口”),在“網絡接口”列表中選擇“NET1”項,在“起始IP”欄中輸入“200.150.60.1”,在“掩碼/前綴”欄輸入“24”,點擊“添加”按鈕,為NET1接口配置電信IP范圍。
在“網關”欄中輸入“200.150.60.254”,如果上述地址列表配置的是內網地址,就需要在“對應互聯網IP”欄中設置在防火墻所對應的外網實際地址。在“線路帶寬”欄中輸入實際的上行和下行網絡帶寬,并合理設置帶寬比例(默認為80%)。在“健康檢查”欄中選擇啟用狀態檢查,啟用網關ARP檢查,設置有效監視器方式(包括Ping、Http等),設置監視的目標主機等,點擊完成按鈕,保存針對NET1接口的配置信息。
按照同樣的方法,針對NET2和NET3接口進行設置,在“端口聚合”面板(圖2)中點擊“新建”按鈕,輸入其名稱(例如“聚合端口1”),在“綁定策略”列表中提供了哈希、輪詢、802.3ad和冗余雙網卡等,這里選擇“802.3ad”方式。在“待選”列表中分別選擇“NET2”和“NET3”接口,點擊“<”按鈕,將其添加到聚合列表中。點擊完成按鈕,創建該聚合端口。在“網絡接口”面板中點擊“新建”按鈕,選擇“WAN”項,點擊下一步按鈕,在接口設置界面中輸入其名稱(例如“聯通接口”),在“網絡接口”列表中選擇上述聚合口(例如“聚合端口1”),在“起始IP”欄中輸入“100.68.30.1”,在“掩碼/前綴”欄輸入“24”,區域設置與上述基本相同,點擊“完成”按鈕保存該端口配置信息。
配置子接口,連接內部網絡
因為在NET4接口創建兩個子接口,所以在“網絡接口”界面中打開“VLAN子接口”面板,點擊“新建”按鈕,輸入某個子接口名稱(例如“ziport1”),在“網絡接口”列表中選擇“NET4”接口,在“VLAN ID”欄中輸入“10”,點擊完成按鈕保存配置。按照同樣的方法,創建名為“ziport2”的子接口,其對應VLAN 20。在“網絡接口”面板中點擊“新建”按鈕,選擇“LAN”項,點擊下一步按鈕,在接口設置界面中輸入其名稱(例如“內網接口1”),在“網絡接口”列表中選擇某個子接口名稱(例如“ziport1”),在“起始IP”欄中輸入“10.1.1.1.254”,在“掩碼/前綴”欄輸入“24”,其余設置域上述完全相同,點擊完成按鈕保存配置。
點擊“新建”按鈕,選擇“LAN”項,點擊下一步按鈕,在接口設置界面中輸入其名稱(例如“內部接口2”),在“網絡接口”列表中選擇某個子接口名稱(例如“ziport2”),在“起始IP”欄中輸入“192.168.1.254”,在“掩碼/前綴”欄輸入“24”,其余設置域上述完全相同。值得說明的是,在AD管理界面中,可以對其他的網路設備進行PING探測。但是在默認情況下,其他的網絡設備無法對AD設備進行探測。解決的方法是AD設備管理界面左側點擊“網絡配置”→“網絡安全”項,在右側的“高級配置”面板中的“WAN口入站路由轉發”欄中選擇“啟用”項,即可擺脫該限制。
出站鏈路均衡的原理
在本例中,對于內網中名為WinServer1的服務器來說,將其DNS服務器地址指向AD設備的內部接口“ziport1”,該接口地址為10.1.1.254。并在AD設備上配置DNS代理技術,結合AD的智能路由技術,當內網主機訪問的外部網絡設備屬于電信網絡時(例如其IP屬于200.150.6.0/24網段),則內網數據流量從AD設備的NET1接口發出,該接口使用的鏈路IP為200.150.60.0/24。AD將內部的網絡IP連接通過NAT轉換為與上述電信相符的網段。
當內網主機訪問的外網主機屬于聯通網絡時(例如其IP屬于100.68.3.0/24網段),則內網數據流量從AD設備的經過NET2和NET3聚合后的端口發出,該端口對應的是IP為100.68.30.0/24的鏈路,同時AD將內部的網絡IP連接通過NAT轉換為與上述聯通相符的網段。當內網主機訪問的外網設備不屬于電信或者聯通的網段,則使用輪詢的方法,分別通過AD設備的上述兩條鏈路進行外部訪問。
組建簡單的DNS架構
在本實驗環境中,使用名為dxServer的服務器表示使用電信網絡的服務器(其IP為200.150.6.10),與之對應的是名為“sqServer1”的授權DNS服務器(其IP為200.150.2.1)。使用名為wtServer的服務器表示使用聯通線路的服務器(其IP為100.68.3.10),與之對應的是名為“sqServer2”的授權DNS服務器(其IP為100.68.2.1)。使用名為“othServer”的服務器表示使用其他網絡提供商線路的服務器(其IP為150.99.1.10),與之對應的是名為“sqServer3”的授權DNS服務器(其IP為150.99.2.1)。將名為“ComServer”的服務器作為“.COM”根記錄服務器,其IP為139.37.1.1。
在名為dxServer上打開DNS管理控制臺,在窗口左側選擇“DNS”→“DNS服務器名稱”→“正向查找區域”項,在其右鍵菜單上點擊“新建區域”項,在向導界面中創建名為“dxkd.com”的主要區域。之后選擇該區域,在其右鍵菜單上點擊“新建主機”項,在新建主機窗口中添加名稱為“srv”,IP為200.150.6.10的A記錄,這里的IP為該機的實際IP。為了便于其找到本例中“.COM”根記錄服務器,在DNS服務器屬性窗口中打開“轉發器”面板,點擊其中的“編輯”按鈕,輸入“.COM”根記錄服務器的IP,這里為139.37.1.1。
這樣,當該機接收到DNS查詢請求時,如果其不能解析的話,就可以將其發送給“.COM”根記錄服務器。按照相同的方法,針對名為wtServer的服務器創建名為“wtkd.com”的區域,并為其添加名稱為“srv”,IP為100.68.3.10的A記錄,這里的IP為該機的實際IP。針對名為othServer的服務器創建名為“othkd.com”的區域,并為其添加名稱為“srv”,IP為100.68.3.1的A記錄,這里的IP為該機的實際IP。同時,分別為其配置轉發器,使其可以定位“.COM”根記錄服務器。
配置DNS委派域
在名為“ComServer”的服務器上打開DNS管理器,在其中創建一個正向查找區域,其類型為主要區域,名稱為“com”。之后選擇“com”區域,在其右鍵菜單上點擊“新建委派”項,在向導界面中的“委派的域”欄中輸入“dxkd”,在下一步窗口中點擊“添加”按鈕,在新建名稱服務器記錄窗口中輸入“dxkd.com”,設置其IP為“200.150.2.1”。點擊確定按鈕,完成委派操作。
按照同樣的方法,針對域名為“wtkd.com”的域進行委派,為其設置的IP為100.68.2.1。針對域名為“othkd.com”的域進行委派,為其設置的IP為150.99.2.1。接下來需要針對AD設備,配置DNS委派操作。方法與上述完全一樣,針對域名為“xxx.com”的域進行委派,所不同的是,為其配置了200.150.60.1和100.68.30.1兩個IP,這樣便于實現出入站的負載均衡操作。
這樣,就創建了簡單的DNS解析架構。例如,在名為dxServer的服務器上打開CMD窗口,執行“nslookup”命令,可以直接解析自身DNS信息。在“>”提示符下輸入上述其他域名(例如“srv.othkd.com”),同樣可以順利解析,因為其可以通過“.COM”根記錄服務器進行查詢。這里為了便于實驗說明,需要在“ComServer”的服務器的DNS管理器中打開DNS屬性窗口,在“高級”面板中選擇“禁用遞歸”項,讓其在處理DNS請求時,只返回對應的NS記錄信息,告訴其對應的授權DNS服務器信息,讓其再去通過該授權DNS服務器進行解析。
在AD上配置源地址NAT轉換
因為內網主機要通過AD設備實現出站負載均衡,所以需要在AD設備上進行源地址NAT轉換。這樣,就可以讓訪問電信/聯通/服務器的流量分別走電信/聯通寬帶鏈路,在AD管理界面左側選擇“網絡配置”→“源地址轉換”項,點擊“新建”按鈕,新建一個轉換項目,輸入其名稱(例如“dxnat”),在“出接口”列表中選擇上述配置好的接口,例如“電信接口”項目,選擇“代理所有的IPV4地址”“使用網口地址”“源IP和目的IP哈希”項,點擊完成按鈕保存該轉換項目。
同理,針對聯通創建源NAT轉換項目,其名稱為“wtnat”,選擇的出接口為上述配置好的“聯通接口”項。之后需要啟用AD設備的DNS代理功能,解析來自不同外網主機發來的DNS解析請求。在AD管理界面左側選擇“網絡配置”→“DNS代理”項(圖3),在右側的“網口”列表中選擇“電信接口”項,并設置其DNS服務器IP為200.150.2.1。點擊添加按鈕,將其添加到DNS服務器列表中。之后繼續在“網口”列表中點擊“聯通接口”項,輸入其DNS服務器IP為100.68.2.1。這樣,AD設備就可以將不同WAN接口傳來的DNS請求分別發送不同的DNS服務器。
在AD上配置IP地址集
在“啟用DNS代理”欄中選擇“啟用”項,就可以針對內網主機啟用透明DNS代理功能。在“IPv4監聽地址”欄中輸入“10.1.1.254”,即內網主機使用的DNS服務器地址。在“并發查詢”欄中選擇“啟用”項,提高查詢速度。可以根據需要,輸入所需的監視域名,這樣可以判斷DNS服務運行是否正常。其余設置保持默認,點擊更新按鈕即可。在左側選擇“公共對象”→“IP地址集”項,在右側可以看到該AD設備預設的IP地址集。這里為了便于說明,創建自己的地址集。
點擊新建按鈕,在新建地址集界面中輸入其名稱(例如“dxdizhiji”),輸入實驗測試用電信地址集,范圍從200.150.0.0到200.150.255.255。點擊添加按鈕,將其導入地址集列表,點擊完成按鈕保存配置信息。對應的,新建實驗測試用電信地址集,其名稱為“wtdizhiji”,地址范圍從100.68.0.0到100.68.255.255。根據這些信息,當訪問電信/聯通/服務器時,分別走電信/聯通寬帶線路,對于其他的訪問流量,則實現在上述兩條線路的負載均衡。
實現靜態就近訪問功能
在AD管理界面左側選擇“路由配置”→“智能路由”項,在右側點擊新建按鈕,來創建新建路由項目。在“智能路由”面板中輸入其名稱(例如“dxroute”),在“目的IP地址”列表中選擇“ISP地址段”項,在“ISP地址段”列表中選擇上述地址集“dxdizhiji”項,在“待選”列表中選擇“電信接口”項,點擊“<”按鈕,將其添加進來。
在“鏈路選擇策略”列表中選擇“加權最小流量”項,點擊完成按鈕保存配置,這樣即實現靜態就近訪問功能,讓訪問電信的流量直接從NET1接口發出。對應的,創建針對聯通的路由南項目,其名稱為“wtroute”,在“ISP地址段”列表中選擇上述地址集“wtdizhiji”項,并選中“聯通接口”項,讓訪問電信的流量直接從上述聚合端口接口發出。在智能路由列表中雙擊默認的路由項目,在其屬性窗口中的“鏈路選擇策略”列表中選擇“輪詢”項,這樣可以讓其余的訪問流量按照輪詢的方式,在上述兩條線路上實現負載均衡。
AD服務器的負載均衡
利用AD設備,不僅可以實現出站線路的負載均衡,還可以實現入站的負載均衡。例如,在上述實驗環境中的內網中VLAN 20中存在兩臺Web服務器,利用AD服務器的負載均衡技術,運行了公司的網站對外提供Web服務。關于AD服務器負載均衡配置方法,主要在AD設備配置界面左側的“應用負載”列表中進行配置,基本方法是先配置HTTP服務,之后針對電信和聯通線路的WAN接口的IP配置IP組,并創建會話保持策略,保證HTTP訪問的連貫性。配置節點監控器,來測試內網Web服務器運行狀態。將內部的Web服務器地址添加到節點池中,通過新建虛擬服務,針對上述HTTP服務、IP組和節點池創建虛擬服務。AD服務器的負載均衡具體的實現方法,這里限于篇幅不再詳述。
出站鏈路負載均衡原理
假設公司的域名為“www.xxx.com”,當模擬外網的電信用戶訪問該Web站點時,使用AD設備上的電信線路,來訪問網站內網Web服務器。當聯通用戶訪問該Web站點時,使用AD設備上的聯通線路,來訪問網站內網Web服務器。上述鏈路的全局IP分別為200.150.60.1和100.68.30.1。對于其他類型的外網用戶,則均衡的使用上述兩條線路訪問Web服務器。這樣,當電信用戶訪問該域名時,會先訪問電信DNS服務器,來解析該域名。在本實驗環境的DNS架構中,電信DNS是無法解析該域名的,其必然會將請求轉發給根服務器,根服務器接收到該請求后,會將“www.xxx.com”的授權DNS信息通過NS記錄發送電信DNS服務器,讓其到IP為200.150.60.1或100.68.30.1的地址去解析該域名,這是AD設備的WAN端口地址。
AD設備會基于該電信DNS服務器所屬的源IP地址特性,將電信線路端口對應地址200.150.60.1發送給電信DNS服務器,再由其返給電信用戶,這樣電信用戶就可以利用該地址,來通過AD設備電線鏈路,來訪問內網中的Web服務器了,對于聯通用戶來說情況亦然,其可以經由聯通DNS服務器,獲得AD設備的針對網通端口的地址100.68.30.1,來訪問內網Web服務器。對于其他網絡用戶,則按照輪詢的方式,來均衡的使用上述解析地址,分別使用不同的線路,來訪問內網Web服務器。
創建虛擬DNS服務
在AD設備管理界面左側點擊選擇“智能DNS”→“DNS服務器”項,在右側的“待選”列表中選擇預先配置好的虛擬DNS服務項,點擊“<”按鈕將其添加進來,點擊更新激活DNS服務。在左側選擇“智能DNS”→“虛擬IP池”項,在右側點擊新建按鈕,在“本地虛擬IP池”面板(圖4)中輸入其名稱(例如“localipchi”),在“主動監視器”列表中添加合適的監控方式,例如Ping等。在“首選策略”列表中選擇“靜態就近性”項,在“備選策略”列表中選擇“輪詢”項。在“虛擬IP列表”欄中選擇已經開啟的虛擬DNS服務項目。點擊“<”按鈕將其添加進來。點擊完成按鈕,保存該虛擬地址池信息。
配置DNS映射
在左側選擇“智能DNS”→“DNS映射”項,點擊新建按鈕,在“本地DNS映射”面板中輸入其名稱(例如“yingshe”),在“策略配置”欄中輸入域名“www.xxx.com”,點擊添加按鈕,添加到域名列表中。在“虛擬IP池列表”欄中的“待選”列表中選擇上述IP虛擬地址池“localipchi”,將其添加進來。點擊完成按鈕,保存該DNS映射項目。在左側選擇“智能DNS”→“LDNS集合”項,在右側點擊新建按鈕,在“本地LDNS集合”面板中輸入其名稱(例如“dxldns”),在“地址范圍”欄中輸入電信網絡所屬的網段,例如200.150.0.0到200.150.255.255。將其添加到地址列表中。點擊完成按鈕,保存該集合項目。
管理DNS集合
對應的,針對聯通網絡所屬的網段,創建本地DNS集合項目,其名稱為“wtldns”,IP范圍從100.68.0.0到100.68.255.255。在左側選擇“智能DNS”→“靜態就近性”項,在右側點擊新建按鈕,在“虛擬IP地址池”面板中的“虛擬IP池”列表中選擇上述“localipchi”虛擬地址池,在“LDNS”列表中選擇上述“dxldns”項,在“待選”列表中選擇“200.150.60.1”,將其添加到“已選擇”列表中。
對應的,在“LDNS”列表中選擇上述“wtldns”項,在“待選”列表中選擇“100.68.30.1”,將其添加到“已選擇”列表中。點擊完成按鈕保存配置信息。這樣,當AD設備收到來自電信的DNS解析時,就會讓其利用200.150.60.1地址來訪問內網服務器。當AD設備收到來自聯通的DNS解析時,就會讓其利用100.68.30.1地址來訪問內網服務器。