張?zhí)焱?/p>
摘要:為了在多個設備與多條鏈路之間平衡站點到站點VPN流量,使用了將帶鏈路跟蹤的靜態(tài)路由注入到EIGRP協(xié)議的方法和使用不活動對等體檢測(DeadPeerDetection)技術(shù)。測試結(jié)果表明,在多個設備與多條鏈路上這種方式的VPN負載平衡運行正常,對AH與ESP協(xié)議的抗重放服務沒有影響。
關(guān)鍵詞:IP安全;虛擬專用網(wǎng);增強的內(nèi)部網(wǎng)關(guān)路由協(xié)議;路由重分布;負載平衡;服務等級協(xié)議;鏈路跟蹤
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)13-0230-03
1概述
許多企業(yè)有多個分部,要把多個分部的網(wǎng)絡與總部的網(wǎng)絡連通起來可以考慮:1、租用運營商的專線,這種方式線路帶寬獨享、安全穩(wěn)定,但成本高;2、利用公共的IP網(wǎng)絡比如Internet建立隧道來連接,也就是虛擬專用網(wǎng)(VPN)連接,這方式相對便宜,但由于公共網(wǎng)絡中的帶寬是共享的,所以帶寬不穩(wěn)定。如果選擇第二種方式來連接,由于現(xiàn)在的Internet是IPv4與IPv6并存的,而IPv4是不安全的,所以用戶一般在用隧道進行數(shù)據(jù)傳輸前還要對數(shù)據(jù)加密,接收方要做相應的解密工作。這樣一來,兩站點間的VPN性能受兩個方面的影響:一是VPN設備的加密與解密性能;另一個是實際承載VPN隧道的公網(wǎng)鏈路帶寬問題,單條鏈路不可靠。就如何建立高吞吐量的連接兩站點的VPN系統(tǒng),周振斌報道了一種高吞吐量的VPN系統(tǒng)。這一報道是利用一臺前端機負責IKE SA與IPsec SA的建立與維護,并負責把安全策略數(shù)據(jù)與安全關(guān)聯(lián)數(shù)據(jù)通過TCP協(xié)議同步到后方處理機群,還負責要加密與解密的數(shù)據(jù)包的調(diào)度工作。后方各個處理機負責加密與解密工作。由于這種方法安全關(guān)聯(lián)sA在后方處理機群是共享的,所以無論所選擇的封裝協(xié)議是AH還是ESP,而ESP或AH本身并不提供共享SA的多個發(fā)送方之間的系列號協(xié)商機制,因而當多個發(fā)送方共享一個sA時,接收方勢必收到AH或ESP協(xié)議相同系列號的數(shù)據(jù)包,所以這種方法在接收方就不能選擇抗重放功能。RFC4302與RFC4303也不推薦多個發(fā)送方共享一個SA。此方法除了不具有抗重放的功能外,還有一個問題就是不能同時利用多條互聯(lián)網(wǎng)接入鏈路,因為來自發(fā)送方的數(shù)據(jù)包都是由前端機接收的,再由前端機按某種負載平衡方式分流給后方處理機,也就是承載隧道的物理鏈路只能為一條,如果兩個站點都存在多個線路接入,那就存在部分鏈路閑置問題。他的這種方法可以稱之為前置式的負載平衡。本文將要提出另一種站點間IPsecVPN的負載平衡方法,可以稱之為后置式的負載平衡:各個VPN設備獨立地建立SA,每個VPN設備可以連接一條公網(wǎng)接入鏈路,每條鏈路都可用于承載隧道,兩個站點都能選擇抗重放功能,數(shù)據(jù)包的調(diào)度由后方的路由器來承擔。
2方法
為方便說明,本文假定兩個站點各有兩個VPN設備(如圖1),每個VPN設備都有獨立的線路接入公網(wǎng)。但在實際應用中,每個站點最多可以有6個VPN設備(這是由于路由協(xié)議最多只支持6條路徑負載平衡,當然如果每個站點超過6個VPN設備,可以采用兩級路由的方式,這將支持36個VPN設備),每個設備可以使用單獨的線路接入公網(wǎng),也可以幾臺或全部設備共享一條接入線路,但如果是幾臺設備共享一條線路則要前置一臺交換機,這些共享一條接入線路的VPN設備都連接到這臺交換機,每個VPN設備都要占用一個IP地址。前方的VPN設備都通過一個交換機與內(nèi)部路由器相連,路由器使用動態(tài)路由協(xié)議進行數(shù)據(jù)包的調(diào)度。
先說數(shù)據(jù)包的調(diào)度工作。下面都以站點A為例來說明。在站點A的每個VPN設備上都用服務等級協(xié)議(SLA)監(jiān)視到站點B的兩個VPN設備可達性,只要到對方的其中一臺設備TP可達則添加到站點B內(nèi)部網(wǎng)絡的靜態(tài)路由,并把這種路由注入進動態(tài)路由協(xié)議,再通過動態(tài)路由協(xié)議通告給后方的路由器,這樣,路由器A在處理去往站點B內(nèi)部網(wǎng)絡的數(shù)據(jù)包的路由時,是根據(jù)前端的VPN設備能否到達站點B來決定前端的VPN設備是否作為路由的下一跳,比如VPN-A1能到達站點B的任何一臺VPN設備則VPN-A1作為路由的下一跳,否則路由器不把它作為去往站點B內(nèi)部網(wǎng)絡下一跳。當存在多個下一跳時,路由器的動態(tài)路由協(xié)議的負載平衡方式可以選擇基于每個包的方式也可以選擇基于每個目的地址的方式。
再說前端VPN設備與對方建立VPN隧道與維護隧道的方式。當前端的VPN設備收到來自內(nèi)部路由器轉(zhuǎn)發(fā)過來的去往對方站點的數(shù)據(jù)包時,觸發(fā)它與對方站點VPN設備建立VPN隧道。在配置VPN的時候把對方站點的每個VPN設備都設置為對等體,由于VPN設備在發(fā)起IKE協(xié)商時先用配置時排在第一位的對等體,為了避免都與對方站點的同一個VPN設備建立隧道,那么在本站點的不同的VPN設備上配置對等體時排列順序不能一樣,比如,在VPN-A1上配置對等體的順序為VPN-B1、VPN-B2,則在VPN-A2上的順序就應該為VPN-B2、VPN-B1,目的是充分利用公網(wǎng)鏈路和分攤加解密處理任務到各個VPN設備上。雖然一個VPN設備可以配置多個對等體,但同一時間只能與其中的一個建立隧道,配置多個對等體只是起備份的作用。隧道的維護:每個VPN設備都用IKE keepalive報文按一定的頻率監(jiān)視隧道對端設備是否為活動,如果不活動則關(guān)閉相應的隧道,并自動地與所配置的下一個對等體協(xié)商IKE連接。這種隧道的維護,其作用是避免用戶VPN數(shù)據(jù)傳輸中斷,因為當VPN設備能到達對方的其中的一個VPN設備時,它就能收到來自內(nèi)部路由器轉(zhuǎn)發(fā)過來的用戶數(shù)據(jù)包,如果該VPN設備當前活動的隧道出現(xiàn)中斷卻不能自動地與對方的另一個VPN設備建立隧道的話,那么由路由器轉(zhuǎn)發(fā)到這臺VPN設備的用戶數(shù)據(jù)將丟失。如果VPN設備不支持IKE keepalive報文,那么這個不活動的隧道只有等到IKE安全關(guān)聯(lián)SA到期。這種方式的VPN負載平衡,發(fā)送方的每個VPN設備與接收方所建立的安全關(guān)聯(lián)(sA)或者叫隧道都是獨立的,由自己維護,與別的VPN設備無關(guān),因而在接收方的每一個SA中都不會收到ESP或AH系列號相同的數(shù)據(jù)包,所以不影響對ESP或AH所提供的抗重放服務的使用。
3相關(guān)的主要配置
VPN設備應選擇支持多個track的邏輯或,支持帶track的靜態(tài)路由,動態(tài)路由協(xié)議支持靜態(tài)路由注入,支持IKE Kee-palive報文也就是支持不活動對等體的檢測(DPD)功能。路由器只要求支持與VPN設備相應的動態(tài)路由協(xié)議。
以站點A的VPN-A1為例,基本的配置省略(VPN設備以思科的路由器2691為例):
配置動態(tài)路由協(xié)議并重分布靜態(tài)路由,這里選擇EIGRP的原因是考慮到它收斂快,并且還支持不等價路徑的負載平衡,如果設備不支持也可以用OSPF協(xié)議:
配置帶鏈路跟蹤的到站點B內(nèi)部網(wǎng)絡的靜態(tài)路由:
Ip route 192.168.2.0 255.255.255.0 ISP的網(wǎng)關(guān)地址track100//這條到站點B內(nèi)部網(wǎng)絡的路由能否進入路由表取決于track 100是UP的還是DOWN的,如果是UP的則出現(xiàn)于路由表,并且被分配進EIGRP進程,由EIGRP通告給內(nèi)部路由器;track 100是track 10與track 20布爾邏輯或,也就是這兩個只要一個是UP的則track 100是UP的,track 10是測試是否能到達VPN-B1,而track 20是測試能否到達VPN-B2,下面以配置track 10為例,省略track 20的配置
先配置SLA監(jiān)視10,將用于track 10:
4結(jié)論
在GNS3上模擬測試,IKE策略為:加密算法為DES、完整性算法為MD5、密鑰交換方式為DH組2、身份驗證為預共享密鑰;IPsec方式為:隧道模式ESP封裝、加密算法DES、散列算法md5-hmac;默認開啟抗重放檢查;由于AH不提供數(shù)據(jù)機密性服務,沒有測試AH。在以上條件下測試,該方法能夠?qū)崿F(xiàn)在多個VPN設備上分擔VPN流量,當出現(xiàn)公網(wǎng)網(wǎng)絡故障或者VPN設備故障,能自動把流量分配到剩下的正常的設備與鏈路上,當故障移除時,流量又重新在所有的設備與鏈路上分配(不過在切換過程中會出現(xiàn)間隔性的丟包現(xiàn)象,這是由于當鏈路或設備出現(xiàn)故障后,在路由器的路由表上并不立即表現(xiàn)出來;故障移除后,通過路由分配過來的數(shù)據(jù)包還沒有隧道使用,隧道的建立要一定的時間)。由于各個VPN設備上的隧道都是獨立的,因而不影響接收方啟用抗重放功能。但這種方式的站點之間的VPN的負載平衡對VPN設備有一定的要求,要支持不活動對等體檢測,要支持跟蹤多個遠程設備。