单机双网卡iperf打流(一)

2 02 2 年,我在一个城市遇到了一个难题,要同时测试服务器上两个网卡的数据流量。
我使用iperf工具进行测试,发现数据流向有问题。
两块网卡的TX和RX之间数据不同时流动,导致测试结果不准确。
我一时感到困惑,但我知道我必须找到解决办法。

我首先想到使用iptables来解决这个问题。
iptables工具更改网络地址; Linux环境下可以配置SNAT和DNAT来检测屏蔽、转发等功能。
简单来说,SNAT就是我的内网向外网发送数据时,将内部主机的私有IP地址替换为公有IP地址。
使得外界无法看到内部网络的架构。

例如,我的内部主机 IP 为 1 9 2 .1 6 8 .1 .1 00,防火墙上的公共 IP 为 2 03 .0.1 1 3 .1 0我可以在发送1 9 2 .1 6 8 .1 .1 00的数据包时,使用iptables规则将源地址更改为2 03 .0.1 1 3 .1 0
再举个例子,我想将外部访问2 03 .0.1 1 3 .1 0的HTTP流量发送到内部主机1 9 2 .1 6 8 .1 .2 00的HTTP服务。
我也可以通过 iptables 规则来实现这一点。

接下来,我通过哪个网关发送数据包?iproute2 工具用于安装路由规则来配置网卡。
还有ARP协议将IP地址映射到MAC地址,保证数据包能够正确通过局域网。

构建关卡很无聊。
您必须首先设置 SNAT 和 DNAT。
然后添加路由规则,并在ARP表中添加静态表项,以保证数据包的正确投递。
当流量从 eth1 _ip 发送到 eth2 _fake_ip 时;我记得需要更改SNAT,源地址变成了eth1 _fake_ip。
然后流量到达主机,目的地址为eth1 _fake_ip。
进行DNAT转换,返回目的地址为eth1 _ip。

同样,对于来自 eth2 _ip 的流量也应该执行相同的操作,只是源地址和目标地址已更改。
最后,我必须将目标IP地址添加到路由表中,必须在ARP表中添加静态条目来指定要经过哪个网卡,并确保IP地址和MAC地址正确映射。

这个过程很复杂,但最终问题还是解决了。
当时我就觉得这种技术工作真是让人头疼。
不过现在回想起来,还是很有成就感的。

双网卡内外网同连怎么设置

结论:双网卡分别连接内外网,内网1 9 2 .1 6 8 .1 .0/2 4 ,外网2 03 .0.1 1 3 .0/2 4 ,Windows使用route,Linux使用IProute。
首先配置路由表,然后应用规则,最后通过 ping 测试连接。
小心点,不要弄乱网络。