DVPN技術介紹


DVPN

DVPN簡介

越來越多的企業希望利用公共網絡組建VPNVirtual Private Network,虛擬私有網絡),連接地理位置不同的多個分支機構。然而,企業分支機構通常采用動態地址接入公共網絡,通信一方無法事先知道對端的公網地址,這就為組建VPN提出了一個難題。

DVPNDynamic Virtual Private Network,動態虛擬私有網絡)通過VAMVPN Address ManagementVPN地址管理)協議收集、維護和分發動態變化的公網地址等信息,解決了無法事先獲得通信對端公網地址的問題。DVPN可以在企業網各分支機構使用動態地址接入公網的情況下,在各分支機構間建立VPN

DVPN把連接到公網上的各節點組成的網絡看作VPN網絡,公網作為VPN網絡的鏈路層,DVPN隧道作為企業內部子網之間的虛通道,相當於網絡層。企業各分支設備動態接入到公網中,其公網地址對於通信的另一端來說是未知的,而對於建立端到端的安全隧道,公網地址是必須的條件之一。DVPN通過VAM獲取通信對端的公網地址。

VAM協議是DVPN方案的主要協議,負責收集、維護、分發公網地址等信息,幫助用戶快捷、方便的建立起內部的安全隧道。企業內部子網之間轉發的數據報文通過路由協議得到其私網下一跳,通過VAM協議查詢到私網下一跳對應的公網地址,並利用該公網地址做為隧道的目的地址進行封裝,最後交給已建立起的安全隧道發送到目的端用戶。

DVPN基本概念

DVPN方案中有幾個關鍵的角色:

1. DVPN節點

DVPN節點為動態VPN隧道兩端的設備,可以是網絡設備或主機。DVPN節點參與隧道的建立,需要實現VAM的客戶端功能。

2. VAM Server

VAM Server是接受DVPN節點向其注冊信息的服務器,負責管理、維護各DVPN節點的信息。目前VAM Server一般運行在較高性能的路由器設備上。

3. VAM Client

VAM ClientVAM Server注冊自己的私網地址、公網地址、VAM標識等信息,向VAM Server查詢其它VAM Client的信息。DVPN節點上需要實現VAM Client功能。文中涉及到VAM Client的地方,如果不是特別說明,是指對HubSpoke的統稱。

4. Hub

Hub是一種VAM Client,一個VPN網絡的中心設備,它是路由信息交換的中心。在Hub-Spoke組網中,它也是數據轉發的中心。

5. Spoke

Spoke是一種VAM Client,通常是企業分支機構的網關設備,該節點不會轉發收到的其它DVPN節點的數據。

6. AAA服務器

AAAAuthentication, Authorization and Accounting,認證、授權和計費)服務器,用於對用戶進行認證和計費管理。

DVPN的基本原理

DVPN采用Client/Server模式,工作在TCP/IP協議棧的應用層,使用UDP作為傳輸協議。按照工作方式的不同,可將一個VPN域中的設備劃分為一個Server和多個ClientServer的公網地址為靜態地址,Client的公網地址既可以靜態配置也可以動態獲取,而Client的私網地址則需要按照規劃靜態分配。在同一個VPN域內,要求所有節點的私網地址在同一個網段內。

每一個ClientServer注冊自己的公網地址和私網地址的對應關係。ClientServer注冊成功之後,其他Client可以從Server查詢到該Client的公網地址,以便在Client之間建立DVPN隧道ServerClient間通過VAM協議進行消息傳遞,Client之間通過DVPN隧道協議進行隧道的建立、維護和刪除。任何節點退出或加入VPN都能自動通知Server

DVPN的組網結構

DVPN具有兩種典型的組網結構:

l              Full-Mesh全互聯)網絡:Spoke之間可以建立隧道直接通信;Hub主要作為路由信息交換的中心 1所示,作為SpokeClient節點在向VAM Server注冊後獲得該VPN域中Hub的信息,並與Hub建立永久的隧道連接;任意的兩個Spoke之間也可以直接建立隧道,但該隧道是動態的,當在一段規定時間(Spoke-Spoke隧道空閑超時時間)內沒有數據報文交互時,則刪除該隧道。

圖 1 Full-Mesh組網示意圖

 

l              Hub-Spoke網絡:Spoke之間不能建立隧道直接通信,隻能通過Hub轉發數據;Hub即作為路由信息交換的中心,又作為數據轉發的中心。如 2所示,SpokeHub建立永久的隧道連接,Spoke之間的數據通過Hub轉發。

圖 2 Hub-Spoke組網示意圖

 

DVPN的工作過程

DVPN的工作過程分為連接初始化、注冊和隧道建立三個階段,下麵對這三個階段做簡單說明。

1. 連接初始化階段

Client在第一次與Server連接時,首先進行連接的初始化,雙方協商決定是否需要對VAM協議報文進行保護。如果需要保護,則協商出報文加密和完整性驗證算法及生成加密密鑰和完整性驗證密鑰,並對協商出的結果作出確認。隻有連接初始化完成後,才能進入注冊階段。

圖 3 連接初始化流程圖

 

3所示,連接初始化的過程為:

(1)        Client通過連接請求報文將自s己支持的完整性驗證算法、加密算法等發送給Server

(2)        Server按照優先級從高到低的順序從自己支持的算法列表中依次選擇算法,與Client發送的算法列表進行匹配。如果匹配成功,則使用該算法,Server通過連接響應報文將算法協商結果發送給Client,同時,ServerClient生成加密密鑰和完整性驗證密鑰。

(3)        ClientServer分別利用初始化完成報文驗證算法和密鑰協商是否成功。

2. 注冊階段

圖 4 注冊流程圖

 

4所示,注冊階段的具體過程為:

(1)        ClientServer發送注冊請求報文,注冊請求報文中包括DVPN節點的信息。

(2)        Server收到注冊請求報文後,根據配置決定是否對該Client進行身份認證。如果配置為不認證,則直接注冊Client信息並向Client發送注冊成功響應,身份認證步驟省略;如果配置為認證,ServerClient回應身份認證請求,並指明需要的認證方法(CHAP認證時還返回一個隨機數)。

(3)        ClientServer提交自己的身份信息。

(4)        Server收到Client的身份認證信息後向AAA服務器發起認證,收到AAA認證成功的響應後再發送計費請求,當Server收到計費成功響應後,向Client發送注冊成功響應報文,注冊成功報文會攜帶下發給ClientHub信息。

3. 隧道建立階段

Spoke注冊成功後,要和Hub建立永久隧道,一個Spoke最多和兩個Hub建立永久隧道。如果在一個VPN域中有兩個Hub,則Hub之間需要建立永久隧道。具體隧道建立流程如 5所示:

圖 5 隧道建立流程圖

 

(1)        發起隧道建立請求

l              Hub-SpokeSpoke注冊成功後,要與所在VPN中的Hub建立永久隧道。Spoke隻要收到Server下發的Hub信息,就會檢查與這些Hub地址之間是否有對應的隧道存在。如果隧道不存在則向Hub發送隧道建立報文;如果隧道存在則不建立隧道。

l              Hub-Hub隧道:Hub注冊成功後,Server會將所在VPN中已注冊成功的Hub地址添加到注冊響應報文中下發給HubHub檢查這些地址與其之間是否有對應的隧道存在。如果隧道不存在則向其發送隧道建立報文;如果隧道存在則不建立隧道。

l              Spoke-Spoke隧道:在Full-Mesh組網中,Spoke收到某個數據報文後,若沒有查到相應的能夠轉發該報文的隧道,則會向Server發送地址解析請求,根據得到的地址解析響應向對端Spoke發起建立隧道的請求。

(2)        隧道接收方收到建立隧道的請求後,保存相應的隧道連接信息,並向發起方發送建立隧道響應報文。如果隧道發起方收到隧道建立成功的響應報文,表示隧道建立成功,否則表示隧道建立失敗。

DVPN的優點

1. DVPN報文對NAT網關自然穿越

當隧道發起方在NAT網關後側時,則可以建立穿越NATSpoke-Spoke隧道;如果隧道接收方在NAT網關後側,則數據包要由Hub轉發,直到接收方發起隧道建立請求。如果雙方都在NAT網關後側,則它們都無法與對方建立隧道,所有的數據包都隻能從Hub轉發。

2. VAM Client對動態IP地址的支持

隧道兩端的Tunnel接口不需要配置隧道目的地址,VAM ClientVAM Server上注冊自己的公/私網地址,當需要建立隧道時,可以從VAM Server獲取對端Client的公網地址,從而動態的建立隧道。當VAM ClientIP地址改變時,會向VAM Server重新注冊,從而實現了對動態IP地址的支持。

3. VAM ServerVAM ClientAAA身份認證

初始化過程完成之後,VAM Client要向VAM Server注冊,注冊過程中可以要求對VAM Client進行身份認證,VAM支持PAPCHAP兩種認證方式。VAM Server通過AAA對加入到VPN域的客戶端進行身份認證,認證通過後VAM Client才能接入到VPN網絡。

4. 利用預共享密鑰驗證VAM ClientVAM Server的身份

VAM ClientVAM Server必須配置統一的預共享密鑰,用於生成加密/完整性驗證的密鑰。VAM Client/VAM Server通過報文解密、完整性驗證是否成功,判斷二者的預共享密鑰是否相同,從而實現對VAM Server/VAM Client的身份認證。

5. VAM協議報文的加密保護

可以選擇對VAM協議報文進行加密,加密算法支持AES-128DES3DES算法。

6. 數據報文的IPsec加密保護

DVPN隧道的數據報文可以由IPsec安全框架保護,采用ESP安全協議,通過IKE協商安全策略。

7. 策略的統一管理

VAM Server對整個VPN域的策略進行統一的管理。

8. 支持多個VPN

VAM Server上可以配置多個VPN域,每台VAM Server上最多可以配置10VPN域。

附件下載

聯係我們