路由上实现IPsec vpn和NAT
随道Internet的不断普及,低廉的上网费用促使越来越多的企业选择了通过VPN来实现远程连接,相比专线、帧中继、ATM等传统广域网连接,VPN不但成本要低出很多,而且安全性方面也不亚于它们,今天我们主要来介绍一下利用路由器来实现IPsec VPN站点到站点的远程连接,同时利用NAT实现上Internet
实验设备:锐捷路由器三台
实验拓扑:
拓扑介绍:
R1和R2路由器模拟公司两地的远程接点,R3路由器模拟Internet
实验过程:
一、基本配置
R1路由:
R1(config)#int f0/0
R1(config-if)#ip address 13.0.0.1 255.0.0.0 配置接口IP地址
R1(config-if)#no shutdown
R1(config)#int loopback 0
R1(config-if)#ip address 192.168.1.1 255.255.255.0 配置回环地址供测试
R1(config)#ip route 0.0.0.0 0.0.0.0 13.0.0.3 设置默认静态路由出去
R3路由:
R3(config)#int f0/0
R3(config-if)#ip address 13.0.0.3 255.0.0.0 配置接口IP地址
R3(config-if)#no shutdown
R3(config)#int f0/1
R3(config-if)#ip add 23.0.0.3 255.0.0.0 配置接口IP地址
R3(config-if)#no shutdown
R2路由:
R2(config)#int f0/0
R2(config-if)#ip address 23.0.0.2 255.0.0.0 配置接口IP地址
R2(config-if)#no shutdown
R2(config)#int loopback 0
R2(config-if)#ip address 172.16.1.1 255.255.0.0 配置回环地址供测试
R2(config)#ip route 0.0.0.0 0.0.0.0 23.0.0.3 设置默认静态路由出去
二、VPN配置
第一步 配置IKE协商
R1(config)#crypto isakmp policy 100 建立IKE协商策略
R1(config-isakmap)# authentication pre-share 设置路由要使用的预先共享的密钥
R1(config)# crypto isakmp key jxxh address 23.0.0.2 设置共享密钥和对端地址 jxxh是密钥
R2(config)#crypto isakmp policy 100 建立IKE协商策略
R2(config-isakmap)# authentication pre-share 设置路由要使用的预先共享的密钥
R2(config)# crypto isakmp key jxxh address 13.0.0.1 设置共享密钥和对端地址 jxxh是密钥
第二步 配置IPSEC相关参数
R1(config)# crypto ipsec transform-set jxxhset esp-des 配置传输模式以及验证的算法和加密的的算法jxxhset这里是给这个传输模式取个名字
R1(config)# access-list 101 permit ip 192.168.1.0 0.0.0.255 172.16.0.0 0.0.255.255这里是定义访问控制列表
R2(config)# crypto ipsec transform-set jxxhset esp-des 两边的传输模式的名字要一样
R2(config)# access-list 101 permit ip 172.16.0.0 0.0.255.255 192.168.1.0 0.0.0.255
第三步 应用配置到接口
R1(config)#crypto map jxxhmap 110 ipsec-isakmp 采用IKE协商,优先级为110 这里的jxxhmap是一个表的名字
R1(config-crypto-map)#set peer 23.0.0.2 指定VPN链路对端的IP地址
R1(config-crypto-map)#set transform-set jxxhset指定先前所定义的传输模式
R1(config-crypto-map)#match address 101 指定使用的反问控制列表,这里的MATCH是匹配的意思
R1(config)# int f0/0
R1(config-if)# crypto map jxxhmap 应用此表到端口
R2(config)#crypto map jxxhmap 110 ipsec-isakmp 采用IKE协商,优先级为110 这里的jxxhmap是一个表的名字
R2(config-crypto-map)#set peer 13.0.0.1 指定VPN链路对端的IP地址
R2(config-crypto-map)#set transform-set jxxhset指定先前所定义的传输模式
R2(config-crypto-map)#match address 101 指定使用的反问控制列表,这里的MATCH是匹配的意思
R2(config)# int f0/0
R2(config-if)# crypto map jxxhmap 应用此表到端口
三、验证
好的,配到这里我们就已经完成IPSEC VPN的配置,接下来我们可以验证一下
R1#ping 172.16.1.1 source 192.168.1.1
!!!!!
结果为ping通,表明VPN已经完成,同时我们还可以使用show命令查看crypto状态
R1#show crypto ipsec sa
R1#show crypto isakmp sa
R1# show crypto isakmp policy
接下来,我们再测试一下能否ping通外网
R1#ping 13.0.0.3 source 192.168.1.1
…..
不通,原因很简单,因为现在还没做NAT,R3的并不知道192.168.1.0这个私有网络号该如何到达
四、NAT配置
R1(config)#access list 102 deny ip 192.168.1.0 0.0.0.255 172.16.0.0 0.0.255.255 这是关键所在,否则VPN将失效
R1(config)#access list 102 permit ip any any
R1(config)#ip nat inside source list 102 int f0/0 overload 配置NAT
R1(config)#int f0/0
R1(config)#ip nat outside
R1(config)#int lo 0 真实环境建议用物理接口
R1(config)#ip nat inside
R2(config)#access list 102 deny ip 172.16.0.0 0.0.255.255 192.168.1.0.0.0.0.255 这是关键所在,否则VPN将失效
R2(config)#access list 102 permit ip any any
R2(config)#ip nat inside source list 102 int f0/0 overload 配置NAT
R2(config)#int f0/0
R2(config)#ip nat outside
R2(config)#int lo 0 真实环境建议用物理接口
R2(config)#ip nat inside
小结:在这个实验中,关键是ip sec vpn 和NAT的访问控制列表不能冲突,前往对方私用网络的源IP不要转换成公网IP,而去公网的源地址则转换

最新评论