欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

撥號隧道代理裝置、利用撥號隧道穿越nat的方法

文檔序號:7824115閱讀:265來源:國知局
撥號隧道代理裝置、利用撥號隧道穿越nat的方法
【專利摘要】本申請公開了無公網IP的撥號隧道代理裝置,包括監(jiān)聽模塊,用于監(jiān)聽所連接的客戶端的地址信息以及當客戶端發(fā)送的報文的目的IP地址在監(jiān)控系統的IP地址段內時,將報文傳給報文轉發(fā)模塊;隧道建立模塊,用于利用其中一個客戶端的IP地址建立應用隧道,撥號隧道服務器的地址信息為預先配置;并接收撥號隧道服務器所分配的虛擬IP地址;報文轉發(fā)模塊,用于將報文中的客戶端IP地址轉換成虛擬IP地址,通過應用隧道將報文轉發(fā)至撥號隧道服務器;以及將從撥號隧道服務器返回的報文的虛擬IP地址轉換成客戶端IP地址。本申請還公開了利用撥號隧道穿越NAT的方法。本申請能夠減輕撥號隧道服務器的壓力,提升用戶體驗。
【專利說明】撥號隧道代理裝置、利用撥號隧道穿越NAT的方法

【技術領域】
[0001]本申請涉及撥號隧道技術,尤其涉及無公網IP的撥號隧道代理裝置和利用撥號隧道穿越NAT的方法。

【背景技術】
[0002]隨著基于IP網絡的視頻監(jiān)控技術和移動互聯網技術的不斷發(fā)展,遠程視頻監(jiān)控已成為新的行業(yè)熱點,跨廣域網連接的監(jiān)控的需求越發(fā)強烈。出于保護內部網絡安全的考慮以及節(jié)省公網IP數量的目的,運營商都會在私網的出口位置部署NAT網關設備,遠程視頻監(jiān)控不可避免地要遇到穿越運營商公網NAT的問題。
[0003]目前,針對視頻監(jiān)控系統穿越NAT設備、防火墻和安全網閘,有一種撥號應用隧道解決方案,撥號應用隧道方案是一項視頻監(jiān)控系統穿越公私網的方案,它以應用層通道技術為基礎,結合監(jiān)控雙網卡方案,讓監(jiān)控系統輕松的穿越各種網閘、防火墻和NAT設備,讓復雜的監(jiān)控網絡變得簡單,同時提高了用戶的網絡安全,節(jié)省用戶預算。撥號應用隧道方案通過在客戶端與監(jiān)控系統中的監(jiān)控設備之間、上下級域監(jiān)控設備之間建立一條應用層通道,后續(xù)通道兩端的設備之間通訊時都走該通道進行轉發(fā),不需要用戶進行引流操作,不需要用戶增加額外的公網地址,極大的減少網閘廠家的二次開發(fā)工作量。
[0004]但是在撥號應用隧道方案使用時,每一個客戶端想與撥號隧道服務器建立連接,都必須有一個獨立的撥號,這樣由于過多的連接數會照成撥號隧道服務器的壓力太大,另外用戶在訪問監(jiān)控設備前必須先手動進行撥號建立一個連接,用戶體驗不佳。


【發(fā)明內容】

[0005]本申請?zhí)峁┮环N無公網IP的撥號隧道代理裝置和利用撥號隧道穿越NAT的方法,能夠減輕撥號隧道服務器的壓力,提升用戶體驗。
[0006]根據本申請實施例的第一方面,提供一種無公網IP的撥號隧道代理裝置,用于通過與撥號隧道服務器建立應用隧道,實現客戶端與監(jiān)控系統之間的通信,所述的撥號隧道代理裝置無公網IP地址,其包括:
[0007]監(jiān)聽模塊,用于監(jiān)聽所連接的客戶端的地址信息以及客戶端發(fā)送的報文;所述客戶端的地址信息包括IP地址;當所述客戶端發(fā)送的報文的目的IP地址在監(jiān)控系統的IP地址段內時,則將所述報文傳給報文轉發(fā)模塊;
[0008]隧道建立模塊,用于利用其中一個所述客戶端的IP地址與所述撥號隧道服務器的IP地址建立應用隧道,所述撥號隧道服務器的地址信息預先配置于所述無公網IP地址的撥號隧道代理裝置中;并接收所述撥號隧道服務器所分配的虛擬IP地址;
[0009]報文轉發(fā)模塊,用于將所述報文中的客戶端IP地址轉換成所述虛擬IP地址,通過所述應用隧道將所述報文轉發(fā)至所述撥號隧道服務器;以及將從所述撥號隧道服務器返回的報文的所述虛擬IP地址轉換成所述客戶端IP地址后,將所述報文發(fā)送至所述客戶端。
[0010]本申請還提供一種利用撥號隧道穿越NAT的方法,用于通過與撥號隧道服務器建立應用隧道,實現客戶端與監(jiān)控服務器之間的通信,包括步驟:
[0011]監(jiān)聽所連接的客戶端的地址信息;所述客戶端的地址信息包括IP地址;
[0012]利用其中一個所述客戶端的地址信息與所述撥號隧道服務器建立應用隧道,所述撥號隧道服務器的地址為預先配置;并接收所述撥號隧道服務器所分配的虛擬IP地址;
[0013]如果所述客戶端發(fā)送的報文的目的地址在監(jiān)控系統的地址段內,將所述報文中的客戶端IP地址轉換成所述虛擬IP地址,通過所述應用隧道將所述報文轉發(fā)至所述撥號隧道服務器;以及將從所述撥號隧道服務器返回的報文的所述虛擬IP地址轉換成所述客戶端IP地址后,將所述報文發(fā)送至所述客戶端。
[0014]本申請通過無公網IP的撥號隧道代理裝置與撥號隧道服務器建立一條應用隧道,通過該應用隧道來轉發(fā)客戶端與監(jiān)控系統之間交互的報文,無需像現有技術每個客戶端與撥號隧道服務器建立一個應用通道,因此大大減輕了撥號隧道服務器的壓力,另外,由于應用隧道的建立過程由無公網IP的撥號隧道代理裝置自動完成,無需用戶撥號,因此提升了用戶的體驗。同時,由于無公網IP的撥號隧道代理裝置無需具有公網IP地址,當無公網IP的撥號隧道代理裝置需要與撥號隧道服務器建立應用隧道時,利用所獲取的其中一個客戶端的地址信息與撥號隧道服務器發(fā)起連接請求。由于目前公網IP資源的短缺,申請一個公網IP地址需要花費不少資金,使用該無公網IP的撥號隧道代理裝置在組網中大大減少了公網IP的使用,節(jié)約了公網IP的資源,降低了設備成本。

【專利附圖】

【附圖說明】
[0015]圖1為本申請實施例中一個應用場景中組網圖;
[0016]圖2為本申請利用撥號隧道穿越NAT的方法的流程圖;
[0017]圖3a為本申請實施例中預先撥號建立應用隧道的信令圖;
[0018]圖3b為本申請實施例中動態(tài)撥號建立應用隧道的信令圖;
[0019]圖4a為本申請實施例中隧道表項的結構圖;
[0020]圖4b為本申請實施例中更新建立隧道的客戶端地址的流程圖;
[0021]圖5a為本申請實施例中客戶端地址信息轉換的示意圖;
[0022]圖5b為本申請實施例中構建轉發(fā)報文的消息格式示意圖;
[0023]圖6為本申請實施例中無公網IP的撥號隧道代理裝置的硬件架構圖;
[0024]圖7為本申請實施例中無公網IP的撥號隧道代理裝置的內部結構邏輯框圖。

【具體實施方式】
[0025]這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。
[0026]在本申請使用的術語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權利要求書中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。
[0027]參見圖1,為使用本申請?zhí)峁┑姆桨附盟淼赖膽脠鼍笆疽鈭D。各個客戶端與監(jiān)控系統中的各個監(jiān)控設備位于不同的私網中,分別通過兩個私網的網關接入廣域網。在本申請中,每個客戶端均與無公網IP的撥號隧道代理裝置連接,通過無公網IP的撥號隧道代理裝置與監(jiān)控系統所在網絡中的撥號隧道服務器建立應用隧道,實現客戶端與監(jiān)控系統之間的通信。撥號隧道客戶端可以是所有需要使用撥號隧道方案接入的主體,其可能包括:監(jiān)控前端、監(jiān)控客戶、監(jiān)控服務器等。撥號隧道服務器可以是指允許撥號隧道客戶端接入并進行不同應用層隧道間報文轉發(fā)的設備,其可能包括:路由器設備、Linux服務器。無公網IP的撥號隧道代理裝置可以是同時兼有二層/三層報文轉發(fā)功能的設備。
[0028]圖2對本申請通過無公網IP的撥號隧道代理裝置實現NAT穿越的方法流程圖。以下以圖2中的流程應用于圖1中的應用場景為例,對本申請通過撥號隧道穿越NAT的方法進行詳細闡述。
[0029]S201,無公網IP的撥號隧道代理裝置監(jiān)聽所連接的一個或多個客戶端的地址信息;并將其中一個所連接的客戶端的地址信息作為建立應用隧道時無公網IP的撥號隧道代理裝置所使用的地址信息;
[0030]無公網IP的撥號隧道代理裝置與多個客戶端連接,監(jiān)聽所連接的各個客戶端的地址信息。在一個例子中,可以通過偵測客戶端的DHCP(Dynamic Host Configurat1nProtocol,動態(tài)主機配置協議)交互過程來獲取客戶端的地址信息,所獲取的地址信息至少包括客戶端的IP地址和網關的IP地址。在優(yōu)選方案中,可以獲取每個客戶端所有通過DHCP獲得的動態(tài)IP地址和MAC地址和并記錄。所獲取的地址信息在可選方案和優(yōu)選方案中的使用方式可參見下文中相應的實施例。
[0031]S202,通過建立應用隧道時所使用的客戶端的地址信息向預先配置的撥號隧道服務器地址建立應用隧道;并接收撥號隧道服務器所分配的虛擬IP地址。
[0032]撥號隧道服務器的地址預先配置于無公網IP的撥號隧道代理裝置上,一般填寫撥號隧道服務器所在私網的路由器上的公網IP地址。
[0033]本申請的無公網IP的撥號隧道代理裝置無需具有公網IP地址,當無公網IP的撥號隧道代理裝置需要與撥號隧道服務器建立應用隧道時,利用所獲取的其中一個客戶端的地址信息與撥號隧道服務器發(fā)起連接請求。由于目前公網IP資源的短缺,申請一個公網IP地址需要花費不少資金,使用該無公網IP的撥號隧道代理裝置在組網中大大減少了公網IP的使用,節(jié)約了公網IP的資源,降低了設備成本。利用其中一個客戶端的地址信息建立撥號隧道的時刻在本申請中提供多種選擇,以預先撥號和動態(tài)撥號為例,可以是在獲取到首個客戶端的地址信息時觸發(fā)建立撥號隧道的流程,也可以是在收到首個客戶端發(fā)給監(jiān)控系統的報文時觸發(fā)建立撥號隧道的流程,當然不局限于此兩種觸發(fā)方式。預先撥號和動態(tài)撥號觸發(fā)撥號隧道的流程可詳見下文圖3a和圖3b的相關實施例。
[0034]撥號隧道服務器在收到無公網IP的撥號隧道代理裝置的連接請求后,首先對其進行接入身份驗證,作為一個例子,無公網IP的撥號隧道代理裝置可以默認帶有用戶名及密碼,在向撥號隧道服務器發(fā)起連接時會帶上用戶名及密碼,撥號隧道服務器對用戶名密碼進行認證,認證通過后再與無公網IP的撥號隧道代理裝置建立連接。與現有技術的撥號隧道技術相類似,建立應用隧道后,撥號隧道服務器會從無人使用的虛擬地址池中選擇一個虛擬地址分配給無公網IP的撥號隧道代理裝置,并將所分配的虛擬地址發(fā)給無公網IP的撥號隧道代理裝置。以便后續(xù)無公網IP的撥號隧道代理裝置和撥號隧道服務器之間使用虛擬IP地址進行報文交互,交互報文在應用隧道中轉發(fā),不會受到中間網絡防火墻、NAT設備、網閘的干擾,實現對這些網絡的穿越。
[0035]S203,當無公網IP的撥號隧道代理裝置需要轉發(fā)報文給撥號隧道服務器時,即客戶端發(fā)送的報文的目的地址在監(jiān)控系統的地址段內時,將報文中的客戶端IP地址轉換成無公網IP的撥號隧道代理裝置的虛擬IP地址,根據網關IP地址,通過應用隧道將報文轉發(fā)至所述撥號隧道服務器;
[0036]無公網IP的撥號隧道代理裝置中可以記錄有監(jiān)控系統的地址段。根據不同的建立隧道的方式(例如預先撥號、動態(tài)撥號),記錄監(jiān)控系統的地址段的時刻可以有所不同,可以參考下文圖3a和圖3b相關實施例了解詳細過程。
[0037]無公網IP的撥號隧道代理裝置收到的客戶端的報文中攜帶有客戶端的IP地址和需要訪問的監(jiān)控系統中的某個設備的IP地址,在一個例子中,將報文中的客戶端IP地址轉換成無公網IP的撥號隧道代理裝置的虛擬IP地址并封裝進應用隧道的過程可以是:撥號代理裝置監(jiān)聽到客戶端發(fā)往監(jiān)控系統中的某個設備的報文,首先將其報文頭中的源地址轉換為無公網IP的撥號隧道代理裝置的虛擬地址,封裝成IP頭部是虛擬源地址(無公網IP的撥號隧道代理裝置的虛擬地址)和虛擬目的地址(客戶端需要訪問的監(jiān)控系統地址段的某個IP地址)的報文。為了此報文能夠在廣域網中進行三層轉發(fā),報文外層需要再封裝一個真實地址的IP頭和隧道標識頭部。這個真實地址的IP頭中真實的源IP地址可以是建立應用隧道時所使用的客戶端的IP地址,真實的目的地址可以是撥號隧道服務器所映射的公網的IP地址。這個報文通過路由轉發(fā)給撥號隧道服務器后,撥號隧道服務器根據隧道標識將報文外層封裝的真實地址IP頭部和隧道標識頭部剝離,再根據其目的虛擬地址IP頭將報文轉發(fā)給監(jiān)控系統內的某個監(jiān)控設備,以便進行監(jiān)控業(yè)務。
[0038]建立應用隧道時S204,將從撥號隧道服務器返回的報文中無公網IP的撥號隧道代理裝置的虛擬IP地址轉換成所述客戶端IP地址后,將所述報文發(fā)送至所述客戶端。
[0039]從撥號隧道服務器發(fā)給無公網IP的撥號隧道代理裝置的報文封裝和處理方式和步驟S203類似。此時報文中內層封裝的虛擬源地址為撥號監(jiān)控系統內某設備的IP地址,而虛擬目的地址為無公網IP的撥號隧道代理裝置的虛擬地址。無公網IP的撥號隧道代理裝置收到經過兩次封裝消息頭后的報文后,將外層封裝的IP頭部和隧道標識頭部剝離,再將虛擬目的地址轉換為客戶端的真實IP地址,轉發(fā)給該客戶端。
[0040]圖3a和圖3b是兩種不同的建立應用隧道的時機的應用實例的信令圖。
[0041]圖3a描述的是預先撥號的應用實例中應用隧道的建立流程。
[0042]在該應用實例中,無公網IP的撥號隧道代理裝置在偵測到首個客戶端的IP地址時就向撥號隧道服務器發(fā)起連接請求。該實施例中建立應用隧道時所使用的客戶端的地址信息即為首個被偵測到動態(tài)IP地址的客戶端的地址信息。監(jiān)控系統的地址段可以是在應用隧道建立后下發(fā)給無公網IP的撥號隧道代理裝置進行記錄。監(jiān)控系統地址段的下發(fā)步驟和將分配給無公網IP的撥號隧道代理裝置的虛擬IP地址下發(fā)的步驟可以是同一步驟,也可以是不同步驟。
[0043]圖3b描述的是動態(tài)撥號的應用實例中應用隧道的建立流程。
[0044]在該實施例中,無公網IP的撥號隧道代理裝置是在偵測到需要轉發(fā)的報文時也就是當某個客戶端發(fā)起指向監(jiān)控系統地址的會話時,向撥號隧道服務器發(fā)起連接請求。在該實施例中,建立應用隧道時所使用的客戶端的地址信息即為首個向監(jiān)控系統發(fā)送報文的客戶端的地址信息。由于需要判斷客戶端所發(fā)送的報文的地址是否是指向監(jiān)控系統,因此,在該實施例中需要將監(jiān)控系統的地址段預先配置在無公網IP的撥號隧道代理裝置中。
[0045]優(yōu)選的,無公網IP的撥號隧道代理裝置監(jiān)聽所連接的客戶端的所有報文,根據五元組判斷是否為指向監(jiān)控系統的報文。五元組是指源IP地址,源端口,目的IP地址,目的端口,傳輸層協議號這五個量組成的一個集合。而對于客戶端訪問其他非監(jiān)控系統地址段的地址時,針對指向監(jiān)控系統的客戶端會話通過無公網IP的撥號隧道代理裝置會將會話中的源地址轉換為無公網IP的撥號隧道代理裝置的虛擬地址,然后封裝進應用隧道進行三層轉發(fā),而對于客戶端訪問其他非監(jiān)控系統地址段的地址時,無公網IP的撥號隧道代理裝置利用客戶端的mac地址按照二層(數據連接層)報文轉發(fā)方式將報文轉發(fā)出去,具體轉發(fā)過程可以參照現有技術中所揭示的二層轉發(fā)的流程執(zhí)行,在此不再贅述。
[0046]優(yōu)選的,如果無公網IP的撥號隧道代理裝置監(jiān)聽到不止一個客戶端的報文是指向監(jiān)控系統時,由于無公網IP的撥號隧道代理裝置與隧道代理服務器只建立一條應用層隧道,因此無公網IP的撥號隧道代理裝置將每個需要轉發(fā)的報文中的客戶端的IP地址及端口均進行轉換,將客戶端的IP地址轉換為無公網IP的撥號隧道代理裝置的虛擬IP地址,將客戶端的端口轉換為無公網IP的撥號隧道代理裝置上一個未使用的端口作為該客戶端端口的映射端口,并記錄轉換表項。而后無公網IP的撥號隧道代理裝置在收到撥號隧道服務器返回來的報文時,再根據報文中的端口號和轉換表項判斷該將報文轉發(fā)給哪個客戶端,進而將目的虛擬IP地址轉換為該客戶端的IP地址,將報文轉給該客戶端。
[0047]作為圖2中S201的一個優(yōu)選方案,無公網IP的撥號隧道代理裝置記錄每個所連接的客戶端的所有通過DHCP所獲得的動態(tài)IP地址。當無公網IP的撥號隧道代理裝置通過步驟S201所獲得的MAC地址監(jiān)聽到用于建立應用隧道的客戶端的地址信息更新后,無公網IP的撥號隧道代理裝置將其中一個客戶端當前正在使用的地址信息和應用隧道的標識構建隧道更新消息,并通知撥號隧道服務器將之前記錄的用于建立應用隧道的客戶端的地址信息更新為當前正在使用的地址信息,具體過程參見圖4b。
[0048]在本實施例中,撥號隧道服務器和無公網IP的撥號隧道代理裝置記錄的隧道表項結構如圖4a所示。與撥號隧道服務器建立應用隧道的可以是多個私網中的多個無公網IP的撥號隧道代理裝置,因此隧道ID用來記錄各個無公網IP的撥號隧道代理裝置所建立的應用隧道的標識。撥號隧道服務器的隧道表項中的“對端真實IP地址”和“真實端口”與無公網IP的撥號隧道代理裝置的隧道表項中的“真實IP地址”和“真實端口 ”相一致,記錄用來建立應用隧道的客戶端的IP地址和端口號。撥號隧道服務器的隧道表項中的“對端虛擬IP地址”和“虛擬端口”和無公網IP的撥號隧道代理裝置的隧道表項中的“虛擬IP地址”和“虛擬端口”相一致,記錄無公網IP的撥號隧道代理裝置的虛擬IP地址以及發(fā)送某條客戶端報文時所使用的無公網IP的撥號隧道代理裝置上的虛擬端口。
[0049]如圖4b,S401,當用來撥號的客戶端由于重啟或重新聯網等原因導致動態(tài)IP地址發(fā)生變化時,客戶端會向DHCP服務器發(fā)送廣播報文,無公網IP的撥號隧道代理裝置監(jiān)聽到報文;
[0050]S402,根據報文中的MAC地址查找所存儲的用來撥號建立隧道的客戶端IP地址;
[0051]S403,根據所記錄的用來撥號建立隧道的客戶IP地址查找本身的隧道表項,找出隧道ID。
[0052]S404,無公網IP的撥號隧道代理裝置更新隧道表項,并封裝一個包含隧道ID和一個新的客戶端的IP地址和端口的私有信令報文作為隧道更新消息,通過應用隧道傳給服務器。新的客戶端的IP地址可以是先前用于建立撥號隧道的客戶端更新后的動態(tài)IP地址,也可以是其他客戶端的動態(tài)IP地址。
[0053]撥號隧道服務器根據這個私有信令報文中的隧道ID將對應表項中的對端真實IP地址和真實端口替換成新的IP地址和端口。
[0054]通過本優(yōu)選方案,可以實現在客戶端的撥號IP地址更新后,撥號隧道服務器無需重新撥號,通過上述更新過程實現無縫切換,原有的隧道業(yè)務不會受到影響。
[0055]以下為本申請的通過無公網IP的撥號隧道代理裝置與客戶端及撥號隧道服務器交互的用戶案例,本用戶案例中隧道創(chuàng)建流程為預先撥號。
[0056]監(jiān)控系統位于總部網絡,監(jiān)控系統地址段為192.168.1.1/24,網關為192.168.1.1,撥號隧道服務器的經過路由器映射后的公網地址為15.0.0.2。192.168.1.129/25子網地址無人使用,因此作為撥號隧道服務器為無公網IP的撥號隧道代理裝置分配虛擬IP地址的地址池。
[0057]預先在無公網IP的撥號隧道代理裝置中配置好撥號隧道代理服務器的地址15.0.0.2o
[0058]無公網IP的撥號隧道代理裝置偵測客戶端的DHCP交互過程,獲取客戶端的IP地址和MAC地址,客戶端所獲得的IP地址為10.0.0.2,和網關的IP地址(10.0.0.1),記錄所連接的各個客戶端所有通過DHCP獲得的動態(tài)IP。在本例中,可以通過監(jiān)聽客戶端的DHCPREQUEST報文來獲取客戶端的地址信息。客戶端在該報文中的“opt1n”字段的“Request IP Address”選項中會填入DHCP服務器分配給它的IP地址?!皊erveridentifier”選項中會填入DHCP服務器(即網關)的IP地址。
[0059]無公網IP的撥號隧道代理裝置以客戶端的動態(tài)IP(10.0.0.2),向撥號隧道服務器的真實地址(15.0.0.2)發(fā)起連接。
[0060]撥號隧道服務器進行接入身份認證后,建立隧道,并給無公網IP的撥號隧道代理裝置分配虛擬IP (如192.168.1.129)。
[0061]撥號隧道服務器將監(jiān)控系統的地址段(192.168.1.1/24)下發(fā)給盒子。
[0062]撥號隧道服務器會偵聽客戶端發(fā)起的會話報文。當客戶端訪問其它地址時,盒子直接利用客戶端MAC地址通過鏈路層透傳;如圖5a,當客戶端發(fā)起的會話指向監(jiān)控系統的地址,即客戶端的源地址為自身的IP地址,目的地址為監(jiān)控系統地址段內的一個IP地址(例如IP地址為192.168.1.128的監(jiān)控設備),則將該會話中的客戶端IP地址轉換成無公網IP的撥號隧道代理裝置的虛擬IP地址,如果當前存在不止一個指向監(jiān)控系統的會話,則還需要將客戶端的端口轉換為無公網IP的撥號隧道代理裝置的一個空閑端口,并記錄當前會話的客戶端的IP地址、端口以及轉換后的虛擬IP地址和端口 ;將轉換地址信息后的報文封裝進隧道。封裝后的消息結構如圖5b所示。
[0063]無公網IP的撥號隧道代理裝置要監(jiān)測所有撥號隧道服務器回來的報文,根據其五元組判斷,不是監(jiān)控業(yè)務的報文直接按二層鏈路層繼續(xù)轉發(fā),對于監(jiān)控業(yè)務報文則先將外層隧道的封裝給剝離,再匹配轉換表項,將目的虛擬IP地址轉換成客戶端真實IP地址后轉給客戶端(如圖5a)。
[0064]無公網IP的撥號隧道代理裝置根據MAC地址監(jiān)聽到原先用來撥號的動態(tài)IP發(fā)生變化時,會先根據MAC地址查找原先所記錄的撥號用的客戶端的IP地址,隨后查找本身的隧道表項,找出隧道ID。如果一各客戶端原IP地址已經失效或已經被其它機器使用了,DHCP服務器則會回應一個DHCPNACK封包給客戶端,要求其從新執(zhí)行Dhcpdiscover??蛻舳税l(fā)出Dhcpdiscover報文廣播報文,且報文中帶著自身的MAC地址,因此在本例中,隧道撥號代理裝置通過監(jiān)聽Dhcpdiscover來判斷客戶端的IP是否發(fā)生變化。
[0065]而撥號代理盒子上記錄有PC機原先的IP地址、MAC地址。所以當盒子收到一個Dhcpdiscover報文時,從報文中的MAC地址便可以看出原先的哪個IP地址發(fā)生了變化。
[0066]將隧道表項中所記錄的客戶端的IP地址更新為新客戶端的地址后,封裝一個包含隧道ID和新IP地址和端口的私有信令報文通過隧道傳給服務器。以便服務器根據報文中的隧道ID將對應表項中的對端真實IP和端口替換成新的IP地址和端口。
[0067]與上述通過無公網IP的撥號隧道代理裝置實現NAT穿越的方法相對應,本申請還提供了無公網IP的撥號隧道代理裝置。
[0068]本申請的無公網IP的撥號隧道代理裝置的實施例可以應用在網絡設備上。無公網IP的撥號隧道代理裝置實施例可以通過軟件實現,也可以通過硬件或者軟硬件結合的方式實現。以軟件實現為例,作為一個邏輯意義上的裝置,是通過其所在設備的處理器將非易失性存儲器中對應的計算機程序指令讀取到內存中運行形成的。從硬件層面而言,如圖6所示,為本申請無公網IP的撥號隧道代理裝置所在設備的一種硬件結構圖,除了圖6所示的處理器、網絡接口、內存以及非易失性存儲器之外,實施例中裝置所在的設備通常還可以包括其他硬件。
[0069]圖7是本申請無公網IP的撥號隧道代理裝置通過軟件實現時內部結構的邏輯框圖。在該實施例中,無公網IP的撥號隧道代理裝置700包括監(jiān)聽模塊701、隧道建立模塊702和報文轉發(fā)模塊703。監(jiān)聽模塊701與多個客戶端連接,可以用于監(jiān)聽所連接的各個客戶端的地址信息以及各個客戶端所發(fā)送的報文,并判斷客戶端所發(fā)送的報文是否是需要監(jiān)控系統處理的報文。隧道建立模塊702可以利用監(jiān)聽模塊701所獲取的客戶端的地址信息與撥號隧道服務器建立應用隧道。在應用隧道建立后,撥號隧道服務器會分配給無公網IP的撥號隧道代理裝置一個虛擬IP地址,隧道建立模塊702在收到這個虛擬IP地址后轉發(fā)給報文轉發(fā)模塊。報文轉發(fā)模塊可以通過虛擬IP地址利用應用隧道將需要發(fā)給監(jiān)控系統處理的報文發(fā)給撥號隧道服務器進行處理,并在收到撥號隧道服務器回復的報文后,將虛擬IP地址轉換為目的客戶端的IP地址后發(fā)給該客戶端。
[0070]以下對無公網IP的撥號隧道代理裝置700的各模塊的功能進行說明。
[0071]監(jiān)聽模塊,用于監(jiān)聽至少一個所連接的客戶端的地址信息以及客戶端發(fā)送的報文;當客戶端發(fā)送的報文的目的地址在監(jiān)控系統的地址段內時,則將所述報文傳給報文轉發(fā)豐吳塊;
[0072]隧道建立模塊,用于通過其中一個客戶端的地址信息向預先配置的撥號隧道服務器地址建立應用隧道;并接收所述撥號隧道服務器所分配的虛擬IP地址;
[0073]報文轉發(fā)模塊,用于將報文中的客戶端IP地址轉換成所述虛擬IP地址,通過所述應用隧道將所述報文轉發(fā)至所述撥號隧道服務器;以及將從所述撥號隧道服務器返回的報文的所述虛擬IP地址轉換成所述客戶端IP地址后,將所述報文發(fā)送至所述客戶端。
[0074]在一個實施例中,建立應用隧道時所使用的客戶端的地址信息為所述監(jiān)聽模塊收到首個地址信息的客戶端的地址信息;隧道建立模塊進一步用于在建立應用隧道時從所述應用隧道服務器接收所述監(jiān)控系統的地址段傳給監(jiān)聽模塊。
[0075]在另一個實施例中所述監(jiān)控系統的地址段為預先配置;建立應用隧道時所使用的客戶端的地址信息為所述監(jiān)聽模塊收到的首個發(fā)送的報文中的目的地址在所述監(jiān)控系統的地址段內的客戶端的地址信息。
[0076]優(yōu)選的,監(jiān)聽模塊進一步用于獲取所連接的每個所述客戶端通過DHCP所獲得的所有地址信息和所述客戶端的MAC地址;監(jiān)聽模塊當根據所述MAC地址監(jiān)聽到用于建立應用隧道的所述客戶端的地址信息更新后,通知所述隧道建立模塊;隧道建立模塊根據所述MAC地址查找到所述用于建立應用隧道的所述客戶端的地址信息所對應的應用隧道的標識;并將其中一個客戶端當前正在使用的地址信息和所述應用隧道的標識構建隧道更新消息,并通知所述撥號隧道服務器將所述用于建立應用隧道的所述客戶端的地址信息更新為所述當前正在使用的地址信息。
[0077]優(yōu)選的,當至少兩個所述客戶端發(fā)送的報文的目的地址在監(jiān)控系統的地址段內時,所述報文轉發(fā)模塊進一步用于將所述報文中的客戶端端口轉換成所述無公網IP的撥號隧道代理裝置上的映射端口,以及將從所述撥號隧道服務器返回的報文的所述映射端口轉換成所述客戶端端口。
[0078]本領域技術人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本申請的其它實施方案。本申請旨在涵蓋本申請的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本申請的一般性原理并包括本申請未公開的本【技術領域】中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本申請的真正范圍和精神由下面的權利要求指出。
[0079]應當理解的是,本申請并不局限于上面已經描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本申請的范圍僅由所附的權利要求來限制。
【權利要求】
1.一種無公網I?的撥號隧道代理裝置,用于通過與撥號隧道服務器建立應用隧道,實現客戶端與監(jiān)控系統之間的通信,其特征在于,所述的撥號隧道代理裝置無公網I?地址,其包括: 監(jiān)聽模塊,用于監(jiān)聽所連接的客戶端的地址信息以及客戶端發(fā)送的報文;所述客戶端的地址信息包括I?地址;當所述客戶端發(fā)送的報文的目的I?地址在監(jiān)控系統的I?地址段內時,則將所述報文傳給報文轉發(fā)模塊; 隧道建立模塊,用于利用其中一個所述客戶端的I?地址與所述撥號隧道服務器的I?地址建立應用隧道,所述撥號隧道服務器的地址信息預先配置于所述無公網I?地址的撥號隧道代理裝置中;并接收所述撥號隧道服務器所分配的虛擬I?地址; 報文轉發(fā)模塊,用于將所述報文中的客戶端I?地址轉換成所述虛擬I?地址,通過所述應用隧道將所述報文轉發(fā)至所述撥號隧道服務器;以及將從所述撥號隧道服務器返回的報文的所述虛擬I?地址轉換成所述客戶端I?地址后,將所述報文發(fā)送至所述客戶端。
2.根據權利要求1所述的裝置,其特征在于,所述監(jiān)聽模塊進一步用于獲取所連接的每個所述客戶端通過0訊:?所獲得的所有地址信息; 所述監(jiān)聽模塊當根據所述嫩地址監(jiān)聽到建立應用隧道時所使用的所述客戶端的地址信息更新后,通知所述隧道建立模塊; 所述隧道建立模塊根據所述傲0地址查找到建立應用隧道時所使用的的所述客戶端的地址信息所對應的應用隧道的標識;并將其中一個客戶端當前正在使用的地址信息和所述應用隧道的標識構建隧道更新消息,并通知所述撥號隧道服務器將建立應用隧道時所使用的所述客戶端的地址信息更新為所述當前正在使用的地址信息。
3.根據權利要求1所述的裝置,其特征在于,當至少兩個所述客戶端發(fā)送的報文的目的地址在監(jiān)控系統的地址段內時,所述報文轉發(fā)模塊進一步用于將所述報文中的客戶端端口轉換成所述無公網I?的撥號隧道代理裝置上的映射端口,以及將從所述撥號隧道服務器返回的報文的所述映射端口轉換成所述客戶端端口。
4.根據權利要求1所述的裝置,其特征在于,其中一個所述客戶端的地址信息為所述監(jiān)聽模塊收到首個地址信息的客戶端的地址信息; 所述隧道建立模塊進一步用于在建立應用隧道時從所述應用隧道服務器接收所述監(jiān)控系統的地址段傳給監(jiān)聽模塊。
5.根據權利要求1所述的裝置,其特征在于,所述監(jiān)控系統的地址段為預先配置; 其中一個所述客戶端的地址信息為所述監(jiān)聽模塊收到的首個發(fā)送的報文中的目的地址在所述監(jiān)控系統的地址段內的客戶端的地址信息。
6.一種利用撥號隧道穿越嫩I的方法,用于通過與撥號隧道服務器建立應用隧道,實現客戶端與監(jiān)控服務器之間的通信,其特征在于,包括步驟: 監(jiān)聽所連接的客戶端的地址信息;所述客戶端的地址信息包括I?地址; 利用其中一個所述客戶端的地址信息與所述撥號隧道服務器建立應用隧道,所述撥號隧道服務器的地址為預先配置;并接收所述撥號隧道服務器所分配的虛擬I?地址; 如果所述客戶端發(fā)送的報文的目的地址在監(jiān)控系統的地址段內,將所述報文中的客戶端I?地址轉換成所述虛擬I?地址,通過所述應用隧道將所述報文轉發(fā)至所述撥號隧道服務器;以及將從所述撥號隧道服務器返回的報文的所述虛擬I?地址轉換成所述客戶端I?地址后,將所述報文發(fā)送至所述客戶端。
7.根據權利要求6所述的方法,其特征在于,監(jiān)聽至少一個所連接的客戶端的地址信息具體包括:監(jiān)聽所述客戶端通過DHCP所獲得的所有地址信息和所述客戶端的MAC地址; 當根據所述MAC地址監(jiān)聽到建立應用隧道時所使用的所述客戶端的地址信息更新后,根據所述MAC地址查找到建立應用隧道時所使用的的所述客戶端的地址信息所對應的應用隧道的標識;并將其中一個客戶端當前正在使用的地址信息和所述應用隧道的標識構建隧道更新消息,并通知所述撥號隧道服務器將建立應用隧道時所使用的所述客戶端的地址信息更新為所述當前正在使用的地址信息。
8.根據權利要求6所述的方法,其特征在于,當至少兩個所述客戶端發(fā)送的報文的目的地址在監(jiān)控系統的地址段內時,所述方法還包括: 將所述報文中的客戶端端口轉換成相應的映射端口,以及將從所述撥號隧道服務器返回的報文的所述映射端口轉換成所述客戶端端口。
9.根據權利要求6所述的方法,其特征在于,所述監(jiān)控系統的地址段為預先配置; 其中一個所述客戶端的地址信息為收到的首個發(fā)送的報文中的目的地址在所述監(jiān)控系統的地址段內的客戶端的地址信息。
10.根據權利要求6所述的方法,其特征在于,其中一個所述客戶端的地址信息為收到的首個地址信息的客戶端的地址信息; 所述方法還進一步包括:在建立應用隧道時從所述應用隧道服務器接收所述監(jiān)控系統的地址段。
【文檔編號】H04L12/46GK104468625SQ201410833313
【公開日】2015年3月25日 申請日期:2014年12月26日 優(yōu)先權日:2014年12月26日
【發(fā)明者】周迪, 徐婷婷 申請人:浙江宇視科技有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
财经| 南丹县| 南岸区| 绥中县| 太湖县| 肥乡县| 敦化市| 丁青县| 正安县| 临沧市| 招远市| 肥乡县| 公主岭市| 禄丰县| 吴江市| 湟源县| 仁怀市| 安福县| 普定县| 河池市| 嫩江县| 荆州市| 辽宁省| 丰镇市| 通道| 凤凰县| 垦利县| 建瓯市| 衡阳市| 麦盖提县| 保山市| 肃宁县| 来安县| 全椒县| 陆丰市| 沅陵县| 云安县| 黎城县| 贵溪市| 丹棱县| 广灵县|