【发布时间】:2012-04-28 12:02:08
【问题描述】:
我正在开发一个 Python 脚本来测试一个网络应用程序。作为测试的一部分,它需要将网络配置(IP 地址、路由...)从一个接口(物理接口)移动到另一个接口(bridge),并且测试完成后,将系统恢复到原始状态。在 Python 中实现此目的最优雅的方法是什么?
我想到的一些想法:
- 在测试期间不要从物理接口取消分配IP地址,以免路由丢失。但这意味着相同的 IP 地址将在测试期间在 bridge 上共存。这会是某些特定 Linux 内核的问题吗?虽然,它似乎在我的系统上运行良好......
- 将 IP 地址分配给 bridge 并从 物理接口 取消分配。易于在 python 中实现,因为这需要进行简单的
ifconfig调用和解析。但是如果默认路由是通过物理接口,那么当我从物理接口取消分配IP地址时,它会同时消失。 解析
ip route ls输出并将路由与IP 配置一起移动。这似乎是唯一合理的方法,但需要大量编码。也许有更优雅的东西?喜欢
iptables-save eth0>eth0_conf、iptables-restore eth0_conf?还有其他建议吗?
此测试工具必须是可移植的,并且能够在不同的 Linux 内核上运行。
【问题讨论】:
标签: python linux networking