我有一个 20 端口交换机连接到 20 个 NIC 的 PC(1 对 1),并希望通过流量加载它。当然,为所有 NIC 配置不同的 IP 并启动我的客户端/服务器 (Python3) 脚本(或 iperf3)只会生成本地流量,除非我强制流量通过 NIC。
我发现(here)两个主要的“技巧”来实现这一点:
a.) 使用网络命名空间:
[+] 通过将每个 NIC 隔离(类似于 VM/docker)到一个盒子中,它会完全按照我的意愿行事
[+] Python3 似乎支持 netns (Pyroute2)
[-] 不确定如何在 netns/python 线程中打开套接字(10 个线程 x 2(客户端/服务器))
b.) 使用虚拟 IP(iptable:S/D-NAT + pre/post-routing):
[+] 所有网卡都保留在根网络命名空间中(仍然可以通过 psutil 收集数据)并在全局级别进行配置
[+] Python TCP 线程脚本可以在没有特定库/支持 netns 的情况下运行
[-] 如果重新配置我的设置(IP、VLAN、...),必须相应地调整 IPTable 脚本。
我想知道我是否在这里忽略了另一种可能性和/或是否忽略了。)我(全部)弄错了(因为我找不到一个像样的示例,其中在不同 netns 上的单个 Python 脚本中打开了一个套接字。 ..)