IPsec協(xié)議作為目前最為常見的VPN隧道協(xié)議,其強大的加密與驗證功能保障了私網(wǎng)數(shù)據(jù)在公網(wǎng)傳遞時通信的安全。由于IPsec VPN隧道不支持對多播和廣播數(shù)據(jù)包的傳遞,需要接合GRE隧道技術(shù),GRE隧道將多播和廣播數(shù)據(jù)包封裝成單播包,再由IPsec技術(shù)提供數(shù)據(jù)傳輸?shù)募用芎万炞C。
如圖1所示,使用GRE over IPsec VPN技術(shù)實現(xiàn)單位總部局域網(wǎng)中主機c1和分部局域網(wǎng)中主機c2間的通信,通過路由器模擬在Internet中實現(xiàn)數(shù)據(jù)傳輸?shù)陌踩浴_@里使用銳捷RSR20-18路由器,系統(tǒng)版本為 10.3(5b6)p2。(為 方 便實驗驗證,主機c1和c2分別在路由器上用loopback0口來代替做測試。)
1.路由器RA配置

圖1 GRE over IPsec案例應(yīng)用


//只要建了tunnel隧道,默認封裝模式就是GRE,隧道源和目的地址分別是兩端路由器物理口的公網(wǎng)IP地址。
RA(config)#ip route 0.0.0.0 0.0.0.0 tunnel 0//發(fā)往目標(biāo)主機的路由發(fā)到tunnel口就是對數(shù)據(jù)包進行GRE封裝,GRE封裝后生成的新IP包的報頭IP地址就是tunnel隧道內(nèi)定義的源地址和目的地址。

//定義IKE的第一階段,這里采用預(yù)共享密鑰的認證方式,預(yù)共享密碼為zt,其余ISAKMP安全策略為默認。



//定義IKE的第二階段,定義轉(zhuǎn)換集test保護傳輸數(shù)據(jù)流。由于IPsec中ESP方式加密后生成的新IP報頭地址和GRE封裝后的報頭IP地址都是隧道的源地址和目的地址,因此這里選擇傳輸模式,可以省略掉GRE報頭中的IP地址,相較tunnel模式而言,每個數(shù)據(jù)包可以節(jié)省20字節(jié)的IP頭部信息,提升網(wǎng)絡(luò)傳輸效率。要的區(qū)別之一就在于感興趣流量定義不同,GRE over IPSec VPN中順序:先路由(由于下一跳是tunnel口,所以就要先做GRE封裝);感興趣流量再撞擊map,這時GRE封裝后的新IP報頭是公網(wǎng)地址,報頭中目標(biāo)IP變 為 200.1.1.2,源 IP為200.1.1.1,所以感興趣ACL中源地址和目的地址要用公網(wǎng)端口IP地址。此外,這里感興趣流量ACL定義時如果使用access-list 100 permit gre host 200.1.1.1 host 200.1.1.2,只允許放行g(shù)re流量,不使用IP流量,會更嚴謹些。

2.路由器RB配置


//定義IKE的第一階段,這里采用預(yù)共享密鑰的認證方式,預(yù)共享密碼為zt,其余ISAKMP安全策略為默認。


RB(config)#crypto map VPN 10 ipsecisakmp //定義加密圖VPN


圖2 GRE over IPSec數(shù)據(jù)報文封裝結(jié)構(gòu)

在路由器RA上使用ping命令模擬主機c1到c2的通信測試,發(fā)現(xiàn)已互通,但剛開始數(shù)據(jù)傳輸仍然掉包,說明做了IPSec,前面數(shù)據(jù)包先觸發(fā)協(xié)商把隧道打通。同時可以看見GRE和數(shù)據(jù)部分都用ESP方式加密了,如圖2所示,這就是GRE over IPSec VPN。
如果不使用靜態(tài)路由,而使用一些IGP動態(tài)路由協(xié)議,利用其定期發(fā)送的hello包來觸發(fā)打通隧道,那么上面ping包測試時前面就不會再有丟包出現(xiàn)。這里假設(shè)使用OSPF路由協(xié)議替代上面靜態(tài)路由,實現(xiàn)私網(wǎng)路由的學(xué)習(xí)。



在RA上再使用ping命令進行測試,發(fā)現(xiàn)數(shù)據(jù)包全部ping通,由于OSPF中以太網(wǎng)口每10s發(fā)送hello包,這時已不需再用一些數(shù)據(jù)包去觸發(fā)打通IPSec隧道。此外,這時由于經(jīng)過tunnel口需要進行GRE的封裝,GRE已把OSPF組播報文封裝成單播報文進行發(fā)送,報頭中源地址和目的地址分別為雙方路由器的物理口IP地址。
RA#ping


GRE over IPsec VPN技術(shù)先做GRE隧道封裝,后進行數(shù)據(jù)加密,把感興趣流訪問列表中的源和目的IP地址定義為GRE隧道的源和目的IP,把加密圖應(yīng)用在路由器的公網(wǎng)物理出口上,這樣就可以保證所有進入隧道的數(shù)據(jù)包都會被加密傳輸,在實際場景中有著廣泛應(yīng)用。