本文主要介紹如何在Cisco路由上配置類型為站點到站點的IPSec ×××,實作L2L的安全通信。實驗拓撲如下:

實驗目的:
1.配置總公司與各分公司之間以及各分公司之間的×××,使它們能透過Internet實作安全的通路。
2.配置PAT實作總公司與各分公司通路Internet。
實驗環境:
使用DynamipsGUI工具模拟出4台路由器和3台虛拟PC。
各裝置IP配置設定如下:
路由器R1:f0/0: 200.0.10.1/30,f1/0: 1.1.1.1/24
路由器R2:f0/0: 200.0.20.1/30,f1/0: 2.2.2.2/24
路由器R3:f0/0: 200.0.30.1/30,f1/0: 3.3.3.3/24
路由器ISP:f0/0: 200.0.30.20.2/30,f1/0: 200.0.30.2/30,f2/0: 200.0.10.2/30 loopback: 4.4.4.4/24
虛拟PC:VPCS1:1.1.1.2/24,VPCS2:2.2.2.3/24,VPCS3:3.3.3.4/24
路由器與虛拟PC的連線如下:
R1 F0/0 <----> R4 F2/0
R1 F1/0 <----> VPCS V0/1
R2 F0/0 <----> R4 F0/0
R2 F1/0 <----> VPCS V0/2
R3 F0/0 <----> R4 F1/0
R3 F1/0 <----> VPCS V0/3
一.路由器R1的配置(接口IP,路由,×××,PAT):
基本配置:
R1(config)#int f0/0
R1(config-if)#ip add 200.0.10.1 255.255.255.252
R1(config-if)#no sh
R1(config-if)#int f1/0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#no sh
R1(config)#ip route 0.0.0.0 0.0.0.0 200.0.10.2
配置IPSec ×××
R1(config)#crypto isakmp policy 1 //建立管理連接配接政策
R1(config-isakmp)#encryption 3des //指定管理連接配接建立後的最後兩個資料封包(用于身份驗證)采用何種加密算法
R1(config-isakmp)#hash sha //驗證過程中采用HMAC的功能
R1(config-isakmp)#authentication pre-share //指定身份驗證的方式
R1(config-isakmp)#group 2 //指定DH密鑰組
R1(config-isakmp)#exit
R1(config)#crypto isakmp key 0 sjzz address 200.0.20.1
配置總公司A與分公司B之間的×××
R1(config)#access-list 100 permit ip 1.1.1.0 0.0.0.255 2.2.2.0 0.0.0.255 //定義需要保護的流量
R1(config)#crypto ipsec transform-set sjzz-set esp-des ah-sha-hmac //定義傳輸集以及加密和驗證的方式
R1(cfg-crypto-trans)#mode tunnel
R1(cfg-crypto-trans)#exit
R1(config)#crypto map sjzz-map 1 ipsec-isakmp //配置加密映射,映射名為mymap ,序列号為 1 數值越小優先級越高
R1(config-crypto-map)#set peer 200.0.20.1 //對等體位址
R1(config-crypto-map)#set transform-set sjzz-set //指定傳輸集名稱
R1(config-crypto-map)#match address 100 //調用指定的比對資料流
R1(config-crypto-map)#exit
配置總公司A與分C司B之間的×××:
R1(config)#crypto isakmp key 0 sjzz address 200.0.30.1 //配置R1與R3的預共享密鑰
R1(config)#access-list 100 permit ip 1.1.1.0 0.0.0.255 3.3.3.0 0.0.0.255 // 添加去公司C的受保護資料流量
R1(config)#crypto map sjzz-map 1 ipsec-isakmp
R1(config-crypto-map)#set peer 200.0.30.1
R3(config-crypto-map)#exit
應用在接口:
R1(config)#int f0/0
R1(config-if)#crypto map sjzz-map
配置PAT使R1連接配接内網可以通路Internet:
R1(config)#access-list 101 deny ip 1.1.1.0 0.0.0.255 2.2.2.0 0.0.0.255
R1(config)#access-list 101 deny ip 1.1.1.0 0.0.0.255 3.3.3.0 0.0.0.255
R1(config)#access-list 101 permit ip 1.1.1.0 0.0.0.255 any
R1(config)#ip nat inside source list 101 interface f0/0 overload
R1(config-if)#ip nat outside
R1(config)#int f1/0
R1(config-if)#ip nat inside
二.路由器R2的配置(接口IP,路由,×××,PAT):
R2(config)#int f0/0
R2(config-if)#ip add 200.0.20.1 255.255.255.252
R2(config-if)#no sh
R2(config-if)#int loop 0
R2(config-if)#ip add 2.2.2.2 255.255.255.0
R2(config-if)#ip route 0.0.0.0 0.0.0.0 200.0.20.2
配置分公司B到公總司A之間的×××配置:
R2(config)#crypto isakmp policy 1
R2(config-isakmp)#encryption 3des
R2(config-isakmp)#hash sha
R2(config-isakmp)#authentication pre-share
R2(config-isakmp)#group 2
R2(config-isakmp)#lifetime 10000
R2(config-isakmp)#exit
R2(config)#crypto isakmp key 0 sjzz address 200.0.10.1 //該密鑰應該與R1中設定的密碼一緻
R2(config)#access-list 100 permit ip 2.2.2.0 0.0.0.255 1.1.1.0 0.0.0.255
R2(config)#crypto ipsec transform-set sjzz-set esp-des ah-sha-hmac
R2(cfg-crypto-trans)#mode tunnel
R2(cfg-crypto-trans)#exit
R2(config)#crypto map sjzz-map 1 ipsec-isakmp
R2(config-crypto-map)#set peer 200.0.10.1
R2(config-crypto-map)#set transform-set sjzz-set
R2(config-crypto-map)#match address 100
R2(config-crypto-map)#exit
配置分公司B到分公司C之間的×××:
R2(config)#crypto isakmp key 0 sjzz address 200.0.30.1
R2(config)#access-list 100 permit ip 2.2.2.0 0.0.0.255 3.3.3.0 0.0.0.255
R2(config-crypto-map)#set peer 200.0.30.1
應用到接口:
R2(config)#int f0/0
R2(config-if)#crypto map sjzz-map
配置PAT使R2連接配接的内網可以通路internet:
R2(config)#access-list 101 deny ip 2.2.2.0 0.0.0.255 1.1.1.0 0.0.0.255
R2(config)#access-list 101 deny ip 2.2.2.0 0.0.0.255 3.3.3.0 0.0.0.255
R2(config)#access-list 101 permit ip 2.2.2.0 0.0.0.255 any
R2(config)#ip nat inside source list 101 interface f0/0 overload
R2(config-if)#ip nat outside
R2(config)#int loopback 0
R2(config-if)#ip nat inside
三.路由器R3的配置(接口IP,路由,×××,PAT):
R3(config)#int f0/0
R3(config-if)#ip add 200.0.30.1 255.255.255.252
R3(config-if)#no sh
R3(config-if)#int loop 0
R3(config-if)#ip add 3.3.3.3 255.255.255.0
R3(config)#ip route 0.0.0.0 0.0.0.0 200.0.30.2
配置分公司C到總公司A之間的×××:
R3(config)#crypto isakmp policy 1
R3(config-isakmp)#encryption 3des
R3(config-isakmp)#hash sha
R3(config-isakmp)#authentication pre-share
R3(config-isakmp)#group 2
R3(config-isakmp)#lifetime 10000
R3(config-isakmp)#exit
R3(config)#crypto isakmp key 0 sjzz address 200.0.10.1
R3(config)#access-list 100 permit ip 3.3.3.0 0.0.0.255 1.1.1.0 0.0.0.255
R3(config)#crypto ipsec transform-set sjzz-set esp-des ah-sha-hmac
R3(cfg-crypto-trans)#mode tunnel
R3(cfg-crypto-trans)#exit
R3(config)#crypto map sjzz-map 1 ipsec-isakmp
R3(config-crypto-map)#set peer 200.0.10.1
R3(config-crypto-map)#set transform-set sjzz-set
R3(config-crypto-map)#match address 100
配置公司C到分公司B之間的×××:
R3(config-crypto-map)#exit
R3(config)#crypto isakmp key 0 sjzz address 200.0.20.1
R3(config)#access-list 100 permit ip 3.3.3.0 0.0.0.255 2.2.2.0 0.0.0.255
R3(config-crypto-map)#set peer 200.0.20.1
應用到接口
R3(config)#int f0/0
R3(config-if)#crypto map sjzz-map
配置PAT使R3連接配接的内網可以通路internet:
R3(config)#access-list 101 deny ip 3.3.3.0 0.0.0.255 2.2.2.0 0.0.0.255
R3(config)#access-list 101 deny ip 3.3.3.0 0.0.0.255 1.1.1.0 0.0.0.255
R3(config)#access-list 101 permit ip 3.3.3.0 0.0.0.255 any
R3(config)#ip nat inside source list 101 interface f0/0 overload
R3(config-if)#ip nat outside
R3(config)#int loopback 0
R3(config-if)#ip nat inside
四.路由器R3的配置(接口IP):
ISP(config)#int f0/0
ISP(config-if)#ip add 200.0.20.2 255.255.255.252
ISP(config-if)#no sh
ISP(config-if)#int f1/0
ISP(config-if)#ip add 200.0.30.2 255.255.255.252
ISP(config-if)#int f2/0
ISP(config-if)#ip add 200.0.10.2 255.255.255.252
ISP(config-if)#no sh
五.驗證:
1.虛拟PC的IP如下:
2.測試×××建立後,總公司A與分公司B、分公司C、Internet之間的連通性:
3.測試×××建立後,分公司B與總公司A、分公司C、Internet之間的連通性:
4.測試×××建立後,分公司C與總公司A、分公司B、Internet之間的連通性:
測試全部完成,站點到站點之間的×××建立成功!