GRE協議的應用分析
GRE協議的一些基本概念我們在前面的文章中已經做過了總結,不知道大家掌握的如何。那么接下來我們再對具體的應用做一個簡單的圖示講解。希望大家從中能有所收獲。
1. 多協議的本地網通過單一協議的骨干網傳輸
圖中,Group1和Group2是運行Novell IPX的本地網,Term1和Term2是運行IP的本地網。
通過在Router A和Router B之間采用GRE協議封裝的隧道(Tunnel),Group1和Group2、Team1和Team2可以互不影響地進行通信。
2. 擴大了步跳數受限協議(如IPX)的網絡的工作范圍
在圖中,如果兩臺終端之間的步跳數超過15,它們將無法通信。在網絡中使用隧道(Tunnel)可以隱藏一部分步跳,從而擴大網絡的工作范圍。
3. 將不連續的子網連接起來,用于組建VPN
運行Novell IPX協議的兩個子網Group1和Group2分別在不同的城市,通過使用隧道可以實現跨越廣域網的VPN。
#p#
4. 與IPSec結合使用,彌補IPSec不能保護組播數據的缺陷
GRE可以封裝組播數據并在GRE隧道中傳輸,而IPSec目前只能對單播數據進行加密保護。對于組播數據需要在IPSec隧道中傳輸的情況,可以先建立GRE隧道,對組播數據進行GRE封裝,再對封裝后的報文進行IPSec加密,從而實現組播數據在IPSec隧道中的加密傳輸。
5. 其他特性
GRE本身提供兩種比較弱的安全機制:校驗和驗證和識別關鍵字驗證。前者對封裝的報文進行端到端校驗,后者對Tunnel接口進行校驗。
RFC1701(Generic Routing Encapsulation)中規定:如果GRE報文頭中的Checksum位置位,則校驗和有效。發送方將根據GRE頭及payload信息計算校驗和,并將包含校驗和的報文發送給對端。接收方對接收到的報文計算校驗和,并與報文中的校驗和比較,如果一致則對報文進一步處理,否則丟棄報文。
隧道兩端可以根據實際需要選擇是否配置校驗和,從而決定是否觸發校驗功能。如果本端配置了校驗和而對端沒有配置,則本端將不會對接收到的報文進行校驗和檢查;相反,如果本端沒有配置校驗和而對端已配置,本端將對從對端發來的報文進行校驗和檢查。
RFC1701中還規定:若GRE報文頭中的KEY位置位,則收發雙方將進行通道識別關鍵字的驗證。只有Tunnel兩端設置的識別關鍵字完全一致時才能通過驗證,否則將報文丟棄。