DMVPN 三個階段
階段一:Phase 1
1、網絡内所有Spoke節點向HUB節點發起注冊請求
2、HUB節點根據接收到的注冊請求封包,記錄Spoke的tunnel接口位址和公網接口位址(DLCI)的映射關系,并向Spoke發送應答确認。
3、注冊源的Spoke節點收到HUB節點的注冊應答後将HUB節點設定為Active
4、在HUB節點和Spoke節點之間部署動态路由協定
5、在HUB節點和Spoke節點之間部署IPsec,如果是HUB和Spoke之間轉發流量,那麼一次加密一次解密;如果是Spoke和Spoke之間轉發流量,那麼兩次加密和兩次解密。
6、通過部署動态路由協定學習到各自的私網路由,然後通過路由資訊轉發流量。
●HUB使用mGRE,Spoke使用GRE,Spoke到 Spoke 流量必須經過HUB中轉;HUB端的mGRE Tunnel必須是multipoint模式,Spoke端的mGRE Tunnel為P2P
●HUB端可以進行路由彙總(僅限于EIGRP、RIP)
Phase 1中部署OSPF或EIGRP:
●考慮到OSPF網絡類型的選擇,因為OSPF是依靠網絡類型來選擇下一跳;P2P和NBMA一般不考慮,因為P2P不能用于HUB-Spoke模型,NBMA雖然可以運作,但是因為沒添加一個Spoke,需要在HUB端手動完成neighbor的指定,不具備很好的可擴充性,是以網絡類型選擇Boradcast或P2MP;Phase1沒有對下一跳的要求,是以OSPF網絡類型可以是Boradcast(HUB為DR)或者P2MP
●運作EIGRP需要HUB端關閉水準分割,否則Spoke端無法學習到Spoke端路由
階段二:Phase 2
1、網絡中的所有spoke節點向配置HUB節點發起NHRP注冊請求
2、HUB根據收到的注冊請求封包,記錄spoke節點的tunnel接口位址和公網出口IP位址(DLCI)對應關系,并向spoke節點發送應答确認。
3、注冊源的spoke節點收到HUB節點的注冊應答後将HUB設定為Active
4、通過動态路由協定學習到路由,注冊源節點到spoke節點端的路由下一跳是目标端spoke節點的tunnel接口位址;比如spoke1發往spoke2的第一個資料包交給了HUB,同時會觸發spoke1的解析請求封包發往spoke2,但是該解析請求封包必須經過HUB中轉到spoke2
6、spoke2收到解析請求後會對該請求進行解析應答,并且将spoke1資訊添加到自己的NHRP映射表中
7、當spoke1端收到相應的解析應答後,那麼spoke1到spoke2的隧道建立成功,後續流量不用HUB中轉
●Spoke到Spoke初始流量需要經過HUB,後續流量直接在兩個Spoke之間轉發
●HUB和Spoke端的GRE tunnel都必須是Multipoint模式(MGRE)
●Spoke到HUB的隧道會周期更新NHRP注冊資訊,所有spoke會每40分鐘時間發送一個NHRP的注冊資訊去重新整理逾時電腦;Spoke到spoke的動态隧道不會周期更新NHRP解析請求,超過120分鐘後spoke到spoke的動态隧道會被删除
Phase 2中部署OSPF或EIGRP:
●對于網絡類型的選擇,OSPF是依靠網絡類型來選擇下一跳,P2P/P2MP/NBMA一般不考慮,因為P2P不能用于HUB-spoke模型,NBMA雖然可以運作,但是因為每添加一個spoke,需要在HUB端手動完成neighbor的指定,不具備很高可擴充性。P2MP雖然可以運作,但是運作後spoke到spoke的流量必須經過HUB,無法到達預期效果,是以隻能選擇broadcast網絡類型;Phase2的下一跳必須是目标spoke端的tunnel的接口位址,是以OSPF的網絡類型必須是broadcast
●EIGRP需要在HUB節點關閉水準分割,否則spoke端無法學習到spoke端路由;使用64位EIGRP時,spoke發往spoke的路由進過HUB節點時,下一跳不會改變。
階段三:Phase3
1、使用NHRP錯誤訓示消息,從hub節點通告到spoke節點,到達某個目标網絡有一條更優的路徑;首先在hub路由器上配置ip nhrp redirect,以及在spoke路由器上配置ip nhrp shortcut;redirect配置指令讓hub節點發送NHRP錯誤訓示消息,而shortcut配置指令讓spoke接受來自hub的redirect消息并将優化路由裝到路由表裡。
2、hub路由器将彙總路由資訊發到各spoke節點。
3、當Spoke-R1将流量發往Spoke-R2下面的網段時,第一個包将發到Hub-R1(遵循彙總路由),Hub-R1将這個包丢回DMVPN網絡并觸發NHRP機制産生流量訓示消息發給Spoke-R1,Spoke-R1通過請求包裡邊的映射資訊,将含有自身IP位址與tunnel隧道映射資訊的響應消息直接發到Spoke-R2,Spoke-R1由此得到指向目标網絡Spoke-R2有一個更優路徑的下一跳。
3.Spoke-R1收到這個訓示然後将流量直接發往Spoke-R2.
●類似于階段2,第一個資料包需要經過hub路由器以便各spoke能解析到對應的位址,解析過程完成之後,後續的資料包就繞過hub直接發往spoke節點了。
●階段3 中OSPF和EIGRP的配置跟階段1基本一樣,隻是在hub上多了一條ip nhrp redirect,在spoke上多了一條ip nhrp shortcut。
以上總結:
現在的DMVPN技術已實作階層化結構拓撲設計,主要運用于DMVPN技術的超大範圍部署,并且能夠實作不同區域的分支間直接建立隧道,使DMVPN技術實作了階層化部署,不同 DMVPN區域的分支必須經過本區域的中心才能建立連接配接。
▶基于單中心的DMVPN網絡拓撲:
對于單中心的DMVPN網絡架構來說,所有的分支都在一個DMVPN網絡内,在分支上隻需要建立一個永久隧道和一個臨時隧道接口,分支路由器可通過靜态設定與中心通信,配置相對簡單。
▶基于雙中心的DMVPN網絡拓撲:
雙中心的DMVPN網絡架構内有兩個中心,其中以一個中心為主,另一個中心為輔,構成一個區域的DMVPN技術的網絡。在每個分支上建立兩個隧道接口,與一個中心建立永久的IPSec隧道,也同時和另一個中心建立臨時的IPSec隧道;當分支通路中心内部網絡時,可以利用兩個中心實作網絡帶寬的負載均衡,分支通過動态路由協定選擇與中心進行通信;當其中一個中心出現問題的時候,另外一個中心能夠接管所有流量,實作 DMVPN 的高可用性。
DMVPN排錯步驟:
1、如果DMVPN出現故障,先解除IPsec配置(先不調用IPsec看看是否正常)
2、如果去掉IPsec發現運轉正常,那就去檢查IPsec
3、如果去掉IPsec發現問題還在,那麼檢查NHRP是否注冊上HUB
4、如果NHRP注冊正常,那麼檢查路由協定的鄰居狀态
5、如果确認IPsec、GRE、NHR、路由協定都沒有問題,那麼找思科技術支援