虚拟networking可重复testing

我正在开发一个软件产品,使用networkingfunction,如设备绑定多归属协议。 与任何协议开发一样,testing代码需要考虑延迟,打包等。 因此,我试图创build一个虚拟networking环境,在这个环境中我可以做可控的,可重复的testing。

我要testing的两个主要特征(即测量性能,稳定性等):

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

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

示例testing:

这个testing应该模拟一个带有四个网卡(wifi,usb,bluetooth,ethernet)的客户端通过一个单一接口的服务器在互联网上进行通信。

我想创build一个模拟此布局的虚拟networking。 一个设备模拟一个WAN节点,另外四个设备代表客户端接口。 客户端接口与服务器接口之间的带宽限制为1 Mb / s,封装损耗为1%。

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

听起来你想用'tc'(se http://www.linuxcommand.org/man_pages/tc8.html获取更多细节)在各种接口上使用'netem'内核组件。

一个例子是:

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

有关'tc'的手册页,请参见http://man.he.net/man8/tc

请参阅http://www.linuxfoundation.org/collaborate/workgroups/networking/netem以了解如何使用带有tc的netem模块。