通用路由封裝

通用路由封裝(英語:Generic Routing Encapsulation,縮寫:GRE)是一種可以在虛擬對等鏈路中封裝多種網絡層協定的隧道協定。由思科系統開發,在RFC 2784中定義。


協定棧舉例

OSI模型分層 協定
5. 對談層 X.225
4. 傳輸層 UDP
3. 網絡層 (GRE封裝) IPv6
封裝 GRE
3. 網絡層 IPv4
2. 數據鏈路層 乙太網路
1. 實體層 以太實體層

從上面的圖表可以看出,協定封裝(非特指GRE)打破了OSI模型中定義的分層。這可以被看成兩個不同協定棧中間的分割器,一個承載另一個。


報文頭

GRE報文頭結構如下圖所示。[最新的RFC 2784 && RFC 2890]

Bits 0–3 4–12 13–15 16–31
C K S Reserved1 Version Protocol Type
Checksum (optional) Reserved2
Key (optional)
Sequence Number (optional)
  • C:校驗碼標記位,標為1為代表啟用校驗碼。
  • K:鍵碼標記位,標為1為代表啟用鍵碼。
  • S:序列號標記位,標為1為代表啟用序列號。
  • Reserved1、Reserved2:預留,預設為填0。
  • Version:版本號,預設值為0。
  • Protocol Type:負載得網絡層以太類型
  • Checksum:校驗碼,C位啟用時可用。為GRE頭與負載的校驗碼。
  • Key:鍵碼,K位啟用時可用。特定用語所需的鍵值。
  • Sequence Number,序列號,S位啟用時可用。為GRE封包的傳送序列號。

參考資料

外部連結