网络模拟器WANem使用配置图文教程
转自:http://blog.csdn.net/zm_21/article/details/25810263
WANem简介
由于公司在一些场合需要模拟真实的网络环境,如时延,丢包,抖动等,虽然使用Linux下的TC也可以实现该功能,但是TC有着命令行界面不利于配置,使用桥接模式时不便于远程管理的缺陷,所以本着分享的精神,现在向大家推荐一款网络模拟工具——WANem。WANem全名为WAN emulator,是一个基于开源广域网络模拟器,其也是基于TC的,其主要功能如下:
- 可以用来在局域网模拟广域网,包括带宽、时延、丢包、抖动
- 高级功能有:随机复位连接、按概率发重复包、按概率使包乱序和按概率瞬时断开网络,按协议随机断开连接等,而且可以针对不同的协议,不同的主机,不同的网络甚至是不同的应用程序来模拟。
其优点如下:
- WANem在单网卡设备上即可实现所有功能
- WANem支持从光盘启动,不需要将它安装到硬盘也可使用,甚至可以运行于虚拟机上,此时桥接主机的网卡即可使用,非常方便
- 支持完全图形化的界面配置,方便设置
- 可以设置多条规则,不同规则不同用户使用互不干扰,方便用于集中式的测试环境
- 仅需要调整路由表即可应用设置的规则
下载地址:http://wanem.sourceforge.net/
如下图为WANem的高级模式配置界面:

说明:
Packet Limit:用来设置包的队列大小,默认为1000,当队列超过1000时,超过的包将被丢弃
Symmetrical network:对称网络,选中为Yes的时候,应用网络的规则将在数据包来回的方向上都生效
Choose BW:从快速列表选择带宽
Specify BW:自定义带宽
Delay:延时,这里设置的是单向的延时。Jitter,抖动;Correlation,相关性,用来设置这个包的延迟时间与上一个包的时间的相关度
Loss:丢包率;Correlation,相关性,以一定的概率发生突发的大量的丢包,但平均丢包率不会超过Loss定义的值
Duplication:重包率,以一定概率生成某个包的多份拷贝,并按随机时间到达目标端。Correlation,相关性,类似Loss的
Packet reordering:包重排序率,按概率将包的顺序打乱,gap用来确定包重排序的个数,不设置更接近真实的环境
Corruption:错包率,按概率产生噪音,即格式错误的包
Idle timer Disconnect:空闲断开定时器,当网络空闲时,按设定的时间对Type定义的协议断开连接。
Random Disconnect:按Type随机断开,MTTF,平均失效前时间,用Low和High定义两个极值,MTTF,平均恢复前时间
IP source address:匹配的源IP地址
IP source subnet:源IP地址的子网
IP dest address:匹配的目标IP地址
IP dest subnet:匹配的目标IP地址的子网
Add a rule set:添加一条规则
Apply settings:应用设置。
- 从光盘引导WANem
- 将WANem的LiveCD放入光驱,并设置电脑从光盘驱动器启动,若使用虚拟机可以使用光盘镜像。

- 进入此界面后直接按回车进入系统引导,或者按F2、F3看系统高级参数

- 启动界面

- 当出现Do you want to configure all interfaces via DHCP(y/n)时,输入y将使所有接口通过DHCP来配置IP地址,输入n手动配置IP地址,并进入IP地址配置界面,如图。

- 接下来系统提示设置SSH的密码,这里SSH的用户名为:perc,密码自定义,为空时不能使用SSH

- 密码设置完成后便进入到了WANem的控制台,控制台提示符为:WANemControl@PERC,而且登录Banner会提示WANem的配置地址为:http://<该机器的IP地址>/WANem ,输入state命令可查看所有接口信息,注意:该链接区分大小写,大小写不正确不能进入Web配置界面。

- 在WANem的控制台输入help可以获得帮助信息,如图。提供了一些命令,可以使用命令查看或设置系统的功能。
- 在WANem的控制台输入exit2shell可以进入到Linux的Shell,在此shell中可以使用Linux的命令,如如果不知道接口的IP地址,可以输入ipconfig –a来查看,本例中接口eth1的IP地址为192.168.0.44。如果要重新进入WANem控制台则在shell输入wanem即可。

- 通过web配置WANem
- 打开浏览器,输入WANem的管理地址http://<该机器的IP地址>/WANem,这里是http://192.168.0.44/WANem(注意大小写),即可登录WANem。

- 功能导航:
- About:关于
- WANalyer:广域网学习工具,通过学习到目标主机的丢包,时延,抖动,自动模拟该网络环境



- Basic Mode:基本模式,只能设置带宽和时延

- Advanced Mode:高级模式,可以设置复杂的网络规则,比如基于不同接口,不同主机,不同网段,甚至是不同应用程序的规则等

选择接口
- Save/Restore:备份和恢复数据

- Help:帮助。
WANem处在网络中的位置

WANem的使用
使用WANem的大概过程是,首先在WANem创建网络规则,然后在待测试的设备上调整路由表,使待测试的设备的网络流量的默认下一跳为WANem即可。
配置实例
以下实例均处在如图所示的模拟的网络环境,假设WANem服务器所在的IP地址为192.168.3.54,对端设备IP为192.168.3.51。对设备的所有操作在重新启用网卡后会还原为默认设置,故不存在风险。

- Windows作为被测试机
- 假如我们要使Windows机器所有向外发(不同网段)的流量均产生上述模拟器所示的情况,我们只需要更改Windows的默认路由表,步骤如下
- 首先删除默认路由:使用命令 route delete 0.0.0.0
- 然后添加一条默认路由指向WANem:route add 0.0.0.0 mask 0.0.0.0 192.168.3.54
- 这样后,所有发向不同网段的流量均会应用到上面定的网络规则。
- 假如我们要使Windows向指定主机应用上规则,以向主机192.168.3.51为例,步骤如下:
- 添加一条到目录主机的路由表,该路由表的下一跳为WANem服务器:route add 192.168.3.51 mask 255.255.255.255 192.168.3.54
- 这样即应用了该规则,如下实例图,你会发现这样的效果更接近实际情况:

- Linux作为被测试机(类似Windows的情况,我只列出命令)
- 测试Linux所有向外发的流量
- 添加默认路由即可:route add default gw 192.168.3.54
- 测试Linux向指定义机发的流量
- 添加一条指向的路由即可:route add –host 192.168.3.51 gw 192.168.3.54
- IPPBX作为被测试机
- 测试IPPBX所有向外发的流量
- 删掉默认路由(设原来的网关为192.168.0.1):routeDelete "0.0.0.0","192.168.0.1"
- 添加默认路由(WANem的IP地址):routeAdd "0.0.0.0","192.168.3.54"
- 测试IPPBX向指定主机发的流量
- 添加一条指定路由即可:routeAdd "192.168.3.51","192.168.3.54"
- IAD作为被测试机
- 测试IAD所有向外发的流量
- 首先删掉默认路由:route delete default
- 添加默认路由指向WANem:route add default 192.168.3.54
- 测试IAD向指定主机发的流量
- route add 192.168.3.51 255.255.255.255 192.168.3.54
origin: http://blog.163.com/hlz_2599/blog/static/142378474201341342720443/
网络模拟器WANem使用配置图文教程的更多相关文章
- tomcat是什么?Tomcat 下载、安装、配置图文教程
你用浏览器上网的所有操作,所有请求发送给服务器(tomcat),服务器通过请求,找相应的逻辑处理程序(jsp或servelet或java类,就是有关java语言的所有可以处理逻辑的代码,其中包括访问后 ...
- win7下IIS的安装和配置 图文教程
转自 http://www.jb51.net/article/29787.htm 最近工作需要IIS,自己的电脑又是Windows7系统,找了下安装的方法,已经安装成功.在博客里记录一下,给需要的 ...
- MySQL5.7免安装版配置图文教程
MySQL5.7免安装版配置图文教程 更新时间:2017年09月06日 10:22:11 作者:吾刃之所向 我要评论 Mysql是一个比较流行且很好用的一款数据库软件,如下记录了我学习总结的 ...
- Zend Server 安装与配置图文教程
Zend Server是一款专业的PHP Web开发应用服务器,一些初次接触并使用此程序的朋友可能不太了解安装方法,本文为您提供了Zend Server 安装与配置图文教程,欢迎大家阅读,并提出自己的 ...
- JDK下载安装与环境变量配置图文教程【超详细】
JDK下载安装与环境变量配置图文教程[超详细] 创建时间:2019年11月13日11时02分 文章目录 1. JDK介绍 1.1 什么是JDK? 1.2 JDK版本介绍 2. JDK下载与安装 3.w ...
- Apache Tomcat下载、安装、配置图文教程
本文已迁移到我的个人网站 http://www.wshunli.com 文章地址: http://www.wshunli.com/2016/03/19/Tomcat安装配置/ (整理截图.安装过程更加 ...
- SDK?JDK?JDK 下载、安装、配置图文教程
什么是软件开发工具包(SDK) 开发一个软件,需要经过编辑.编译.调试.运行几个过程. 编辑:使用编程语言编写程序代码的过程. 编译:如上一节所讲,就是将编写的程序进行翻译. 调试:程序不可能一次 ...
- Windows Server 2003下DHCP服务器的安装与简单配置图文教程
在前面的内容中,我们提到了DHCP这个词,为什么要用到DHCP呢,企业里如果有100台计算机,那样,我们一台台的进行配置Ip,我想还是可以的,因为少嘛,如果成千上万台,那我们也去一台台的配置,我相信这 ...
- 【转载】VMware虚拟机NAT模式网络配置图文教程
原文:https://blog.csdn.net/dingguanyi/article/details/77829085 一.引言 在Windows上搭建集群实验环境时,为能够让集群结点之间相互通信, ...
随机推荐
- Android SDK在线更新镜像服务器
http://www.cnblogs.com/tc310/p/4696731.html#_label0
- Qt 信号槽如何传递参数(或带参数的信号槽)
信号槽如何传递参数(或带参数的信号槽) 利用Qt进行程序开发时,有时需要信号槽来完成参数传递.带参数的信号槽在使用时,有几点需要注意的地 ...
- Unity3d NavMesh获得地面高度
UnityPro内置的NavMesh有几个API很有用 NavMesh.SamplePosition 根据给的点进行采样,可传入最大距离,返回true说明采样到了点,否则采样失败(可以用来获得地形高度 ...
- Python 之 【re模块的正则表达式学习】
摘要: re模块包括操作正则表达式的函数,一些工作中都需要用到,现在说明下使用方法. 使用说明: 一,re模块下的函数: 函数 描述 compile(pa ...
- Effective C++ -----条款25:考虑写出一个不抛异常的swap函数
当std::swap对你的类型效率不高时,提供一个swap成员函数,并确定这个函数不抛出异常. 如果你提供一个member swap,也该提供一个non-member swap用来调用前者.对于cla ...
- 【STL】重载运算符
重载运算符 为什么要重载运算符: C++中预定义的运算符的操作对象只能是基本数据类型.但实际上,对于许多用户自定义类型(例如结构体),也需要类似的运算操作.这时就必须在C++中重新定义这些运算符,赋予 ...
- HDU 5920 Ugly Problem 高精度减法大模拟 ---2016CCPC长春区域现场赛
题目链接 题意:给定一个很大的数,把他们分为数个回文数的和,分的个数不超过50个,输出个数并输出每个数,special judge. 题解:现场赛的时候很快想出来了思路,把这个数从中间分为两部分,当位 ...
- Vim 强大的配置
新建文件.vimrc,然后复制如下内容,并将该文件放到vim安装目录下 map <F9> :call SaveInputData()<CR> func! SaveInputDa ...
- php date函数 参数详细
time()在PHP中是得到一个数字,这个数字表示从1970-01-01到现在共走了多少秒,很奇怪吧 不过这样方便计算, 要找出前一天的时间就是 time()-60*60*24; 要找出前一年的时间就 ...
- css+html 关于文本的总结(整理中)
布局1:固定行数 <div> <p>示例文字示例文字示例文字示例文字</p> </div> <!-- CSS代码 --> div{ widt ...