複製鏈接
請複製以下鏈接發送給好友

通用路由封裝

鎖定
通用路由封裝(GRE: Generic Routing Encapsulation)是通用路由封裝協議,可以對某些網絡層協議的數據報進行封裝,使這些被封裝的數據報能夠在IPv4網絡中傳輸 [1] 
中文名
通用路由封裝
外文名
Generic Routing Encapsulation
作    用
網絡層協議封裝一個其它網絡協議
類    型
網絡協議
隸    屬
通信協議,路由協議

通用路由封裝產品介紹

通用路由封裝 (GRE)定義了在任意一種網絡層協議上封裝任意一個其它網絡層協議的協議 [1] 
在大多數常規情況下,系統擁有一個有效載荷(或負載)包,需要將它封裝併發送至某個目的地。首先將有效載荷封裝在一個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 封裝後的報文格式為 [1] 
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的協議類型,一般情況下,該協議字段與以太網幀的類型字段值相同 [2] 
需要封裝和傳輸的數據報文,稱之為淨荷(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 報文,檢查目的地址
2、 如果發現目的地是本路由器,則RouterB 剝掉此報文的IP 報頭,交給GRE 協議處理(進行檢驗密鑰、檢查校驗和及報文的序列號等)
3、 GRE 協議完成相應的處理後,剝掉GRE 報頭,再交由X 協議對此數據報進行後續的轉發處理。
説明:GRE 收發雙方的加封裝、解封裝處理,以及由於封裝造成的數據量增加,會導致使用GRE 後設備的數據轉發效率有一定程度的下降。
參考資料