dvpn(dynamic virtual private network)動態虛擬私有網路技術,通過動態獲取對端的信息建立vpn 連線。dvpn 提出了nbma 類型的隧道機制,使用tunnel邏輯接口作為dvpn 隧道的端點,完成dvpn 報文的封裝和傳送,client 通過在server 註冊,將client 自己的信息在sever 上進行保存,這樣client 可以通過server 的重定向功能得到其它client 的信息,從而可以在client之間建立獨立的session(會話,進行數據傳輸的通道)。當多個dvpn 接入設備通過向共同的server 進行註冊,構建一個dvpn 域,就實現了各個dvpn 接入設備後面的網路的vpn 互聯。
基本介紹
- 中文名:動態虛擬私有網路技術
- 外文名:dynamic virtual private network
- 屬性:動態獲取對端的信息建立vpn連線
- 性質:構建一個dvpn域實現vpn互聯
DVPN 簡介,工作原理,
DVPN 簡介
6.1.1 概述
6.1.2 dvpn 基本概念介紹
1. dvpn 域
所有通過dvpn 實現互連的私有網路以及網路中的防火牆、路由器設備共同構成dvpn 域。
2. dvpn接入設備
3. server 設備
4. client 設備
dvpn 域中作為client 的dvpn接入設備。client 設備必須在指定的server 設備上完成註冊才能接入dvpn 域。
5. dvpn id
一個dvpn 域的唯一標識。在同一台dvpn接入設備上,不同的dvpn 域的id 不同。
6. map
client 設備在server 設備上進行註冊時,在client 和server 之間將建立一個註冊通道,稱為map。map 在client 設備完成註冊後仍然存在,直到client 設備退出dvpn域或退出網路。
7. session
dvpn 網路數據通訊隧道。所有的數據報文都通過會話隧道進行傳遞。在dvpn 域中的兩個接入設備之間可以建立一個session,實現私有網路的直接互聯。
8. redirect
報文重定向機制。當兩個client 之間還沒有建立session 時,他們的數據通訊需要通過server 進行轉發。server 在轉發時將判斷這兩個client 之間是否可以建立獨立的session,如果可以,server 將傳送重定向報文給發起數據通信的源client,重定向報文中包含了目的client 的信息。
9. 主動端和被動端
session 會話中,session 兩端會協商確定一個主動端和一個被動端,client 和server之間的session 會話,client 端為session 的主動端,server 為session 的被動端;client 之間的session 會話,發起會話建立請求的client 為主動端,另一個為session的被動端。
工作原理
dvpn 在各個接入設備之間運行dvpn 私有協定,server 設備記錄著所有已經註冊成功的client 的信息,client 設備記錄所有已經建立數據通道的session 信息。表項內容包括:目標設備的私網地址(tunnel 接口地址),目標設備的公網地址(wan接口的公網ip 地址),目標設備的udp連線埠號(採用udp 協定時),還有會話通路狀態標識等。下面對server 與client 之間的互動過程作以簡單說明:
1. 註冊階段
註冊協商過程,client 設備和server 設備之間會創建一個map,所有的註冊協商通過map 完成。在整個client 生命周期中,client 和server 各自存在一個對應的map。只有client 退出dvpn 域,map 才會被刪除。如果client 端刪除註冊使用的map,client 會釋放所有的資源(包括所有的session 通道),回到初始化狀態。
具體的註冊過程可以參見右上方面的流程圖,在註冊過程中如果出現錯誤,註冊過程會停止,並且返回到初始狀態。
(1) client 向server 傳送算法協商請求訊息;
(2) server 向client 傳送算法協商回應報文;
(3) client 向server 傳送密鑰協商的請求訊息和對server 的認證請求訊息;
(4) server 向client 傳送密鑰協商的回應訊息和對client 的認證訊息,以及回應client 的認證請求訊息;
(5) client 向server 傳送自己的身份認證訊息;
(6) server 向client 傳送身份認證的結果信息;
(7) client 向server 傳送註冊請求信息,主要包含client 的所有信息;
(8) server 回應client 的註冊請求信息,主要包含所有的數據加密策略,密鑰信息,以及vpn id 信息等。
2. 會話建立階段
client 註冊成功後,會立即和server 建立會話session,通過會話完成實際數據的dvpn 轉發。
若server 端接收到的目的地址並非發往本地私網地址的數據報文,而是發往vpn網路中的另一個節點的報文,則server 轉發該數據報文,同時向該數據報文的源節點傳送下一跳重定向通告(redirect),通知源client 所要到達目的地之的下一跳的相關信息。此時收到重定向報文的client 立即向對端client 傳送會話建立請求,經過會話協商,在兩個client 之間建立獨立的session 會話通道(同時協商該session 的ipsec sa)。這兩個client 之間的數據可以直接通過該session 會話通道進行數據轉發,而不需要通過server 進行轉發了。
當刪除session 時,會判斷該session 是否為註冊map 創建的session,如果沒有對應的map 則直接刪除session,否則需要刪除session 對應的map。
6.1.4 基本網路結構
dvpn 採用client/server 模式,對於同一個dvpn 域的n 個接入設備中,必須設定一個為server 工作方式(使用固定的公網ip 地址),其他設定為client 方式,並在每一個client 端手工配置server 的信息。當每個client 到server 註冊成功之後,client 和server 之間就自動地建立了session 隧道(會話)。在網路運行中,server 可以根據需要向client 傳送redirect(重定向)報文。client 在接收到重定向報文後,從中得到其他client 的信息,在client 之間建立session 隧道,實現dvpn域中的全連線。
建立隧道的方式採用udp dvpn封裝格式,對dvpn 控制報文、需要轉發的數據報文,使用udp 進行封裝。所以udp dvpn 可以自由地穿過nat網關建立dvpn隧道,滿足client 為私有ip地址時的需求。
6.1.5 傳統vpn 與dvpn 的比較
1. 傳統vpn 存在的弊端
在現有的vpn 組網方案中,三層vpn(virtual private network)一般採用gre或mpls/bgp vpn 兩種方式。兩種vpn 雖然存在各自的優點,但是在實際的套用中都存在以下弊端:
組網及配置複雜。三層vpn 技術都採用的是點到點的隧道方案,當接入點數量為n,且需要建立一個全聯通的vpn 網路時,整個網路需要手工配置n×(n-1) / 2 個點到點的vpn 隧道連線。
可維護性及可擴展性差。對於一個已經組建好的vpn 網路,若需要增加節點或修改某個節點的配置,那么其他所有節點都必須針對這個節點修改本地配置,維護成本較高。
gre 還存在無法穿透nat 網關的缺陷。gre 方式建立vpn 隧道,如果出口有napt 網關,那么就必須要一個公網地址直接對應一個內部地址來解決,需要大量的公網ip 地址,這導致了gre 不能夠套用於nat 網關內部。ipsec構建的vpn 在原來的版本也是沒有辦法穿越nat 網關,通過將ipsec報文封裝在udp 報文中進行傳送,實現了nat 網關的穿越。
gre 無法適用於動態ip 的情況。gre 方式建立vpn 隧道依賴於固定的ip 地址,根本無法為撥號用戶建立vpn。
l2tp 和gre 沒有能夠提供對傳輸的數據的加密保護,ipsec 對通過ipsec vpn 進行轉發的數據提供了最安全的保護。
ipsec 在動態路由的支持存在一定的缺陷,ipsec 的vpn 隧道是基於數據流的,而不像gre 和l2tp 基於接口建立vpn。在實現兩個私有網路互聯以後,兩個私有網路之間沒有辦法實現路由的學習,這樣給網路的動態規劃帶來了一定的問題。
2. dvpn 的特點
dvpn 不但繼承了傳統vpn 的各種優點,更大程度上解決了傳統vpn 還沒有解決的問題。配置簡單、網路規劃簡單、功能強大,比傳統的vpn 更加符合未來的網路套用。其特點如下:
自由穿越nat網關技術。採用udp 方式的dvpn。由於使用了udp報文進行封裝,可以自由穿越nat 網關。解決區域網路dvpn接入設備和公網dvpn 接入設備之間的vpn 連線,使nat網關內部的私有網路和nat 網關外部的私有網路共同構建一個虛擬私有網路。
支持依賴動態ip 地址構建vpn。當在一個dvpn 域內部構建隧道時,只需要指定相應的server 的ip 地址,並不關心自己當前使用的ip 地址是多少,更加適應如普通撥號、xdsl 撥號等使用動態ip 地址的組網套用。
支持自動建立隧道技術。dvpn 中的server 維護著一個dvpn 域中所有接入設備的信息,dvpn 域中的client 可以通過server 的重定向功能自動獲得需要進行通信的其它client 的信息,並最終在兩個client 之間自動建立會話隧道(session)。作為client 的dvpn接入設備只需配置自己的相關信息和server的信息,不需要知道其他client 的信息,極大地減少了網路的維護管理工作。
註冊過程加密技術。在client 向server 進行註冊的過程中,需要先完成算法套件以及各種密鑰的協商。使用協商出來的算法對註冊過程中的關鍵信息(例如用戶名、密碼等)進行加密保護,還可以對註冊的報文進行合法性檢測,保證關鍵註冊信息的安全性。
身份認證技術。在client 向server 進行註冊的過程中,client 可以根據配置需要對server 的身份使用pre-shared-key 進行驗證,保證client 接入一個合法的server;同時server可以根據需要使用aaa對需要接入到dvpn域的client進行身份驗證,保證只有通過身份驗證的client 才可以接入到dvpn 域。
策略的統一管理技術。client 在server 端註冊成功後,server 會將dvpn 域中的策略發布給該client。策略主要包括會話協商使用的算法套件、會話的保活時間、會話的空閒逾時時間、ipsec 使用的加密驗證算法、ipsec sa 的重協商時間等。在整個dvpn 域中,所有的session 會使用相同的策略。
會話協商過程中的加密技術。在session 協商過程中,所有的會話的控制報文都會使用server 發布的算法套件進行ipsec 加密保護。即在建立session 的會話協商過程中,根據server 發布數據的加密驗證算法,為session 的數據通信協商ipsec sa。協商過程使用dh(diffie-hellman)進行sa 的密鑰協商。對於需要通過該session 進行轉發的數據,如果需要加密處理,則通過ipsec 使用session 協商出來的ipsec sa 對報文進行加密處理後,通過dvpn進行轉發,實現了轉發數據報文的安全性。session 的ipsec sa 支持重協商功能,可以根據需要指定進行ipsec sa 重協商的時間,進一步保證數據的安全性。
支持多個vpn 域。dvpn 允許用戶在一台dvpn 設備上支持多個vpn 域。即一台防火牆不僅可以屬於vpn a,也可以屬於vpn b;同一設備可以在vpna 中作為client 設備,同時還在vpn b 中作為server 設備使用。在同一台dvpn 設備上最多可以支持200 個dvpn 域,可以同時作為200 個dvpn 域的server 設備。大大提高了組網的靈活性,也可以更加充分的使用網路設備資源,減少了用戶的投資。在實際的組網中為了保證各個dvpn 域之間的隔離,如果在同一台dvpn 設備上支持多個dvpn 域,需要通過私網路由來實現不同dvpn 域的隔離。