Networking 通过特定nic将端口转发到特定ip

Networking 通过特定nic将端口转发到特定ip,networking,routing,iptables,rhel,iproute,Networking,Routing,Iptables,Rhel,Iproute,网络大师 环境RHEL 6.5服务器X86_64 我有一个虚拟回购/svn箱插入我们的主网络 eth0 10.28.50.129 我还有4个附加NIC,它们插入具有唯一IP的隔离VSwitch,以允许访问可能连接到主网络或可能未连接到主网络的服务器实例 eth1 10.28.50.131 eth2 10.28.50.132 eth3 10.28.50.133 eth4 10.28.50.134 我需要在10.28.50.129端口5080上端口转发http连接 通过eth2卡连接到10.28

网络大师

环境RHEL 6.5服务器X86_64

我有一个虚拟回购/svn箱插入我们的主网络

eth0 10.28.50.129
我还有4个附加NIC,它们插入具有唯一IP的隔离VSwitch,以允许访问可能连接到主网络或可能未连接到主网络的服务器实例

eth1 10.28.50.131
eth2 10.28.50.132
eth3 10.28.50.133
eth4 10.28.50.134
我需要在10.28.50.129端口5080上端口转发http连接 通过eth2卡连接到10.28.50.155端口80

我需要在10.28.50.129端口6080上端口转发http连接 通过eth3卡连接到10.28.50.155端口80

数据包不能通过eth0 nic上的默认路由,因为目标httpd服务器所在的隔离VLAN可能在任何给定时间连接到主网络,也可能不连接到主网络

eth1 10.28.50.131
eth2 10.28.50.132
eth3 10.28.50.133
eth4 10.28.50.134
从网上其他几篇文章中。。。我知道我需要使用iptables连接标记连接,并使用iproute2将标记的数据包放到正确的网络上

eth0 10.28.50.129
我目前拥有的似乎不起作用。。我已经开发了wireshark,以便能够更好地调试它,但到目前为止,我一直在努力找出哪里出了问题

我希望有人能帮忙

到目前为止,我所拥有的:

my/etc/sysconfig/iptables

*mangle
:PREROUTING ACCEPT [1702:152640]
:INPUT ACCEPT [1092:89135]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [517:33940]
:POSTROUTING ACCEPT [517:33940]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 5080 -j CONNMARK --set-xmark 0xa
-A PREROUTING -i eth0 -p tcp -m tcp --dport 6080 -j CONNMARK --set-xmark 0xb
COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [10566:1406688]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -d 10.28.50.116/32 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

*nat
:PREROUTING ACCEPT [1698:188025]
:POSTROUTING ACCEPT [4:272]
:OUTPUT ACCEPT [2:168]
-A PREROUTING -p tcp -m tcp --dport 5080 -j DNAT --to-destination 10.28.50.116:80
-A PREROUTING -p tcp -m tcp --dport 6080 -j DNAT --to-destination 10.28.50.116:80
COMMIT
我也跑了

echo "201 eth2.out" >> /etc/iproute2/rt_tables
ip rule add fwmark 0xA table eth2.out

echo "201 eth3.out" >> /etc/iproute2/rt_tables
ip rule add fwmark 0xB table eth3.out


/sbin/ip route add default via 10.28.50.132 dev eth2 table eth2.out
/sbin/ip route add default via 10.28.50.133 dev eth3 table eth3.out
通过两个NIC设置路由

我所期望的是,无论Vswitch/VLAN连接或断开的状态如何,点击repo盒上的端口都将为我提供到目标ip/端口的连接

有人能帮我一下吗?thnx