Chinaunix

标题: 在双线网关中使用iptables做nat端口转发的一个疑问? [打印本页]

作者: zing2046    时间: 2012-06-30 19:05
标题: 在双线网关中使用iptables做nat端口转发的一个疑问?
环境是这样的,服务器(用linux当网关使用)上有两个网卡,一个电信一个联通(双线网关设置以及做好,两个地址都可以连通),内网有两个网段都准备通过这个服务器做网关来上网。
两个公网地址比如是:202.202.202.1和60.60.60.1
内网有两个机器是192.168.0.101和192.168.1.101,子网掩码是24位所以是2个网段了。

iptables是这样设置的:
echo 1 > /proc/sys/net/ipv4/ip_forward  
iptables -F  
iptables -t nat -F  
iptables -t mangle -F  
iptables -X  
iptables -t nat -X  
iptables -t mangle -X  
  
iptables -A INPUT -i lo -j ACCEPT  
iptables -A OUTPUT -o lo -j ACCEPT  
  
iptables -P INPUT ACCEPT  
iptables -P OUTPUT ACCEPT  
iptables -P FORWARD ACCEPT  
  
iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.101:80  
iptables -t nat -A POSTROUTING -d 192.168.0.101 -p tcp --dport 80 -j SNAT --to 192.168.0.1  

iptables -t nat -A PREROUTING -d 60.60.60.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.101:80  
iptables -t nat -A POSTROUTING -d 192.168.1.101 -p tcp --dport 80 -j SNAT --to 192.168.1.1  

问题来了,发现在外面访问202.202.202.1可以正确访问到192.168.0.101:80
而我访问60.60.60.1:80却不能访问到192.168.1.101:80  

不知问题在哪里?
补充一点:服务器双线网关中,由于不能设置两个两个默认网关,所以只在202.202.202.1这个地址设置了默认网关,不知道跟这个有没有关系。但是如果有关系,我把default gw设置为60.60.60.1对应的网关,那岂不是对202.202.202.1的nat转发又不正常了?
作者: anonymous0502    时间: 2012-07-01 09:47
这个是不是需要加静态路由?
作者: chenyx    时间: 2012-07-01 20:55
楼主这种情况应该需要使用策略路由,在论坛里面搜索双线路由
作者: zing2046    时间: 2012-07-03 10:51
回复 3# chenyx


    这台物理机上本来就已经做好了双线路由策略了。
作者: mxl913721    时间: 2012-07-03 16:29
0.1和1.1应该是Iptables上两个内网的网关吧。
我觉得既然已经做了SNAT,那应该跟双线路由策略没什么关系了吧。
LZ如果解决了,还请分享一下方法
作者: abc3w    时间: 2012-07-05 08:58
echo 1 > /proc/sys/net/ipv4/ip_forward  
iptables -F  
iptables -t nat -F  
iptables -t mangle -F  
iptables -t filter -F
  
iptables -A INPUT -i lo -j ACCEPT  
iptables -A OUTPUT -o lo -j ACCEPT  
  
iptables -P INPUT ACCEPT  
iptables -P OUTPUT ACCEPT  
iptables -P FORWARD ACCEPT

iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.101:80  
iptables -t nat -A POSTROUTING -s 192.168.0.101 -j SNAT --to 202.202.202.1
iptables -t nat -A PREROUTING -d 60.60.60.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.101:80  
iptables -t nat -A POSTROUTNG -s 192.168.1.101 -j SNAT --to 60.60.60.1





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2