GRE原理與配置

2021-10-10 23:38:51 字數 2848 閱讀 2512

gre報文結構

隧道介面

gre配置

作用:能夠將一種協議報文封裝另外一種協議的報文當中進行傳輸,可以解決異種網路的傳輸問題。

使用gre可以克服igp協議的一些侷限性。例如,rip路由協議是一種距離向量路由協議,最大跳數為15。如果網路直徑超過15,裝置將無法通訊。這種情況下,可以使用gre技術在兩個網路節點之間搭建隧道,隱藏它們之間的跳數,擴大網路的工作範圍。

gre屬於網路層協議 ip協議號為47。

gre用來對某些網路層協議如ipx(internet packet exchange)的報文進行封裝,使這些被封裝的報文能夠在另一網路層協議(如ip)中傳輸。gre可以解決異種網路的傳輸問題。

ipsec vpn技術可以建立一條跨越共享公網的隧道,從而實現私網互聯。ipsec vpn能夠安全傳輸ip報文,但是無法在隧道的兩個端點之間執行rip和ospf等路由協議。gre可以將路由協議資訊封裝在另一種協議報文(例如ip)中進行傳輸。

如圖所示,使用gre可以克服igp協議的一些侷限性。例如,rip路由協議是一種距離向量路由協議,最大跳數為15。如果網路直徑超過15,裝置將無法通訊。這種情況下,可以使用gre技術在兩個網路節點之間搭建隧道,隱藏它們之間的跳數,擴大網路的工作範圍。

gre本身並不支援加密,因而通過gre隧道傳輸的流量是不加密的。將ipsec技術與gre相結合,可以先建立gre隧道對報文進行gre封裝,然後再建立ipsec隧道對報文進行加密,以保證報文傳輸的完整性和私密性。

gre封裝報文時,封裝前的報文稱為淨荷,封裝前的報文協議稱為乘客協議,然後gre會封裝gre頭部,gre成為封裝協議,也叫運載協議,最後負責對封裝後的報文進行**的協議稱為傳輸協議。

gre封裝和解封裝報文的過程如下:

1)、裝置從連線私網的介面接收到報文後,檢查報文頭中的目的ip位址字段,在路由表查詢出介面,如果發現出介面是隧道介面,則將報文傳送給隧道模組進行處理。

2)、隧道模組接收到報文後首先根據乘客協議的型別和當前gre隧道配置的校驗和引數,對報文進行gre封裝,即新增gre報文頭。

3)、然後,裝置給報文新增傳輸協議報文頭,即ip報文頭。該ip報文頭的源位址就是隧道源位址,目的位址就是隧道目的位址。

4)、最後,裝置根據新新增的ip報文頭目的位址,在路由表中查詢相應的出介面,並傳送報文。之後,封裝後的報文將在公網中傳輸。

5)、接收端裝置從連線公網的介面收到報文後,首先分析ip報文頭,如果發現協議型別欄位的值為47,表示協議為gre,於是出介面將報文交給gre模組處理。gre模組去掉ip報文頭和gre報文頭,並根據gre報文頭的協議型別字段,發現此報文的乘客協議為私網中執行的協議,於是將報文交給該協議處理。

如圖所示,在本端裝置和遠端裝置上還必須存在經過tunnel**的路由,這樣,需要進行gre封裝的報文才能正確**。經過tunnel介面**的路由可以是靜態路由,也可以是動態路由。配置靜態路由時,路由的目的位址是gre封裝前原始報文的目的位址,出介面是本端tunnel介面。

執行display inte***ce tunnel 0/0/1命令,可以檢視介面的執行狀態和路由資訊。如果介面的當前狀態和鏈路層協議的狀態均顯示為up,則介面處於正常**狀態。隧道的源位址和目的位址分別為建立gre隧道使用的物理介面的ip位址。

執行display ip routing table命令,可以檢視ip路由表,判斷gre隧道連線的兩個網路的可達資訊。在本示例中,可以看出目的位址為通過gre隧道可達的網路位址,下一跳位址為gre隧道遠端介面的ip位址。

keepalive檢測功能用於在任意時刻檢測隧道鏈路是否處於keepalive狀態,即檢測隧道對端是否可達。如果對端不可達,隧道連線就會及時關閉,避免形成資料空洞。使能keepalive檢測功能後,gre隧道本端會定期向對端傳送keepalive探測報文。若對端可達,則本端會收到對端的回應報文;若對端不可達,則收不到對端的回應報文。

如果在隧道一端配置了keepalive功能,無論對端是否配置keepalive,配置的keepalive功能在該端都生效。隧道對端收到keepalive探測報文,無論是否配置keepalive,都會給源端傳送乙個回應報文。

使能keepalive檢測功能後,gre隧道的源端會建立乙個計數器,並周期性地傳送keepalive探測報文,同時進行不可達計數。每傳送乙個探測報文,不可達計數加1

如果源端在計數器值達到預先設定的值之前收到回應報文,則表明對端可達。如果計數器值達到預先設定的重試次數,源端還是沒有收到回應報文,則認為對端不可達。此時,源端將關閉隧道連線。

執行keepalive [ period period [ retry-times retry-times ] 命令,可以在gre隧道介面啟用keepalive檢測功能。其中,period引數指定keepalive檢測報文的傳送週期,預設值為5秒;retry-times引數指定keepalive檢測報文的重傳次數,預設值為3。如果在指定的重傳次數內未收到對端的回應報文,則認為隧道兩端通訊失敗,gre隧道將被拆除。

執行display inte***ce tunnel命令,還可以檢視gre的keepalive功能是否使能。本示例中,keepalive檢測功能的當前狀態顯示為啟用,且報文的傳送週期為3秒,重傳次數為3次。

gre的原理與配置

一,gre理解 gre是一種傳統的隧道協議技術,通過隧道連線的兩個遠端網路就如同直連,gre在兩個遠端網路之間模擬出直連鏈路,實際上可以看作是虛擬的點到點連線的效果。隧道是一種封裝技術,利用一種網路協議來傳輸另外一種網路協議,說百了就是利用一種網路協議將其它的協議封裝在自己的報文中。如下圖是gre的...

GRE簡單配置

gre key 123456 配置隧道兩端的key int g0 1 ip ad 1.1.1.1 24 ip route static 10.0.1.0 24 tunnel 0 rtb rtc int g0 0 ip add 1.1.1.2 24 int g0 1 ip add 2.2.2.1 24...

linux 通過ip add 配置GRE隧道

root liuhao2 ip addr add 2.2.2.1 24 dev lo 配置gre 開啟兩個主機的 ip forward 可以寫在sysctl.conf 開機生效 root liuhao1 echo 1 proc sys net ipv4 ip forward root liuhao2...