基于思科模拟器Packet Tracer 的Site-to-Site IPSec VPN 仿真分析
2023-12-04臧红波周文卓
华 拓,臧红波,周文卓
(无锡职业技术学院 江苏 无锡 214121)
0 引言
互联网安全协议(internet protocol security,IPSec)是IETF 在1998 年11 月制定的,主要针对的是如何保证IP站点间的安全性。 该协议运行在网络层,能保障IP 数据包的高质量性、保密性和可操作性[1]。
由于IPSec VPN 是网络层的虚拟专用网络(virtual private network,VPN)技术[2],是随着IPv6 制定而产生的,鉴于IPv4 的应用仍然很广泛,所以在IPSec 制定中也增加了对IPv4 的支持,它独立于应用程序;通过使用现代密码学方法支持保密和认证服务,使用户能有选择地使用。IPSec VPN 应用场景有很多种,本文主要研究其中一种,即站点到站点的应用场景。
1 IPSec VPN 封装与解封
下面以图1 所示拓扑结构为例,说明Site to Site IPSec VPN 封装与解封的过程。
图1 Site to Site IPSec VPN 封装与解封拓扑
假设PC1 对PC2 发出访问请求,发出原始数据包,当该数据包通过Fa0/0 进入Router1 后,Router1 开始进行路由处理,但内网IP 无路由。 Router1 根据访问控制列表(access control lists,ACL)技术识别VPN 数据,若是感兴趣流,则交给IPSec 驱动程序进行封装,IPSec 驱动程序根据安全联盟(Security Association,SA)中定义的安全协议、加密算法、验证算法对数据进行封装,之后建立VPN 隧道,建立成功后进行数据传输,Router1 根据新IP 数据包目的地址进行路由转发。 R2 通过S0/0/0 收到隧道传来的数据包后,发现数据包目的地址与接口地址相同,则接收并去除IP 头,根据IP 包头信息交与相应IPSec 驱动程序处理。 驱动程序根据SA 中定义的参数对数据包进行解密、验证。
2 Site to Site IPSec VPN 仿真
2.1 任务环境准备
本次任务使用的环境为windows 7 旗舰版SP1 操作系统、Packet Tracer 软件版本为6.2.0.0052,交换机IOS 采用12.2(25) FX 版本,路由器IOS 采用15.1(4) M4版本[3]。
2.2 熟悉任务网络
环境网络结构如图2 所示,左侧网络包括一台路由器、一台交换机和两个终端用户,用于模拟内部网络1;右侧网络包含一台路由器、一台交换机和两个终端用户,用于模拟内部网络2;中间一台路由器用于模拟网络业务提供商(internet service provider,ISP)。
图2 Site to Site IPSec VPN 配置拓扑
2.3 VPN 实现下列要求
(1) 配置ACL、 网络地址转换(network address translation,NAT),切断内网用户之间的直接通信;
(2)Router0、Router1 配置上Site to Site IPSec VPN,恢复内网用户之间的通信。
3 Site to Site IPSec VPN 配置与应用
根据图2 搭建网络拓扑,并按照图上标明的IP 地址配置好所有网络设备的地址,然后设置路由,搭建完毕后再测试下全网的连通性。
配置IPSec VPN,在Router0、Router1 上设置互联网密钥交换协议(internet key exchange,IKE)参数,策略优先级为1。 要求:双方策略一致,预共享验证、用数据加密标准(data encryption standard,DES)加密、MD5 验证,预验证密钥设置为wxit。 Router0 主要配置命令(部分命令为简写)[4]如例1 所示:
例1 IKE 参数配置
运行show crypto isakmp policy 命令后会显示上述配置。 该配置要保证在两端设备上保持一致。
在Router0、Router1 上开启IPSec 隧道模式和感兴趣数据。 配置如下:隧道名为wxitvpn,安全有效载荷(encapsulated security payload,ESP) 封装,MD5 验证。Router0 主要配置命令[5](部分命令为简写)如例2 所示。
例2 配置IPSec 隧道模式和感兴趣数据在Router0、Router1 两个设备上配置VPN 映射,并把VPN 映射设置在Router0、Router1 两个设备的外网接口上。 Router0 主要配置命令(部分命令为简写)如例3所示。
例3 设置VPN 映射并应用
4 测试
配置结束后,利用PING 命令测试PC0 和PC3 是否相通,结果显示ping 不通,分析原因可能是网络地址转换(network address translation,NAT)和IPsec 产生了冲突。因为数据包在传输的过程中会先进行网络地址转换,然后再添加IPSec 协议进行封装,所以想要成功地进行IPSec通信必须先让IPSec 封装的数据流不进行网络地址转换。可以利用NAT 访问控制列表的命令对IPsec 数据流进行“拒绝”设置,从而解决NAT 与IPSec 的冲突,实现的具体代码如下;
access-list 101 deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
access-list 101 permit ip 192.168.1.0 0.0.0.255 any
配置结束测试PC0 和PC3 连通性、追踪PC0 到PC3的路由,观察显示信息并记录,并观察VPN 隧道里是否有追踪的数据通过。 图3 显示了追踪PC0 到PC3 的路由的结果,运营商网络的细节在结果中并未出现,这证明了数据直接到达了目的地址并未经过VPN 隧道。
图3 Site to Site IPSec VPN Tracert 测试
图4显示了配置完成后路由器Router0 的show crypto isakmp sa 结果。 结果显示state 状态栏下显示的是QM_IDLEVPN。 这表示VPN 连接已经建立。
图4 show crypto isakmp sa 命令测试
在Router0、Router1 上使用show crypto map 命令对VPN 的建立情况进行查看。 图5 显示了配置完成后路由器Router0 的show crypto isakmp sa 命令的结果。 运行Crypto map 命令后显示如下: 对端(Peer) 地址为210.28.144.2,access-list 110 允许数据通过的网段为192.168.1.0 和192.168.2.0,交换集为wxitvpn,应用的接口为Serial0/3/0。
图5 show crypto map 命令测试
进入仿真模式,测试PC0 与PC3 连通性,单步运行,直到在“Simulation Panel”面板中的“Last Device”项为“Switch0”,“At Device”项为“Router0”的数据包。 查看该数据包的“Inbound PDU Details” 和“Outbound PDU Details”参数,显示结果如图6 所示。
图6 查看PDU Details
观察可知,进入Router0 的数据包协议号为0x1,出Router0 的数据包协议号为0x32。 十六进制0x32 换算成十进制为50,协议号50 代表的就是ESP 封装。
观察图6(a),可知封装前的数据包源IP 地址为192.168.1.1,目的IP 地址为192.168.2.2。 观察图6(b),封装后在原IP 头之前增加了新的IP 头和ESP 头,在新的IP 头中源IP 地址为58.1.1.1,目的IP 地址为210.28.144.2,IPSec 封装已经完成。 ESP 头中的信息显示:ESP 的安全参数索引为427645417,ESP 序号为10,ESP 加密方法为DES,ESP 认证方法为MD5。
解封过程与封装过程相同,继续跟踪仿真模式下的数据包即可[6]。
5 结语
综上所述,当下越来越多的企业在异地建立分支机构,各个分支机构可以使用各地网关相互建立VPN 隧道,企业内网之间的数据通过这些网关建立的IPSec VPN 隧道就可以实现安全互联。 这样既解决了统一管理资源的问题,又使得企业资源的安全性很大程度上得到了保障。