Linux强制数据包出口(并避免本地/内核流量)

时间:2018-04-23 19:36:03

标签: python linux networking iptables linux-namespaces

我有一个20端口交换机连接到20-NICs PC(1对1),并希望加载流量。当然,配置具有不同IP的所有NIC并启动我的客户端/服务器(Python3)脚本(或iperf3)将仅生成本地流量,除非我强制通过NIC输出流量。

我发现(这里)两个主要'技巧'为了实现这个目标:

a。)使用网络命名空间:

[+]通过将每个NIC隔离(类似VM / docker)到一个盒子中,它将完全符合我的要求

[+] Python3似乎支持netns(Pyroute2)

[ - ]不确定如何在netns / python线程中打开套接字(10个线程x 2(客户端/服务器))

b。)使用ghost IP(iptable:S / D-NAT +路由前/路由后):

[+]所有网卡都保留在根网络命名空间中(仍然可以通过psutil收集数据)并在全局级别进行配置

[+] Python TCP线程脚本可以运行没有特定的lib /支持netns

[ - ]如果重新配置我的设置(IP,VLAN,...),必须相应地调整IPTable脚本。

我想知道我是否忽略了这里的另一种可能性和/或是否。)我得到(全部)错误(因为我无法找到一个在单个Python中打开套接字的体面示例脚本不同的网络...)

0 个答案:

没有答案