LinuxSir.cn,穿越时空的Linuxsir!

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

问个NAT的问题~

[复制链接]
发表于 2003-6-1 11:38:57 | 显示全部楼层 |阅读模式
这样的:
公司的一台主机器(1号)外接宽带,内网卡对内部提供DHCP服务,设置了NAT,现在内部都可以上网。
不过我又把内部的一台机器(2号)安装了双网卡,一个接主机器(1号)过来的线,这样它可以保证上网,另一个网卡接新HUB,并对该HUB上的机器(3号)提供DHCP服务。
当我在2号机器上配置好NAT时,3号可以访问到内部网的所有机器(包括1号),但就是访问不了外网。

机器都是MDK,网络图如下:
------------------------------------

外网
|
|
[1号机器]
|
|
HUB---[2号机器]-----HUB-----[3号机器]
|
|___[其它机器]

--------------------------------------

为什么呢?难道经过2次NAT就不行了吗?
发表于 2003-6-1 12:53:56 | 显示全部楼层
1.把你的两个iptable贴出来
2.直接用ip连接情况如何?极有可能是DNS配置错误。
 楼主| 发表于 2003-6-1 13:31:13 | 显示全部楼层
1.把你的两个iptable贴出来

以下是我所说的2号机器的NAT,1号的是我们总工配置的,我看不到。
eth0-->对外
eth1-->对内
公司内部网段-->192.168.8.0/24
我测试用的3号机所在网段-->192.168.9.0/24
#iptables -t nat -A POSTROUTING -s 192.168.9.0/24 -o eth0 -j SNAT eth0
#iptables -t nat -A PREROUTING  -o eth1 -j SNAT eth1

2.直接用ip连接情况如何?极有可能是DNS配置错误。

这跟DNS没关系。
在3号机上,通过域名和IP都可以访问到内部网(192.168.8和192.168.9),而外部就一个也不行。
发表于 2003-6-1 16:09:52 | 显示全部楼层
你的二号NAT为什么要做?是为什么管理吗?你把NAT2做成路由试试!使 我不明白的是你的3号机居然为什么能访问到1号机?
发表于 2003-6-1 16:11:04 | 显示全部楼层
你的NAT2指向的是NAT1吗?如果没有,试试指向它!
 楼主| 发表于 2003-6-1 17:08:17 | 显示全部楼层
???!
发表于 2003-6-2 22:40:31 | 显示全部楼层
这跟DNS没关系。
在3号机上,通过域名和IP都可以访问到内部网(192.168.8和192.168.9),而外部就一个也不行。

如果是这样的话,那么证明NAT2设置失败,因为实际1号机控制着整个内网的路由,3号机能访问内网只是作为一个与2号机等同的网内工作站被1号机控制,即2号和3号机此时的地位是等同的,而我们现在要做的是将3号机的所以数据包能过NAT2伪装成2号机的数据包去接收1号机路由(还有一种方式就是对所有访问外网的数据包进行伪装而不管访问内网的数据包,不过这种方式实现起来太复杂)。

所以错误应该出现在下面的规则中:
#iptables -t nat -A POSTROUTING -s 192.168.9.0/24 -o eth0 -j SNAT eth0
#iptables -t nat -A PREROUTING -o eth1 -j SNAT eth1
我理解这两条规则的意思是:
对所有从192.168.9.0的eth0发出的数据包进行一个源NAT转换
对所有路由经过192.168.9.0的eth1的数据包进行一个源NAT转换
但我不清楚你对源NAT进行了什么转换。
建议你将所有192.168.9.0的数据包进行IP伪装,这样更简单:
#iptables -t nat -A POSTROUTING -p DROP
#iptables -t nat -A POSTROUTING -o eth1 -j MASQUREADE

由于网络需要具体情况具体分析,以上提供了一条思路,如果该命令行不通,可以问一下公司的总工做适当调整。

祝你好运
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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