GRE協(xié)議快速入門(mén)
對(duì)組網(wǎng)有一定了解的朋友,肯定都知道隧道封裝技術(shù)。那么在網(wǎng)絡(luò)中,我們就是用GRE協(xié)議來(lái)進(jìn)行數(shù)據(jù)報(bào)的封裝。那么今天我們就將對(duì)這個(gè)協(xié)議進(jìn)行一個(gè)基礎(chǔ)性的了解。下面就請(qǐng)大家瀏覽正文。
1. 協(xié)議簡(jiǎn)介
GRE(generic routing encapsulation,通用路由封裝)協(xié)議是對(duì)某些網(wǎng)絡(luò)層協(xié)議(如ip 和ipx)的數(shù)據(jù)報(bào)進(jìn)行封裝,使這些被封裝的數(shù)據(jù)報(bào)能夠在另一個(gè)網(wǎng)絡(luò)層協(xié)議(如ip)中傳輸。GRE協(xié)議是vpn(virtual private network)的第三層隧道協(xié)議,在協(xié)議層之間采用了一種被稱之為tunnel(隧道)的技術(shù)。tunnel 是一個(gè)虛擬的點(diǎn)對(duì)點(diǎn)的連接,在實(shí)際中可以看成僅支持點(diǎn)對(duì)點(diǎn)連接的虛擬接口,這個(gè)接口提供了一條通路使封裝的數(shù)據(jù)報(bào)能夠在這個(gè)通路上傳輸,并且在一個(gè)tunnel的兩端分別對(duì)數(shù)據(jù)報(bào)進(jìn)行封裝及解封裝。
一個(gè)報(bào)文要想在tunnel中傳輸,必須要經(jīng)過(guò)加封裝與解封裝兩個(gè)過(guò)程。
(1) 加封裝過(guò)程
連接novell group1 的接口收到ipx 數(shù)據(jù)報(bào)后首先交由ipx 協(xié)議處理,ipx 協(xié)議檢查ipx 報(bào)頭中的目的地址域來(lái)確定如何路由此包。若報(bào)文的目的地址被發(fā)現(xiàn)要路由經(jīng)過(guò)網(wǎng)號(hào)為1f 的網(wǎng)絡(luò)(tunnel 的虛擬網(wǎng)號(hào)),則將此報(bào)文發(fā)給網(wǎng)號(hào)為1f 的tunnel端口。tunnel 口收到此包后進(jìn)行GRE封裝,封裝完成后交給ip 模塊處理,在封裝ip 報(bào)文頭后,根據(jù)此包的目的地址及路由表交由相應(yīng)的網(wǎng)絡(luò)接口處理。
(2) 解封裝的過(guò)程
解封裝過(guò)程和加封裝的過(guò)程相反。從tunnel 接口收到的ip 報(bào)文,通過(guò)檢查目的地址,當(dāng)發(fā)現(xiàn)目的地就是此路由器時(shí),系統(tǒng)剝掉此報(bào)文的ip 報(bào)頭,交給GRE協(xié)議模塊處理(進(jìn)行檢驗(yàn)密鑰、檢查校驗(yàn)和及報(bào)文的序列號(hào)等);GRE協(xié)議模塊完成相應(yīng)的處理后,剝掉GRE報(bào)頭,再交由ipx 協(xié)議模塊處理,ipx 協(xié)議模塊象對(duì)待一般數(shù)據(jù)報(bào)一樣對(duì)此數(shù)據(jù)報(bào)進(jìn)行處理。
系統(tǒng)收到一個(gè)需要封裝和路由的數(shù)據(jù)報(bào),稱之為凈荷(payload),這個(gè)凈荷首先被加上GRE封裝,成為GRE報(bào)文;再被封裝在ip 報(bào)文中,這樣就可完全由ip 層負(fù)責(zé)此報(bào)文的向前傳輸(forwarded)。人們常把這個(gè)負(fù)責(zé)向前傳輸ip 協(xié)議稱為傳輸協(xié)議(delivery protocol 或者transport protocol)。
2. 應(yīng)用范圍
GRE協(xié)議主要能實(shí)現(xiàn)以下幾種服務(wù)類型:
(1) 多協(xié)議的本地網(wǎng)通過(guò)單一協(xié)議的骨干網(wǎng)傳輸
group1 和group2 是運(yùn)行novell ipx 協(xié)議的本地網(wǎng),term1 和term2 是運(yùn)行ip 協(xié)議的本地網(wǎng)。通過(guò)在routera 和routerb 之間采用GRE協(xié)議封裝的隧道(tunnel),group1 和group2、team1 和team2 可以互不影響地進(jìn)行通信。
(2) 擴(kuò)大了步跳數(shù)受限協(xié)議(如ipx)的網(wǎng)絡(luò)的工作范圍
兩臺(tái)終端之間的步跳數(shù)超過(guò)15,它們將無(wú)法通信。而通過(guò)在網(wǎng)絡(luò)中使用隧道(tunnel)可以隱藏一部分步跳,從而擴(kuò)大網(wǎng)絡(luò)的工作范圍。
(3) 將一些不能連續(xù)的子網(wǎng)連接起來(lái),用于組建vpn
運(yùn)行novell ipx 協(xié)議的兩個(gè)子網(wǎng)group1 和group2 分別在不同的城市,通過(guò)使用隧道可以實(shí)現(xiàn)跨越廣域網(wǎng)的vpn。
(4) 與ipsec 結(jié)合使用
對(duì)于諸如路由協(xié)議、語(yǔ)音、視頻等數(shù)據(jù)先進(jìn)行GRE封裝,然后再對(duì)封裝后的報(bào)文進(jìn)行ipsec 的加密處理。
另外,GRE還支持由用戶選擇記錄tunnel 接口的識(shí)別關(guān)鍵字,和對(duì)封裝的報(bào)文進(jìn)行端到端校驗(yàn)。
由于GRE協(xié)議收發(fā)雙方加封裝、解封裝處理以及由于封裝造成的數(shù)據(jù)量增加等因素的影響,這就導(dǎo)致使用gre會(huì)造成路由器的數(shù)據(jù)轉(zhuǎn)發(fā)效率有一定程度的下降。