王輝靜,劉君堯,劉云霞,汪衛明
(深圳信息職業技術學院,廣東 深圳 518172)
容災技術是保證計算機系統高可用性的重要技術之一。當生產站點發生故障時,會自動或者手動切換到容災站點,以便繼續提供服務。當進行容災切換時,如果對外提供服務的IP地址發生了變動,那么外部訪問用戶就需要知曉系統是否發生了容災切換,以便確認使用生產站點的服務IP地址還是容災站點的服務IP地址來訪問系統,給正常的訪問帶來了不便。因此,此時保持系統對外提供服務的IP地址不變就尤為重要了,當系統發生容災切換時,要確保將生產站點的對外服務的IP地址,同時也切換到容災站點上。
為了實現這種切換,當前主要用到的技術有:(1)采用DNS,通過域名來屏蔽生產站點和容災站點不同的IP地址。(2)將生產站點和容災站點之間的網絡直接大二層打通,采用二層組網+arp方式進行IP地址的切換。上述兩種方案都存在一些問題和缺陷,DNS方案需要單獨維護DNS成本較高,并且整體切換的效率比較低(一般為分鐘級或者小時級);大二層打通組網方案對網絡要求較高,需要在生產站點和容災站點之間搭建VPN,有額外的成本支出[1]。
本文主要介紹了通過開放式最短路徑優先(Open Shortest Path First,OSPF)網絡協議,通過與路由器的交互,實現跨3層組網下的IP地址切換,能夠有效實現異地跨地域故障切換,從而有效提升系統應用穩定性。
容災系統一般生產站點和容災站點會部署在不同的地域(比如北京部署生產站點、上海部署容災站點)。站點之間由于跨地域,一般采用3層組網。一般實現的組網圖如圖1所示。
在3層組網容災系統中,用戶訪問或者兩個站點之間通信,都是通過3層網絡進行,容災系統對外提供的服務IP地址,對于用戶是固定的。
OSPF是一種鏈路狀態路由協議,鏈路是路由器接口的另一種說法,因此OSPF也稱為接口狀態路由協議。

圖1 容災系統3層組網示意
OSPF通過路由器之間通告網絡接口的狀態來建立鏈路狀態數據庫,通過Dijkstra算法來生成最短路徑樹,每個OSPF路由器使用這些最短路徑構造路由表。OSPF分為OSPFv2和OSPFv3兩個版本,其中OSPFv2用在IPv4網絡,OSPFv3用在IPv6網絡。OSPFv2是由RFC 2328定義的,OSPFv3是由RFC 5340定義的。
OSPF協議具有以下特點[2]:
(1)OSPF把自治系統(Autonomous System,AS)劃分成邏輯意義上的一個或多個區域。
(2)O S P F通過鏈路狀態通告(L i n k S t a t e Advertisement,LSA)的形式發布路由。
(3)OSPF依靠在OSPF區域內各設備間交互OSPF報文來達到路由信息的統一。
(4)OSPF報文封裝在IP報文內,可以采用單播或組播的形式發送。
OSPF路由協議是一種典型的鏈路狀態(Link-state)的路由協議,一般用于同一個路由域內。所謂的路由域,是指一個AS,它是指一組通過統一的路由政策或路由協議互相交換路由信息的網絡。在這個AS中,所有的OSPF路由器都維護一個相同的描述這個AS結構的數據庫,該數據庫中存放的是路由域中相應鏈路的狀態信息,OSPF路由器正是通過這個數據庫計算出其OSPF路由表的。
OSPF協議工作流程如圖2所示。

圖2 OSPF協議工作流程示意
OSPF協議工作主要分為四大步驟:(1)尋找鄰居。通過兩次握手建立起鄰居關系,進入鄰接關系確立階段。(2)建立鄰接關系。通過雙方的路由器ID來確定鄰接關系,路由器ID大的為主設備。確定好鄰接關系后,從設備以主設備的DD報文序列號向主設備發送DD報文,并轉換自己接收DD報文的接口為exchange狀態;主設備收到從設備DD報文后也將收到DD報文的接口轉換為exchange狀態。(3)鏈路狀態同步。主設備開始向從設備發送帶有LSA header字段的報文,對從設備進行數據更新,測試鏈路狀態同步鄰居為FULL狀態。(4)計算路由。
將需要配置浮動IP地址(系統對外提供服務的IP地址)的Linux服務器模擬為一臺路由器,并在該Linux服務器上運行OSPF協議,通過OSPF協議與真正的路由器進行交互,將路由轉發到配置浮動IP的服務器。同時在生產站點和容災站點配置相同的IP地址(即浮動IP地址),通過OSPF路由的選擇,在生產站點發生故障時,通過OSPF路由的重新計算,自動將路由轉發到容災站點的相同IP地址。即正常狀態下,路由轉發到生產站點;當生產站點發生故障時,通過OSPF協議,重新計算路由,將路由轉發到容災站點[3]。
測試采用組網示意如圖3所示。

圖3 測試組網示意
配置為3個OSPF區域,正常情況下,由Linux服務器A發布VIP,當Linux服務器A出現故障時,OSPF路由可以自動選擇到Linux服務器B。
測試結果如表1所示。

表1 測試結果
通過OSPF協議進行跨3層的IP地址浮動,具有快速切換,組網簡單,無額外成本的優勢,在異地容災系統中可以參考使用。