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

时间:2014-07-11 15:30:20

标签: networking routing iptables rhel iproute

网络GURU的......

环境RHEL 6.5服务器X86_64

我有一个虚拟Repo / svn盒插入我们的主网络。

eth0 10.28.50.129

我还有4个额外的nics插入带有独特ips的隔离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,在任何给定时间可能会也可能不会“连接”到主网络。

从网上阅读其他几篇文章...我知道我需要使用iptables来连接CONNMARK并使用iproute2将标记的数据包丢弃到正确的网络上。

我目前看起来不起作用..我已经打破了wireshark以便能够更好地调试这个,但到目前为止,我一直在撞墙试图弄清楚出了什么问题。

我希望有人可以提供帮助。

到目前为止:

我的/ 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

通过两个网络设置路由

我所期望的是,无论Vswitch / VLAN(已连接或断开连接)的状态如何,命中回购盒上的端口都会为我提供与目标IP /端口的连接。

任何人都可以给我一只手或指针吗?日Thnx。

0 个答案:

没有答案