当前位置:首页 期刊杂志

Dynamips在ATCA刀片服务器中的构建与应用研究

时间:2024-09-03

◆李伟东 姜浩宇 王敏 郭磊

(中国电子科技集团公司第二十八研究所 江苏 210007)

ATCA 刀片服务器相比传统PC 机,具有计算处理能力强、内存空间大、接口类型丰富、扩展性好等优点,是高性能、高可用性的服务器系统。通过在ATCA 刀片服务器上运行Dynamips 软件模拟Cisco路由器可以实现真实路由器的所有功能,而且在绝大多数情况下,模拟路由器的测试结果与真实设备的结果相同。本文以在ATCA 刀片服务器上利用Dynamips 软件模拟Cisco 路由器的优势,详细描述了通过Dynamips 软件模拟路由器的构建步骤及如何生成网络拓扑文件,并以ATCA 刀片服务器上模拟两个路由器之间建立GRE 隧道为例验证了应用的可行性。

1 ATCA 刀片服务器上运行Dynamips 的优势

1.1 ATCA 刀片服务器

ATCA 标准是电信领域广泛应用的技术,它基于模块化、兼容性、可扩展的平台构架设计,具有开放性和互操作等良好特性,为刀片服务器提供了最基础的设计标准[1-2]。主要体现在如下方面:

(1)背板结构。按照 ATCA 标准,背板结构设计支持星状、网状等多种拓扑结构。为解决多板卡间数据传输速率受限的问题,背板结构采用全网状结构提高传输速率。

(2)开放性、标准化。基于开放性、标准化及全网统一的设计理念。开放性降低部署成本,标准化最大程度增强了兼容性,从而使设备更具灵活性,可通过更换或者新增板卡快速完成新业务的部署。

(3)可扩展性。刀片式服务器遵循 ATCA 标准,从根本上克服了普通服务器集群扩展性差的缺点。在高性能计算集群中,将所有刀片式服务器主板连接起来提供高速运行环境,并且实现资源共享。

1.2 Dynamips

在互联网上有很多模拟Cisco 路由器的工具,通过Dynamips 模拟Cisco 网络设备是网络通信技术比较经济并且实用的方法[3]。Dynamips 可以模拟Cisco 3600 和7200 等多种型号的路由器平台,在模拟器中直接加载并运行Cisco 路由器的操作系统IOS 镜像文件,实现真实路由器的所有功能,而且在绝大多数情况下模拟路由器的测试结果与真实设备的结果相同[4]。

Dynamips 是一个命令性程序,为简化Dynamips 的虚拟网络拓扑创建工作,许多第三方团体或个人开发了各种Dynamips 前端程序,其中最著名的是基于文本的Dynagen 开源软件[5-6]。Dynagen 工具利用一个扩展名为.net 的文件生成网络拓扑结构,通过修改.net 配置文件,可以改变路由器的数量、型号,分配端口时配置、生成和匹配NIO 描述符,指定桥、帧中继、ATM 交换机等。

1.3 ATCA 刀片服务器上运行Dynamips 的优势

Dynamips 模拟Cisco 路由器存在一个瓶颈,即网络规模较大时,需要消耗大量CPU 和内存资源。采用普通PC 机模拟路由器一般无法满足性能的要求,往往还需要有丰富的接口和带宽需求。比如通过光纤对接10GE 的光口,显然在普通PC 机上模拟Cisco 路由器无法满足要求。在ATCA 刀片服务器上运行Dynamips 存在如下优点:

(1)CPU 处理能力强。ATCA 刀片服务器的CPU 采用X86_64多核处理器(比如SBCR 刀片有32 个核)),即使模拟再复杂的网络,CPU 的处理速度和效率也不是问题。笔者验证过模拟Cisco 设备性能最高可以达到10 万fps 的转发流量。

(2)内存空间大。ATCA 刀片服务器的内存一般比较大(比如SBCR 刀片最低配备了32GB 的内存),可以在一块刀片服务器上模拟多台路由器。

(3)接口类型丰富。ATCA 刀片服务器依托后插卡,支持电口、千兆光口、万兆光口等多种接口类型。

2 Dynamips 虚拟网络构建

在ATCA 刀片服务器中构建Dynamips 虚拟平台,需要准备的软硬件环境为:一块64 位ATCA 刀片服务器;Dynamips 及Dynagen软件安装包。下面以Dynamips 模拟Cisco7200 路由器名称RT1 为例,介绍虚拟网络的构建步骤:

(1)运行Dynamips。

从http://www.gns3.net/dynamips/下载Linux 版本的Dynamips(文件名Dynamips 0.2.8-RC3-community binary for Linux(64-bit))[7],下载可执行程序到ATCA刀片服务器的硬盘,并在Linux环境下启动。

说明:运行参数-H 7200 是指定Dynamips 运行实例的端口号,指定不同的端口号,可以实现同一个刀片服务器模拟多个网络。

(2)创建网络拓扑配置文件,运行Dynagen。

从 http://dynagen.org/changelog/changelog.html 下载并运行Dynagen,在该命令后加上网络拓扑的配置文件名,配置文件以.net为后缀。

RT1.net 配置文件的网络拓扑配置信息如下:

autostart = true #true 表示所有的网络设备在Dyangen 启动后自动运行;否则需要通过start 命令手动运行。

[localhost]

workingdir = /james/tmp #指定工作目录,模拟设备运行产生一些文件存放到指定的工作目录下,比如bootflash、nvram 等。

[[7200]]#路由器型号

image = /james/unzip-c7200-advsecurityk9-mz.124-11.T.bin #指定模拟设备加载的IOS 路径

modle = 7200 #路由器型号

npe = npe-400 #此模拟设备配置的板卡类型

ram = 160 #指定模拟设备的内存为160M

idlepc = 0x61274230 #该值的作用是降低模拟器对CPU 的消耗。在第一次运行的时候,需要获取该值(在“=>”提示符下执行idlepc get 命令)。否则CPU 会始终保持100%,这是因为 Dynamips 不知道虚拟路由器什么时候处于空闲或使用状态。通过设置 idlepc 值可以减轻 CPU 压力[8],建议获取并设置完成后执行idlepc save 命令,将理想的idlepc 值保存在.net 拓扑文件中,这样避免下次设备启动需要重新获取和设置idlepc 值。

[[ROUTER RT1]]#路由器RT1

console = 2001 #每个设备需要定义不同的Console 端口,通过telnet 到此端口完成设备的配置和管理。

confreg = 0x2102 #配置为0x2102,网络设备配置信息存盘(通过write memeory 命令),重启设备后配置信息自动加载,否则重启后配置信息丢失。

slot1 = PA-2FE-TX #1 槽子卡类型配置

f1/0 = NIO_Linux_eth:eth0

f1/1 = NIO_Linux_eth:eth1 #以太网端口的连接配置关系,如图1所示。

图1 ATCA 与RT1 的端口连接关系

说明:f1/1 = NIO_Linux_eth:eth1 表明RT1 的f1/1 端口直接与linux 机器的eth1 网卡相连。如果另外一个网元直接连接到eth1 网卡上,则等同于直接连接到Cisco7200 路由器上。更进一步地,通过编写更复杂的网络配置文件,可以不需要任何Cisco 设备,将网元连接到一个更加复杂的虚拟化网络中,这个虚拟网络跟真实网络具有一样的外部特性。

[root@ATCA dynagen-0.11.0]# ./dynagen ./RT1.net

Reading configuration file...

Network successfully loaded

在“=>”提示符下可以使用list命令查看当前拓扑文件中网络设备的状态。

(3)登录到该设备进行数据配置。

在Dynagen 中运行list 命令查看设备的console 端口号,使用SecureCRT 工具telnet 127.0.0.1 2001,可以登录到该网络设备进行命令配置,跟真实Cisco 路由器的CLI 具有完全相同的界面。

(4)报文抓包分析。

使用capture 命令对模拟路由器的以太网端口进行报文抓包,截获的报文可以通过Wireshark 工具进行网络协议分析。以图1 为例,对路由器RT1 的f1/1 端口报文抓包的命令为:

capture RT1 f1/1 1.cap #截获路由器RT1 的f1/1 端口收发流量,保存在1.cap 文件中。

no capture RT1 f1/1 #停止对路由器RT1 的f1/1 端口抓包。

3 Dynamips 虚拟网络应用

本文通过在ATCA 刀片服务器上运行Dynamips 软件模拟Cisco7200 系列路由器RT1 和RT3 为例,验证在RT1 和RT3 之间建立GRE 隧道的应用可行性。虚拟网络拓扑结构如图2所示。

图2 Dynamips 虚拟网络拓扑结构

主要配置信息如下:

(1)模拟路由器RT1

RT1(config)#interface tunnel1 #隧道接口地址

RT1(config-if)#ip address 1.1.1.1 255.255.255.0

RT1(config-if)#tunnel mode gre ip

RT1(config-if)#tunnel source 10.1.1.1 #隧道源地址

RT1(config-if)#tunnel destination 20.1.1.1 #隧道目的地址

RT1(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.2

RT1(config)#ip route 192.168.2.0 255.255.255.0 tunnel1

(2)模拟路由器RT3

RT3(config)#interface tunnel1

RT3(config-if)#ip address 1.1.1.2 255.255.255.0

RT3(config-if)#tunnel mode gre ip

RT3(config-if)#tunnel source 20.1.1.1

RT3(config-if)#tunnel destination 10.1.1.1

RT3(config)#ip route 0.0.0.0 0.0.0.0 20.1.1.2

RT3(config)#ip route 192.168.1.0 255.255.255.0 tunnel1

在PC1 上使用ping 命令验证了与PC2 可以互联互通,通过在路由器RT1 上使用Wireshark 工具对ICMP 报文进行抓包分析,发现报文内层的源和目的IP 地址为PC1 和PC2,路由器RT1 经过查找路由使用GRE 隧道封装并传输报文。

4 结束语

本文提出了在ATCA 刀片服务器上利用Dynamips 软件模拟Cisco 路由器的优势,详细描述了使用Dynamips 软件如何生成和配置网络拓扑文件,并以ATCA 刀片服务器上模拟两个路由器之间建立GRE 隧道为例验证其有效性。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!