天天看點

為Cisco路由器 配置GRE隧道

  • 路由封裝(GRE)最早是由Cisco提出的,而目前它已經成為了一種标準,被定義在RFC 1701, RFC 1702, 以及RFC 2784中。簡單來說,GRE就是一種隧道協定,用來從一個網絡向另一個網絡傳輸資料包。

    如果你覺得它和虛拟專用網(VPN)有些類似,那隻是因為:從技術上講,GRE隧道是某一類型的VPN,但是并不是一個安全隧道方式。不過你也可以使用某種加密協定對GRE隧道進行加密,比如VPN網絡中常用的IPSec協定。

    實際上,點到點隧道協定(PPTP)就是使用了GRE來建立VPN隧道。比如,如果你要建立Microsoft VPN隧道,預設情況下會使用PPTP,這時就會用到GRE。

    為什麼要用GRE?

    為什麼要使用GRE進行隧道傳輸呢?原因如下:

    有時你需要加密的多點傳播傳輸。GRE隧道可以像真實的網絡接口那樣傳遞多點傳播資料包,而單獨使用IPSec,則無法對多點傳播傳輸進行加密。多點傳播傳輸的例子包括OSPF, EIGRP, 以及RIPV2。另外,大量的視訊、VoIP以及音樂流程式使用多點傳播。

    你所采用的某種協定無法進行路由,比如NetBIOS或在IP網絡上進行非IP傳輸。比如,你可以在IP網絡中使用GRE支援IPX或AppleTalk協定。

    你需要用一個IP位址不同的網絡将另外兩個類似的網絡連接配接起來。

    如何配置GRE隧道?

    在Cisco路由器上配置GRE隧道是一個簡單的工作,隻需要輸入幾行指令即可實作。以下是一個簡單的例子。

    路由器A:

    interface Ethernet0/1

    ip address 10.2.2.1 255.255.255.0

    interface Serial0/0

    ip address 192.168.4.1 255.255.255.0

    interface Tunnel0

    ip address 1.1.1.2 255.255.255.0

    tunnel source Serial0/0

    tunnel destination 192.168.4.2

    路由器B:

    interface FastEthernet0/1

    ip address 10.1.1.1 255.255.255.0

    interface Serial0/0

    ip address 192.168.4.2 255.255.255.0

    interface Tunnel0

    ip address 1.1.1.1 255.255.255.0

    tunnel source Serial0/0

    tunnel destination 192.168.4.1

    在這個例子中,兩個路由器均擁有虛拟接口,即隧道接口。這一接口屬于各自的網絡,就好像一個點到點的T1環路。跨越隧道網絡的資料采用串行網絡方式傳輸。

    對于每個路由器都有兩種途徑将資料傳遞到另一端,即通過串行接口以及通過隧道接口(通過隧道傳遞資料)。該隧道可以傳輸非路由協定的資料,如NetBIOS或AppleTalk。如果資料需要通過網際網路,你可以使用IPSec對其進行加密。

    從下面的資訊回報可以看出,路由器B上的隧道接口和其他網絡接口沒有什麼不同:

    RouterB# sh ip int brie

    Interface   IP-Address   OK?  Method  Status                 Protocol

    Ethernet0   10.1.1.1     YES  manual  up                     down

    Serial0     192.168.4.2  YES  manual  up                     up

    Serial1     unassigned   YES  unset   administratively down  down

    Tunnel0     1.1.1.1      YES  manual  up                     up

    RouterB#

    解決GRE隧道的問題

    由于GRE是将一個資料包封裝到另一個資料包中,是以你可能會遇到GRE的資料報大于網絡接口所設定的資料包最大尺寸的情況。接近這種問題的方法是在隧道接口上配置ip tcp adjust-mss 1436。

    另外,雖然GRE并不支援加密,但是你可以通過tunnel key指令在隧道的兩頭各設定一個密鑰。這個密鑰其實就是一個明文的密碼。

    由于GRE隧道沒有狀态控制,可能隧道的一端已經關閉,而另一端仍然開啟。這一問題的解決方案就是在隧道兩端開啟keepalive資料包。它可以讓隧道一端定時向另一端發送keepalive資料,确認端口保持開啟狀态。如果隧道的某一端沒有按時收到keepalive資料,那麼這一側的隧道端口也會關閉。

繼續閱讀