LinuxSir.cn,穿越时空的Linuxsir!

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

[help]linux iptables SNAT/DNAT请教

[复制链接]
发表于 2011-7-18 10:50:00 | 显示全部楼层 |阅读模式
环境如下
1, 机器A, wlan0/eth0
  OS: Fedora 13
  wlan0: 连接无线路由器,自动获取局域网地址 192.168.1.101, 网关 192.168.1.1
  无线路由器直接连internet

  eth0: 手动设置IP地址 192.168.10.1

2, 无线路由器B ,Internet口接 机器A的eth0
  internet IP: 192.168.10.10 , 网关 192.168.10.1,为机器A的eth0的IP
  本机IP: 192.168.3.1

3,机器C, 接无线路由器B的一个lan口, 自动获得IP: 192.168.3.100
  OS: Fedora 13

需要实现目的:
一:192.168.1.x网段与 192.168.3.x网段能够互相访问
  在机器A和其他同网段的机器上,能ping 192.168.3.100  

二:192.168.3.x网段可以透过机器A的wlan0 上网。

在机器A上, 我已经做了以下步骤
1, # echo 1 > /proc/sys/net/ipv4/ip_forward //打开IP路由转发
2, # iptables -t filter -F //清除iptables相关规则
3,# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 192.168.1.101  
// 在机器A上建立SNAT
//SNAT建立好之后, 192.168.3.x网段可以访问192.168.1.x网段,也能通过WLAN0上网。
4, #iptables -t nat -A PREROUTING -d 192.168.1.101 -j DNAT --to-destination 192.168.10.1
目前问题是步骤四的DNAT建立不正常,无法实现192.168.1.x网段去访问 192.168.3.x网段, 我使用的工具是ping.

请问
1, DNAT哪里出错,该如何处理?
2, 再网络上看到类似如下的命令: iptables -t nat -A PREROUTING -d 192.168.1.101 -p tcp --dport 80 -j DNAT --to 192.168.3.100:80
  其中 "-d 192.168.1.101" 是否必须要公网地址?
  DNAT是否必须要 -p 指定 protocol , -dport/sport等指定端口?
  能否向 SNAT这样,让两个局域网之间通过机器A 相互访问, 能否使用ping去验证?
问题有点多, 不过让我非常头疼, 盼有人帮忙解答, 非常感谢!
发表于 2011-7-21 16:56:02 | 显示全部楼层
要互访的话,只能路由,不能nat
回复 支持 反对

使用道具 举报

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

本版积分规则

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