GRE簡介
定義
通用路由封裝協議GRE(Generic Routing Encapsulation)可以對某些網絡層協議(如IPX、IPv6、AppleTalk等)的數據報文進行封裝,使這些被封裝的數據報文能夠在另一個網絡層協議(如IPv4)中傳輸。
GRE提供了將一種協議的報文封裝在另一種協議報文中的機制,是一種三層隧道封裝技術,使報文可以通過GRE隧道透明的傳輸,解決異種網絡的傳輸問題。
受益
- GRE實現機制簡單,對隧道兩端的設備負擔小。
- GRE隧道可以通過IPv4網絡連通多種網絡協議的本地網絡,有效利用了原有的網絡架構,降低成本。
- GRE隧道擴展了跳數受限網絡協議的工作範圍,支持企業靈活設計網絡拓撲。
- GRE隧道將不連續的子網連接起來,用於組建VPN,實現企業總部和分支間安全的連接。
基本原理
實現過程
報文在GRE隧道中傳輸包括封裝和解封裝兩個過程。如圖1所示,如果X協議報文從Ingress PE向Egress PE傳輸,則封裝在Ingress PE上完成,而解封裝在Egress PE上進行。封裝後的數據報文在網絡中傳輸的路徑,稱為GRE隧道。
圖 1 通過GRE隧道實現X協議互通組網圖
- 封裝
- Ingress PE從連接X協議的接口接收到X協議報文後,首先交由X協議處理。
- X協議根據報文頭中的目的地址在路由表或轉發表中查找出接口,確定如何轉發此報文。如果發現出接口是GRE Tunnel接口,則對報文進行GRE封裝,即添加GRE頭。
- 根據骨幹網傳輸協議為IP,給報文加上IP頭。IP頭的源地址就是隧道源地址,目的地址就是隧道目的地址。
- 根據該IP頭的目的地址(即隧道目的地址),在骨幹網路由表中查找相應的出接口併發送報文。之後,封裝後的報文將在該骨幹網中傳輸。
- 解封裝
解封裝過程和封裝過程相反。
- Egress PE從GRE Tunnel接口收到該報文,分析IP頭髮現報文的目的地址為本設備,則Egress PE去掉IP頭後交給GRE協議處理。
- GRE協議剝掉GRE報頭,獲取X協議,再交由X協議對此數據報文進行後續的轉發處理。
報文格式
GRE封裝後的報文結構如圖2所示。
- 乘客協議(Passenger Protocol):封裝前的報文稱為淨荷,封裝前的報文協議稱為乘客協議。
- 封裝協議(Encapsulation Protocol):GRE Header是由封裝協議完成並填充的,封裝協議也稱為運載協議(Carrier Protocol)。
- 傳輸協議(Transport Protocol或者Delivery Protocol):負責對封裝後的報文進行轉發的協議稱為傳輸協議。
圖2 GRE報文結構
閱讀更多 IT信息技術隨筆 的文章