LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 643|回复: 4

关于两出口的地址映射

[复制链接]
发表于 2005-1-31 10:21:13 | 显示全部楼层 |阅读模式
系统RHAS3。1,公司有两条专线,一网通接在ETH0上,一移动接在ETH1在,ETH2接内网,用IPTABLES,写了点规则,做防火墙及地址映射,现在是ETH0的映射已经生效,但在ETH1上,就是不起作用,这应该是可以实现的吧,如果可以实现那是什么原因,或者要注意什么。谢谢!
 楼主| 发表于 2005-1-31 10:57:51 | 显示全部楼层
IPTABLES规则:

IPTABLES="/sbin/iptables"
echo 1 > /proc/sys/net/ipv4/ip_forward

LAN_VOD_IP="192.168.97.22"
LAN_VOD1_IP="192.168.97.53"
LAN_WEB_IP="192.168.97.23"
LAN_BBS_IP="192.168.97.24"
LAN_EMAIL_IP="192.168.97.52"
LAN="192.168.97.0/26"
LAN_IP="192.168.97.21"
INT_IF="eth2"

LO_IFACE="lo"
LO_IP="127.0.0.1"

FW_VOD_IP="218.x.x.1"
FW_VOD1_IP="218.x.x.2"
FW_WEB_IP="221.x.x.1"
FW_BBS_IP="221.x.x.2"
FW_EMAIL_IP="221.x.x.3"

EXT_IF="eth0"
EXT_IF1="eth1"

$IPTABLES -F -t filter
$IPTABLES -X -t filter
$IPTABLES -Z -t filter
$IPTABLES -F -t mangle
$IPTABLES -t mangle -X
$IPTABLES -Z -t mangle
$IPTABLES -F -t nat
$IPTABLES -X -t nat
$IPTABLES -Z -t nat
$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F POSTROUTING -t nat
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT

$IPTABLES -t nat -A POSTROUTING -o $INT_IF -s 192.168.97.0/255.255.255.192 -j MASQUERADE
$IPTABLES -A FORWARD -i $EXT_IF1 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.97.0/26 -d 0/0 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -i $INT_IF -p tcp --dport 80 -j REDIRECT --to-port 80

其它的就是地址映射的

$IPTABLES -A FORWARD -i $FW_WEB_IP -o $INT_IF -d $LAN_WEB_IP -p tcp --dport 80 -m state --state NEW -j ACCEPT
$IPTABLES -t nat -A PREROUTING -d $FW_WEB_IP -p tcp --dport 80 -j DNAT --to-destination $LAN_WEB_IP
$IPTABLES -t nat -A POSTROUTING -s $LAN -d $LAN_WEB_IP -p tcp --dport 80 -j SNAT --to-source $LAN_IP

$IPTABLES -A FORWARD -i $FW_WEB_IP -o $INT_IF -d $LAN_WEB_IP -p udp --dport 80 -m state --state NEW -j ACCEPT
$IPTABLES -t nat -A PREROUTING -d $FW_WEB_IP -p udp --dport 80 -j DNAT --to-destination $LAN_WEB_IP
$IPTABLES -t nat -A POSTROUTING -s $LAN -d $LAN_WEB_IP -p udp --dport 80 -j SNAT --to-source $LAN_IP

$IPTABLES -A FORWARD -i $FW_VOD_IP -o $INT_IF -d $LAN_VOD_IP -p tcp --dport 80 -m state --state NEW -j ACCEPT
$IPTABLES -t nat -A PREROUTING -d $FW_VOD_IP -p tcp --dport 80 -j DNAT --to-destination $LAN_VOD_IP
$IPTABLES -t nat -A POSTROUTING -s $LAN -d $LAN_VOD_IP -p tcp --dport 80 -j SNAT --to-source $LAN_IP

$IPTABLES -A FORWARD -i $FW_VOD_IP -o $INT_IF -d $LAN_VOD_IP -p udp --dport 80 -m state --state NEW -j ACCEPT
$IPTABLES -t nat -A PREROUTING -d $FW_VOD_IP -p udp --dport 80 -j DNAT --to-destination $LAN_VOD_IP
$IPTABLES -t nat -A POSTROUTING -s $LAN -d $LAN_VOD_IP -p udp --dport 80 -j SNAT --to-source $LAN_IP

现在是FW_WEB映射成功,而FW_VOD失败
回复 支持 反对

使用道具 举报

发表于 2005-1-31 12:17:46 | 显示全部楼层
不明白
回复 支持 反对

使用道具 举报

发表于 2005-2-3 07:42:53 | 显示全部楼层
我觉得做负载平衡肯定不是你那样做的
回复 支持 反对

使用道具 举报

发表于 2005-2-3 09:44:39 | 显示全部楼层
道理很简单:
路由表中只能有一条默认路由起作用,因此只有与默认路由相关的那个nat起作用。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表