GRE協(xié)議的作用
在不同環(huán)境下進行網(wǎng)絡(luò)協(xié)議的傳輸,我們需要對其進行郵件打包的形式進行封裝。這個也是GRE協(xié)議的作用。那么我們就來看看具體的協(xié)議封裝的內(nèi)容吧。希望對大家有所幫助。
1. GRE協(xié)議概念
通用路由封裝GRE(Generic Routing Encapsulation)是對某些網(wǎng)絡(luò)層協(xié)議(如IP和IPX)的報文進行封裝,使這些被封裝的報文能夠在另一網(wǎng)絡(luò)層協(xié)議(如IP)中傳輸。
GRE可以作為VPN的第三層隧道協(xié)議,在協(xié)議層之間采用隧道(Tunnel)技術(shù)。Tunnel是一個虛擬的點對點的連接,可以看成僅支持點對點連接的虛擬接口,這個接口提供了一條通路,使封裝的數(shù)據(jù)報能夠在這個通路上傳輸,并在一個Tunnel的兩端分別對數(shù)據(jù)報進行封裝及解封裝。
2. 報文封裝及解封裝
(1) 報文的傳輸
報文在Tunnel中傳輸包括加封裝與解封裝兩個過程,下圖的網(wǎng)絡(luò)為例說明這兩個過程:
加封裝過程:
連接Novell group1的接口收到IPX數(shù)據(jù)報后,首先交由IPX協(xié)議處理。
IPX協(xié)議檢查IPX報頭中的目的地址域來確定如何路由此包。如果發(fā)現(xiàn)報文的目的地址要經(jīng)過網(wǎng)號為1f的網(wǎng)絡(luò)(Tunnel的虛擬網(wǎng)號),則將此報文發(fā)給網(wǎng)號為1f的Tunnel接口。
Tunnel接口收到此報文后進行GRE協(xié)議封裝,封裝完成后交給IP模塊處理,在封裝IP報文頭后,根據(jù)報文目的地址及路由表交由相應(yīng)的網(wǎng)絡(luò)接口處理。
解封裝過程:
解封裝過程和加封裝過程相反。從Tunnel接口收到IP報文,檢查目的地址,當發(fā)現(xiàn)目的地就是此路由器時,系統(tǒng)去掉此報文的IP報頭,交給GRE協(xié)議模塊處理;GRE協(xié)議模塊完成相應(yīng)的處理后,去掉GRE報頭,再交由IPX協(xié)議模塊處理,IPX協(xié)議模塊象對待一般數(shù)據(jù)報一樣對此數(shù)據(jù)報進行處理。
(2) 基本概念
系統(tǒng)收到的需要封裝和路由的數(shù)據(jù)報稱為凈荷(Payload),凈荷首先被加上GRE協(xié)議封裝,成為GRE報文;再被封裝在IP報文中,這樣IP層就可以完全負責此報文的轉(zhuǎn)發(fā)(forward)。
負責轉(zhuǎn)發(fā)的IP協(xié)議被稱為傳輸協(xié)議(Delivery Protocol或者Transport Protocol)。封裝好的報文的形式如下圖所示:
舉例來說,一個封裝在IP Tunnel中的IPX報文的格式可以表示為:
Passenger Protocol:乘客協(xié)議
Carrier Protocol/Encapsulation Protocol:運載協(xié)議/封裝協(xié)議
Transport Protocol:傳輸協(xié)議