之前數篇教學已介紹過如何使用Cisco路由器作為公司網路VPN連線的伺服器,在本文中,筆者將介紹如何使用Cisco路由器來建立公司對公司的VPN網路。本文將著重於介紹如何使用GRE Tunnel技術來建立VPN,並導入IPSec加密功能,以加強資訊安全性。
使用Cisco路由器(Router)來建立公司對公司的VPN網路,此類型的VPN網路一般稱為Site-to-Site VPN,可用以建立兩家不同公司之間VPN連線的建立,或分公司對總公司的VPN連線建立。
在開始實作之前,請先準備好下列的軟硬體:
- 路由器:支援IPSec的路由器,本文使用兩台Cisco 3640路由器。
- IOS:使用c3640-jk9s-mz.124-16a。讀者只需使用支援Security Function的IOS即可,如果連線的數量較多或者頻寬較大,建議使用高階的路由器。若不加入IPSec function,較低階的路由器亦可勝任。
另外,實作時的架構圖則如圖1所示。簡言之,其目的是在台北總公司和高雄分公司之間經由Internet透過GRE Tunnel建立VPN連線,讓兩地的網路資源可以共享,並且讓資料在存取過程中被加密,進而保護資料不會輕易遭到破解。
|
▲圖1 IPSec Tunnel架構圖。 |
GRE Tunnel介紹
GRE是Generic Routing Encapsulation的縮寫,它最早由Cisco提出,目前已成為被IETF(Internet Engineering Task Force)認可的標準,它被定義在RFC 1701、RFC 1702及RFC 2890中。GRE可以使用在IP及IPX環境內,但現今幾乎找不到IPX的環境,因此以下將採用IP環境來加以說明。
圖2是網路封包傳送時GRE封包所在的位置。如圖所示,其位於Outer IP Header及Inner IP Header之間。在此可以看出,它是運作在IP層之上,並且會對真正的IP(Inner IP)做一些處理,將之進行包裝後成為Outer IP,讓這些封包可以遵照路由表運作,而到目的地後再還原成為真正的IP。
|
▲圖2 GRE Encapsulation。 |
圖3是GRE Header的組成,在此做一簡單的說明。Checksum、Key及Sequence Number都是非必要欄位,分別對應一開始的C、K、S三個欄位,若有使用該功能,則設定為1。
Version的部分目前都為0,Protocol的部分常見的有IP、PPP(PPTP tunnel使用GRE技術進行實作)以及NHRP(Next Hop Resolution Protocol)。
|
▲圖3 GRE Header。 |
以下用淺顯易懂的方式來解釋GRE Tunnel的運作原理。例如,在兩個路由器中各自建立一個邏輯介面,並在這兩個介面間建立一個私密隧道。
接著,再將要傳遞給對方的私密資料丟給這個邏輯介面做轉發,資料就會透過這個隧道做傳遞,當資料抵達對方的邏輯介面後,在資料離開此介面時會再把額外添加的資料(在隧道裡傳輸時所必須額外添加的資料)移除,最後對方收到的就是乾淨的資料。
建立GRE Tunnel
GRE Tunnel的設定相當容易。以下為一簡單的範例(架構圖如圖1所示),請依現況進行調整,在此僅講述GRE Tunnel相關的設定,路由器必須使用固定IP並具有聯網能力,這部分的設定請自行完成。
以下為台北總公司的設定。Ethernet0/0的IP是對外所使用的Public IP。
Ethernet0/1的IP是內部使用的Private IP,也是內部電腦的預設閘道。
接著建立一個邏輯介面Tunnel0,0指的是Tunnel Interface Number。指定其IP為10.0.0.1的Private IP,並且指定它的Tunnel Source IP為61.59.126.1,與此路由器的對外IP相同。緊接著,再指定其目的IP為74.64.22.1,此為高雄分公司路由器的對外IP。