介紹GRE隧道與IPSec加密相結(jié)合問題
介紹GRE隧道與IPSec加密相結(jié)合問題,熟練掌握下面涉及到的IPSec加密知識(shí),你就會(huì)更輕松的選擇自己喜歡的方式來做好IPSec加密的工作。很多方法都會(huì)使你豁然開朗的。
IPSec加密網(wǎng)絡(luò)的拓?fù)淇梢允切切谓Y(jié)構(gòu)(hub−and−spoke)也可以是網(wǎng)狀結(jié)構(gòu)(full mesh)。實(shí)際應(yīng)用中,數(shù)據(jù)流量主要分布在分支與中心之間,分支與分支之間的流量分布較少,所以星形結(jié)構(gòu)(hub−and−spoke)通常是最常用的,并且它更經(jīng)濟(jì)。因?yàn)樾切谓Y(jié)構(gòu)(hub−and−spoke)比網(wǎng)狀結(jié)構(gòu)(full mesh)使用更少的點(diǎn)到點(diǎn)鏈路,可以減少線路費(fèi)用。
在星形拓?fù)渲?,分支機(jī)構(gòu)到分支機(jī)構(gòu)(spoke −to−spoke)的連通不需要額外的通訊費(fèi)用。但在星形結(jié)構(gòu)中,分支到分支的通信必須跨越中心,這會(huì)耗費(fèi)中心的資源并引入延時(shí)。
尤其在用IPSec加密時(shí),中心需要在發(fā)送數(shù)據(jù)分支的隧道上解密,而在接收數(shù)據(jù)的分支隧道上重新加密。還有一種情況是:通訊的兩個(gè)分支在同一個(gè)城市,而中心在另一個(gè)城市,這便引入了不必要的延時(shí)。
當(dāng)星形IPSec網(wǎng)絡(luò)(hub−and−spoke)規(guī)模不斷擴(kuò)展時(shí),傳統(tǒng)VPN的配置則愈加繁瑣,且不便于維護(hù)和排錯(cuò)。因此IP數(shù)據(jù)包的動(dòng)態(tài)路由將非常有意義。但I(xiàn)PSec隧道和動(dòng)態(tài)路由協(xié)議之間存在一個(gè)基礎(chǔ)問題,動(dòng)態(tài)路由協(xié)議依賴于多播或廣播包進(jìn)行路由更新,而IPSec隧道不支持多播或廣播包的加密。
這里便引入了動(dòng)態(tài)多點(diǎn)VPN (DMVPN)的概念。這里將引入兩個(gè)協(xié)議:GRE 和 NHRP GRE:通用路由封裝。由IETF在RFC 2784中定義。它是一個(gè)可在任意一種網(wǎng)絡(luò)層協(xié)議上封裝任意一個(gè)其它網(wǎng)絡(luò)層協(xié)議的協(xié)議。GRE將有效載荷封裝在一個(gè)GRE包中,然后再將此GRE包封裝基于實(shí)際應(yīng)用的傳輸協(xié)議上進(jìn)行轉(zhuǎn)發(fā)。(我覺得:GRE類似木馬的殼。^_^)
IPSec不支持廣播和組播傳輸,可是GRE能很好的支持運(yùn)載廣播和組播包到對(duì)端,并且GRE隧道的數(shù)據(jù)包是單播的。這就意味著GRE隧道的數(shù)據(jù)包是可被IPSec加密的,也即GRE Over IPSec。
通過GRE隧道與IPSec加密相結(jié)合,利用動(dòng)態(tài)路由協(xié)議在加密隧道兩端的路由器上更新路由表。從隧道對(duì)端學(xué)到的子網(wǎng)在路由表?xiàng)l目里將會(huì)包含隧道對(duì)端的IP地址作為到達(dá)對(duì)端子網(wǎng)的下一跳地址。這樣,隧道任何一端的網(wǎng)絡(luò)發(fā)生變化,另外一端都會(huì)動(dòng)態(tài)地學(xué)習(xí)到這個(gè)變化,并保持網(wǎng)絡(luò)的連通性而無需改變路由器的配置。
IPSec利用訪問控制列表(ACL)來匹配感興趣數(shù)據(jù)流。當(dāng)有數(shù)據(jù)包匹配所定義的ACL時(shí),IPSec加密隧道便會(huì)建立。當(dāng)利用GRE Over IPSec時(shí),GRE隧道的配置已經(jīng)包括了GRE隧道對(duì)端的地址,這個(gè)地址同時(shí)也是IPSec隧道的對(duì)端地址。所以,沒有必要再單獨(dú)為IPSec定義匹配ACL。
通過將GRE隧道與IPSec綁定,GRE隧道一旦建立,將立刻觸發(fā)IPSec加密。在用IPSec對(duì)GRE包進(jìn)行加密時(shí),可以將IPSec配置為傳輸模式,因?yàn)镚RE已經(jīng)將原始數(shù)據(jù)包封裝為單播的IP包,沒必要讓IPSec再封裝一個(gè)包頭。
GRE的特點(diǎn)使得IPSec加密也能時(shí)髦的運(yùn)行動(dòng)態(tài)協(xié)議了。至此,IPSec加密不支持動(dòng)態(tài)路由的歷史改變了,DMVPN中的“多點(diǎn)” 被擺平接下來,讓我們看看“動(dòng)態(tài)”的特性是怎樣被引入的。GRE建立了隧道,IPSec加密完成了VPN網(wǎng)絡(luò)的加密部分。想要建立GRE隧道,隧道的一端必須知道另一端的IP地址,并且必須能夠在Internet上路由。這就要求中心和所有分支路由器必須具有靜態(tài)的公共IP地址。
可是向ISP申請(qǐng)靜態(tài)IP地址的費(fèi)用是非常昂貴的。通常,為節(jié)約地址資源并提高有效利用率,無論是ADSL還是直接線纜接入,ISP會(huì)通過DHCP服務(wù)來提供動(dòng)態(tài)IP地址。(注:IPv4的瓶頸引發(fā)的地址匱乏。IPv6不會(huì)存在該問題,號(hào)稱可以給地球上的每一粒沙子都分個(gè)IP,口氣很大的說)
顯然,GRE+IPSec需要明確知道隧道兩端的IP地址,而分支路由器外網(wǎng)接口的IP地址由其本地ISP動(dòng)態(tài)分配,每次撥入網(wǎng)絡(luò)的IP地址是不同的。GRE隧道沒辦法建立,那么VPN還是無法工作。這樣,NHRP在釣足大家胃口之時(shí),應(yīng)市場(chǎng)需求,在萬(wàn)眾期盼的目光中閃亮登場(chǎng)了,給它些掌聲樂樂。噼里啪啦。