网络大师的....
环境 RHEL 6.5 服务器 X86_64
我有一个虚拟的 Repo/svn 盒子插入我们的主网络。
eth0 10.28.50.129
我还有 4 个额外的 nic,它们插入具有唯一 ips 的隔离 VSwitch,以允许访问可能连接或不连接到主网络的服务器实例。
eth1 10.28.50.131
eth2 10.28.50.132
eth3 10.28.50.133
eth4 10.28.50.134
我需要通过 eth2 卡将 10.28.50.129 端口 5080 上的 http 连接转发到 10.28.50.155 端口 80
我需要通过 eth3 卡将 10.28.50.129 端口 6080 上的 http 连接端口转发到 10.28.50.155 端口 80
数据包不能通过 eth0 nic 上的默认路由,因为目标 httpd 服务器所在的隔离 VLAN 在任何给定时间可能会或可能不会“附加”到主网络。
通过阅读网上的其他几篇文章...我知道我需要使用 iptables 来连接连接并使用 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 的状态(连接或断开连接)在 repo 盒上的端口都会给我一个到目标 ip/端口的连接。
谁能给我一个手或指针?谢谢。