1、 為什么要用到GRE over IPSec、IPSec over GRE或SVTI
為什么要使用GRE over IPSec、IPSec over GRE或SVTI,其中最主要的原因是IPSec不支持組播傳輸,無法實現動態路由之間的通告,如果能夠實現分支與總部間的動態路由傳輸,那么之前文章中提到的路由指向問題完全可以通過動態路由解決,前提是VPN能夠傳輸動態路由。
使用GRE over IPSec、IPSec over GRE或SVTI的根本原因在于,能夠使用隧道級VPN技術將IPsec無法分離的明文及密文流量通過隧道級VPN創建虛擬的隧道接口進行分離。
IPsec流量傳輸模型
上圖為標準的IPSec VPN數據傳輸圖,由圖可見,無論是明文流量還是隧道中加密的流量都是通過物理接口進行轉發的,并沒有使用虛擬隧道接口。
gre over ipsec流量傳輸模型
上圖以Gre over IPsec VPN為例,由圖可見,明文流量通過虛擬隧道接口明文傳輸,隧道流量出物理接口時撞擊物理接口的IPSec VPN MAP,通過物理接口IPSec SA加密轉發。
做到了明文密文在端口上做到了分離,可以分別控制明文和密文流量了。
知識擴展:為什么IPSec VPN會不支持動態路由?
網上大部分的說法很籠統,基本上都是說IPSec VPN設計的不完善。并沒有過多的解釋。
下面是我對IPSec VPN設計不完善的多點理解:
1、 首先,IPSec不是一個隧道級的VPN,而是一個Site to Site的VPN,了解過動態路由協議的都知道,動態路由建立鄰居是需要一個直連的互聯地址。而IPSec VPN兩端沒有一個直連的互聯地址,從而無法做到動態路由鄰居的建立。
2、 再者IPSec VPN不支持組播,其原因也是因為IPsec不是一個隧道級的VPN,設計時沒有獨立隧道接口,所以沒有接口生成在能夠在隧道中傳輸的組播報文。
3、最后IPSec VPN不能夠傳輸組播,首先組播是需要無連接協議所支持,而IPSec VPN的數據傳輸是基于IPSec SA建立的連接進行加解密傳輸的。
多方原因導致IPSec VPN無法支持動態路由。
2、 GRE over IPSec 、IPSec over GRE和SVTI的區別
2.1 GRE over IPSec
首先前兩種技術從名字中就能看出,GRE over IPsec是將GRE數據報文封裝在IPSec的封裝中進行傳輸的,如下圖:
gre over ipsec流量傳輸模型
數據報文封裝如下圖:
gre over IPsec 報文封裝格式
由上圖能夠看出GRE over IPSec使用隧道模式時多封裝了一次IP的頭部,增加了20字節的報文載荷,所以使用GRE over IPSec時,IPSec建議使用傳輸模式。
2.2 IPSec over GRE
IPSec over GRE是將IPSec數據報文封裝在GRE的報文進行傳輸的,如果使用動態路由協議,路由更新報文是明文傳輸且不安全的,而且因為IPSec VPN通過GRE虛擬隧道傳輸,所以無論設置隧道模式還是傳輸模式均協商為隧道模式,與GRE造成了重復封裝,減小了數據報文的數據載荷容量,所以現實情況中很少有使用到IPSec over GRE。
流量傳輸如下圖:
IPsec over gre 流量傳輸模型
數據報文封裝如下圖:
IPSec over gre封裝格式
2.3 SVTI
SVTI,靜態虛擬隧道接口,該功能可以為IPSec VPN創建一個虛擬的隧道接口,此虛擬接口上不使用GRE技術,所以可以比GRE over IPSec方式減少4個字節的GRE報文頭部,降低了發送加密數據的帶寬。由于有了虛擬接口,所以可以直接在虛擬接口上啟用動態路由協議了。
下圖為SVTI流量傳輸圖:
SVTI流量傳輸模型
SVTI可以不用設置IPSec VPN的感興趣數據流,只要將需要安全加密傳輸的流量通過路由協議導向到IPSec虛擬隧道接口即可實現數據的安全隧道傳輸。
SVTI由于沒有使用GRE技術,所以數據報文封裝與傳統IPSec VPN相同。
以上內容均為本人對所掌握知識的總結歸納所創作的原創文章,希望能給大家的學習過程帶來幫助,如有技術理解錯誤希望能夠得到大家的及時指正,大家共同學習,共同進步。
歡迎關注我的頭條號,私信交流,學習更多網絡技術!