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