網(wǎng)絡(luò)安全面試:什么是DVPN技術(shù)?
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
DVPN簡介越來越多的企業(yè)希望利用公共網(wǎng)絡(luò)組建VPN(Virtual Private Network,虛擬私有網(wǎng)絡(luò)),連接地理位置不同的多個分支機構(gòu)。然而,企業(yè)分支機構(gòu)通常采用動態(tài)地址接入公共網(wǎng)絡(luò),通信一方無法事先知道對端的公網(wǎng)地址,這就為組建VPN提出了一個難題。 DVPN(Dynamic Virtual Private Network,動態(tài)虛擬私有網(wǎng)絡(luò))通過VAM(VPN Address Management,VPN地址管理)協(xié)議收集、維護和分發(fā)動態(tài)變化的公網(wǎng)地址等信息,解決了無法事先獲得通信對端公網(wǎng)地址的問題。DVPN可以在企業(yè)網(wǎng)各分支機構(gòu)使用動態(tài)地址接入公網(wǎng)的情況下,在各分支機構(gòu)間建立VPN。 DVPN把連接到公網(wǎng)上的各節(jié)點組成的網(wǎng)絡(luò)看作VPN網(wǎng)絡(luò),公網(wǎng)作為VPN網(wǎng)絡(luò)的鏈路層,DVPN隧道作為企業(yè)內(nèi)部子網(wǎng)之間的虛通道,相當(dāng)于網(wǎng)絡(luò)層。企業(yè)各分支設(shè)備動態(tài)接入到公網(wǎng)中,其公網(wǎng)地址對于通信的另一端來說是未知的,而對于建立端到端的安全隧道,公網(wǎng)地址是必須的條件之一。DVPN通過VAM獲取通信對端的公網(wǎng)地址。 VAM協(xié)議是DVPN方案的主要協(xié)議,負(fù)責(zé)收集、維護、分發(fā)公網(wǎng)地址等信息,幫助用戶快捷、方便的建立起內(nèi)部的安全隧道。企業(yè)內(nèi)部子網(wǎng)之間轉(zhuǎn)發(fā)的數(shù)據(jù)報文通過路由協(xié)議得到其私網(wǎng)下一跳,通過VAM協(xié)議查詢到私網(wǎng)下一跳對應(yīng)的公網(wǎng)地址,并利用該公網(wǎng)地址做為隧道的目的地址進行封裝,最后交給已建立起的安全隧道發(fā)送到目的端用戶。 DVPN的基本概念DVPN方案中有幾個關(guān)鍵的角色: 1. DVPN節(jié)點 DVPN節(jié)點為動態(tài)VPN隧道兩端的設(shè)備,可以是網(wǎng)絡(luò)設(shè)備或主機。DVPN節(jié)點參與隧道的建立,需要實現(xiàn)VAM的客戶端功能。 2. VAM ServerVAM Server是接受DVPN節(jié)點向其注冊信息的服務(wù)器,負(fù)責(zé)管理、維護各DVPN節(jié)點的信息。目前VAM Server一般運行在較高性能的路由器設(shè)備上。 3. VAM ClientVAM Client向VAM Server注冊自己的私網(wǎng)地址、公網(wǎng)地址、VAM標(biāo)識等信息,向VAM Server查詢其它VAM Client的信息。DVPN節(jié)點上需要實現(xiàn)VAM Client功能。文中涉及到VAM Client的地方,如果不是特別說明,是指對Hub和Spoke的統(tǒng)稱。 4. HubHub是一種VAM Client,一個VPN網(wǎng)絡(luò)的中心設(shè)備,它是路由信息交換的中心。在Hub-Spoke組網(wǎng)中,它也是數(shù)據(jù)轉(zhuǎn)發(fā)的中心。 5. SpokeSpoke是一種VAM Client,通常是企業(yè)分支機構(gòu)的網(wǎng)關(guān)設(shè)備,該節(jié)點不會轉(zhuǎn)發(fā)收到的其它DVPN節(jié)點的數(shù)據(jù)。 6. AAA服務(wù)器AAA(Authentication, Authorization and Accounting,認(rèn)證、授權(quán)和計費)服務(wù)器,用于對用戶進行認(rèn)證和計費管理。 DVPN的基本原理DVPN采用Client/Server模式,工作在TCP/IP協(xié)議棧的應(yīng)用層,使用UDP作為傳輸協(xié)議。按照工作方式的不同,可將一個VPN域中的設(shè)備劃分為一個Server和多個Client,Server的公網(wǎng)地址為靜態(tài)地址,Client的公網(wǎng)地址既可以靜態(tài)配置也可以動態(tài)獲取,而Client的私網(wǎng)地址則需要按照規(guī)劃靜態(tài)分配。在同一個VPN域內(nèi),要求所有節(jié)點的私網(wǎng)地址在同一個網(wǎng)段內(nèi)。 每一個Client向Server注冊自己的公網(wǎng)地址和私網(wǎng)地址的對應(yīng)關(guān)系。Client向Server注冊成功之后,其他Client可以從Server查詢到該Client的公網(wǎng)地址,以便在Client之間建立DVPN隧道。Server與Client間通過VAM協(xié)議進行消息傳遞,Client之間通過DVPN隧道協(xié)議進行隧道的建立、維護和刪除。任何節(jié)點退出或加入VPN都能自動通知Server。 DVPN的組網(wǎng)結(jié)構(gòu)DVPN具有兩種典型的組網(wǎng)結(jié)構(gòu):
圖 1 Full-Mesh組網(wǎng)示意圖
圖 2 Hub-Spoke組網(wǎng)示意圖
DVPN的工作過程DVPN的工作過程分為連接初始化、注冊和隧道建立三個階段,下面對這三個階段做簡單說明。 1. 連接初始化階段Client在第一次與Server連接時,首先進行連接的初始化,雙方協(xié)商決定是否需要對VAM協(xié)議報文進行保護。如果需要保護,則協(xié)商出報文加密和完整性驗證算法及生成加密密鑰和完整性驗證密鑰,并對協(xié)商出的結(jié)果作出確認(rèn)。只有連接初始化完成后,才能進入注冊階段。 圖 3 連接初始化流程圖
如圖 3所示,連接初始化的過程為: (1) Client通過連接請求報文將自s己支持的完整性驗證算法、加密算法等發(fā)送給Server。 (2) Server按照優(yōu)先級從高到低的順序從自己支持的算法列表中依次選擇算法,與Client發(fā)送的算法列表進行匹配。如果匹配成功,則使用該算法,Server通過連接響應(yīng)報文將算法協(xié)商結(jié)果發(fā)送給Client,同時,Server和Client生成加密密鑰和完整性驗證密鑰。 (3) Client和Server分別利用初始化完成報文驗證算法和密鑰協(xié)商是否成功。 2. 注冊階段圖 4 注冊流程圖
如圖 4所示,注冊階段的具體過程為: (1) Client向Server發(fā)送注冊請求報文,注冊請求報文中包括DVPN節(jié)點的信息。 (2) Server收到注冊請求報文后,根據(jù)配置決定是否對該Client進行身份認(rèn)證。如果配置為不認(rèn)證,則直接注冊Client信息并向Client發(fā)送注冊成功響應(yīng),身份認(rèn)證步驟省略;如果配置為認(rèn)證,Server向Client回應(yīng)身份認(rèn)證請求,并指明需要的認(rèn)證方法(CHAP認(rèn)證時還返回一個隨機數(shù))。 (3) Client向Server提交自己的身份信息。 (4) Server收到Client的身份認(rèn)證信息后向AAA服務(wù)器發(fā)起認(rèn)證,收到AAA認(rèn)證成功的響應(yīng)后再發(fā)送計費請求,當(dāng)Server收到計費成功響應(yīng)后,向Client發(fā)送注冊成功響應(yīng)報文,注冊成功報文會攜帶下發(fā)給Client的Hub信息。 3. 隧道建立階段當(dāng)Spoke注冊成功后,要和Hub建立永久隧道,一個Spoke最多和兩個Hub建立永久隧道。如果在一個VPN域中有兩個Hub,則Hub之間需要建立永久隧道。具體隧道建立流程如圖 5所示: 圖 5 隧道建立流程圖
(1) 發(fā)起隧道建立請求
(2) 隧道接收方收到建立隧道的請求后,保存相應(yīng)的隧道連接信息,并向發(fā)起方發(fā)送建立隧道響應(yīng)報文。如果隧道發(fā)起方收到隧道建立成功的響應(yīng)報文,表示隧道建立成功,否則表示隧道建立失敗。 DVPN的優(yōu)點1. DVPN報文對NAT網(wǎng)關(guān)自然穿越當(dāng)隧道發(fā)起方在NAT網(wǎng)關(guān)后側(cè)時,則可以建立穿越NAT的Spoke-Spoke隧道;如果隧道接收方在NAT網(wǎng)關(guān)后側(cè),則數(shù)據(jù)包要由Hub轉(zhuǎn)發(fā),直到接收方發(fā)起隧道建立請求。如果雙方都在NAT網(wǎng)關(guān)后側(cè),則它們都無法與對方建立隧道,所有的數(shù)據(jù)包都只能從Hub轉(zhuǎn)發(fā)。 2. VAM Client對動態(tài)IP地址的支持隧道兩端的Tunnel接口不需要配置隧道目的地址,VAM Client在VAM Server上注冊自己的公/私網(wǎng)地址,當(dāng)需要建立隧道時,可以從VAM Server獲取對端Client的公網(wǎng)地址,從而動態(tài)的建立隧道。當(dāng)VAM Client的IP地址改變時,會向VAM Server重新注冊,從而實現(xiàn)了對動態(tài)IP地址的支持。 3. VAM Server對VAM Client的AAA身份認(rèn)證初始化過程完成之后,VAM Client要向VAM Server注冊,注冊過程中可以要求對VAM Client進行身份認(rèn)證,VAM支持PAP和CHAP兩種認(rèn)證方式。VAM Server通過AAA對加入到VPN域的客戶端進行身份認(rèn)證,認(rèn)證通過后VAM Client才能接入到VPN網(wǎng)絡(luò)。 4. 利用預(yù)共享密鑰驗證VAM Client和VAM Server的身份VAM Client和VAM Server必須配置統(tǒng)一的預(yù)共享密鑰,用于生成加密/完整性驗證的密鑰。VAM Client/VAM Server通過報文解密、完整性驗證是否成功,判斷二者的預(yù)共享密鑰是否相同,從而實現(xiàn)對VAM Server/VAM Client的身份認(rèn)證。 5. VAM協(xié)議報文的加密保護可以選擇對VAM協(xié)議報文進行加密,加密算法支持AES-128、DES和3DES算法。 6. 數(shù)據(jù)報文的IPsec加密保護DVPN隧道的數(shù)據(jù)報文可以由IPsec安全框架保護,采用ESP安全協(xié)議,通過IKE協(xié)商安全策略。 7. 策略的統(tǒng)一管理VAM Server對整個VPN域的策略進行統(tǒng)一的管理。 8. 支持多個VPN域VAM Server上可以配置多個VPN域,每臺VAM Server上最多可以配置10個VPN域。 該文章在 2025/8/4 18:33:09 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |