cisco 动态多点***原理
? 動態(tài)多點(diǎn)×××(Dynamic Multipoint ×××)是MGRE、NHRP、IPSec結(jié)合產(chǎn)生的一種技術(shù),簡寫為DM×××。它為具有點(diǎn)多面廣分支機(jī)構(gòu)特點(diǎn)的企業(yè)和公司,提供了一種以INTERNET為基礎(chǔ)的低成本安全互聯(lián)方案。其骨干網(wǎng)采用星形拓?fù)浣Y(jié)構(gòu)(Hub and Spoke)。結(jié)構(gòu)示意圖見圖1,其中HUB為中心,SPOKE為分支。
圖1:動態(tài)多點(diǎn)×××結(jié)構(gòu)示意
一、MGRE、IPSec、NHRP 的概念及相互關(guān)系
? ?GRE是一個在任意一種網(wǎng)絡(luò)層協(xié)議上封裝任意一個其它網(wǎng)絡(luò)層協(xié)議的協(xié)議,DM×××中是將IP包封裝進(jìn)另一個IP包并加上新的IP頭。它有兩種形式:Point-to-point(GRE),Point-to-multipoint(MGRE)。
? ?IPSec是一種安全隧道技術(shù),但不支持組播和廣播的加密。在DM×××中,要用到動態(tài)路由協(xié)議,動態(tài)路由協(xié)議用組播和廣播宣告路由信息,所以不能直接使用IPSec加密。GRE隧道支持組播和廣播,所以DM×××中采用GRE隧道,但是GRE隧道的數(shù)據(jù)是沒有加密的,在因特網(wǎng)上傳送不安全。因?yàn)镚RE隧道的數(shù)據(jù)包是單播的,所以GRE隧道的數(shù)據(jù)包采用IPSec加密,即GRE Over IPSec。GRE隧道的配置已經(jīng)包括了GRE隧道對端的地址,這個地址同時也是IPSec隧道的對端地址,通過將GRE隧道與IPSec綁定,GRE隧道一旦建立,立刻觸發(fā)IPSec加密。
? ?MGRE是將GRE點(diǎn)對點(diǎn)隧道擴(kuò)展成一點(diǎn)與多點(diǎn)建立隧道。一個MGRE接口包括一個IP地址、一個隧道源、一個隧道密鑰,與GRE隧道不同,它沒有隧道目的。因?yàn)镸GRE隧道不定義隧道目的地,所以它依賴NHRP,NHRP告訴MGRE向哪里發(fā)送數(shù)據(jù)包。NHRP協(xié)議的作用是將隧道的IP地址映射到NBMA地址,可以是靜態(tài)映射和動態(tài)映射。
? ?MGRE怎樣使用NHRP呢?當(dāng)轉(zhuǎn)發(fā)一個IP數(shù)據(jù)包時,總是沿著下一跳地址將數(shù)據(jù)包傳給MGRE接口,下一跳地址就是對端的隧道IP地址。MGRE在NHRP表中查找下一跳地址映射的對端NBMA地址。然后MGRE將數(shù)據(jù)包封裝為另一個IP包的凈負(fù)荷,新的IP包目的地址就是對端的NBMA地址。組播包的地址由NHRP配置中指定。MGRE/NHRP路由通道示意如下頁圖2。
圖2:MGRE/NHRP路由通道示意
? ?圖2可以這樣理解,在192.168.0.0/24網(wǎng)絡(luò)有一個IP包需要發(fā)送到192.168.1.0/24 網(wǎng)絡(luò)中, 其源地址為192.168.0.1,目的地址為192.168.1.1。通過查路由表,到192.168.1.0/24,走隧道0,下一跳是隧道對端IP地址10.0.0.2。通過查NHRP表,下一跳10.0.0.2對應(yīng)的目的NBMA地址是172.16.0.2。再對IP包做GRE封裝,加上新IP頭,源地址為172.16.0.1,目的地址為172.16.0.2,然后IP包就能發(fā)向?qū)Χ恕?/p>
二、NHRP 地址映射表的生成過程
? ?NHRP地址映射表生成有三種方法:手動配置靜態(tài)映射、中心(Hub)通過登記請求(Registration Request)學(xué)習(xí)、分支(Spoke)用解析請求(Resolution Request)學(xué)習(xí)。NHRP映射表的初始化。開始時,中心的映射表是空表,分支的映射表有一個靜態(tài)配置的映射項(xiàng),即中心的隧道IP地址與其NBMA地址的映射,例如IP NHRP MAP10.0.0.1、172.17.0.1,還配置有一個組播映射項(xiàng),例如IP NHRP MAPmulticast 172.17.0.1。分支必須向中心登記,中心的NHRP表實(shí)際上由分支在控制,為了讓分支能向中心登記,中心必須宣告自己為下一跳服務(wù)器(Next-Hop-Server,NHS),分支發(fā)送登記請求給中心,其中包括分支的隧道IP地址和NBMA地址,以及保存時長。中心在NHRP表中對應(yīng)生成一個表項(xiàng),表項(xiàng)只在保存時長內(nèi)有效。然后中心向分支回送登記確認(rèn)信息。NHRP登記請求過程示意見圖3。
圖3:NHRP登記請求過程示意
?NHRP登記確認(rèn)過程示意如圖4。
圖4:NHRP登記確認(rèn)過程示意
? ?NHRP注冊功能至少解決了三個問題:
? ?① 由于分支的NBMA地址是通過ISP的DHCP自動獲取的,每次上線時的IP地址可能不同,所以中心通過注冊過程可以自動學(xué)習(xí)該地址;
? ② 中心不必針對所有分支分別配置GRE或IPSec信息,大大簡化中心的配置;所有相關(guān)信息可通過NHRP自動獲取;
③ 當(dāng)DM×××網(wǎng)絡(luò)擴(kuò)展時,無須改動中心和其它分支的配置。新加入的分支將自動注冊到中心,通過動態(tài)路由協(xié)議,所有其它分支可以學(xué)到這條新的路由,新加入的分支也可以學(xué)到到達(dá)其它所有分支的路由信息。
? ?NHRP的作用可以概括為兩點(diǎn),一是地址的映射和解析,二是轉(zhuǎn)發(fā)數(shù)據(jù)。通過靜態(tài)配置、NHRP登記、NHRP解析實(shí)現(xiàn)地址映射,由路由表獲得到目的IP地址的隧道下一跳IP地址,通過解析隧道下一跳IP地址與NBMA地址的映射,獲得隧道下一跳IP地址對應(yīng)的NBMA地址,實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)。
三、分支之間的動態(tài)隧道
? ?在動態(tài)多點(diǎn)×××中,分支與分支之間除了經(jīng)過中心轉(zhuǎn)發(fā)數(shù)據(jù)外,分支還可以向另一分支直接發(fā)送數(shù)據(jù)。分支到中心的隧道一旦建立便持續(xù)存在,但是各分支之間并不配置持續(xù)的隧道。當(dāng)一個分支需要向另一個分支發(fā)送數(shù)據(jù)包時,兩個分支之間通過MGRE端口動態(tài)建立IPSec隧道,進(jìn)行數(shù)據(jù)傳輸。兩個分支間路由和NHRP過程見圖5。
圖5:兩個分支間路由和NHRP過程
? ?為了生成分支到分支的隧道,分支必須學(xué)到目的網(wǎng)絡(luò)路由、下一跳必須是遠(yuǎn)端分支的隧道IP地址、分支必須學(xué)到了下一跳的NBMA地址。
? ?分支采用動態(tài)路由協(xié)議學(xué)習(xí)到目的網(wǎng)絡(luò)的路由。路由協(xié)議只在中心和分支之間用到,為了使分支與分支間能路由,首先分支要向中心宣告自己的私網(wǎng)路由信息,再由中心向各分支宣告,中心對分支宣告的私網(wǎng)路由必須保留下一跳的私網(wǎng)地址,看起來就象是分支自己宣告的一樣。分支用NHRP解析請求學(xué)習(xí)到下一跳分支的NBMA地址。分支的NHRP解析與NHRP登記過程是有差別的,登記是分支在中心上登記自己,解析是分支通過中心尋址其他分支。分支首先向中心發(fā)送解析請求,請求下一跳隧道IP地址映射的NBMA地址,中心解析出映射的NBMA地址后回復(fù)給請求分支,回復(fù)中還包括解析結(jié)果在中心的有效時長。然后,分支生成一個NHRP表項(xiàng),在沒插入NHRP表之前,IPSec隧道就開始初始化,在隧道建立后,NHRP表項(xiàng)才被插入表中并能使用。一旦對應(yīng)的NHRP表項(xiàng)超時,分支與分支間隧道隨之消失。建立動態(tài)分支隧道的過程圖示見圖6。
圖6:建立動態(tài)分支隧道的過程
四、結(jié)語
? ?分析DM×××的特點(diǎn),在應(yīng)用上它具有如下優(yōu)勢:分支之間可動態(tài)建立隧道傳輸數(shù)據(jù),當(dāng)兩個分支在同一城市,而中心在另一城市時,分支之間直接發(fā)送數(shù)據(jù)可以減小延時,降低對中心路由器資源消耗,并且更經(jīng)濟(jì);增加分支不用改變中心和其他分支的配置,維護(hù)工作量成倍降低;分支節(jié)點(diǎn)可使用動態(tài)IP地址,節(jié)約了公網(wǎng)IP地址資源;動態(tài)隧道的特點(diǎn)使它的網(wǎng)絡(luò)規(guī)??梢院艽?。它的這些優(yōu)勢使它特別適合于分支機(jī)構(gòu)點(diǎn)多面廣的企業(yè)和公司做安全互聯(lián)。
轉(zhuǎn)載于:https://blog.51cto.com/ciscomao/1197272
總結(jié)
以上是生活随笔為你收集整理的cisco 动态多点***原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring MVC 中的基于注解的 C
- 下一篇: 从 RequireJS 到 SeaJS(