【正文】
1.GRE協(xié)議簡(jiǎn)介
GRE(Generic Routing Encapsulation,通用路由封裝)協(xié)議是對某些網(wǎng)絡(luò )層協(xié)議(如IP 和IPX)的數據報進(jìn)行封裝,使這些被封裝的數據報能夠在另一個(gè)網(wǎng)絡(luò )層協(xié)議(如IP)中傳輸。GRE 是VPN(Virtual Private Network)的第三層隧道協(xié)議,在協(xié)議層之間采用了一種被稱(chēng)之為T(mén)unnel(隧道)的技術(shù)。Tunnel是一個(gè)虛擬的點(diǎn)對點(diǎn)的連接,在實(shí)際中可以看成僅支持點(diǎn)對點(diǎn)連接的虛擬接口,這個(gè)接口提供了一條通路使封裝的數據報能夠在這個(gè)通路上傳輸,并且在一個(gè)Tunnel的兩端分別對數據報進(jìn)行封裝及解封裝。
一個(gè)報文要想在Tunnel中傳輸,必須要經(jīng)過(guò)加封裝與解封裝兩個(gè)過(guò)程,下面以圖1的網(wǎng)絡(luò )為例說(shuō)明這兩個(gè)過(guò)程:

(1) 加封裝過(guò)程
連接Novell Group1的接口收到IPX數據報后首先交由IPX 協(xié)議處理,IPX 協(xié)議檢查IPX 報頭中的目的地址域來(lái)確定如何路由此包。若報文的目的地址被發(fā)現要路由經(jīng)過(guò)網(wǎng)號為1f 的網(wǎng)絡(luò )(Tunnel 的虛擬網(wǎng)號),則將此報文發(fā)給網(wǎng)號為1f 的Tunnel端口。Tunnel 口收到此包后進(jìn)行GRE 封裝,封裝完成后交給IP 模塊處理,在封裝IP 報文頭后,根據此包的目的地址及路由表交由相應的網(wǎng)絡(luò )接口處理。
(2) 解封裝的過(guò)程
解封裝過(guò)程和加封裝的過(guò)程相反。從Tunnel 接口收到的IP 報文,通過(guò)檢查目的地址,當發(fā)現目的地就是此路由器時(shí),系統剝掉此報文的IP 報頭,交給GRE 協(xié)議模塊處理(進(jìn)行檢驗密鑰、檢查校驗和及報文的序列號等);GRE 協(xié)議模塊完成相應的處理后,剝掉GRE 報頭,再交由IPX 協(xié)議模塊處理,IPX 協(xié)議模塊象對待一般數據報一樣對此數據報進(jìn)行處理。
系統收到一個(gè)需要封裝和路由的數據報,稱(chēng)之為凈荷(payload),這個(gè)凈荷首先被加上GRE 封裝,成為GRE 報文;再被封裝在IP 報文中,這樣就可完全由IP 層負責此報文的向前傳輸(forwarded)。人們常把這個(gè)負責向前傳輸IP 協(xié)議稱(chēng)為傳輸協(xié)議(delivery protocol 或者transport protocol)。
封裝好的報文的形式如下圖所示:

2.應用范圍
(1) 多協(xié)議的本地網(wǎng)通過(guò)單一協(xié)議的骨干網(wǎng)傳輸
(2) 擴大了步跳數受限協(xié)議(如rip)的網(wǎng)絡(luò )的工作范圍
(3) 將一些不能連續的子網(wǎng)連接起來(lái),用于組建vpn
(4) 與IPSec 結合使用,常用的是GRE over IPSec
3.注意事項:
? 只有在Tunnel兩端都配置了校驗才對進(jìn)行校驗
? Tunnel兩端配置的識別關(guān)鍵字完全一致時(shí)才能正常通信