【问题标题】:Network Address Translator's Simulator to Test P2P Software用于测试 P2P 软件的网络地址转换器模拟器
【发布时间】:2011-03-08 23:36:49
【问题描述】:

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

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

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

-- 有没有网络地址转换器模拟器来测试P2P软件?

【问题讨论】:

标签: p2p simulator nat


【解决方案1】:

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

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

因此,模拟多台主机通过真实 NAT 通信的一种方法是使用 Virtualbox 等虚拟化工具,并通过基于 Linux 的“路由器”虚拟机将它们连接在一起,这些虚拟机使用 Linux 内核中内置的 netfilter 函数执行路由和 NAT . iptables 命令将允许您设置 netfilter 规则以实现各种 NAT 行为(如上述 Wikipedia 文章中所述),例如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 规则以在没有虚拟化的情况下执行此操作。不过,我不确定哪种方法对您更容易,如果您拥有机器资源,那么虚拟化方法可能会更容易跟踪。

【讨论】:

  • --我的linux服务器一个以太网接口
  • 设置了以下配置:[Loopback(127.0.0.1 :2000 / STUN Client) -->[IPTABLES RULES TO/FROM] -- 以太网(VM -- 192.168.56.102:2000) -- > HOST(VM-Gateway - 192.168.56.1:3478 - STUN 服务器)] :: 示例规则 :: sudo iptables -t nat -A POSTROUTING -o eth0 -p udp --source 127.0.0.1 --sport 2000 -j SNAT --to-source 192.168.56.102 sudo iptables -t nat -A PREROUTING -i eth0 -p udp --destination 192.168.56.102 --dport 2000 -j DNAT --to-destination 127.0.0.1 // 似乎 iptables 没有t 从 loopback iface 中挑选数据包
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-11
  • 2013-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多