【思科VPN知识】IPsec VPN基本部署
实验目的:如图,R1,R3分别为甲公司下2个子公司的出口路由器,R2为运营商路由器(公网)。通过部署IPsec VPN使子公司A和子公司B下的内网可以互通。
R2作为公网上的路由器,不可能获知公司内网的IP地址,这时候需要部署一条“隧道”,保证子公司之间的私网可以互相通信,不仅可以加快传输效率,还可以保证网络的安全性,这就是VPN部署的目的。
实验步骤:
进行基本配置,通过环回口来模拟内网地址。
- R1
 - R1#conf t
 - R1(config)#int f0/0
 - R1(config-if)#ip add 12.0.0.1 255.255.255.0
 - R1(config-if)#no sh
 - R1(config-if)#int l0
 - R1(config-if)#ip add 192.168.1.1 255.255.255.0
 - R1(config-if)#no sh
 - R1(config-if)#ex
 - R1(config)#ip route 0.0.0.0 0.0.0.0 12.0.0.2
 - R2
 - R2#conf t
 - R2(config)#int f0/1
 - R2(config-if)#ip add 12.0.0.2 255.255.255.0
 - R2(config-if)#no sh
 - R2(config-if)#int f0/0
 - R2(config-if)#ip add 23.0.0.2 255.255.255.0
 - R2(config-if)#no sh
 - R3
 - R3#conf t
 - R3(config)#int f0/1
 - R3(config-if)#ip add 23.0.0.3 255.255.255.0
 - R3(config-if)#no sh
 - R3(config-if)#int l0
 - R3(config-if)#ip add 192.168.3.1 255.255.255.0
 - R3(config-if)#no sh
 - R3(config-if)#ex
 - R3(config)#ip route 0.0.0.0 0.0.0.0 23.0.0.2
 
2.进行IPsec 配置
R1
首先定义一条ACL,用于匹配VPN路由
- R1(config)#access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255
 - R1(config)#crypto isakmp policy 1 //配置安全策略,数字表示优先级
 - R1(config-isakmp)# encr 3des //告诉对端使用的对称加密算法
 - R1(config-isakmp)# hash md5 //hash算法
 - R1(config-isakmp)# authentication pre-share //认证算法
 - R1(config-isakmp)# group 2 //DH组
 - R1(config-isakmp)# lifetime 60 //生存周期
 - R1(config-isakmp)#crypto isakmp key benet address 23.0.0.3 //预共享密码设置为benet,地址为
 - 对端R3路由器地址
 - R1(config)#crypto ipsec transform-set bset esp-3des esp-sha-hmac //配置传输集beset,设
 - 置对数据的加密方式
 - R1(cfg-crypto-trans)#crypto map bmap 10 ipsec-isakmp //定义crypto map调用感兴趣流量并且设
 - 置传输集。
 - R1(config-crypto-map)# set peer 23.0.0.3 //指定对端IP
 - R1(config-crypto-map)# set transform-set bset //调用传输集beset
 - R1(config-crypto-map)# match address 101 //调用ACL列表101
 
如上,R1的基本配置已经完成,接着需要将配置应用在外网口上。
- R1(config)#int f0/0
 - R1(config-if)#duplex auto
 - R1(config-if)#speed auto
 - R1(config-if)#crypto map bmap //应用刚才设置的map bmap
 
R3上也做一样的配置,只是要将对端的IP设置为R1的外网口
- R3(config)#access-list 101 permit ip 192.168.3.0 0.0.0.255 192.168.1.0 0.0.0.255
 - R3(config)#crypto isakmp policy 1
 - R3(config-isakmp)# encr 3des
 - R3(config-isakmp)# hash md5
 - R3(config-isakmp)# authentication pre-share
 - R3(config-isakmp)# group 2
 - R3(config-isakmp)# lifetime 60
 - R3(config-isakmp)#crypto isakmp key benet address 12.0.0.1
 - R3(config)#crypto ipsec transform-set bset esp-3des esp-sha-hmac
 - R3(cfg-crypto-trans)#crypto map bmap 10 ipsec-isakmp
 - R3(config-crypto-map)# set peer 12.0.0.1
 - R3(config-crypto-map)# set transform-set bset
 - R3(config-crypto-map)# match address 101
 - R3(config-crypto-map)#ex
 - R3(config)#int f0/1
 - R3(config-if)#duplex auto
 - R3(config-if)#speed auto
 - R3(config-if)#crypto map
 - bmap
 
IPsec VPN已经部署完毕,下面可以做测试了
- R1#ping 192.168.3.1 source 192.168.1.1
 - Type escape sequence to abort.
 - Sending 5, 100-byte ICMP Echos to 192.168.3.1, timeout is 2 seconds:
 - Packet sent with a source address of 192.168.1.1
 - !!!!!
 - Success rate is 100 percent (5/5), round-trip min/avg/max = 36/52/68 ms
 
已经通了。
有人说,这样就可以结束了吧?
但是忽略了一个问题,公司内网的员工部署了这个VPN,会与原先部署的NAT冲突。
原先的NAT应该是这样部署的
- R1(config)#access-list 1 permit ip 192.168.1.0 0.0.0.255
 - R1(config)#int l0
 - R1(config-if)#ip nat inside
 - R1(config-if)#int f0/0
 - R1(config-if)#ip nat outside
 - R1(config-if)#ex
 - R1(config)#ip nat inside source list 1 int f0/0 overload
 
这样一来,公司内网IP在出口路由器上会被转化成外网口地址12.0.0.1/24 ,这样就与IPsec VPN的设置(ACL101)冲突了。
- R1#p 192.168.3.1 source 192.168.1.1
 - Type escape sequence to abort.
 - Sending 5, 100-byte ICMP Echos to 192.168.3.1, timeout is 2 seconds:
 - Packet sent with a source address of 192.168.1.1
 - UUUUU www.19216811.la
 - Success rate is 0 percent (0/5)
 
不可达。
这时候需要对access-list 1做修改:
R1(config)#access-list 102 deny ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255
R1(config)#access-list 102 permit ip 192.168.1.0 0.0.0.255 any
R1(config)#ip nat inside source list 102 int f0/0 overload
这样,子公司A内网192.168.1.0/24网段访问子公司B192.168.3.0/24的网段就不会被NAT了
- R1#p 12.0.0.2 source 192.168.1.1
 - Type escape sequence to abort.
 - Sending 5, 100-byte ICMP Echos to 12.0.0.2, timeout is 2 seconds:
 - Packet sent with a source address of 192.168.1.1
 - !!!!!
 - Success rate is 100 percent (5/5), round-trip min/avg/max = 36/47/60 ms
 - R1#ping 192.168.3.1 source 192.168.1.1
 - Type escape sequence to abort.
 - Sending 5, 100-byte ICMP Echos to 192.168.3.1, timeout is 2 seconds:
 - Packet sent with a source address of 192.168.1.1
 - !!!!!
 - Success rate is 100 percent (5/5), round-trip min/avg/max = 36/52/68 ms
 
没问题了,实验结束。