【问题标题】:How to simulate different NAT behaviours如何模拟不同的 NAT 行为
【发布时间】:2012-07-28 00:10:25
【问题描述】:

我正在使用 UDP 和 UDT 进行打孔。对于最终测试,我需要在不同的 NAT 类型(对称、全锥、受限锥、端口受限 NAT)上测试应用程序。

有什么方法可以模拟这些吗?我在这里期望的是某种虚拟框设置。能不能把PC当成路由器,根据自己的需要进行配置?

一般来说,我们如何针对不同的网络条件测试应用程序?

【问题讨论】:

  • 嗨,出于同样的原因,我需要设置完全相同的环境,您最终使用的是什么?根据forum.pfsense.org/index.php?topic=58860.0,不可能模拟所有类型的 NAT 锥
  • 当时我找不到完美的解决方案......我们带来了新的路由器来测试不同的行为......我两年前换了工作,所以不再联系......

标签: networking network-programming udp nat hole-punching


【解决方案1】:

以防万一其他人想要这样做,this 网站解释了如何使用 IPTables 设置不同的 NAT 环境。

更新

自从我这样做已经有几年了,鉴于链接放在登录后面,倒带也放在登录后面,我从后面翻阅我的笔记,发现以下内容。请注意,这些未经测试。

全锥 NAT;

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source "public IP"
iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-destination "private IP"

受限锥形 NAT;

iptables -t nat -A POSTROUTING -o eth1 -p udp -j SNAT --to-source "public IP"
iptables -t nat -A PREROUTING -i eth1 -p udp -j DNAT --to-destination "private IP"
iptables -A INPUT -i eth1 -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -p udp -m state --state NEW -j DROP

端口受限锥形 NAT;

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source "public IP"

对称 NAT;

echo "1" >/proc/sys/net/ipv4/ip_forward
iptables --flush
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE --random
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

【讨论】:

  • 这个真的很有用
  • 链接在登录后,其他任何地方都可以访问该内容吗?
  • 好像他们最近增加了登录系统,你可以看看以前的版本,我用下面的链接发布的那个; web.archive.org/web/20151029183033/https://wiki.asterisk.org/…
  • @OliverCiappara 这个链接似乎也在登录后面
  • 我不确定我是否正确,但如果其他人发现受限锥形 NAT 规则不正确,我设法通过将规则 3、4 从 INPUT 更改为 FORWARD 来使其工作。不知道为什么,当我在 INPUT 上有它时,它似乎只是让所有入站​​流量通过,而不是仅仅建立。
【解决方案2】:

我认为您已经回答了自己的问题,请使用 VirtualBox(或 VMware、Xen 等)。

我通过设置虚拟机的迷你局域网成功地完成了这件事。如果您正在寻找在 VM 中充当路由器的软件,我会从 http://www.pfsense.org/ 开始,看看是否满足您的需求。这是一个 FreeBSD 发行版,专为易于安装的路由器/防火墙而设计,具有漂亮的 Web 管理 UI 和所有这些。

如果 pfsense 不能满足您的需求,还有很多其他 linux/bsd 发行版专为这类东西量身定制,您可以将它们安装在 VM 中:http://en.wikipedia.org/wiki/List_of_router_or_firewall_distributions 以获得良好的列表 :) (我也听说过有关 OpenWRT 和 ClearOS 的好消息。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    相关资源
    最近更新 更多