【思科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
没问题了,实验结束。