LinuxSir.cn,穿越时空的Linuxsir!

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

etch如何实现nat?

[复制链接]
发表于 2006-12-29 12:01:44 | 显示全部楼层 |阅读模式
系统debian 4.0
挂载iptables相关模块
双网卡:eth0:172.20.96.173, gw:172.20.96.1
            eth1:10.1.142.55,gw:10.1.142.1
如何让eth0所在的网络中的一台机器:172.20.96.174
访问eth1所在的网络?
但不允许eth1所在的网络访问eth0所在的网络,谢谢!
发表于 2006-12-29 12:16:49 | 显示全部楼层
先确保ip_forward = 1

设:你的两个网段的子网掩码都是255.255.255.0
则:iptables -A FORWARD -s 172.20.96.0/24 -d 10.1.142.0/24 -j ACCEPT
      route add -net 10.1.142.0/24 dev eth1
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-29 12:33:38 | 显示全部楼层
试试,这样子是不是eth0所在的网络的所有计算机都可以访问eth1所在网络的计算机呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-29 12:45:19 | 显示全部楼层
还是不行。访问不了另一个网的网关。
回复 支持 反对

使用道具 举报

发表于 2006-12-29 20:37:25 | 显示全部楼层
在eth0所在网段的机器上设置路由:
ip route add 10.1.142.0/24 via 172.20.96.173

在你的机器上打开IP转发
echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -P FORWARD DROP #缺省不允许两边的机器互相访问
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT #已经建立连接的数据包允许通过
iptables -A FORWARD -i eth0 -s 172.20.96.174 -j ACCEPT #来自172.20.96.174的数据包允许通过,也就是说 172.20.96.174 可以访问eth1所在的网段

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE #因为你的机器不是这两个网段的缺省网关,因此需要在出口处做地址伪装。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-5 09:02:12 | 显示全部楼层
谢谢!!!搞定了!!
回复 支持 反对

使用道具 举报

发表于 2007-1-5 09:34:15 | 显示全部楼层
非常好,建议版主加精
回复 支持 反对

使用道具 举报

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

本版积分规则

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