APP下载

单机环境下GRE与IPSecVPN实验仿真与分析

2018-11-16

实验室研究与探索 2018年10期
关键词:数据流报文数据包

杨 礼

(喀什大学 计算机科学与技术学院, 新疆 喀什 844006)

0 引 言

在路由交换技术课程的实践教学中,由于路由交换实验室的硬件设备数量有限,小组实验的模式无法保障每个学生的实验时间和实验效果。在单机环境中,通过利用GNS3软件构建虚拟网络实验室[1-3],较好地解决了在实验室中进行实验实训时的上述问题。虚拟实验室不仅能够完成基础类实验和复杂的路由实验,而且便于观察实验的操作过程和分析实验结果;虚拟实验室为学生的创新性实验和研究性实验提供平台,同时也为提高实验教学质量提供了有力的保障[4-5]。

虚拟专用网(Virtual Private Network,VPN)技术是一种基于Internet实现跨区域网络连接的技术,被应用于企业网和校园网,实现企业内部资源的共享。VPN技术成为高校培养工程型人才开设的路由交换技术课程的基本内容,VPN相关实验的实践成为学生学习网络技术的非常重要手段。本文以通用路由封装(Generic Routing Encapsulation,GRE)和IP安全(IP security,IPSec)两项技术实现VPN为出发点,设计了4个实验,并分别进行了相应的实验测试和分析,以期让学生更加系统地掌握和理解实验的技术原理及其验证方法。

1 相关技术分析

(1) GRE技术。GRE是一种在协议层之间采用隧道(tunnel)技术的协议[6]。Tunnel是一个支持点对点连接的虚拟接口,提供了一条用一种协议封装了另一种协议的数据包传输的通道,在Tunnel的两端分别对数据包进行封装及解封。当GRE隧道源接口接收到数据报文,首先对原始数据包封装GRE头部和尾部[7],然后加上新的IP包头部,封装的数据包在隧道中传输到达隧道的另一端,最后通过解封装把数据包路由到目的地。GRE技术具有支持组播和广播的优点[8]。

(2) IPSec技术。IPSec主要使用验证头部(Authentication Header,AH)、封装安全载荷(Encapsulating Security Payload,ESP)和因特网密钥交换(Internet Key Exchange,IKE)3个协议[7-8],提供了加密、认证和密钥交换管理的功能。IPSec提供了tunnel和transport两种模式[8]。Transport模式下不改变原有的IP包头,在原始报文的IP头部和数据中间封装IPSec包头信息,适用于主机与主机之间的通信。Tunnel模式下将原始报文加上IPSec包头,然后再增加新的IP包头,适用于局域网与局域网之间的通信。IPSec不支持组播,但是能够提供数据加密的安全传输。

考虑到GRE与IPSec的优点和缺点,研究人员提出了将两者结合的方案[9-10]。一种方案是GRE over IPSec VPN,先对数据包进行GRE封装,然后进行IPSec封装。另一种方案是IPSec over GRE VPN,先对数据包进行IPSec封装,然后进行GRE封装。本文设计了一个易于实验操作的网络结构,并对4种实现VPN的方案进行了仿真和测试。

2 实验情景与网络结构

以实现某公司总部和分公司跨越公网进行通信为实验情景,实现资源共享。假设公司总部的出口路由器为R1,分公司A的出口路由器为R2,路由器R3模拟广域网,主机PC1和PC2分别代表内网的两个用户,用于网络测试。

实验选择3台c2961路由器和2台Host虚拟主机。在GNS3模拟器中通过直接拖动设备搭建如图1所示的网络结构,其中需要使用的设备端口的IP地址详细信息如表1所示。

图1 实验网络结构

设备连接端口IP地址R1s0/0201.100.1.2/30f0/0172.16.1.1/24tunnel 010.1.1.1/24R2s0/1202.100.2.2/30f0/0172.16.2.1/24tunnel 010.1.1.2/24R3s0/1201.100.1.1/30s0/2202.100.2.1/30PC1f0/0172.16.1.2/24PC2f0/0172.16.2.2/24

3 实验配置与测试分析

实验中使用tracert命令进行路由跟踪,使用ping命令进行网络的连通性测试,利用Wireshark工具在路由器R1的s0/0端口进行抓包,并进行报文分析[11]。以下是4个实验的核心配置和测试结果的分析。

3.1 GRE VPN实验配置与测试

(1) 设备核心配置。GRE隧道的源接口或源地址和目的地址是GRE VPN配置的核心部分,以R1的tunnel虚拟接口的配置为例配置如下,其他配置见文献[12]。

R1(config)#interface Tunnel0

R1(config-if)#ip address 10.1.1.1 255.255.255.0

R1(config-if)#tunnel source Serial0/0

R1(config-if)#tunnel destination 202.100.2.2

R1(config-if)#exit

(2) 实验结果分析。通过在VPCS窗口中配置Host虚拟PC机的IP地址,执行tracert命令可以得到跟踪路由结果如图2所示,抓包结果如图3所示。

图2 路由跟踪结果

图3 捕获的ICMP报文

从图2的结果分析,PC1到PC2的路由先经过R1的f0/0接口,再经过R2的tunnel 0接口,表明GRE隧道建立成功,数据在GRE隧道中传输。PC1向PC2第一次发送ping命令(默认发送5条ICMP请求报文),由于第一条ICMP请求报文超时,因而没有收到相应的ICMP应答报文,共收到9条ICMP报文,具体结果详见图3。捕获的ICMP报文的源地址和目的地址分别是PC1和PC2的地址,说明源主机和目的主机交互报文没有经过加密处理。

3.2 IPSecVPN实验配置与测试

(1) 设备核心配置。在进行IPSec VPN配置时需要注意:定义感兴趣的数据流属于私有网络地址,把加密映射应用于路由器的外部出口。以R1为例,IPSec VPN配置如下,其他配置见文献[13-14]。

R1(config)#crypto isakmp policy 1

R1(config-isakmp)# encryption3des

R1(config-isakmp)#authentication pre-share

R1(config-isakmp)#group 5

R1(config)#crypto isakmp key key2017 address 202.100.2.2

R1(config)#crypto ipsec transform-set set2017 esp-3des esp-sha-hmac

R1(config)#access-list 100 permit ip 172.16.1.0 0.0.0.255 172.16.2.0 0.0.0.255

R1(cfg-crypto-trans)#crypto map map2017 10 ipsec-isakmp

R1(config-crypto-map)#set peer 202.100.2.2

R1(config-crypto-map)#set transform-set set2017

R1(config-crypto-map)#match address 100

R1(config)#interface Serial0/0

R1(config-if)#crypto map map2017

(2) 实验结果分析。IPSec VPN模式下的路由跟踪结果和抓包结果如图4~5所示。

由于实验在配置IPSec时选择了默认的tunnel模式,该模式封装后的报文经过了ESP封装,因此显示出了如图4所示的路由信息,即中间路由信息被屏蔽。图5中的第10~18号报文表示IPSec隧道的建立成功,并反映了IPSec隧道建立连接的过程经过了两个阶段:第1阶段是经过6次握手的Main Mode模式,第2阶段是经过3次握手Quick Mode模式[15]。捕获的ESP报文的源地址和目的地址是IPSec隧道的对等体的地址,表明PC1与PC2的交互报文被封装为加密的ESP报文。

图4 路由跟踪结果

图5 捕获的ISAKMP和ESP报文

3.3 IPSec over GREVPN实验配置与测试

(1) 设备核心配置。由于数据包先经IPSec封装,定义的感兴趣的数据流的ACL是两个网段的地址,把加密映射图应用在GRE隧道的tunnel虚拟接口上,即数据流在tunnel口被监控,GRE隧道的建立过程未被加密。以R1为例,GRE、IKE以及IPSec的配置与前面的两个实验的配置基本一致,不再另附配置代码,不同之处如下:

R1(config)#interface Tunnel0

R1(config-if)#crypto map map2017

(2) 实验结果分析。IPSec over GRE VPN模式下的PC1对PC2的路由跟踪结果如图6所示。

图6 路由跟踪结果

由于执行ping命令时,同样捕获到ISKMP和ESP报文,不再另外附图。结合图6的路由结果和图5的报文分析,表明IPSec over GRE VPN的数据包封装的过程:数据包先被封装成加密的IPSec报文,然后再封装成GRE报文,新的报文在GRE隧道中传输到达隧道对端接口,最后经过GRE和IPSec解封装,最终数据包被路由到目的主机PC2。显然不在访问控制列表里的数据流将以不加密的状态直接走GRE隧道,存在数据不安全传输的现象。

3.4 GRE over IPSecVPN实验配置与测试

(1) 设备核心配置。由于数据流先经过GRE封装,定义的感兴趣的数据流是GRE数据流。GRE over IPSec VPN的相关配置见文献[16],与IPSec over GRE VPN的配置的不同之处在于:把加密映射图应用到路由器的物理接口,数据流在物理接口上被监控。R1的核心配置如下:

R1(config-if)#access-list 100 permit gre host 201.100.1.2 host 202.100.2.2

R1(config)#interface Serial0/0

R1(config-if)#crypto map map2017

(2) 实验结果分析。GRE over IPSec VPN模式下的路由跟踪结果和抓包结果如图7~8所示。

图7 路由跟踪结果

图8 捕获的ESP报文

从图7可知,PC1到PC2的路由经过了GRE隧道的tunnel虚拟接口。实验也捕获到了表明IPSec建立成功的ISAKMP协议数据包,不再另外附图。当PC1向PC2的ping测试成功后,继续发送ping命令时,捕获的ICMP请求和应答报文全部是经过加密的ESP报文(见图8中的29~38号报文)。

综合以上4个实验的验证和分析结果,可以看出基于GRE over IPSec的VPN实验方案具有明显的优势,数据传输的安全性更加可靠。

4 结 语

为了进一步配合VPN技术的实践教学,提高实践教学效果,本文在分析GRE技术和IPSec技术的基础上,对GRE VPN、IPSecVPN以及把两者进行结合的实验方案分别进行了仿真和测试,以期学生掌握上述不同VPN实验配置的重点和不同点,运用Wireshark工具抓取数据包,并进行协议分析。通过分析报文验证了实验的正确性,通过实验对比进一步增强了学生对VPN技术原理的理解和实践动手能力。

猜你喜欢

数据流报文数据包
基于J1939 协议多包报文的时序研究及应用
二维隐蔽时间信道构建的研究*
基于Jpcap的网络数据包的监听与分析
汽车维修数据流基础(上)
CTCS-2级报文数据管理需求分析和实现
汽车维修数据流基础(下)
浅析反驳类报文要点
SmartSniff
ATS与列车通信报文分析
基于数据流聚类的多目标跟踪算法