国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種建立直連vpn隧道的裝置的制造方法

      文檔序號:10572557閱讀:414來源:國知局
      一種建立直連vpn隧道的裝置的制造方法
      【專利摘要】本發(fā)明公開了一種建立直連VPN隧道的裝置,包括VPN中繼服務(wù)模塊、NAT打洞服務(wù)模塊和配置模塊,VPN中繼服務(wù)模塊用于與客戶端和監(jiān)控設(shè)備分別建立VPN隧道,NAT打洞服務(wù)模塊獲取客戶端和監(jiān)控設(shè)備的公網(wǎng)映射IP地址和端口號,客戶端和監(jiān)控設(shè)備根據(jù)收到的對端公網(wǎng)映射IP地址和端口號通過打洞建立UDP連接,客戶端和監(jiān)控設(shè)備建立UDP連接后,配置模塊分配監(jiān)控設(shè)備為VPN隧道服務(wù)器,分配客戶端為VPN隧道客戶端,下發(fā)配置信息給客戶端和監(jiān)控設(shè)備,使得客戶端和監(jiān)控設(shè)備通過UDP連接建立直連VPN隧道,客戶端通過該VPN隧道直接訪問監(jiān)控設(shè)備來獲取監(jiān)控設(shè)備上的監(jiān)控視頻。
      【專利說明】
      一種建立直連VPN隧道的裝置
      技術(shù)領(lǐng)域
      [0001 ]本發(fā)明屬于數(shù)據(jù)通訊領(lǐng)域,尤其涉及一種建立直連VPN隧道的裝置。
      【背景技術(shù)】
      [0002] 視頻監(jiān)控系統(tǒng)在公網(wǎng)應(yīng)用的網(wǎng)絡(luò)環(huán)境復(fù)雜,客戶端和視頻監(jiān)控設(shè)備通常位于不同 的私網(wǎng)內(nèi),需要在NAT設(shè)備上對視頻監(jiān)控的不同業(yè)務(wù)數(shù)據(jù)進行公網(wǎng)IP地址和私網(wǎng)IP地址映 射,才能使客戶端能訪問和接收NVR/IPC的監(jiān)控視頻,整個視頻監(jiān)控系統(tǒng)實現(xiàn)復(fù)雜,配置繁 瑣;并且當NAT設(shè)備上使用的公網(wǎng)IP地址出現(xiàn)變化時,需要重新配置,使用不便。另外有些設(shè) 備位于經(jīng)過多層NAT轉(zhuǎn)換的私網(wǎng)之內(nèi),無法直接將這些設(shè)備使用的私網(wǎng)IP地址映射成公網(wǎng) IP地址。
      [0003] 為了應(yīng)對各種各樣的NAT組網(wǎng)應(yīng)用環(huán)境,客戶端和視頻監(jiān)控設(shè)備分別通過VPN連接 到位于公網(wǎng)的視頻監(jiān)控服務(wù)器,客戶端和視頻監(jiān)控設(shè)備通過視頻監(jiān)控服務(wù)器在公網(wǎng)進行數(shù) 據(jù)轉(zhuǎn)發(fā)來通信,但是這種方式需要大量占用視頻服務(wù)器的帶寬和處理能力,并且客戶端和 視頻服務(wù)器之間的通信通過視頻服務(wù)器進行轉(zhuǎn)發(fā)會帶來額外的數(shù)據(jù)丟包和時延。
      [0004] 為了解決上述問題,公開號為CN104506802A的發(fā)明專利申請,公開了在客戶端側(cè) 增加客戶端代理模塊和在視頻監(jiān)控設(shè)備側(cè)增加監(jiān)控設(shè)備代理模塊,客戶端代理模塊和監(jiān)控 設(shè)備代理模塊在視頻監(jiān)控服務(wù)器的協(xié)助下,通過VPN隧道技術(shù)建立UDP通道,客戶端和視頻 監(jiān)控設(shè)備通過各自的代理模塊經(jīng)過該UDP通道直接進行通信,從而解決了客戶端和視頻監(jiān) 控設(shè)備之間的通信要經(jīng)過視頻服務(wù)器進行轉(zhuǎn)發(fā)帶來的問題。但是該方案中客戶端和視頻監(jiān) 控設(shè)備之間的通信都要通過各自的代理模塊進行處理和轉(zhuǎn)發(fā),存在代理模塊消耗資源多, 傳輸效率不高,信令協(xié)商和業(yè)務(wù)控制復(fù)雜等問題。

      【發(fā)明內(nèi)容】

      [0005] 本發(fā)明的目的是提供一種建立直連VPN隧道的裝置,在管理服務(wù)器的協(xié)助下,客戶 端和視頻監(jiān)控設(shè)備直接建立VPN隧道進行通信,以解決現(xiàn)有技術(shù)中客戶端和視頻監(jiān)控設(shè)備 的通信需要由客戶端代理和監(jiān)控設(shè)備代理進行處理和轉(zhuǎn)發(fā),代理模塊消耗資源多,傳輸效 率不高,信令協(xié)商和業(yè)務(wù)控制復(fù)雜的問題。
      [0006] 為了實現(xiàn)上述目的,本發(fā)明技術(shù)方案如下:
      [0007] -種建立直連VPN隧道的裝置,應(yīng)用于視頻監(jiān)控系統(tǒng)中的管理服務(wù)器,所述視頻監(jiān) 控系統(tǒng)包括位于不同私網(wǎng)內(nèi)的客戶端和監(jiān)控設(shè)備,以及位于公網(wǎng)的管理服務(wù)器,所述建立 直連VPN隧道的裝置,包括:
      [0008] VPN中繼服務(wù)模塊,用于與客戶端和監(jiān)控設(shè)備分別建立VPN隧道;
      [0009] NAT打洞服務(wù)模塊,用于獲取客戶端的公網(wǎng)映射IP地址、端口號,以及監(jiān)控設(shè)備的 公網(wǎng)映射IP地址、端口號,將客戶端的公網(wǎng)映射IP地址和端口號發(fā)送給監(jiān)控設(shè)備,將監(jiān)控設(shè) 備的公網(wǎng)映射IP地址和端口號發(fā)送給客戶端,以使客戶端和監(jiān)控設(shè)備利用各自收到的IP地 址和端口號信息進行打洞穿越NAT設(shè)備,建立并保持客戶端和監(jiān)控設(shè)備之間的UDP連接;
      [0010] 配置模塊,用于分配監(jiān)控設(shè)備和客戶端分別為VPN隧道服務(wù)器角色和VPN隧道客戶 端角色,下發(fā)配置信息給客戶端和監(jiān)控設(shè)備,使得客戶端和監(jiān)控設(shè)備通過UDP連接建立直連 VPN隧道。
      [0011] 進一步地,所述配置模塊分配監(jiān)控設(shè)備和客戶端分別為VPN隧道服務(wù)器角色和VPN 隧道客戶端角色,下發(fā)配置信息給客戶端和監(jiān)控設(shè)備,使得客戶端和監(jiān)控設(shè)備通過UDP連接 建立直連VPN隧道時,執(zhí)行如下操作:
      [0012]分配監(jiān)控設(shè)備為VPN隧道服務(wù)器,下發(fā)VPN隧道服務(wù)器使用的虛擬網(wǎng)卡地址和VPN 隧道客戶端使用的虛擬網(wǎng)卡地址給監(jiān)控設(shè)備,下發(fā)進行鑒權(quán)的用戶名和密碼給監(jiān)控設(shè)備, 以便監(jiān)控設(shè)備完成VPN隧道服務(wù)器的配置,然后在監(jiān)控設(shè)備的私網(wǎng)IP地址及私網(wǎng)端口號上 啟動偵聽進程,偵聽VPN隧道客戶端的VPN隧道連接請求,在偵聽到VPN隧道連接請求后進行 用戶鑒權(quán)和響應(yīng),在監(jiān)控設(shè)備上生成PPP虛擬網(wǎng)卡接口,并將分配給VPN隧道客戶端的虛擬 網(wǎng)卡地址下發(fā)給客戶端;
      [0013] 分配客戶端為VPN隧道客戶端,通知客戶端VPN隧道服務(wù)器的IP地址和端口號為監(jiān) 控設(shè)備的公網(wǎng)映射IP地址和端口號,并下發(fā)進行鑒權(quán)的用戶名和密碼給客戶端,以便客戶 端向監(jiān)控設(shè)備發(fā)送建立VPN隧道連接請求,接收監(jiān)控設(shè)備下發(fā)的VPN隧道客戶端使用的虛擬 網(wǎng)卡地址,在客戶端上生成PPP虛擬網(wǎng)卡接口。
      [0014] 進一步地,所述配置模塊還用于:
      [0015] 通知客戶端和監(jiān)控設(shè)備分別生成以對方的虛擬網(wǎng)卡地址為目的地址的主機路由。
      [0016] 其中,所述客戶端的主機路由的目的IP地址為分配給VPN隧道服務(wù)器的虛擬網(wǎng)卡 地址,出接口為客戶端上的PPP虛擬網(wǎng)卡接口,所述監(jiān)控設(shè)備的主機路由的目的IP地址為分 配給VPN隧道客戶端的虛擬網(wǎng)卡地址,出接口為監(jiān)控設(shè)備上的PPP虛擬網(wǎng)卡接口。
      [0017] 本發(fā)明還提出了一種建立直連VPN隧道的裝置,應(yīng)用于視頻監(jiān)控系統(tǒng)中的客戶端, 所述視頻監(jiān)控系統(tǒng)包括位于不同私網(wǎng)內(nèi)的客戶端和監(jiān)控設(shè)備,以及位于公網(wǎng)的管理服務(wù) 器,所述建立直連VPN隧道的裝置,包括:
      [0018] 客戶端中繼VPN模塊,用于向管理服務(wù)器發(fā)送建立VPN隧道請求消息,與管理服務(wù) 器建立VPN隧道;
      [0019] 客戶端打洞模塊,用于接收管理服務(wù)器下發(fā)的監(jiān)控設(shè)備的公網(wǎng)映射IP地址和端口 號,與監(jiān)控設(shè)備間通過打洞穿越NAT設(shè)備,建立與監(jiān)控設(shè)備之間的UDP連接;
      [0020] 客戶端直連VPN模塊,用于接收管理服務(wù)器下發(fā)的配置信息,與監(jiān)控設(shè)備通過UDP 連接建立直連的VPN隧道。
      [0021] 進一步地,所述客戶端直連VPN模塊在接收管理服務(wù)器下發(fā)的配置信息,與監(jiān)控設(shè) 備通過UDP連接建立直連的VPN隧道時,執(zhí)行如下操作:
      [0022]根據(jù)管理服務(wù)器的分配設(shè)置自身為VPN隧道客戶端,接收管理服務(wù)器下發(fā)的VPN隧 道服務(wù)器的IP地址和端口號為監(jiān)控設(shè)備的公網(wǎng)映射IP地址和端口號,以及進行鑒權(quán)的用戶 名和密碼,向監(jiān)控設(shè)備發(fā)送建立VPN隧道連接請求;
      [0023]接收監(jiān)控設(shè)備下發(fā)的VPN隧道客戶端使用的虛擬網(wǎng)卡地址,生成PPP虛擬網(wǎng)卡接 □ 〇
      [0024] 進一步地,所述客戶端直連VPN模塊還用于:
      [0025]接收管理服務(wù)器的通知,生成以監(jiān)控設(shè)備的虛擬網(wǎng)卡地址為目的地址的主機路 由,所述主機路由的目的IP地址為分配給VPN隧道服務(wù)器的虛擬網(wǎng)卡地址,出接口為自身的 PPP虛擬網(wǎng)卡接口。
      [0026]本發(fā)明還提出了一種建立直連VPN隧道的裝置,應(yīng)用于視頻監(jiān)控系統(tǒng)中的監(jiān)控設(shè) 備,所述視頻監(jiān)控系統(tǒng)包括位于不同私網(wǎng)內(nèi)的客戶端和監(jiān)控設(shè)備,以及位于公網(wǎng)的管理服 務(wù)器,所述建立直連VPN隧道的裝置,包括:
      [0027]監(jiān)控設(shè)備中繼VPN模塊,用于向管理服務(wù)器發(fā)送建立VPN隧道請求消息,與管理服 務(wù)器建立VPN隧道;
      [0028]監(jiān)控設(shè)備打洞模塊,用于接收管理服務(wù)器下發(fā)的客戶端的公網(wǎng)映射IP地址和端口 號,與客戶端間通過打洞穿越NAT設(shè)備,建立與客戶端之間的UDP連接;
      [0029]監(jiān)控設(shè)備直連VPN模塊,用于接收管理服務(wù)器下發(fā)的配置信息,與客戶端通過UDP 連接建立直連的VPN隧道。
      [0030] 進一步地,所述監(jiān)控設(shè)備直連VPN模塊在接收管理服務(wù)器下發(fā)的配置信息,與客戶 端通過UDP連接建立直連的VPN隧道時,執(zhí)行如下操作:
      [0031] 根據(jù)管理服務(wù)器的分配設(shè)置自身為VPN隧道服務(wù)器,接收管理服務(wù)器下發(fā)的VPN隧 道服務(wù)器使用的虛擬網(wǎng)卡地址和VPN隧道客戶端使用的虛擬網(wǎng)卡地址,以及進行鑒權(quán)的用 戶名和密碼,在自身的私網(wǎng)IP地址及私網(wǎng)端口號上啟動偵聽進程,偵聽VPN隧道客戶端的 VPN隧道連接請求,在偵聽到VPN隧道連接請求后進行用戶鑒權(quán)和響應(yīng),在自身上生成PPP虛 擬網(wǎng)卡接口,并將分配給VPN隧道客戶端的虛擬網(wǎng)卡地址下發(fā)給客戶端。
      [0032] 進一步地,所述監(jiān)控設(shè)備直連VPN模塊還用于:
      [0033]接收管理服務(wù)器的通知,生成以客戶端的虛擬網(wǎng)卡地址為目的地址的主機路由, 所述主機路由的目的IP地址為分配給VPN隧道客戶端的虛擬網(wǎng)卡地址,出接口為自身的PPP 虛擬網(wǎng)卡接口。
      [0034]本發(fā)明提出了一種建立直連VPN隧道的裝置,在管理服務(wù)器的協(xié)助下,客戶端和監(jiān) 控設(shè)備先進行打洞建立UDP連接,穿越NAT設(shè)備,然后通過UDP連接完成直連VPN隧道的建立, 客戶端和監(jiān)控設(shè)備之間建立直連的VPN隧道后,客戶端可以直接訪問監(jiān)控設(shè)備獲取視頻,解 決了現(xiàn)有技術(shù)中客戶端和視頻監(jiān)控設(shè)備的通信需要由客戶端代理和監(jiān)控設(shè)備代理進行處 理和轉(zhuǎn)發(fā),代理模塊消耗資源多,傳輸效率不高,信令協(xié)商和業(yè)務(wù)控制復(fù)雜的問題。
      【附圖說明】
      [0035]圖1為本發(fā)明實施例一建立直連VPN隧道的裝置結(jié)構(gòu)示意圖;
      [0036]圖2為本發(fā)明實施例視頻監(jiān)控系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)示意圖;
      [0037]圖3為本發(fā)明實施例二建立直連VPN隧道的裝置結(jié)構(gòu)示意圖;
      [0038]圖4為本發(fā)明實施例三建立直連VPN隧道的裝置結(jié)構(gòu)示意圖;
      [0039] 圖5為本發(fā)明實施例四建立直連VPN隧道的方法流程圖。
      【具體實施方式】
      [0040] 下面結(jié)合附圖和實施例對本發(fā)明技術(shù)方案做進一步詳細說明,以下實施例不構(gòu)成 對本發(fā)明的限定。
      [0041] 在視頻監(jiān)控網(wǎng)絡(luò)中,客戶端需要訪問監(jiān)控設(shè)備來獲取監(jiān)控視頻,但客戶端和監(jiān)控 設(shè)備常常位于不同的私網(wǎng)內(nèi),客戶端和監(jiān)控設(shè)備都使用私網(wǎng)IP地址,因此客戶端無法直接 訪問監(jiān)控設(shè)備。本發(fā)明提供了一種在管理服務(wù)器的協(xié)助下,客戶端和監(jiān)控設(shè)備建立直連VPN 隧道的裝置,直連VPN隧道建立后,客戶端可以直接訪問監(jiān)控設(shè)備,獲取所需的監(jiān)控視頻。 [0042] 實施例一、
      [0043]如圖1所示,本實施例一種建立直連VPN隧道的裝置,應(yīng)用于管理服務(wù)器,包括: [0044] VPN中繼服務(wù)模塊,用于與客戶端和監(jiān)控設(shè)備分別建立VPN隧道。
      [0045] 在現(xiàn)有的視頻監(jiān)控網(wǎng)絡(luò)中,客戶端和監(jiān)控設(shè)備通過分別和公網(wǎng)中的管理服務(wù)器建 立VPN隧道來穿越客戶端和監(jiān)控設(shè)備的NAT設(shè)備,通過公網(wǎng)中的管理服務(wù)器將監(jiān)控設(shè)備中的 監(jiān)控視頻流轉(zhuǎn)發(fā)給客戶端。本實施例管理服務(wù)器為視頻監(jiān)控系統(tǒng)的視頻管理服務(wù)器。監(jiān)控 設(shè)備/客戶端在與管理服務(wù)器建立VPN隧道時,監(jiān)控設(shè)備/客戶端的NAT設(shè)備上會生成該監(jiān)控 設(shè)備的私網(wǎng)IP地址及端口號和公網(wǎng)映射IP地址及端口號的映射關(guān)系表,監(jiān)控設(shè)備/客戶端 使用私網(wǎng)IP地址及端口號向管理服務(wù)器VPN中繼服務(wù)模塊發(fā)送建立VPN隧道請求消息,NAT 設(shè)備將建立VPN隧道請求消息中監(jiān)控設(shè)備/客戶端的私網(wǎng)IP地址及端口號轉(zhuǎn)換為監(jiān)控設(shè)備/ 客戶端的公網(wǎng)映射IP地址和端口號后發(fā)送給管理服務(wù)器VPN中繼服務(wù)模塊,管理服務(wù)器VPN 中繼服務(wù)模塊響應(yīng)監(jiān)控設(shè)備/客戶端的建立VPN隧道請求消息,完成VPN隧道的建立。
      [0046]客戶端/監(jiān)控設(shè)備分別與管理服務(wù)器建立VPN隧道,可用于后續(xù)客戶端/監(jiān)控設(shè)備 與管理服務(wù)器之間的消息交互,同時在客戶端與監(jiān)控設(shè)備之間的直連VPN隧道故障時,客戶 端會使用自身與管理服務(wù)器建立的VPN隧道來訪問管理服務(wù)器,管理服務(wù)器通過與監(jiān)控設(shè) 備的VPN隧道來通信,通過管理服務(wù)器的轉(zhuǎn)發(fā)獲取監(jiān)控設(shè)備的監(jiān)控視頻。
      [0047] NAT打洞服務(wù)模塊,用于獲取客戶端的公網(wǎng)映射IP地址、端口號,以及監(jiān)控設(shè)備的 公網(wǎng)映射IP地址、端口號,將客戶端的公網(wǎng)映射IP地址和端口號發(fā)送給監(jiān)控設(shè)備,將監(jiān)控設(shè) 備的公網(wǎng)映射IP地址和端口號發(fā)送給客戶端,以便客戶端和監(jiān)控設(shè)備利用各自收到的IP地 址和端口號信息進行打洞穿越NAT設(shè)備,建立并保持客戶端和監(jiān)控設(shè)備之間的UDP連接。 [0048] 客戶端與監(jiān)控設(shè)備之間通過NAT穿越協(xié)議STUN(Simple Traversal of UDP Through NAT)來打洞穿越NAT設(shè)備,建立兩者之間的UDP連接。
      [0049] 假設(shè)客戶端為STUN ClientA,客戶端側(cè)的NAT為NA,監(jiān)控設(shè)備為STUN ClientB,監(jiān) 控設(shè)備側(cè)的NAT為NB,管理服務(wù)器為STUN Server,客戶端與監(jiān)控設(shè)備打洞穿越NAT設(shè)備建立 UDP連接的過程如下:
      [0050] (l)STUN ClientA通過NA向STUN Server發(fā)送UDP請求STUN消息詢問并注冊自身的 轉(zhuǎn)換后地址;
      [0051 ] (2)STUN Server收到請求消息,產(chǎn)生響應(yīng)消息,響應(yīng)消息中攜帶請求消息的源端 口,即STUN ClientA在NA上對應(yīng)的外部端口,然后響應(yīng)消息通過NA發(fā)送給STUN ClientA;
      [0052] (3)STUN ClientB通過NB向STUN Server發(fā)送UDP請求STUN消息詢問并注冊自身的 轉(zhuǎn)換后地址;
      [0053] (4)STUN Server收到請求消息,產(chǎn)生響應(yīng)消息,響應(yīng)消息中攜帶請求消息的源端 口,即STUN ClientB在NB上對應(yīng)的外部端口,然后響應(yīng)消息通過NB發(fā)送給STUN ClientB;
      [0054] (5)STUN ClientA將其在ΝΑ上對應(yīng)的外部地址和端口信息包含在消息中,發(fā)送給 STUN Server請求要和STUN ClientB通訊;
      [0055] (6)STUN Server收到請求信息后,查詢STUN ClientB的注冊地址,并通過NB將請 求轉(zhuǎn)發(fā)給STUN ClientB;
      [0056] (7)STUN ClientB通過消息體中的內(nèi)容得知STUN ClientA在的外部地址和端口, 并將其在NB上對應(yīng)的外部地址和端口信息包含在響應(yīng)消息中,然后將響應(yīng)信息發(fā)送給STUN ClientA,STUN ClientA收到響應(yīng)信息后也知道了STUN ClientB的外部地址和端口,這樣就 在STUN ClientA和STUN ClientB之間建立了UDP連接,解決了打洞穿越NAT的通信建立問 題。
      [0057] 需要說明的是,設(shè)置監(jiān)控設(shè)備為STUN ClientA,客戶端為STUN ClientB,同樣能夠 實現(xiàn)打洞穿越NAT,這里不再贅述。
      [0058]本實施例管理服務(wù)器NAT打洞服務(wù)模塊在獲取到客戶端的公網(wǎng)映射IP地址、端口 號,以及監(jiān)控設(shè)備的公網(wǎng)映射IP地址、端口號后,通過VPN中繼服務(wù)模塊建立的VPN隧道將客 戶端的公網(wǎng)映射IP地址和端口號發(fā)送給監(jiān)控設(shè)備,將監(jiān)控設(shè)備的公網(wǎng)映射IP地址和端口號 發(fā)送給客戶端,客戶端和監(jiān)控設(shè)備利用各自收到的公網(wǎng)映射IP地址和端口號信息進行打 洞。
      [0059]打洞完成后客戶端和監(jiān)控設(shè)備之間建立了一個穿越NAT設(shè)備的UDP連接,具體包 括:在客戶端的NAT設(shè)備上生成一個內(nèi)網(wǎng)地址和端口號為客戶端的私網(wǎng)IP地址和端口號,外 網(wǎng)地址和端口號為客戶端的公網(wǎng)映射IP地址和端口號的會話連接,該會話連接只接受監(jiān)控 設(shè)備的公網(wǎng)映射IP地址的訪問,同時在監(jiān)控設(shè)備的NAT設(shè)備上生成一個內(nèi)網(wǎng)地址和端口號 為監(jiān)控設(shè)備的私網(wǎng)IP地址和端口號,外網(wǎng)地址和端口號為監(jiān)控設(shè)備的公網(wǎng)映射IP地址和端 口號的會話連接,該會話連接只接受客戶端的公網(wǎng)映射IP地址的訪問。
      [0060] 客戶端通過監(jiān)控設(shè)備的公網(wǎng)映射IP地址和端口號向監(jiān)控設(shè)備發(fā)送消息,消息中的 源IP地址和端口號為客戶端的私網(wǎng)IP地址和端口號,客戶端的NAT設(shè)備將消息中的源IP地 址和端口號轉(zhuǎn)換為客戶端的公網(wǎng)映射IP地址和端口號后發(fā)送給監(jiān)控設(shè)備的NAT設(shè)備,監(jiān)控 設(shè)備的NAT設(shè)備收到消息后將消息中的目的IP地址和端口號由監(jiān)控設(shè)備的公網(wǎng)映射IP地址 和端口號轉(zhuǎn)換為監(jiān)控設(shè)備的私網(wǎng)IP地址和端口號后發(fā)送給監(jiān)控設(shè)備。監(jiān)控設(shè)備通過客戶端 的公網(wǎng)映射IP地址和端口號向客戶端發(fā)送消息,消息中的源IP地址和端口號為監(jiān)控設(shè)備的 私網(wǎng)IP地址和端口號,監(jiān)控設(shè)備的NAT設(shè)備將消息中的源IP地址和端口號轉(zhuǎn)換為監(jiān)控設(shè)備 的公網(wǎng)映射IP地址和端口號后發(fā)送給監(jiān)控設(shè)備的NAT設(shè)備,監(jiān)控設(shè)備的NAT設(shè)備收到消息后 將消息中的目的IP地址和端口號由客戶端的公網(wǎng)映射IP地址和端口號轉(zhuǎn)換為客戶端的私 網(wǎng)IP地址和端口號后發(fā)送給客戶端。通過這種方式客戶端和監(jiān)控設(shè)備就可以利用打洞建立 的UDP連接直接互相發(fā)送消息。
      [0061] 需要說明的是,由于客戶端和監(jiān)控設(shè)備的NAT設(shè)備上的會話連接都有過期時間,客 戶端和監(jiān)控設(shè)備通過發(fā)送周期性的保活報文對通過打洞建立的IPD連接進行?;睢?br>[0062]配置模塊,用于分配監(jiān)控設(shè)備和客戶端分別為VPN隧道服務(wù)器角色和VPN隧道客戶 端角色,下發(fā)配置信息給客戶端和監(jiān)控設(shè)備,使得客戶端和監(jiān)控設(shè)備通過UDP連接建立直連 VPN隧道。
      [0063]客戶端和監(jiān)控設(shè)備在打洞成功,建立UDP連接后,將打洞成功的消息發(fā)送給管理服 務(wù)器。管理服務(wù)器配置模塊收到打洞成功的消息后,分配監(jiān)控設(shè)備為VPN隧道服務(wù)器,下發(fā) VPN隧道服務(wù)器使用的虛擬網(wǎng)卡地址和VPN隧道客戶端使用的虛擬網(wǎng)卡地址給監(jiān)控設(shè)備,下 發(fā)進行鑒權(quán)用戶名和密碼給監(jiān)控設(shè)備,監(jiān)控設(shè)備根據(jù)管理服務(wù)器配置模塊下發(fā)的消息完成 VPN隧道服務(wù)器的配置,然后在監(jiān)控設(shè)備的私網(wǎng)IP地址及私網(wǎng)端口號上啟動偵聽進程,偵聽 VPN隧道客戶端的VPN隧道連接請求。在偵聽到VPN隧道連接請求后進行用戶鑒權(quán)和響應(yīng),隨 后在監(jiān)控設(shè)備上生成PPP虛擬網(wǎng)卡接口,該虛擬網(wǎng)卡接口為管理服務(wù)器下發(fā)的VPN隧道服務(wù) 器使用的虛擬網(wǎng)卡地址。
      [0064]管理服務(wù)器配置模塊分配客戶端為VPN隧道客戶端,通知客戶端VPN隧道服務(wù)器的 IP地址和端口號為監(jiān)控設(shè)備的公網(wǎng)映射IP地址和公網(wǎng)端口號,并下發(fā)進行鑒權(quán)的用戶名和 密碼給客戶端,客戶端向監(jiān)控設(shè)備發(fā)送建立VPN隧道連接請求,監(jiān)控設(shè)備偵聽到該建立VPN 隧道連接請求后進行用戶鑒權(quán)和響應(yīng),并將管理服務(wù)器配置模塊分配給VPN隧道客戶端的 虛擬網(wǎng)卡地址下發(fā)給客戶端,客戶端接收監(jiān)控設(shè)備下發(fā)的VPN隧道客戶端使用的虛擬網(wǎng)卡 地址,在客戶端上生成PPP虛擬網(wǎng)卡接口,完成VPN隧道的建立。
      [0065] 客戶端和監(jiān)控設(shè)備之間的VPN隧道建立后,在客戶端和監(jiān)控設(shè)備上都會生成一個 新的PPP虛擬網(wǎng)卡接口,監(jiān)控設(shè)備上的PPP虛擬網(wǎng)卡接口的IP地址為管理服務(wù)器分配給VPN 隧道服務(wù)器的虛擬網(wǎng)卡地址,客戶端上的PPP虛擬網(wǎng)卡接口的IP地址為管理服務(wù)器分配給 VPN隧道客戶端的虛擬網(wǎng)卡地址。
      [0066] 然后管理服務(wù)器配置模塊通知客戶端和監(jiān)控設(shè)備分別生成以對方的虛擬網(wǎng)卡地 址為目的地址的主機路由,或分別下發(fā)一條主機路由到客戶端和監(jiān)控設(shè)備。其中客戶端的 主機路由的目的IP地址為管理服務(wù)器分配給VPN隧道服務(wù)器的虛擬網(wǎng)卡地址,出接口為客 戶端上新建立的PPP虛擬網(wǎng)卡接口,監(jiān)控設(shè)備的主機路由的目的IP地址為管理服務(wù)器分配 給VPN隧道客戶端的虛擬網(wǎng)卡地址,出接口為監(jiān)控設(shè)備上新建立的PPP虛擬網(wǎng)卡接口。
      [0067]需要說明的是,本實施例分配監(jiān)控設(shè)備為VPN隧道服務(wù)器,分配客戶端為VPN隧道 客戶端,由客戶端發(fā)起建立VPN隧道連接請求。同樣地,也可以分配客戶端為VPN隧道服務(wù) 器,分配監(jiān)控設(shè)備為VPN隧道客戶端,由監(jiān)控設(shè)備發(fā)起建立VPN隧道連接請求。本發(fā)明不限于 具體的實現(xiàn)形式。
      [0068]從而客戶端和監(jiān)控設(shè)備在管理服務(wù)器配置模塊的協(xié)助下建立了直連的VPN隧道, 使用管理服務(wù)器配置模塊分配給VPN隧道服務(wù)器的虛擬網(wǎng)卡地址和管理服務(wù)器配置模塊分 配給VPN隧道客戶端的虛擬網(wǎng)卡地址直接進行通信,客戶端直接從監(jiān)控設(shè)備上獲取監(jiān)控視 頻。
      [0069]需要說明的是,當客戶端和監(jiān)控設(shè)備建立的直連VPN隧道出現(xiàn)故障時,由于客戶端 與管理服務(wù)器、監(jiān)控設(shè)備與管理服務(wù)器都建立有VPN隧道,客戶端會使用它和管理服務(wù)器建 立的VPN隧道來訪問管理服務(wù)器,通過管理服務(wù)器的轉(zhuǎn)發(fā)獲取監(jiān)控設(shè)備的監(jiān)控視頻。
      [0070]下面通過舉例對本實施例進行說明,本實施例中的VPN隧道并不局限于使用某種 特殊的協(xié)議,可以是L2TP、PPTP、IPSec或GRE,本實例采用L2TP進行說明。如圖2所示,管理服 務(wù)器的公網(wǎng)IP地址為:202.110.110.25,管理服務(wù)器為L2TP服務(wù)器,L2TP服務(wù)器的IP地址為 10.10.10.1。監(jiān)控設(shè)備的IP地址為:192.168.1.110,客戶端的IP地址為192.168.2.220,監(jiān) 控設(shè)備的NAT設(shè)備的公網(wǎng)IP地址為:202.100.100.11,客戶端的NAT設(shè)備的公網(wǎng)IP地址為: 202.200.200.22。監(jiān)控設(shè)備向管理服務(wù)器VPN中繼服務(wù)模塊發(fā)送建立L2TP隧道請求消息, VPN中繼服務(wù)模塊響應(yīng)該建立L2TP隧道請求,給監(jiān)控設(shè)備分配10.10.10.2的私網(wǎng)IP地址作 為L2TP客戶端的IP地址,并通知監(jiān)控設(shè)備,L2TP服務(wù)器的IP地址為10.10.10.1,監(jiān)控設(shè)備根 據(jù)收到的響應(yīng)消息建立IP地址為1 〇. 1 〇. 1 〇. 2的ΡΡΡ0接口,并生成如下路由表:
      [0071]
      [0073] 表 1
      [0074] 客戶端向管理服務(wù)器VPN中繼服務(wù)模塊發(fā)送建立L2TP隧道請求消息,VPN中繼服務(wù) 模塊響應(yīng)該建立L2TP隧道請求,給客戶端分配10.10.10.3的私網(wǎng)IP地址作為L2TP客戶端的 IP地址,并通知客戶端,L2TP服務(wù)器的IP地址為10.10.10.1,客戶端根據(jù)收到的響應(yīng)消息建 立IP地址為10.10.10.3的ΡΡΡ0接口,并生成如下路由表:
      [0075]
      [0076] 表 2
      [0077] 客戶端要訪問監(jiān)控設(shè)備建立UDP連接時,通過NAT穿越協(xié)議STUN,管理服務(wù)器NAT打 洞服務(wù)模塊獲得監(jiān)控設(shè)備的公網(wǎng)映射IP地址202.100.100.11和端口號10001,以及客戶端 的公網(wǎng)映射IP地址202.200.200.22和端口號10021,管理服務(wù)器NAT打洞服務(wù)模塊將監(jiān)控設(shè) 備的公網(wǎng)映射IP地址202.100.100.11和端口號10001發(fā)送給客戶端,同時管理服務(wù)器NAT打 洞服務(wù)模塊將客戶端的公網(wǎng)映射IP地址202.200.200.22和端口號10021發(fā)送給監(jiān)控設(shè)備, 客戶端和監(jiān)控設(shè)備根據(jù)收到的信息進行打洞,打洞完成后監(jiān)控設(shè)備通過私網(wǎng)地址 192.168.1. 110,端口 15000來收發(fā)報文,此地址端口在本地NAT設(shè)備映射外網(wǎng)地址為 202 · 100 · 100 · 11,端口 10001??蛻舳送ㄟ^私網(wǎng)地址192 · 168 · 2 · 200,端口 11000來收發(fā)報文, 此地址端口在本地NAT設(shè)備映射外網(wǎng)地址為202.200.200.22,端口 10021。
      [0078] 客戶端和監(jiān)控設(shè)備建立連接后發(fā)送?;顖笪模苊釴AT設(shè)備上會話表項老化。監(jiān)控 設(shè)備和客戶端將打洞成功的消息都上報給管理服務(wù)器,管理服務(wù)器NAT打洞服務(wù)模塊確定 兩者已打洞成功。
      [0079] 此時監(jiān)控設(shè)備發(fā)往202.200.200.22,端口 10021的報文,將被客戶端側(cè)NAT設(shè)備轉(zhuǎn) 發(fā)給客戶端192.168.2.200,端口 11000??蛻舳税l(fā)往202.100.100.11,端口 10001的報文,將 被監(jiān)控設(shè)備側(cè)NAT設(shè)備轉(zhuǎn)發(fā)給監(jiān)控設(shè)備192.168.1.110,端口 15000。
      [0080] 管理服務(wù)器配置模塊收到客戶端和監(jiān)控設(shè)備打洞成功的消息后,通知監(jiān)控設(shè)備作 為L2TP服務(wù)器,L2TP服務(wù)器IP地址為10.10.10.4,L2TP客戶端IP地址為10.10.10.5,L2TP鑒 權(quán)用戶名為XXX,密碼為YYY,監(jiān)控設(shè)備根據(jù)配置模塊下發(fā)的信息完成L2TP的相關(guān)配置后,在 192· 168· 1 · 110,端口 15000啟動L2TP Server偵聽,準備接受L2TP客戶端撥入。
      [0081] 然后,配置模塊通知客戶端,分配其為L2TP Client,L2TP Server地址為 202.100.100.11,端口為10001,L2TP鑒權(quán)用戶為XXX,密碼為YYY??蛻舳耸盏酵ㄖ⒑螅?向202.100.100.11,端口 10001發(fā)起L2TP撥號連接請求,鑒權(quán)用戶為XXX,密碼為YYY,監(jiān)控設(shè) 備側(cè)的NAT設(shè)備收到L2TP撥號連接請求消息后將目的IP地址和端口號由202.100.100.11和 10001轉(zhuǎn)換為192.168.2.220和11000后發(fā)送給監(jiān)控設(shè)備,監(jiān)控設(shè)備在IP地址192.168.1.110 和端口號15000上偵聽到該L2TP撥號連接請求消息后進行鑒權(quán)和響應(yīng)。鑒權(quán)通過后,L2TP月艮 務(wù)器通知L2TP客戶端,分配給L2TP客戶端的IP地址為10.10.10.5,L2TP服務(wù)器的IP地址為 10.10.10.412TP隧道建立后視頻服務(wù)器上會生成一個新的IP地址為10.10.10.4的PPP接 口,接口編號為PPP1,客戶端上會生成一個新的IP地址為10.10.10.5的PPP接口,接口編號 為PPP1。
      [0082]然后配置模塊分別給客戶端和監(jiān)控設(shè)備下發(fā)一條路由,其中客戶端的路由的目的 IP地址為10.10.10.4,出接口為PPP1,監(jiān)控設(shè)備的路由的目的IP地址為10.10.10.5,出接口 為PPP1。
      [0083] 此時,監(jiān)控設(shè)備的路由表如下:
      [0084]
      [0086]表 3
      [0087]客戶端的路由表如下:
      [0088]

      [0089] 表4
      [0090] 客戶端訪問監(jiān)控設(shè)備時優(yōu)先使用監(jiān)控設(shè)備IP地址10.10.10.4,路由匹配客戶端路 由表中第二條路由,通過客戶端和監(jiān)控設(shè)備之間的直連L2TP隧道訪問監(jiān)控設(shè)備。當客戶端 和監(jiān)控設(shè)備之間的直連L2TP隧道故障時,則使用監(jiān)控設(shè)備的IP地址10.10.10.2,路由匹配 客戶端路由表中第四條路由,通過管理服務(wù)器進行中轉(zhuǎn)來訪問監(jiān)控設(shè)備。
      [0091] 實施例二、
      [0092]如圖3所示,本實施例一種建立直連VPN隧道的裝置,應(yīng)用于視頻監(jiān)控系統(tǒng)中的客 戶端,包括:
      [0093]客戶端中繼VPN模塊,用于向管理服務(wù)器發(fā)送建立VPN隧道請求消息,與管理服務(wù) 器建立VPN隧道;
      [0094]客戶端打洞模塊,用于接收管理服務(wù)器下發(fā)的監(jiān)控設(shè)備的公網(wǎng)映射IP地址和端口 號,與監(jiān)控設(shè)備間通過打洞穿越NAT設(shè)備,建立與監(jiān)控設(shè)備之間的UDP連接;
      [0095]客戶端直連VPN模塊,用于接收管理服務(wù)器下發(fā)的配置信息,與監(jiān)控設(shè)備通過UDP 連接建立直連的VPN隧道。
      [0096]本實施例客戶端直連VPN模塊在接收管理服務(wù)器下發(fā)的配置信息,與監(jiān)控設(shè)備通 過UDP連接建立直連的VPN隧道時,執(zhí)行如下操作:
      [0097]根據(jù)管理服務(wù)器的分配設(shè)置自身為VPN隧道客戶端,接收管理服務(wù)器下發(fā)的VPN隧 道服務(wù)器的IP地址和端口號為監(jiān)控設(shè)備的公網(wǎng)映射IP地址和端口號,以及進行鑒權(quán)的用戶 名和密碼,向監(jiān)控設(shè)備發(fā)送建立VPN隧道連接請求;
      [0098]接收監(jiān)控設(shè)備下發(fā)的VPN隧道客戶端使用的虛擬網(wǎng)卡地址,生成PPP虛擬網(wǎng)卡接 □ 〇
      [0099]需要說明的是,本實施例還可以分配監(jiān)控設(shè)備為VPN隧道客戶端,而分配客戶端為 VPN隧道服務(wù)器,這里不再贅述。
      [0100] 本實施例客戶端直連VPN模塊還用于:
      [0101] 接收管理服務(wù)器的通知,生成以監(jiān)控設(shè)備的虛擬網(wǎng)卡地址為目的地址的主機路 由,所述主機路由的目的IP地址為分配給VPN隧道服務(wù)器的虛擬網(wǎng)卡地址,出接口為自身的 PPP虛擬網(wǎng)卡接口。
      [0102] 需要說明的是,管理服務(wù)器配置模塊通知客戶端和監(jiān)控設(shè)備分別生成以對方的虛 擬網(wǎng)卡地址為目的地址的主機路由,或分別下發(fā)一條主機路由到客戶端和監(jiān)控設(shè)備,本發(fā) 明不限于具體的實現(xiàn)方式。
      [0103] 實施例三、
      [0104] 如圖4所示,本實施例一種建立直連VPN隧道的裝置,應(yīng)用于視頻監(jiān)控系統(tǒng)中的監(jiān) 控設(shè)備,包括:
      [0105] 監(jiān)控設(shè)備中繼VPN模塊,用于向管理服務(wù)器發(fā)送建立VPN隧道請求消息,與管理服 務(wù)器建立VPN隧道;
      [0106] 監(jiān)控設(shè)備打洞模塊,用于接收管理服務(wù)器下發(fā)的客戶端的公網(wǎng)映射IP地址和端口 號,與客戶端間通過打洞穿越NAT設(shè)備,建立與客戶端之間的UDP連接;
      [0107] 監(jiān)控設(shè)備直連VPN模塊,用于接收管理服務(wù)器下發(fā)的配置信息,與客戶端通過UDP 連接建立直連的VPN隧道。
      [0108] 本實施例監(jiān)控設(shè)備直連VPN模塊在接收管理服務(wù)器下發(fā)的配置信息,與客戶端通 過UDP連接建立直連的VPN隧道時,執(zhí)行如下操作:
      [0109] 根據(jù)管理服務(wù)器的分配設(shè)置自身為VPN隧道服務(wù)器,接收管理服務(wù)器下發(fā)的VPN隧 道服務(wù)器使用的虛擬網(wǎng)卡地址和VPN隧道客戶端使用的虛擬網(wǎng)卡地址,以及進行鑒權(quán)的用 戶名和密碼,在自身的私網(wǎng)IP地址及私網(wǎng)端口號上啟動偵聽進程,偵聽VPN隧道客戶端的 VPN隧道連接請求,在偵聽到VPN隧道連接請求后進行用戶鑒權(quán)和響應(yīng),在自身上生成PPP虛 擬網(wǎng)卡接口,并將分配給VPN隧道客戶端的虛擬網(wǎng)卡地址下發(fā)給客戶端。
      [0110] 本實施例監(jiān)控設(shè)備直連VPN模塊還用于:
      [0111] 接收管理服務(wù)器的通知,生成以客戶端的虛擬網(wǎng)卡地址為目的地址的主機路由, 所述主機路由的目的IP地址為分配給VPN隧道客戶端的虛擬網(wǎng)卡地址,出接口為自身的PPP 虛擬網(wǎng)卡接口。
      [0112] 同樣地,本實施例還可以分配監(jiān)控設(shè)備為VPN隧道客戶端,而分配客戶端為VPN隧 道服務(wù)器;管理服務(wù)器配置模塊通知客戶端和監(jiān)控設(shè)備分別生成以對方的虛擬網(wǎng)卡地址為 目的地址的主機路由,或分別下發(fā)一條主機路由到客戶端和監(jiān)控設(shè)備,本發(fā)明不限于具體 的實現(xiàn)方式。
      [0113]實施例四、
      [0114] 如圖5所示,本實施例描述了建立直連VPN隧道的方法,包括:
      [0115] 步驟S1、管理服務(wù)器與客戶端和監(jiān)控設(shè)備分別建立VPN隧道。
      [0116]本實施例管理服務(wù)器為視頻監(jiān)控系統(tǒng)的視頻管理服務(wù)器,監(jiān)控設(shè)備/客戶端在與 管理服務(wù)器建立VPN隧道時,監(jiān)控設(shè)備/客戶端的NAT設(shè)備上會生成該監(jiān)控設(shè)備的私網(wǎng)IP地 址及端口號和公網(wǎng)映射IP地址及端口號的映射關(guān)系表,監(jiān)控設(shè)備/客戶端使用私網(wǎng)IP地址 及端口號向管理服務(wù)器發(fā)送建立VPN隧道請求消息,NAT設(shè)備將建立VPN隧道請求消息中監(jiān) 控設(shè)備/客戶端的私網(wǎng)IP地址及端口號轉(zhuǎn)換為監(jiān)控設(shè)備/客戶端的公網(wǎng)映射IP地址和端口 號后發(fā)送給管理服務(wù)器,管理服務(wù)器響應(yīng)監(jiān)控設(shè)備/客戶端的建立VPN隧道請求消息,完成 VPN隧道的建立。
      [0117] 客戶端/監(jiān)控設(shè)備分別與管理服務(wù)器建立VPN隧道,可用于發(fā)送后續(xù)步驟中客戶 端/監(jiān)控設(shè)備與管理服務(wù)器之間的交互消息,同時在客戶端與監(jiān)控設(shè)備之間的直連VPN隧道 故障時,客戶端會使用自身與管理服務(wù)器建立的VPN隧道來訪問管理服務(wù)器,管理服務(wù)器通 過與監(jiān)控設(shè)備的VPN隧道來通信,通過管理服務(wù)器的轉(zhuǎn)發(fā)獲取監(jiān)控設(shè)備的監(jiān)控視頻。
      [0118] 步驟S2、管理服務(wù)器獲取客戶端的公網(wǎng)映射IP地址、端口號,以及監(jiān)控設(shè)備的公網(wǎng) 映射IP地址、端口號,將客戶端的公網(wǎng)映射IP地址和端口號發(fā)送給監(jiān)控設(shè)備,將監(jiān)控設(shè)備的 公網(wǎng)映射IP地址和端口號發(fā)送給客戶端,以便客戶端和監(jiān)控設(shè)備利用各自收到的IP地址和 端口號信息進行打洞穿越NAT設(shè)備,建立并保持客戶端和監(jiān)控設(shè)備之間的UDP連接。
      [0119] 客戶端與監(jiān)控設(shè)備之間通過NAT穿越協(xié)議STUN(Simple Traversal of UDP Through NAT)來打洞穿越NAT設(shè)備,建立兩者之間的UDP連接。
      [0120] 本實施例管理服務(wù)器在獲取到客戶端的公網(wǎng)映射IP地址、端口號,以及監(jiān)控設(shè)備 的公網(wǎng)映射IP地址、端口號后,通過步驟S1中建立的VPN隧道將客戶端的公網(wǎng)映射IP地址和 端口號發(fā)送給監(jiān)控設(shè)備,將監(jiān)控設(shè)備的公網(wǎng)映射IP地址和端口號發(fā)送給客戶端,客戶端和 監(jiān)控設(shè)備利用各自收到的公網(wǎng)映射IP地址和端口號信息進行打洞。
      [0121] 打洞完成后客戶端和監(jiān)控設(shè)備之間建立了一個穿越NAT設(shè)備的UDP連接,具體包 括:在客戶端的NAT設(shè)備上生成一個內(nèi)網(wǎng)地址和端口號為客戶端的私網(wǎng)IP地址和端口號,外 網(wǎng)地址和端口號為客戶端的公網(wǎng)映射IP地址和端口號的會話連接,該會話連接只接受監(jiān)控 設(shè)備的公網(wǎng)映射IP地址的訪問,同時在監(jiān)控設(shè)備的NAT設(shè)備上生成一個內(nèi)網(wǎng)地址和端口號 為監(jiān)控設(shè)備的私網(wǎng)IP地址和端口號,外網(wǎng)地址和端口號為監(jiān)控設(shè)備的公網(wǎng)映射IP地址和端 口號的會話連接,該會話連接只接受客戶端的公網(wǎng)映射IP地址的訪問。
      [0122] 客戶端通過監(jiān)控設(shè)備的公網(wǎng)映射IP地址和端口號向監(jiān)控設(shè)備發(fā)送消息,消息中的 源IP地址和端口號為客戶端的私網(wǎng)IP地址和端口號,客戶端的NAT設(shè)備將消息中的源IP地 址和端口號轉(zhuǎn)換為客戶端的公網(wǎng)映射IP地址和端口號后發(fā)送給監(jiān)控設(shè)備的NAT設(shè)備,監(jiān)控 設(shè)備的NAT設(shè)備收到消息后將消息中的目的IP地址和端口號由監(jiān)控設(shè)備的公網(wǎng)映射IP地址 和端口號轉(zhuǎn)換為監(jiān)控設(shè)備的私網(wǎng)IP地址和端口號后發(fā)送給監(jiān)控設(shè)備。監(jiān)控設(shè)備通過客戶端 的公網(wǎng)映射IP地址和端口號向客戶端發(fā)送消息,消息中的源IP地址和端口號為監(jiān)控設(shè)備的 私網(wǎng)IP地址和端口號,監(jiān)控設(shè)備的NAT設(shè)備將消息中的源IP地址和端口號轉(zhuǎn)換為監(jiān)控設(shè)備 的公網(wǎng)映射IP地址和端口號后發(fā)送給監(jiān)控設(shè)備的NAT設(shè)備,監(jiān)控設(shè)備的NAT設(shè)備收到消息后 將消息中的目的IP地址和端口號由客戶端的公網(wǎng)映射IP地址和端口號轉(zhuǎn)換為客戶端的私 網(wǎng)IP地址和端口號后發(fā)送給客戶端。通過這種方式客戶端和監(jiān)控設(shè)備就可以利用打洞建立 的UDP連接直接互相發(fā)送消息。
      [0123] 需要說明的是,由于客戶端和監(jiān)控設(shè)備的NAT設(shè)備上的會話連接都有過期時間,客 戶端和監(jiān)控設(shè)備通過發(fā)送周期性的?;顖笪膶νㄟ^打洞建立的IPD連接進行保活。
      [0124] 步驟S3、管理服務(wù)器分配監(jiān)控設(shè)備和客戶端分別為VPN隧道服務(wù)器角色和VPN隧道 客戶端角色,下發(fā)配置信息給客戶端和監(jiān)控設(shè)備,使得客戶端和監(jiān)控設(shè)備通過UDP連接建立 直連VPN隧道。
      [0125] 客戶端和監(jiān)控設(shè)備在打洞成功,建立UDP連接后,將打洞成功的消息發(fā)送給管理服 務(wù)器。管理服務(wù)器收到打洞成功的消息后,分配監(jiān)控設(shè)備為VPN隧道服務(wù)器,下發(fā)VPN隧道服 務(wù)器使用的虛擬網(wǎng)卡地址和VPN隧道客戶端使用的虛擬網(wǎng)卡地址給監(jiān)控設(shè)備,下發(fā)進行鑒 權(quán)用戶名和密碼給監(jiān)控設(shè)備,監(jiān)控設(shè)備根據(jù)管理服務(wù)器下發(fā)的消息完成VPN隧道服務(wù)器的 配置,然后在監(jiān)控設(shè)備的私網(wǎng)IP地址及私網(wǎng)端口號上啟動偵聽進程,偵聽VPN隧道客戶端的 VPN隧道連接請求。在偵聽到VPN隧道連接請求后進行用戶鑒權(quán)和響應(yīng),隨后在監(jiān)控設(shè)備上 生成PPP虛擬網(wǎng)卡接口,該虛擬網(wǎng)卡接口為管理服務(wù)器下發(fā)的VPN隧道服務(wù)器使用的虛擬網(wǎng) 卡地址
      [0126] 管理服務(wù)器分配客戶端為VPN隧道客戶端,通知客戶端VPN隧道服務(wù)器的IP地址和 端口號為監(jiān)控設(shè)備的公網(wǎng)映射IP地址和公網(wǎng)端口號,并下發(fā)進行鑒權(quán)的用戶名和密碼給客 戶端,客戶端向監(jiān)控設(shè)備發(fā)送建立VPN隧道連接請求,監(jiān)控設(shè)備偵聽到該建立VPN隧道連接 請求后進行用戶鑒權(quán)和響應(yīng),并將管理服務(wù)器分配給VPN隧道客戶端的虛擬網(wǎng)卡地址下發(fā) 給客戶端,客戶端接收監(jiān)控設(shè)備下發(fā)的VPN隧道客戶端使用的虛擬網(wǎng)卡地址,在客戶端上生 成PPP虛擬網(wǎng)卡接口,完成VPN隧道的建立。
      [0127] 客戶端和監(jiān)控設(shè)備之間的VPN隧道建立后,在客戶端和監(jiān)控設(shè)備上都會生成一個 新的PPP虛擬網(wǎng)卡接口,監(jiān)控設(shè)備上的PPP虛擬網(wǎng)卡接口的IP地址為管理服務(wù)器分配給VPN 隧道服務(wù)器的虛擬網(wǎng)卡地址,客戶端上的PPP虛擬網(wǎng)卡接口的IP地址為管理服務(wù)器分配給 VPN隧道客戶端的虛擬網(wǎng)卡地址。
      [0128] 然后管理服務(wù)器通知客戶端和監(jiān)控設(shè)備分別生成以對方的虛擬網(wǎng)卡地址為目的 地址的主機路由,或分別下發(fā)一條主機路由到客戶端和監(jiān)控設(shè)備。其中客戶端的主機路由 的目的IP地址為管理服務(wù)器分配給VPN隧道服務(wù)器的虛擬網(wǎng)卡地址,出接口為客戶端上新 建立的PPP虛擬網(wǎng)卡接口,監(jiān)控設(shè)備的主機路由的目的IP地址為管理服務(wù)器分配給VPN隧道 客戶端的虛擬網(wǎng)卡地址,出接口為監(jiān)控設(shè)備上新建立的PPP虛擬網(wǎng)卡接口。
      [0129] 需要說明的是,本實施例分配監(jiān)控設(shè)備為VPN隧道服務(wù)器,分配客戶端為VPN隧道 客戶端,由客戶端發(fā)起建立VPN隧道連接請求。同樣地,也可以分配客戶端為VPN隧道服務(wù) 器,分配監(jiān)控設(shè)備為VPN隧道客戶端,由監(jiān)控設(shè)備發(fā)起建立VPN隧道連接請求。本發(fā)明不限于 具體的實現(xiàn)形式。
      [0130] 通過上述方法,客戶端和監(jiān)控設(shè)備在管理服務(wù)器的協(xié)助下建立了直連的VPN隧道, 使用管理服務(wù)器分配給VPN隧道服務(wù)器的虛擬網(wǎng)卡地址和管理服務(wù)器分配給VPN隧道客戶 端的虛擬網(wǎng)卡地址直接進行通信,客戶端直接從監(jiān)控設(shè)備上獲取監(jiān)控視頻。
      [0131 ]需要說明的是,當客戶端和監(jiān)控設(shè)備建立的直連VPN隧道出現(xiàn)故障時,由于客戶端 與管理服務(wù)器、監(jiān)控設(shè)備與管理服務(wù)器都建立有VPN隧道,客戶端會使用它和管理服務(wù)器建 立的VPN隧道來訪問管理服務(wù)器,通過管理服務(wù)器的轉(zhuǎn)發(fā)獲取監(jiān)控設(shè)備的監(jiān)控視頻。
      [0132]以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其進行限制,在不背離本發(fā)明精 神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變 形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。
      【主權(quán)項】
      1. 一種建立直連VPN隧道的裝置,應(yīng)用于視頻監(jiān)控系統(tǒng)中的管理服務(wù)器,所述視頻監(jiān)控 系統(tǒng)包括位于不同私網(wǎng)內(nèi)的客戶端和監(jiān)控設(shè)備,以及位于公網(wǎng)的管理服務(wù)器,其特征在于, 所述建立直連VPN隧道的裝置,包括: VPN中繼服務(wù)模塊,用于與客戶端和監(jiān)控設(shè)備分別建立VPN隧道; NAT打洞服務(wù)模塊,用于獲取客戶端的公網(wǎng)映射IP地址、端口號,以及監(jiān)控設(shè)備的公網(wǎng) 映射IP地址、端口號,將客戶端的公網(wǎng)映射IP地址和端口號發(fā)送給監(jiān)控設(shè)備,將監(jiān)控設(shè)備的 公網(wǎng)映射IP地址和端口號發(fā)送給客戶端,以使客戶端和監(jiān)控設(shè)備利用各自收到的IP地址和 端口號信息進行打洞穿越NAT設(shè)備,建立并保持客戶端和監(jiān)控設(shè)備之間的UDP連接; 配置模塊,用于分配監(jiān)控設(shè)備和客戶端分別為VPN隧道服務(wù)器角色和VPN隧道客戶端角 色,下發(fā)配置信息給客戶端和監(jiān)控設(shè)備,使得客戶端和監(jiān)控設(shè)備通過UDP連接建立直連VPN 隧道。2. 根據(jù)權(quán)利要求1所述的建立直連VPN隧道的裝置,其特征在于,所述配置模塊分配監(jiān) 控設(shè)備和客戶端分別為VPN隧道服務(wù)器角色和VPN隧道客戶端角色,下發(fā)配置信息給客戶端 和監(jiān)控設(shè)備,使得客戶端和監(jiān)控設(shè)備通過UDP連接建立直連VPN隧道時,執(zhí)行如下操作: 分配監(jiān)控設(shè)備為VPN隧道服務(wù)器,下發(fā)VPN隧道服務(wù)器使用的虛擬網(wǎng)卡地址和VPN隧道 客戶端使用的虛擬網(wǎng)卡地址給監(jiān)控設(shè)備,下發(fā)進行鑒權(quán)的用戶名和密碼給監(jiān)控設(shè)備,以便 監(jiān)控設(shè)備完成VPN隧道服務(wù)器的配置,然后在監(jiān)控設(shè)備的私網(wǎng)IP地址及私網(wǎng)端口號上啟動 偵聽進程,偵聽VPN隧道客戶端的VPN隧道連接請求,在偵聽到VPN隧道連接請求后進行用戶 鑒權(quán)和響應(yīng),在監(jiān)控設(shè)備上生成PPP虛擬網(wǎng)卡接口,并將分配給VPN隧道客戶端的虛擬網(wǎng)卡 地址下發(fā)給客戶端; 分配客戶端為VPN隧道客戶端,通知客戶端VPN隧道服務(wù)器的IP地址和端口號為監(jiān)控設(shè) 備的公網(wǎng)映射IP地址和端口號,并下發(fā)進行鑒權(quán)的用戶名和密碼給客戶端,以便客戶端向 監(jiān)控設(shè)備發(fā)送建立VPN隧道連接請求,接收監(jiān)控設(shè)備下發(fā)的VPN隧道客戶端使用的虛擬網(wǎng)卡 地址,在客戶端上生成PPP虛擬網(wǎng)卡接口。3. 根據(jù)權(quán)利要求1所述的建立直連VPN隧道的裝置,其特征在于,所述配置模塊還用于: 通知客戶端和監(jiān)控設(shè)備分別生成以對方的虛擬網(wǎng)卡地址為目的地址的主機路由。4. 根據(jù)權(quán)利要求3所述的建立直連VPN隧道的裝置,其特征在于,所述客戶端的主機路 由的目的IP地址為分配給VPN隧道服務(wù)器的虛擬網(wǎng)卡地址,出接口為客戶端上的PPP虛擬網(wǎng) 卡接口,所述監(jiān)控設(shè)備的主機路由的目的IP地址為分配給VPN隧道客戶端的虛擬網(wǎng)卡地址, 出接口為監(jiān)控設(shè)備上的PPP虛擬網(wǎng)卡接口。5. -種建立直連VPN隧道的裝置,應(yīng)用于視頻監(jiān)控系統(tǒng)中的客戶端,所述視頻監(jiān)控系統(tǒng) 包括位于不同私網(wǎng)內(nèi)的客戶端和監(jiān)控設(shè)備,以及位于公網(wǎng)的管理服務(wù)器,其特征在于,所述 建立直連VPN隧道的裝置,包括: 客戶端中繼VPN模塊,用于向管理服務(wù)器發(fā)送建立VPN隧道請求消息,與管理服務(wù)器建 立VPN隧道; 客戶端打洞模塊,用于接收管理服務(wù)器下發(fā)的監(jiān)控設(shè)備的公網(wǎng)映射IP地址和端口號, 與監(jiān)控設(shè)備間通過打洞穿越NAT設(shè)備,建立與監(jiān)控設(shè)備之間的UDP連接; 客戶端直連VPN模塊,用于接收管理服務(wù)器下發(fā)的配置信息,與監(jiān)控設(shè)備通過UDP連接 建立直連的VPN隧道。6. 根據(jù)權(quán)利要求5所述的建立直連VPN隧道的裝置,其特征在于,所述客戶端直連VPN模 塊在接收管理服務(wù)器下發(fā)的配置信息,與監(jiān)控設(shè)備通過UDP連接建立直連的VPN隧道時,執(zhí) 行如下操作: 根據(jù)管理服務(wù)器的分配設(shè)置自身為VPN隧道客戶端,接收管理服務(wù)器下發(fā)的VPN隧道服 務(wù)器的IP地址和端口號為監(jiān)控設(shè)備的公網(wǎng)映射IP地址和端口號,以及進行鑒權(quán)的用戶名和 密碼,向監(jiān)控設(shè)備發(fā)送建立VPN隧道連接請求; 接收監(jiān)控設(shè)備下發(fā)的VPN隧道客戶端使用的虛擬網(wǎng)卡地址,生成PPP虛擬網(wǎng)卡接口。7. 根據(jù)權(quán)利要求5所述的建立直連VPN隧道的裝置,其特征在于,所述客戶端直連VPN模 塊還用于: 接收管理服務(wù)器的通知,生成以監(jiān)控設(shè)備的虛擬網(wǎng)卡地址為目的地址的主機路由,所 述主機路由的目的IP地址為分配給VPN隧道服務(wù)器的虛擬網(wǎng)卡地址,出接口為自身的PPP虛 擬網(wǎng)卡接口。8. -種建立直連VPN隧道的裝置,應(yīng)用于視頻監(jiān)控系統(tǒng)中的監(jiān)控設(shè)備,所述視頻監(jiān)控系 統(tǒng)包括位于不同私網(wǎng)內(nèi)的客戶端和監(jiān)控設(shè)備,以及位于公網(wǎng)的管理服務(wù)器,其特征在于,所 述建立直連VPN隧道的裝置,包括: 監(jiān)控設(shè)備中繼VPN模塊,用于向管理服務(wù)器發(fā)送建立VPN隧道請求消息,與管理服務(wù)器 建立VPN隧道; 監(jiān)控設(shè)備打洞模塊,用于接收管理服務(wù)器下發(fā)的客戶端的公網(wǎng)映射IP地址和端口號, 與客戶端間通過打洞穿越NAT設(shè)備,建立與客戶端之間的UDP連接; 監(jiān)控設(shè)備直連VPN模塊,用于接收管理服務(wù)器下發(fā)的配置信息,與客戶端通過UDP連接 建立直連的VPN隧道。9. 根據(jù)權(quán)利要求8所述的建立直連VPN隧道的裝置,其特征在于,所述監(jiān)控設(shè)備直連VPN 模塊在接收管理服務(wù)器下發(fā)的配置信息,與客戶端通過UDP連接建立直連的VPN隧道時,執(zhí) 行如下操作: 根據(jù)管理服務(wù)器的分配設(shè)置自身為VPN隧道服務(wù)器,接收管理服務(wù)器下發(fā)的VPN隧道服 務(wù)器使用的虛擬網(wǎng)卡地址和VPN隧道客戶端使用的虛擬網(wǎng)卡地址,以及進行鑒權(quán)的用戶名 和密碼,在自身的私網(wǎng)IP地址及私網(wǎng)端口號上啟動偵聽進程,偵聽VPN隧道客戶端的VPN隧 道連接請求,在偵聽到VPN隧道連接請求后進行用戶鑒權(quán)和響應(yīng),在自身上生成PPP虛擬網(wǎng) 卡接口,并將分配給VPN隧道客戶端的虛擬網(wǎng)卡地址下發(fā)給客戶端。10. 根據(jù)權(quán)利要求8所述的建立直連VPN隧道的裝置,其特征在于,所述監(jiān)控設(shè)備直連 VPN模塊還用于: 接收管理服務(wù)器的通知,生成以客戶端的虛擬網(wǎng)卡地址為目的地址的主機路由,所述 主機路由的目的IP地址為分配給VPN隧道客戶端的虛擬網(wǎng)卡地址,出接口為自身的PPP虛擬 網(wǎng)卡接口。
      【文檔編號】H04L12/46GK105933198SQ201610251272
      【公開日】2016年9月7日
      【申請日】2016年4月21日
      【發(fā)明人】周迪, 趙暉
      【申請人】浙江宇視科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1