用于可重复测试的虚拟网络

用于可重复测试的虚拟网络

我正在开发一款使用设备绑定和多宿主协议等网络功能的软件产品。与任何协议开发一样,测试代码需要考虑延迟、数据包丢失等问题。因此,我试图创建一个虚拟网络环境,在其中我可以进行可控、可重现的测试。

我想要测试的两个主要功能(即测量性能、稳定性等):

  • 客户端使用多个端点的 SCTP 多宿主关联。
  • 多个设备的设备绑定。

如上所述,我希望能够在网络中的节点之间进行流量控制,以及流量过滤以模拟传统 NAT 等。

示例测试:

该测试旨在模拟具有四个 NIC(wifi、usb、蓝牙、以太网)的客户端通过互联网与单接口服务器进行通信。

我想创建一个模拟此布局的虚拟网络。一个设备模拟 WAN 节点,另外四个设备代表客户端接口。客户端接口和服务器接口之间的带宽限制为 1 Mb/s,数据包丢失率为 1%。

创建四个客户端接口的bonding设备,将iperf服务器绑定到WAN地址,将客户端绑定到bonding设备地址并连接到WAN服务器。

答案1

听起来你想使用类似“tc”(sehttp://www.linuxcommand.org/man_pages/tc8.html有关更多详细信息,请参见使用“netem”内核组件在各种接口上进行配置。

例如:

tc qdisc add dev eth1 root handle 1: netem delay 500ms 125ms reorder 3% loss 2%

http://man.he.net/man8/tc有关‘tc’的手册页。

http://www.linuxfoundation.org/collaborate/workgroups/networking/netem有关如何将 netem 模块与 tc 一起使用的信息。

相关内容