我有rackspace帐户,并希望有这样的设置:
eth0 – 公网IP(56.XXX)
eth1 – 私有IP(10.XXX)
Ubuntu 10.10。 接受来自Internet的连接,并将端口80路由到node1(10.xxx)
节点1
eth0 – 禁用公网IP(56.XXX)
eth1 – 私有IP(10.XXX)
Ubuntu 10.10。 该服务器是Web服务器。
题:
我一遍又一遍地search如何做到这一点,我不知道我需要采取的步骤。 Rackspace给我这些IP,我不控制(在这一点上)这些节点的IP是什么,但他们每个都在eth0上有一个公有IP,在eth1上有私有IP。
如何将防火墙/网关的端口80请求成功转发到node1 ?
编辑:这是我的iptables设置
# Generated by iptables-save v1.4.4 on Fri Jun 17 18:09:39 2011 *nat :PREROUTING ACCEPT [0:0] :OUTPUT ACCEPT [1:452] :POSTROUTING ACCEPT [1:452] -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.182.33.191:80 COMMIT # Completed on Fri Jun 17 18:09:39 2011 # Generated by iptables-save v1.4.4 on Fri Jun 17 18:09:39 2011 *filter :INPUT ACCEPT [154:11452] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [81:9672] -A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT COMMIT # Completed on Fri Jun 17 18:09:39 2011
您可以在防火墙主机上使用一些iptables规则来做到这一点。 我假设你已经使用iptables,因为你把它称为“防火墙”主机:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 10.xxx:80 iptables -A INPUT -p tcp -m state --state NEW --dport 80 -i eth0 -j ACCEPT
第一个规则为eth0端口80上的数据包设置端口。 它将它们转发到10.xxx:80(在这里input你的node1 IP)。 第二个规则允许eth0的端口80上的新的传入连接。 当然,你需要这个实际上允许数据包到达防火墙。
不要忘记保存你的iptablesconfiguration并在系统启动时加载它。 我使用iptables-persistant包来达到这个目的,但是Ubuntu没有保存和加载防火墙的标准方法。