Cisco路由器VPN配置

galdys發表於2011-08-12
一、hostrouter
1、實驗網路拓撲:

pc(vpn client 4.01)---switch---router1720 (vpn access server)

pc配置:
ip:10.130.23.242/28 
gw:10.130.23.246 
1720介面ip:
f0:10.130.23.246/28
lo0:172.16.1.1/24 
1720的ios為c1700-k93sy7-mz.122-8.T5.bin

2、步驟:
1、配置isakmp policy:
crypto isakmp policy 1
encr 3des 
authen pre-share
group 2
2、配置vpn client地址池
cry isa client conf address-pool local pool192
ip local pool pool192 192.168.1.1 192.168.1.254
3、配置vpn client有關引數
cry isa client conf group vclient-group 
####vclient-group就是在vpn client的連線配置中需要輸入的group authentication name。
key vclient-key
####vclient-key就是在vpn client的連線配置中需要輸入的group authentication password。
pool pool192 ####client的ip地址從這裡選取
####以上兩個引數必須配置,其他引數還包括domain、dns、wins等,根據情況進行配置。
4、配置ipsec transform-set
cry ipsec trans vclient-tfs esp-3des esp-sha-hmac
5、配置map模板
cry dynamic-map template-map 1
set transform-set vclient-tfs ####和第四步對應
6、配置vpnmap
cry map vpnmap 1 ipsec-isakmp dynamic template-map 
#### 使用第?*腳渲玫?map 模板
cry map vpnmap isakmp author list vclient-group ####使用第三步配置的引數authorization
cry map vpnmap client conf address respond ####響應client分配地址的請求
7、配置靜態路由
ip route 192.168.1.0 255.255.255.0 fastethernet0

3、說明幾點:
(1)因為1720只有一個fastethernet口,所以用router1720上的lo0地址來模擬router內部網路。
(2)vpn client使用的ip pool地址不能與router內部網路ip地址重疊。
(3)10.130.23.0網段模擬公網地址,172.16.1.0網段用於1720內部地址,192.168.1.0網段用於vpn通道。
(4)沒有找到設定vpn client獲取的子網掩碼的辦法。看來是ios還不支援這個功能。
(5)關於split tunnel。配置方法:首先,設定access 133 permit ip 172.16.1.0 0.0.0.255 any,允許1720本地網路資料通過tunnel,然後在第三步驟中新增一個引數:acl 133。

4、附1720的完整配置:

VPN1720#sh run
Building configuration...

Current configuration : 1321 bytes
!
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname VPN1720
!
enable secret 5 $1$aNmA$b0AqzlCr3MfM5XU0IAmED.
!
mmi polling-interval 60
no mmi auto-configure
no mmi pvc
mmi snmp-timeout 180
ip subnet-zero
!
!
no ip domain-lookup
!
ip audit notify log
ip audit po max-events 100
!
crypto isakmp policy 1
encr 3des
authentication pre-share
group 2
crypto isakmp client configuration address-pool local pool192
!
crypto isakmp client configuration group vclient-group
key vclient-key
domain test.com
pool pool192
!
!
crypto ipsec transform-set vclient-tfs esp-3des esp-sha-hmac
!
crypto dynamic-map template-map 1
set transform-set vclient-tfs
!
!
crypto map vpnmap isakmp authorization list vclient-group
crypto map vpnmap client configuration address respond
crypto map vpnmap 1 ipsec-isakmp dynamic template-map
!
!
!
!
interface Loopback0
ip address 172.16.1.1 255.255.255.240
!
interface FastEthernet0
ip address 10.130.23.246 255.255.255.240
speed auto
crypto map vpnmap
!
interface Serial0
no ip address
shutdown
!
ip local pool pool192 192.168.1.1 192.168.1.254
ip classless
ip route 192.168.1.0 255.255.255.0 FastEthernet0
no ip http server
ip pim bidir-enable
!
!
!
!
line con 0
line aux 0
line vty 0 4
!
no scheduler allocate
end

VPN Client 4.01的配置:
新建一個connection entry,引數中name任意起一個,host填入vpn access server的f0地址10.130.23.246,
group auahentication中name填vclient-group,password填vclient-key.

5、測試:
(1)在pc上執行VPN client,連線vpn access server。
(2)ipconfig/all,檢視獲取到的ip地址與其他引數。
(3)在router,show cry isa sa,看連線是否成功。
(4)從router,ping client已經獲取到的ip地址,通過。
(5)從client,ping router的lo0配置的地址172.16.1.1,通過。
(6)檢視vpn client軟體的status--statistics,可以看到加密與解密的資料量。
(7)1720上show cry ip sa, 也可以檢視加密與解密的資料量。


6、常用除錯 
show cry isakmp sa
show cry ipsec sa
clear cry sa
clear cry isakmp
debug cry isakmp #####這是最常用的debug命令,vpn連線的基本錯誤都可以用它來找到
debug cry ipsec
easy vpn client的配置(network-extension mode

實驗網路拓撲:

router3662(vpn client)---switch---router1720 (vpn access server)
pc (vpn client 4.01)------|

3662介面ip:
f0/0:10.130.23.244/28 
f0/1:172.16.2.1/24 
1720介面ip:
f0:10.130.23.246/28
lo0:172.16.1.1/24 
pc配置:
ip:10.130.23.242/28 
gw:10.130.23.246
1720的ios為c1700-k93sy7-mz.122-8.T5.bin
3662的ios為c3660-jk9o3s-mz.123-1a.bin

步驟:
1、配置1720路由器,參照實驗一,設定為vpn server。
2、配置3662路由器,設定vpn client引數
cry ip client ezvpn vclient ####定義crypto-ezvpn name
mode network-extension ####設定為網路擴充套件模式
group vclient-group key vclient-key ####設定登入vpn server的組名與組口令
peer 10.130.23.246 ####設定vpn server的ip地址,如果啟用dns,則可以用hostname
connect auto ####設定為自動連線。如果設為手動,則必須使用cry ip client ezvpn connect vclient命令來啟動vpn通道。
local-address F0/0 ####設定vpn通道本地地址,選用f0/0,可以保證vpn server找到它
3、定義加密資料入口,這裡為f0/1
inter f0/1
cry ip client ezvpn vclient inside
4、定義加密資料出口,這裡為連線vpn server的f0/0
inter f0/0
cry ip client ezvpn vclient outside
5、在1720上設定靜態路由,地址範圍為3662路由本地網路的地址
ip route 172.16.2.0 255.255.255.0 f0
6、設定ip dhcp服務 ####cisco推薦使用dhcp來進行本地網路ip的分配。此步驟可選。
service dhcp ####啟動dhcp 服務
ip dhcp pool dhcppool ####定義dhcp pool name
network 172.16.2.0 /24 ####定義可分配的IP地址段
default-router 172.16.2.1 ####定義dhcp client的預設閘道器
lease 1 0 0 ####設定ip保留時間
import all ####如果配置了上級dhcp,server,則接受其所有引數
ip dhcp excluded-address 172.16.2.1 ####將router上的地址排除


測試:
(1)配置好3662上的vpn client後,自動進行vpn連線。可以通過debug cry isa、deb cry ip client ezvpn、deb cry ip等debug命令輸出的資訊檢視過程與結果。
(2)在1720上擴充套件ping,source 10.130.23.246 destination 172.16.2.1,通過。檢視show cry ip sa,可以發現資料沒有進行加密。
(3)在1720上擴充套件ping,source 172.16.1.1 destination 172.16.2.1,通過。檢視show cry ip sa,可以發現資料通過加密進行傳輸。
(4)在3660上擴充套件ping,source 172.16.2.1 destination 172.16.1.1,通過。檢視show cry ip sa,可以發現資料通過加密進行傳輸。
(5)在3660上擴充套件ping,source 10.130.23.244 destination 172.16.1.1,不通。檢視show cry ip sa,可以發現資料不通過加密。
(6)啟動pc vpn client,ping 172.16.1.1,通過。在1720上檢視show cry ip sa,可以看到資料通過加密進行傳輸。
(7)在pc vpn client,ping 172.16.2.1,通過。在1720和3662上檢視show cry ip sa,可以看到資料通過加密進行傳輸。在1720上show cry isa sa,可以看到兩個vpn連線。
(8)在3660上擴充套件ping,source 172.16.2.1 destination 192.168.1.10(pc vpn client獲得的ip),通過。檢視show cry ip sa,可以發現資料通過加密進行傳輸。

說明:
(1)不同平臺,不同ios版本,easy vpn client的配置有所不同。特別是加密資料入出介面的配置,配置介面前後,用show cry ip client ezvpn來檢視與驗證。
(2)network-extension模式,vpn server和vpn client兩端的內部網路之間可以通過ip地址互相訪問。
(3)以上配置均沒有啟用split tunnel。設定split tunnel的方法:首先參考實驗(一),設定acl 133和cry isa client conf group中的引數,完成後,可以實現測試(1)-(5)。要實現Pc vpn client和3662 vpn client 互通,即測試(6)-(8),還要在1720 的acl 133中新增兩條,分別是access 133 permit ip 192.168.1.0 0.0.0.255 any、access 133 permit ip 172.16.2.0 0.0.0.255 any。
(4)修改1720配置後,需要復位vpn通道,才可以起作用。在pc端,是通過disconnect再connect來實現;在3662上,通過clear cry ip client ezvpn來複位。


常用除錯命令:
show cry ip client ezvpn
clear cry ip client ezvpn
deb cry ip client ezvpn
show cry ip sa
deb cry isa
show cry isa sa

三、easy vpn client的配置(client mode

實驗網路拓撲同實驗(二)

實驗步驟參考實驗(二),其中第二步,將mode network-extension改為mode client。

測試:
(1)配置好3662上的vpn client後,自動進行vpn連線。可以通過debug cry isa、deb cry ip client ezvpn、deb cry ip等debug命令輸出的資訊檢視過程與結果。
(2)在1720上擴充套件ping,source 10.130.23.246 destination 172.16.2.1,不通。
(3)在1720上擴充套件ping,source 172.16.1.1 destination 172.16.2.1,不通。這是因為3662端ip資料流是通過nat進行傳輸。
(4)在3660上擴充套件ping,source 172.16.2.1 destination 172.16.1.1,通過。檢視show cry ip sa,可以發現資料通過加密進行傳輸。在1720上開啟deb ip icmp,可以看到echo reply資訊的dst地址為192.168.1.19(vpn client 從vpn server獲取的ip地址)。
(5)在3660上擴充套件ping,source 10.130.23.244 destination 172.16.1.1,不通。

說明:
(1)client 模式,vpn client端內部網路採用nat方式與vpn server進行通訊,vpn client端網路可以訪問server端網路資源,server端網路不能訪問client端內部網路資源。
(2)client與network-extension兩種模式,show cry ip sa,可以看到local ident是不同的。
(3)client模式下,用show ip nat statistics,可以看到nat的配置與資料流量。
(4)關於split tunnel,client模式的easy vpn client,與pc的vpn client類似,配置split tunnel的方法也相同。

常用除錯命令:
show cry ip client ezvpn
clear cry ip client ezvpn
deb cry ip client ezvpn
show cry ip sa
deb cry isa
show cry isa sa
show ip nat statistics
四、site to site vpn的配置(採用pre-share


實驗網路拓撲:

router3662---switch---router1720 

3662介面ip:
f0/0:10.130.23.244/28 
f0/1:172.16.2.1/24 
1720介面ip:
f0:10.130.23.246/28
lo0:172.16.1.1/24 
1720的ios為c1700-k93sy7-mz.122-8.T5.bin
3662的ios為c3660-jk9o3s-mz.123-1a.bin

步驟:
以1720為例進行配置
(1)配置靜態路由 ####在配置vpn之前,需要保證兩方的網路可以互相訪問。
ip route 172.16.2.0 255.255.255.0 10.130.23.244
(2)定義加密資料的acl
access 144 permit ip 172.16.1.0 0.0.0.255 172.16.2.0 0.0.0.255
(3)定義isakmp policy
cry isa policy 1
authentication pre-share ####採用pre-share key進行驗證
####authentication引數必須配置,其他引數如group、hash、encr、lifetime等,如果進行配置,需要注意兩個路由器上的對應引數配置必須相同。
(4)定義pre-share key
cry isa key pre-share-key address 10.130.23.244
####其中pre-share-key 為key,兩個路由器上要一樣
####其中10.130.23.244為peer路由器的ip地址。
(5)定義transform-set
cry ipsec transform-set vpn-tfs esp-3des esp-sha-hmac
####其中vpn-tfs為transform-set name,後面兩項為加密傳輸的演算法
mode transport/tunnel #####tunnel為預設值,此配置可選
(6)定義crypto map entry
cry map vpn-map 10 ipsec-isakmp
####其中vpn-map為map name,10 是entry 號碼,ipsec-isakmp表示採用isakmp進行金鑰管理
match address 144 ####定義進行加密傳輸的資料,與第二步對應
set peer 10.130.23.244 ####定義peer路由器的ip
set transform-set vpn-tfs ####與第?*蕉雜?br />; ####如果一個介面上要對應多個vpn peer,可以定義多個entry,每個entry對應一個peer
(7)將crypto map應用到接諫?br />; inter f0 #####vpn通道入口
cry map vpn-map
(8)同樣方法配置3662路由器。

1720的完整配置:
VPN1720#sh run
Building configuration...

Current configuration : 1217 bytes
!
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname VPN1720
!
logging buffered 4096 debugging
no logging rate-limit
enable password CISCO
!
username vclient1 password 0 vclient1
mmi polling-interval 60
no mmi auto-configure
no mmi pvc
mmi snmp-timeout 180
ip subnet-zero
!
!
ip domain-name fjbf.com
!
ip audit notify log
ip audit po max-events 100
!
crypto isakmp policy 1
encr 3des
authentication pre-share
group 2
crypto isakmp key pre-share-key address 10.130.23.244
!
!
crypto ipsec transform-set vpn-tfs esp-3des esp-sha-hmac
!
crypto map vpn-map 10 ipsec-isakmp
set peer 10.130.23.244
set transform-set vpn-tfs
match address 144
!
!
!
!
interface Loopback0
ip address 172.16.1.1 255.255.255.0
!
interface FastEthernet0
ip address 10.130.23.246 255.255.255.240
speed auto
crypto map vpn-map
!
interface Serial0
no ip address
encapsulation ppp
no keepalive
no fair-queue
!
ip classless
ip route 172.16.2.0 255.255.255.0 10.130.23.244
no ip http server
ip pim bidir-enable
!
!
access-list 144 permit ip 172.16.1.0 0.0.0.255 172.16.2.0 0.0.0.255
!
!
line con 0
exec-timeout 0 0
speed 115200
line aux 0
line vty 0 4
login
!
end

測試:
(1)未將map應用到介面之前,在1720,擴充套件ping,source 10.130.23.246 destination 172.16.2.1,通過。擴充套件ping,source 172.16.1.1 destination 172.16.2.1,通過。
(2)map應用到介面之後,在1720,擴充套件ping,source 10.130.23.246 destination 172.16.2.1,通過。檢視show cry ip sa,可以看到資料沒有通過vpn 通道進行傳輸,因為不符合acl 144。
(3)map應用到介面之後,在1720,擴充套件ping,source 172.16.1.1 destination 172.16.2.1,通過。檢視show cry ip sa,可以看到資料通過vpn 通道進行傳輸。
(4)在3662上同樣進行測試。

說明:
(1)採用pre-share方式加密資料,配置簡單,資料傳輸效率較高,但是安全性不高。
(2)加密資料前後,通過ping大包的方式測試,可以發現這種利用軟體進行資料加密的方式,延時較大。如果需要開展voip、ip 視訊會議等業務,建議選配vpn模組進行硬體加密。

常用除錯命令:
show cry isa sa
show cry ip sa
show cry engine configuration
show cry engine connections active
show cry engine connections flow
deb cry isa
deb cry ip
五、site to site vpn的配置(採用rsa-encrypted

實驗網路拓撲:

router3662---switch---router1720 

3662介面ip:
f0/0:10.130.23.244/28 
f0/1:172.16.2.1/24 
1720介面ip:
f0:10.130.23.246/28
lo0:172.16.1.1/24 
1720的ios為c1700-k93sy7-mz.122-8.T5.bin
3662的ios為c3660-jk9o3s-mz.123-1a.bin

步驟:
以1720為例進行配置
(1)配置靜態路由 ####在配置vpn之前,需要保證兩方的網路可以互相訪問。
ip route 172.16.2.0 255.255.255.0 10.130.23.244
(2)定義加密資料的acl
access 144 permit ip 172.16.1.0 0.0.0.255 172.16.2.0 0.0.0.255
(3)生成rsa key
cry key generate rsa general-keys ####生成General Purpose rsa Key
或者 cry key generate rsa usage-keys ####分別生成rsa signing key和rsa encryption key
這裡 統一用general purpose key
(4)複製peer router的public key到本地router中
(A)在3662上生成general purpose key
(B)在3662上show cry key mypubkey rsa,複製其中的General Purpose Key
(C)在1720上,cry key pubkey-chain rsa ####設定public key
addressed-key 10.130.23.244 ####設定關聯10.130.23.244ip地址的key
key-string ####定義key串
貼上從3662上覆制的General Purpose Key
#####如果第三步生成了兩種key,則這裡複製貼上的,應該是Encryption Key(三個key中的第二個)
(5)定義isakmp policy
cry isa policy 1
authentication rsa-encr ####採用rsa Encryption key進行驗證
####authentication引數必須配置,其他引數如group、hash、encr、lifetime等,如果進行配置,需要注意兩個路由器上的對應引數配置必須相同。
(6)定義transform-set
cry ipsec transform-set vpn-tfs esp-3des esp-sha-hmac
####其中vpn-tfs為transform-set name,後面兩項為加密傳輸的演算法
mode transport/tunnel #####tunnel為預設值,此配置可選
(7)定義crypto map entry
cry map vpn-map 10 ipsec-isakmp
####其中vpn-map為map name,10 是entry 號碼,ipsec-isakmp表示採用isakmp進行金鑰管理
match address 144 ####定義進行加密傳輸的資料,與第二步對應
set peer 10.130.23.244 ####定義peer路由器的ip
set transform-set vpn-tfs ####與第?*蕉雜?br />; ####如果一個介面上要對應多個vpn peer,可以定義多個entry,每個entry對應一個peer;同樣,pubkey也要對應進行設定。
(7)將crypto map應用到介面上
inter f0 #####vpn通道入口
cry map vpn-map
(8)同樣方法配置3662路由器。


1720完整配置:

VPN1720#sh run
Building configuration...

Current configuration : 1490 bytes
!
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname VPN1720
!
logging buffered 4096 debugging
no logging rate-limit
enable password CISCO
!
username vclient1 password 0 vclient1
mmi polling-interval 60
no mmi auto-configure
no mmi pvc
mmi snmp-timeout 180
ip subnet-zero
!
!
ip domain-name fjbf.com
!
ip audit notify log
ip audit po max-events 100
!
crypto isakmp policy 1
encr 3des
authentication rsa-encr
group 2
!
!
crypto ipsec transform-set vpn-tfs esp-3des esp-sha-hmac
!
crypto key pubkey-chain rsa
addressed-key 10.130.23.244
address 10.130.23.244
key-string
305C300D 06092A86 4886F70D 01010105 00034B00 30480241 00BF3672 CB4D69EF
D131C023 C93EA4C5 7E09FBDB 23E9F910 EF04344A 2A4D1956 4E49DADC 5FAAE102
DBEDE13D 7911B1AD 23545B13 8EBB4791 E527B259 F87E605F 2D020301 0001
quit
!
crypto map vpn-map 10 ipsec-isakmp
set peer 10.130.23.244
set transform-set vpn-tfs
match address 144
!
!
!
!
interface Loopback0
ip address 172.16.1.1 255.255.255.0
!
interface FastEthernet0
ip address 10.130.23.246 255.255.255.240
speed auto
crypto map vpn-map
!
interface Serial0
no ip address
encapsulation ppp
no keepalive
no fair-queue
!
ip classless
ip route 172.16.2.0 255.255.255.0 10.130.23.244
no ip http server
ip pim bidir-enable
!
!
access-list 144 permit ip 172.16.1.0 0.0.0.255 172.16.2.0 0.0.0.255
!
!
line con 0
exec-timeout 0 0
speed 115200
line aux 0
line vty 0 4
login
!
end


說明:
(1)採用rsa encrypted方式加密傳輸資料,預設key長度為512位元組,最高可設為2048位元組。安全效能較高。
(2)100M雙工交換網路中,在雙向同時ping 15000位元組的大包進行測試時,1720的cpu使用率一度高達90%左右,3662的使用率約為25%,兩臺路由器記憶體使用率則變化不大。可見用rsa encrypted方式加密,對低端路由器的cpu效能影響很大。

常用除錯命令:
show cry ip sa
show cry isa sa
deb cry isa
deb cry ip
clear cry isa
clear cry sa

相關文章