use*_*711 16 networking udp network-programming nat hole-punching
我正在使用UDP和UDT进行Holepunching.对于最终测试,我需要在不同的NAT类型(对称,全锥,限制锥,端口限制NAT)上测试应用程序.
有什么方法可以模拟这些吗?我期待的是某种虚拟盒子设置.我可以将PC用作路由器,以便根据我的需要进行配置吗?
一般来说,我们如何测试不同网络条件的应用程序?
以防万一其他人正在寻求这样做,该网站介绍了如何使用IPTables设置不同的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"
Run Code Online (Sandbox Code Playgroud)
iptables -t nat POSTROUTING -o eth1 -p udp -j SNAT --to-source "public IP"
iptables -t nat 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
Run Code Online (Sandbox Code Playgroud)
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source "public IP"
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
我想你已经回答了自己的问题,使用VirtualBox(或VMware,Xen等).
通过设置VM的迷你版本,我已经成功地做到了这一点.如果您正在寻找软件作为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的好消息.)
归档时间: |
|
查看次数: |
3597 次 |
最近记录: |