网络地址转换器模拟器测试P2P软件

是否存在用于测试P2P软件的网络地址转换器模拟器?

目前我正在研究用于设备的P2P软件,并面临在不同类型的NAT中测试我的软件的问题,例如; – 同一NAT(相同专用网络),不同NAT(不同专用网络),不同全球网络,不同Nat级别背后的客户端

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

要么

– 是否存在用于测试P2P软件的网络地址转换器模拟器?

最佳答案 诸如
VirtualBox之类的虚拟化软件将允许您通过NAT将多个来宾VM(虚拟机)连接在一起,而不是使用直接连接.

与普通家庭和ISP级NATing路由器相比,built in NAT provided by Virtualbox‘peer-to-peer friendly’是不切实际的. Virtualbox的NAT似乎是“全锥形NAT”,它使NAT遍历技术(UDP / TCP打孔)变得不切实际(参见this Wikipedia article的解释),而很多路由器NAT要么是“对称NAT”,要么是某种形式的“限制锥形NAT” ‘基于源端口和/或地址限制.

因此,模拟通过真实NAT进行通信的多个主机的一种方法是使用Virtualbox等虚拟化工具,并通过基于Linux的“路由器”VM将它们连接在一起,这些VM使用Linux内核中内置的netfilter函数执行路由和NAT. iptables命令允许您设置netfilter规则以实现各种NAT行为(如上面的维基百科文章中详述的),例如, full cone NAT using iptables..

有关设置netfilter / IP伪装(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规则,以便在不进行虚拟化的情况下执行此操作.我不确定哪种方法对您来说更容易,但如果您拥有机器资源,虚拟化方法可能会更容易跟踪.

点赞