细看网络仿真工具

细看网络仿真工具

  简单的问题不一定有简单的答案。比如一个企业网络主管会面对这样的问题:我们能够增加到分支机构的带宽吗?能够增加重要链路的冗余性,并同时减少网络投资吗?这样的问题将是难以回答的,在网络发生变化的情况下,仍能使网络的各个部分高效地运转并保持最小的投资不是一件易事。

  幸运的是,网络仿真工具的出现使得人们可以在实际部署之前测试网络拓扑变化所带来的影响。最近,美国《Network World》测试了三款这样的产品:Opnet的IT Guru 10.5, Analytical Engines的NetRule 6.0以及 Shunra 的Shunra/ Storm 3.1。通过它们来预知拓扑变化对加州大学旧金山分校校园网的影响。

  经测试发现,IT Guru是参测产品中最多才多艺的,它具有良好的可扩展性,可以容易地适应全部生产网络,并且拥有强大的工具用来分析网络问题。NetRule很容易进行配置和学习,它提供很好的仿真工具,特别是在局域网环境中。而Shunra/ Storm在针对广域网的仿真中表现相当优异。尽管这几款产品各有所长,它们在通用分析工具和能力上还是有很多共性。

  如何测试

  仿真加州大学旧金山分校(UCSF)校园网不是个小任务,UCSF有一个包含30000个主机的城域网,超过1000个交换机和100个路由器。通过专线接入到骨干网与遍布在加州的194个远程站点相连。

  测试者将IT Guru和NetRule安装在一台运行Windows 2000 Pro的Dell 2.0GHz至强服务器上。Shunra/ Storm与四台用于产生流量的Dell笔记本电脑相连。另外,根据需要在第五台Dell笔记本上运行了Visio并通过控制台端口与Shunra/ Storm相连。

  测试者使用了两个独立的网络仿真。一个是从生产网中的CiscoWorks导入的实际网络配置,这包括由70台路由器和50台交换机所组成的生产网核心。另一个是在生产网的基础上手工创建的由12个路由器组成的全网状拓扑。

  仿真的准确性

  仿真的关键是生成的网络仿真要接近实际网络的情况,测试者对参测产品是否能对以下事件进行准确的仿真进行了考察,如:链路失败及调整、设备故障、负载变化、路由改变和链路过载。

  IT Guru可以泰然地处理这些问题。使用它可以轻松地对网络变化进行仿真。可以改变诸如OSPF链路耗费、OSPF或HSRP定时器等要素,并且能够立即看到这些变化带给网络的影响。IT Guru能够响应测试者的每个要求,并能够准确预知路由协议和拓扑发生改变时的行为。

  准确的仿真也需要测试人员操作正确。比如,测试者打算仿真两台HSRP路由器,他们在两台路由器中输入了所有HSRP属性,但是仿真器就是不工作,经检查,测试者发现自己忘了给路由器设置缺省网关,没有这项参数,IT Guru拒绝建立HSRP会话,这与真实网络中的情况是完全吻合的。仿真器这种特性令人“感动”。

  NetRule可以准确预知多种网络拓扑变化带来的影响,但它也表现出一些局限性。比如在使用OSPF进行负载均衡测试中,高带宽低耗费的链路却没能成为流量传输的首选。

  在NetRule的库中,有适量的厂商和产品可以选择,它允许针对任何仿真的仿真,但它却对配置或设备错误不予检查,不检查IP地址冲突或协议错误,它假设用户不会错误配置,而这是一个不切实际的假设。

  Shunra/ Storm有一个非常好的特性,它可以记录网络条件并回放,它使真实的应用运行在网络仿真上。比如,我们可以在连接了Shunra/ Storm工具的设备间传送语音数据或视频流。当在仿真里加入延迟、丢包和抖动,或是减少了网络带宽,我们可以看到语音或视频通信质量的下降。这个特性可以帮助人们极其容易地确定某个应用在不同链路上运行所能接受的最低条件。IT Guru 和NetRule也支持类似的功能,但都只是用数字来表示这些内容。

  配置和性能

  使用可选的MVI(Multi-Vendor Import)模块,IT Guru可以从Cisco和Juniper的设备中直接导入配置。对于其他厂商的设备,就需要可选的VNE(Virtual Network Environment)服务器的支持,这无疑增加了投入,最好能从所有的设备中直接导入配置。除了导入配置的方法外,还可以手工创建网络对象。IT Guru用了不到3分钟就从CiscoWorks中导入了骨干网中120台Cisco设备的配置。由于IT Guru对语法错误非常敏感,当对Foundry设备进行手工配置时就耗费了很长时间,糟糕的是,IT Guru不会针对语法错误发出告警,仿真器只是简单地拒绝正常工作。IT Guru非常灵活并可扩展,它提供了许多可定制的特性,允许用户对多种网络拓扑进行拖拽操作。

  NetRule可以快速简便地构造一个网络仿真,在它的“调色板”里有包括Cisco产品在内的常见网络设备。仿真的生成非常直接,从库里取出并拖拽相应设备,再加入适当的链路和路由信息,接着定义IP地址以及优先级、包长、延迟和流量类型等要素就可以了。不幸的是,NetRule不能和管理软件如OpenView和CiscoWorks接口,尽管它可以读CiscoWorks的文本文件,但还是不如IT Guru直接。这个文本文件必须符合NetRule所预定的格式,这使得复制一个大型网络的配置信息变成了一次体力劳动。结果是,测试者没能简单地将这个具有120个网络设备的拓扑导入到NetRule中,而是手工创建了一个具有12个路由器的生产网的仿真,共花费了30分钟。不过,NetRule的报告机制非常好,它可以以图形方式显示网络利用率、延迟和数据流等信息。它的性能还可以接受,应用程序启动较慢,一旦运转起来,NetRule不管测试者是否进行了改动都能比较快地显示结果。

  Shunra/ Storm也不能从网管中直接导入网络配置。对配置的改动通过在某个链路或设备上点击右键并选择下拉菜单实现,它还具备一个内置的类似Sniffer的协议分析仪。它的报告功能可以生成实时图表来显示吞吐量、排队和延迟数据。Shunra/ Storm是一个基于硬件的网络仿真产品。在多数场合,它的性能等同于或高于其他产品的表现。但它有一个非常讨厌的问题,即每次改变仿真的参数,它都要重新启动。

  除了上述两方面内容,测试者还对这类产品的安装和文档,从易用性角度对产品进行了评估。

文章录入:csh    责任编辑:csh

(0)

相关推荐

  • 细看网络仿真工具

    细看网络仿真工具 简单的问题不一定有简单的答案.比如一个企业网络主管会面对这样的问题:我们能够增加到分支机构的带宽吗?能够增加重要链路的冗余性,并同时减少网络投资吗?这样的问题将是难以回答的,在网络发生变化的情况下,仍能使网络的各个部分高效地运转并保持最小的投资不是一件易事. 幸运的是,网络仿真工具的出现使得人们可以在实际部署之前测试网络拓扑变化所带来的影响.最近,美国<Network World>测试了三款这样的产品:Opnet的IT Guru 10.5, Analytical Engine

  • 详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果

    上一篇内容,已经学会了使用简单的语句对网页进行抓取.接下来,详细看下urlopen的两个重要参数url和data,学习如何发送数据data 一.urlopen的url参数 Agent url不仅可以是一个字符串,例如:http://www.baidu.com.url也可以是一个Request对象,这就需要我们先定义一个Request对象,然后将这个Request对象作为urlopen的参数使用,方法如下: # -*- coding: UTF-8 -*- from urllib import re

  • python爬虫系列网络请求案例详解

    学习了之前的基础和爬虫基础之后,我们要开始学习网络请求了. 先来看看urllib urllib的介绍 urllib是Python自带的标准库中用于网络请求的库,无需安装,直接引用即可. 主要用来做爬虫开发,API数据获取和测试中使用. urllib库的四大模块: urllib.request: 用于打开和读取url urllib.error : 包含提出的例外,urllib.request urllib.parse:用于解析url urllib.robotparser:用于解析robots.tx

  • 网络程序员伴侣Lshdic--脚本加解密器

    功能比较强大的一款加密器,包括加密前后的测试与常规字符统计,加密方式包括js和vbs,可以选择使用 以下为源码,复制保存为.htm格式即可使用 网络程序员伴侣Lshdic--脚本加解密器 dim vbsstr,vbstr sub forstr if js1.disabled=false then vbstr=txt1.value vbsstr=strreverse(vbstr) end if end sub function chicks(where){ jsstr=String.fromCha

  • VirtualBox 未指定要bridged的网络界面的解决办法

    VirtualBox 未指定要bridged的网络界面的解决办法 之前换了个新的笔记本,VirtualBox上的东西也陆续迁移了过来, 基本iso安装完成后,在配置网络的时候,出现了错误,设置桥接模式 总是提示网卡1 未指定要bridged的网络界面 纠结了需求,网上的说法是进入网络适配器,选择本地连接,安装VirtualBox下的驱动, 不过这个我试了下发现还是无效的,查看网络连接里面找不到该驱动适配器 如下:是正常的桥接驱动,如果没有红色框中的网卡驱动则,实现不了桥接模式: 纠结了一下,把本

  • Linux网络启动问题:Device does not seem to be present解决办法

    Linux网络启动问题:Device does not seem to be present解决办法 在整虚拟机时候经常会遇到虚拟机拷贝,然而拷贝之后网络配置会遇到错误 service network restart启动网络时候提示如下错误: Device does not seem to be present 解决步骤 1.ifconfig -a 查看当前网卡 2.修改网络配置文件, vi /etc/sysconfig/network-scripts/ifcfg-eth0 在原来文件的基础上,

  • 批处理常用网络命令和符号篇

    2.1学习 ping  ipconfig  arp  start  shutdown  taskkill 命令 学习要点: 1.测试IP连接:ping 2.查看IP配置:ipconfig 3.解析地址:arp 4.开启命令:start 5.关闭或重启计算机:shutdown 6.关闭指定进程taskkill 一.测试IP连接:ping 用来检查网络是否通畅或者网络连接速度的命令.在此,我们只了解一些基本的参数就可以了. -n count 发送count指定的Echo数据包数. 定义向目标IP发送

  • iOS中多网络请求的线程安全详解

    前言 在iOS 网络编程有一种常见的场景是:我们需要并行处理二个请求并且在都成功后才能进行下一步处理.下面是部分常见的处理方式,但是在使用过程中也很容易出错: DispatchGroup:通过 GCD 机制将多个请求放到一个组内,然后通过 DispatchGroup.wait() 和 DispatchGroup.notify() 进行成功后的处理. OperationQueue:为每一个请求实例化一个 Operation 对象,然后将这些对象添加到 OperationQueue ,并且根据它们之

  • iOS实时监控网络状态的改变

    在网络应用中,有的时候需要对用户设备的网络状态进行实时监控,有两个目的:  (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能)  (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验  WIFI网络:自动下载高清图片  4G/3G网络:只下载缩略图  没有网络:只显示离线的缓存数据  常用的有以下两种方法:  (1).使用苹果观法提供的检测iOS设备网络环境用的库 Reachablity  (2).使用AFN框架中的AFNetworkReachabilityManager

  • python编程之requests在网络请求中添加cookies参数方法详解

    哎,好久没有学习爬虫了,现在想要重新拾起来.发现之前学习爬虫有些粗糙,竟然连requests中添加cookies都没有掌握,惭愧.废话不宜多,直接上内容. 我们平时使用requests获取网络内容很简单,几行代码搞定了,例如: import requests res=requests.get("https://cloud.flyme.cn/browser/index.jsp") print res.content 你没有看错,真的只有三行代码.但是简单归简单,问题还是不少的. 首先,这

随机推荐