使用两个本地以太网接口进行吞吐量测试设置

使用两个本地以太网接口进行吞吐量测试设置

我目前正在使用以下设置测试硬件设备(DUT - 被测设备)的路由性能(所有地址都以 开头192.168.):

eth0 (29.2) <---> eth1 (29.1)  eth2 (30.1) <---> eth0 (30.2)
HOST1             |~~~~~~~~~DUT~~~~~~~~~~|       HOST2

Iperf在这个设置中工作得很好。

但是,我想去掉 HOST2,因为 HOST1 上有另一个以太网卡可用。这就是我想要实现的目标:

eth0 (29.2) <---> eth1 (29.1)  eth2 (30.1) <---> eth1 (30.2)
HOST1             |~~~~~~~~~DUT~~~~~~~~~~|       HOST1

如何在 HOST1 上配置 Linux 路由,以便从 eth0 到 eth1 的数据包将通过 DUT,而不是在内部通过内核?

我正在运行带有 3.0 内核的 D​​ebian。 iproute2 版本是ss110629.

答案1

路由与 snat/dnat 相结合应该可以解决问题。这里的基本思想是为 HOST1 上的每个设备分配第二个子网中的第二个“虚拟”IP 地址。虚拟地址在离开/进入 host1 之前/之后被转换为实际地址。使用以下设置并将 iperf 流量定向到 192.168.9.2 或 192.168.10.2(取决于所需的流量方向)

IP地址分配

主机1

  • eth0 192.168.29.2/24(该设备的“虚拟”地址为 192.168.9.2)

  • eth1 192.168.30.2/24(该设备的“虚拟”地址为 192.168.10.2)

被测器件

  • 以太网1 192.168.29.2/24
  • 以太坊2 192.168.30.2/24

静态路由

主机1

  • 192.168.10.2/24 通过 192.168.29.1
  • 192.168.9.2/24 通过 192.168.30.1

被测器件

  • 192.168.9.2/24 通过 192.168.29.2
  • 192.168.10.3/24 通过 192.168.30.2

HOST1 上的 iptables 规则

后布线

  • 发往 192.168.9.2 至 192.168.10.2 的 SNAT 数据包
  • 发往 192.168.10.2 至 192.168.9.2 的 SNAT 数据包

预路由

  • 发往 192.168.9.2 至 192.168.29.2 的 DNAT 数据包
  • 发往 192.168.10.2 至 192.168.30.2 的 DNAT 数据包

相关内容