4

是否有任何网络地址转换器模拟器来测试 P2P 软件?

目前我正在为设备开发 P2P 软件,并面临在不同 2 类型的 NAT 中测试我的软件的问题,例如;- 位于相同 NAT(相同专用网络)、不同 NAT(不同专用网络)、不同全球网络、不同 Nat 级别的客户端

-- 我是否需要物理设置测试环境,例如;NAT 后面的节点

或者

- 是否有任何网络地址转换器模拟器来测试 P2P 软件?

4

1 回答 1

2

VirtualBox等虚拟化软件将允许您通过 NAT 将多个来宾 VM(虚拟机)连接在一起,而不是使用直接连接。

与普通的家庭和 ISP 级别的 NATing 路由器相比,Virtualbox 提供的内置 NAT是不切实际的“对等友好” 。Virtualbox 的 NAT 似乎是“全锥 NAT”,这使得 NAT 穿越技术(UDP/TCP 打孔)变得不切实际地容易(请参阅此 Wikipedia 文章以获得解释),而许多路由器 NAT 要么是“对称 NAT”,要么是某种形式的“受限”基于源端口和/或地址限制的锥形 NAT' 。

因此,模拟多台主机通过真实 NAT 通信的一种方法是使用 Virtualbox 等虚拟化工具,并通过基于 Linux 的“路由器”虚拟机将它们连接在一起,这些虚拟机使用 Linux 内核中内置的 netfilter 功能执行路由和 NAT。该iptables命令将允许您设置 netfilter 规则以实现各种 NAT 行为(如上述 Wikipedia 文章中所述),例如使用iptables. .

有关设置 netfilter/IP-masquerading(NAT 所需)的一般信息,请参阅此操作指南:http: //www.ibiblio.org/pub/linux/docs/howto/other-formats/html_single/IP-Masquerade- HOWTO.html

您当然可以将您的 P2P 软件绑定到各种本地接口(在 127.0.0.0/24 范围内或使用 IPv6 子网),并在单台机器上配置路由表和 netfilter 规则以在没有虚拟化的情况下执行此操作。不过,我不确定哪种方法对您来说更容易,如果您拥有机器资源,那么虚拟化方法可能会更容易跟踪。

于 2011-03-18T13:28:06.367 回答