通过(1)。使用iptables / ethernet / loopback接口测试/配置所有NAT场景(完整锥,端口受限等)

时间:2011-03-22 13:21:52

标签: iptables nat

我想要实现的目标:

通过(1)测试/配置所有NAT场景(完整锥,端口受限等)。使用iptables(2)以太网接口(3)环回接口(仅使用一台机器)

设置以下配置:

我在Linux BOX中运行一个VM,并执行以下配置:

Linux BOX IP是:192.168.0.4

Linux Box Virtual Box 网关IP是:192.168.56.1

在Linux Box上运行Stun Server:192.168.56.1(主要)和192.168.0.4(辅助)

127.0.0.1:2000上运行虚拟机上的Stun客户端(在Linux服务器上运行),并配置iptables规则将环回接口流量转发到以太网接口(192.168.56.102),反之亦然。

预期结果

我应该能够通过iptables / ethernet / loopback接口配置每个NAT模拟,其中运行在主机上的STUN服务器和运行在VM上的Stun客户端,它应该告诉类型的NAT

实际结果

iptables无法处理数据包输入/输出到环回接口 socket sendto 调用失败,错误:“错误22无效争论”因为socket已与127.0.0.1:2000绑定,目标地址为:192.168.56.1

见下文

[Loopback-Interface(127.0.0.1 :2000 / *Running STUN Client*/ VM) -->[*IPTABLES RULES TO/FROM*] <-- Ethernet-Interface(VM -- 192.168.56.102:2000) ==>|| ==> HOST(Gateway - 192.168.56.1:3478 - *Running STUN Server*)] :: 

示例规则::

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 POSTROUTING -o eth0 -p tcp --source 127.0.0.1 --sport 2001 -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 

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --destination 192.168.56.102 --dport 2000 -j DNAT --to-destination 127.0.0.1 

看起来iptables不会从环回接口中选择数据包

参考文献:http://www.linuxquestions.org/questions/linux-networking-3/iptables-redirect-127-0-0-1-to-192-168-1-113-a-818817/

如果有任何人可以提供帮助,请告诉我。

0 个答案:

没有答案