免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-01 19:13 |只看该作者 |倒序浏览
内网为192.168.0.0/24网段,服务器地址为137.0.6.2,其中,linux服务器两块网卡,eth0为公网地址,eth1为内网192地址但非网关,192网段网关192.168.0.1与137网段之间有n跳路由相通,n多少我也不知道,是个很大的内网,现在想从linux服务器上做一个DNAT,从公网能够直接访问到137网段的服务器,不知道理论上能否实现,请赐教,谢谢..

论坛徽章:
0
2 [报告]
发表于 2006-08-02 08:44 |只看该作者
137.0.6.2也是一个公网地址呀?

论坛徽章:
0
3 [报告]
发表于 2006-08-02 14:04 |只看该作者
137网段有访问控制规则,只有192的地址能够访问

论坛徽章:
0
4 [报告]
发表于 2006-08-02 14:47 |只看该作者
原帖由 一舸秋雨 于 2006-8-1 19:13 发表
内网为192.168.0.0/24网段,服务器地址为137.0.6.2,其中,linux服务器两块网卡,eth0为公网地址,eth1为内网192地址但非网关,192网段网关192.168.0.1与137网段之间有n跳路由相通,n多少我也不知道,是个很大的内网,现在 ...

iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 137.0.6.2
iptables -t nat -A POSTROUTING -d 137.0.6.2 -j SNAT --to-source $linux服务器内网络192的IP
请试验一下上面的两条命令,我的理解是您有一台只能通过内网访问的服务器137.0.6.2,现在您想通过一台接入公网的Linux来访问137.0.6.2这台服务器,是吗?
注意第一条命令,因为您没有说明您想要访问的是那种服务(www、mail、ssh等),所以我把所有通过公网接口进入的连接都重定向到137.0.6.2服务器上。这是很有问题的,请自行修改加上一些限制。
现在能不能访问的关键是您的路由表的设置,如果上面的指令不能达到您要的效果,请详细说明您要访问137.0.6.2上面的服务,Linux上面的路由表。

论坛徽章:
0
5 [报告]
发表于 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
6 [报告]
发表于 2006-08-02 23:00 |只看该作者
原帖由 on-fire 于 2006-8-2 14:47 发表

iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 137.0.6.2
iptables -t nat -A POSTROUTING -d 137.0.6.2 -j SNAT --to-source $linux服务器内网络192的IP
请试验一下上面的两条命令,我的 ...

这是正解

论坛徽章:
0
7 [报告]
发表于 2006-08-03 01:00 |只看该作者
感谢各位的解答,非常感谢

按照各位的解答我试验了一下

在iptables中添加两条规则

iptables -t nat -A PREROUTING -i eth0 -d 222.150.241.2 -p tcp --dport 5000 -j DNAT --to-destination 137.0.6.2

iptables -t nat -A POSTROUTING -d 137.0.6.2 -j SNAT --to-source 192.168.0.248

同时在linux的route表中添加

route add -net 137.0.0.0 netmask 255.0.0.0 gw 192.168.0.1 dev eth1

这样仍然无法访问服务器

不好意思,上次没有说明白,这个服务器是提供给整个局域网的OA系统,目前只能在局域网内访问,我的目的是在家中也可以处理一些事情,于是想直接DNAT到服务器的80端口

整个网络的结构如下:

局域网网段为192.168.0.1/24,网关为192.168.0.1,服务器所在网段137.0.0.0/8,与网关之间三层路由相通。现在192.168.0.248设立一linux服务器,两块网卡,eth0配置公网地址222.150.241.2,eth1配置内网地址192.168.0.248

还请各位大侠帮忙,谢谢~

[ 本帖最后由 一舸秋雨 于 2006-8-3 01:06 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2006-08-03 01:21 |只看该作者
原帖由 springwind426 于 2006-8-2 16:18 发表



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

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

iptables -t nat -A PREROUTING -i 本机外网接口 -d 本机外网IP -p tcp --dport 需要提供服务的 ...



试着配置了一下,也不可以啊

论坛徽章:
0
9 [报告]
发表于 2006-08-03 06:39 |只看该作者
你画个详细拓扑图出来吧,把 IP 和 routing 配置也贴出来,感觉现在就像是瞎猫在捉死耗子

论坛徽章:
0
10 [报告]
发表于 2006-08-03 09:07 |只看该作者
不好意思,疏忽了,现补上网络拓扑,很简单的,只不过网络层次有点多



                                -
                                -
                                -
                                -  eth0 :222.150.241.2
                       ---------
                       -                  -
                       -                  -
                       ---------
                               -  eth1 :192.168.2.248
                              -
                               -
                               -        192.168.0.0/24网段
                               -
                       ---------
                       -                   -华为NE40路由器 gw:192.168.0.1
                       -                  -                 指向137.0.0.0/8 网段
                       ---------
                               -
                               -
                               -137.0.0.0/8网段
                               -
                               -
                       ---------
                       -                  -服务器137.0.6.2
                       -                  -
                       ---------

就是这个样子,请各位大侠帮忙,谢谢!

[ 本帖最后由 一舸秋雨 于 2006-8-3 09:19 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP