通用路由封裝(GRE: Generic Routing Encapsulation)是通用路由封裝協議,可以對某些網絡層協議的數據報進行封裝,使這些被封裝的數據報能夠在
IPv4網絡中傳輸。
- 中文名:通用路由封裝
- 外文名:Generic Routing Encapsulation
- 作用:網絡層協議封裝一個其它網絡協議
- 類 型:網絡協議
- 隸 屬:通信協議,路由協議
基本信息
通用路由封裝 (GRE)定義了在任意一種網絡層協議上封裝任意一個其它網絡層協議的協議。
在大多數常規情況下,系統擁有一個有效載荷(或負載)包,需要將它封裝並發送至某個目的地。首先將有效載荷封裝在一個GRE 包中,然后將此GRE 包封裝在其它某協議中並進行轉發。此外發協議即為發送協議。當IPv4 被作為GRE 有效載荷傳輸時,協議類型字段必須被設置為0x800。當一個隧道終點拆封此含有 IPv4 包作為有效載荷的GRE 包時,IPv4 包頭中的目的地址必須用來轉發包,並且需要減少有效載荷包的TTL。值得注意的是,在轉發這樣一個包時,如果有效載荷包的目的地址就是包的封裝器(也就是隧道另一端),就會出現回路現象。在此情形下,必須丟棄該包。當 GRE 包被封裝在IPv4 中時,需要使用IPv4 協議47。
GRE 下的網絡安全與常規的IPv4 網絡安全是較為相似的,GRE 下的路由采用IPv4 原本使用的路由,但路由過濾保持不變。包過濾要求防火牆檢查 GRE 包,或者在GRE 隧道終點完成過濾過程。在那些這被看作是安全問題的環境下,可以在
防火牆上終止隧道。
GRE(Generic Routing Encapsulation,通用路由封裝)協議是對某些網絡層協議(如IP 和IPX)的數據
報文進行封裝,使這些被封裝的數據報文能夠在另一個網絡層協議(如IP)中傳輸。GRE采用了Tunnel(隧道)技術,是VPN(Virtual Private Network)的第三層隧道協議。
Tunnel 是一個虛擬的點對點的連接,提供了一條通路使封裝的數據報文能夠在這個通路上傳輸,並且在一個Tunnel 的兩端分別對數據報進行封裝及解封裝。 一個X協議的報文要想穿越IP網絡在Tunnel中傳輸,必須要經過加封裝與解封裝兩個過程。
報文格式
GRE 封裝后的
報文格式為:
Delivery Header | GRE Header | Payload packet |
-
Delivery Header:封裝的外部協議報文頭(如IP報文頭),即隧道所處網絡的協議數據頭,是實現一種協議報文穿越另一種協議網絡的傳輸工具。
-
GRE Header:對數據報文進行封裝后加入的數據,包含GRE協議本身以及和負載協議有關的一些信息。
-
Payload Packet:進入隧道之前的網絡層數據報文,將作為隧道報文的有效負載,該報文的協議號將作為GRE頭部字段中的ProtocolType字段。GRE頭部信息具有如圖所示的結構。
一個最簡單的GRE頭部只有4個字節,即在C、K、S等標志們都為0的情況下,GRE頭部僅包含第0到31位的信息。前4個bit位都為標志位,分別表示了頭部后來的字段是否有效;ProtocolType字段標識PayloadPacket的協議類型,一般情況下,該協議字段與以太網幀的類型字段值相同。
需要封裝和傳輸的數據報文,稱之為凈荷(Payload),凈荷的協議類型為乘客協議(Passenger Protocol)。系統收到一個凈荷后,首先使用封裝協議(Encapsulation Protocol)對這個凈荷進行GRE 封裝,即把乘客協議報文進行了“包裝”,加上了一個GRE 頭部成為GRE 報文;然后再把封裝好的原始報文和GRE 頭部封裝在IP 報文中,這樣就可完全由IP 層負責此報文的前向轉發(Forwarding)。通常把這個負責前向轉發的IP 協議稱為
傳輸協議(Delivery Protocol 或者Transport Protocol)。根據傳輸協議的不同,可以分為GRE over IPv4 和GRE over IPv6 兩種
隧道模式。
封裝過程
1、 Router A 連接Group 1 的接口收到X 協議報文后,首先交由X 協議處理
2、X 協議檢查
報文頭中的目的地址域來確定如何路由此包
3、 若報文的目的地址要經過Tunnel 才能到達,則設備將此報文發給相應的Tunnel 接口
4、 Tunnel 口收到此報文后進行GRE 封裝,在封裝IP 報文頭后,設備根據此IP 包的目的地址及
路由表對報文進行轉發,從相應的網絡接口發送出去。
解封裝過程
解封裝過程和加封裝的過程相反。
1、 RouterB 從Tunnel 接口收到IP
報文,檢查目的地址
3、 GRE 協議完成相應的處理后,剝掉GRE 報頭,再交由X 協議對此數據報進行后續的轉發處理。
說明:GRE 收發雙方的加封裝、解封裝處理,以及由於封裝造成的數據量增加,會導致使用GRE 后設備的數據轉發效率有一定程度的下降。