免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5739 | 回复: 4
打印 上一主题 下一主题

有关于iptables设置DNAT跨网段的一个疑问,请各位大侠不吝赐教 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2006-08-02 08:44 |显示全部楼层
137.0.6.2也是一个公网地址呀?

论坛徽章:
0
2 [报告]
发表于 2006-08-02 16:18 |显示全部楼层
原帖由 一舸秋雨 于 2006-8-2 14:04 发表
137网段有访问控制规则,只有192的地址能够访问



那么在你的linux机器上必须设置路由,使用访问137网段通过192的那个接口

然后在linux机器上做地址转换

iptables -t nat -A PREROUTING -i 本机外网接口 -d 本机外网IP -p tcp --dport 需要提供服务的端口号 -j DNAT --to 服务器IP

然后在linux机器上

iptables -t nat -A POSTROUTING -o 192的接口 -j MASQUERADE
必须这么做,因为你的linux机器不是137访问外网的路由节点


这样,外网访问137的服务器时,就使用你的linux机器的IP作为目的IP

[ 本帖最后由 springwind426 于 2006-8-2 16:20 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2006-08-03 09:22 |显示全部楼层
你的OA是80端口

如果你想用linux的5000端口来访问的话:

eth0是外网接口 IP1 GW1
eth1是内网接口 IP2 GW2

ip route add 137.0.0.0/8 via GW2 dev eth1 src IP2 #访问OA服务器从eth1连接,只是你作用8作为子网掩码,这个似乎太大了吧。

echo "1" > /proc/sys/net/ipv4/ip_forward #打开IP转发
iptables -t nat -A PREROUTING -i eth0 -d IP1 -p tcp --dport 5000 -j DNAT --to 137.0.6.2:80
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

如果你的linux有防火墙,必须打开对本机的5000端口的访问,还要打开对 OA服务器的80端口的访问

论坛徽章:
0
4 [报告]
发表于 2006-08-03 10:55 |显示全部楼层
正常情况下,通过DNAT转换后是可以设置目的IP和端口的

--to-destination 137.0.6.2:80 就应该是正确的。

你可以试试在linux主机上做路由跟踪,看看本机访问 OA服务器 是怎么走的。

然后在本机上访问OA服务器,用tcpdump抓包看看。

还有,你把一些信息贴出来:
cat /proc/sys/net/ipv4/ip_forward
route -n
traceroute OA服务器IP
iptables -t nat -L -n
iptables -L -n

大家帮你分析分析

论坛徽章:
0
5 [报告]
发表于 2006-08-03 13:08 |显示全部楼层
只是纸上空谈真是不能解决问题

我刚才做了一下实验,却出现了意想不到的问题


我的linux机器与内网相连,同时有一个接口与外网相连

我在机器上做地址转换后从远程访问
发现在外网接口上抓包,有包进入,在内网接口上抓包,却没有发往目的地的数据包出现,当然了,在目的主机上也就抓不到相应的数据包了。

真是奇怪!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP