實驗拓撲
目标
分公司172.16.10.0/24,網絡的主機可以通過×××通路總部伺服器10.10.33.0/24,但不能通路Internet
分公司的其它用戶端(172.16.0.0/24)可以通路Internet
實驗裝置
1、Cisco路由器(IOS為12.4)
2、客戶機3台,IP位址,見拓撲圖,F0/0連接配接外網
實驗步驟
R1上的配置
Router(config)#hostname R1
R1(config)#int f0/0
R1(config-if)#ip add 100.0.0.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#int f0/1
R1(config-if)#ip add 172.16.10.254 255.255.255.0
//配置預設路由
R1(config-if)#ip route 0.0.0.0 0.0.0.0 100.0.0.2
在IPSEC中,IKE被用來自動協商SA和密鑰,如果被關閉用crypto isakmp enable啟用
R1(config)#crypto isakmp policy 1 //建立IKE協商政策,編号為1
R1(config-isakmp)#encryption 3des //設定加密使用的算法為3DES
R1(config-isakmp)#hash sha //設定密鑰認證的算法為sha
R1(config-isakmp)#authentication pre-share //告訴router要先使用預共享密鑰,手工指定
R1(config-isakmp)#group 2
R1(config-isakmp)#lifetime 10000 //聲明SA的生存時間為10000,超過後SA将重新協商
R1(config-isakmp)#exit
R1(config)#crypto isakmp key 0 test address 100.0.0.2
//設定加密密鑰為test,要求二端的密碼相比對,和對端位址(總部Router位址)
配置通路控制清單
注意:
當一個路由器接收到發往另一個路由器的内部網絡封包時,IPSEC被啟動,通路清單被用于确定哪些業務 将啟動IKE和IPSEC協商
Crypto通路控制清單必須是互為鏡像的,如:R1加密了所有流向R2的TCP流量,則R2必須加密流回R1的所有TCP流量
R1(config)#access-list 100 permit ip 172.16.10.0 0.0.0.255 10.10.33.0 0.0.0.255
//定義從172.16.10.0網絡發往10.10.33.0的封包全部加密
//配置IPSEC傳輸模式,用于定義×××隧道的認證類型,完整性與負載加密
R1(config)#crypto ipsec transform-set vpn-set esp-des ah-sha-hmac
R1(cfg-crypto-trans)#mode tunnel //可選
R1(cfg-crypto-trans)#exit
R1(config)#crypto ipsec security-association lifetime seconds 1800 //定義生存周期1800秒
//配置caypt map(加密映射)
R1(config)#crypto map test-map 1 ipsec-isakmp //建立crypto map
//IPSEC-ISAKMP表示采用自動協調,名為test-map,編号1為優先級,越小優先級越高
R1(config-crypto-map)#set peer 100.0.0.2 //設定crypto map所對應的×××鍊路對端IP
R1(config-crypto-map)#set transform-set vpn-set //指定crypto map所使用傳輸模式名
R1(config-crypto-map)#match address 100 //指定此crypto map使用的通路控制清單
R1(config-crypto-map)#exit
//将映射應用到對應的接口上,×××就可生效了
R1(config-if)#crypto map test-map
//配置PAT
R1(config)#access-list 1 deny 172.16.10.0 0.0.0.255 //研發部不能通路Internet
R1(config)#access-list 1 permit 172.16.0.0 0.0.255.255 //其它部門可以通路Internet
R1(config)#ip nat inside source list 1 interface f0/0 overload //在F0/0上啟用PAT
R1(config-if)#ip nat outside
R1(config)#int f0/1
R1(config-if)#ip nat inside
R2上的配置(總部上路由器設定)
R2(config)#int f0/0
R2(config-if)#ip add 100.0.0.2 255.255.255.0
R2(config-if)#no sh
R2(config)#int f0/1
R2(config-if)#ip add 10.10.33.254 255.255.255.0
R2(config-if)#ip route 0.0.0.0 0.0.0.0 100.0.0.1
//IPSEC ×××的配置,含義與R1基本相同
R2(config)#crypto isakmp policy 1 //建立IKE協商政策,編号為1
R2(config-isakmp)#encryption 3des
R2(config-isakmp)#hash sha //設定密鑰認證的算法為sha
R2(config-isakmp)#authentication pre-share //告訴router要先使用預共享密鑰,手工指定
R2(config-isakmp)#group 2
R2(config-isakmp)#lifetime 10000
R2(config-isakmp)#exit
R2(config)#crypto isakmp key 0 test address 100.0.0.1
//設定共享密鑰為test,要求二端的密碼相比對,和對端位址(總部Router位址)
R2(config)#access-list 100 permit ip 10.10.33.0 0.0.0.255 172.16.10.0 0.0.0.255
//定義從10.10.33.0網絡發往172.16.10.0的封包全部加密
R2(config)#crypto ipsec transform-set vpn-set esp-des ah-sha-hmac //加密算法二邊要比對
R2(cfg-crypto-trans)#mode tunnel
R2(cfg-crypto-trans)#exit
R2(config)#crypto ipsec security-association lifetime seconds 1800
R2(config)#crypto map test-map 1 ipsec-isakmp
R2(config-crypto-map)#set peer 100.0.0.1 //設定crypto map所對應的×××鍊路對端IP
R2(config-crypto-map)#set transform-set vpn-set //指定crypto map所使用傳輸模式名
R2(config-crypto-map)#match address 100 //指定此crypto map使用的通路控制清單
R2(config-crypto-map)#exit
應用到接口,生效
R2(config-crypto-map)#int f0/0
R2(config-if)#crypto map test-map
相關驗證結果的檢視指令
顯示ISAKMP協商政策的結果
R2#sh crypto isakmp policy
檢視管理連接配接SA的狀态
R2#sh crypto isakmp sa
顯示IPSEC變換集
R2#sh crypto ipsec transform-set
顯示資料資料連接配接SA的細節資訊
R2#sh crypto ipsec sa