LinuxSir.cn,穿越时空的Linuxsir!

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

请高手帮忙,大流量NAT转换问题(急!在线等)

[复制链接]
发表于 2003-12-16 22:19:09 | 显示全部楼层 |阅读模式
网络状况:是个电子城200左右的用户,上网疯狂下载,打游戏,总之流量很大,约1M以上/s晕啊!!

曾经试过win2000 server+sygate win2000server+连接共享 win2000p+连接共享 但网络不稳定

服务器的nat转换流量慢慢下降最后用户感觉其慢无比,重新启动后能暂时恢复速度。。。

实在是没有办法想到用linux来实现nat.研究了一下午没做通(笨啊!)

服务器是普通P4 2.0 pc 256M DDR装redhat8.0 试图用iptables实现透明nat.

不知道能不能带起来?

eth0:真实IP地址 218.27.X.X 255.255.255.192 gateway:218.27.X.65

eth1:内网IP地址 192.168.0.2 255.255.255.0

tc/rc.d/rc.local中加入:

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth0 -j SNAT --to 218.27.X.X

这样做可以么?有写文章里提到要编辑内核,有必要么?如果有应该怎么做呀?

情况紧急故无太多时间研究,请务必写的详细一些。。。小第多谢了!
发表于 2003-12-17 02:23:11 | 显示全部楼层
编译内核这样可以提高速度 200左右还是选择SQUID+IPTABLES做透明代理 这样200个用户完全没问题 兄弟可以先看看关于iptables squid及一些基础的东西
 楼主| 发表于 2003-12-17 09:28:55 | 显示全部楼层
研究了一会儿squid,请问如果要把squid配置成完全透明的应该怎么配置?就是让所有的应用都能通过,象cs拉http,ftp,udp,各种网络游戏等等。。。
 楼主| 发表于 2003-12-17 09:41:06 | 显示全部楼层
还有一个问题,如果用squid下面的机器的应用程序是不是一定要设置代理选项?能不能让下面的机器只配上ip跟网关直接实现所有功能?
发表于 2003-12-17 10:04:36 | 显示全部楼层
如果楼主很急,还是建议用windows做代理。1M的流量很普通的,100兆光纤我用windows做代理也蛮稳定的,并不比linux差。你的问题应该不是网关的问题 ,而是某些用户用工具疯狂下载抢带宽,导致普通用户无法正常上网。解决问题的关键在于QOS,建议楼主往这方面考虑。
发表于 2003-12-17 10:12:37 | 显示全部楼层
个人感觉你的情况还是只用NAT的好.1M/s的网速实在不算大啊,我的机器在做NAT时在3-4M/s时根本没什么感觉。
如果你不太明白,编译内核时把iptable里的都选成模块。
确保#lsmod后有以下几项
ipt_MASQUERADE
iptable_nat
ip_conntrack
ip_tables
发表于 2003-12-17 10:33:54 | 显示全部楼层

回复: 请高手帮忙,大流量NAT转换问题(急!在线等)

最初由 hellozwz 发表
网络状况:是个电子城200左右的用户,上网疯狂下载,打游戏,总之流量很大,约1M以上/s晕啊!!

曾经试过win2000 server+sygate win2000server+连接共享 win2000p+连接共享 但网络不稳定

服务器的nat转换流量慢慢下降最后用户感觉其慢无比,重新启动后能暂时恢复速度。。。

实在是没有办法想到用linux来实现nat.研究了一下午没做通(笨啊!)

服务器是普通P4 2.0 pc 256M DDR装redhat8.0 试图用iptables实现透明nat.

不知道能不能带起来?

eth0:真实IP地址 218.27.X.X 255.255.255.192 gateway:218.27.X.65

eth1:内网IP地址 192.168.0.2 255.255.255.0

tc/rc.d/rc.local中加入:

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth0 -j SNAT --to 218.27.X.X

这样做可以么?有写文章里提到要编辑内核,有必要么?如果有应该怎么做呀?

情况紧急故无太多时间研究,请务必写的详细一些。。。小第多谢了!


哈哈!! 老兄,看来你和我的遭遇是一样啊!!!! 我原来也是用win2000平台做防火墙,主要就是用来做NAT出去,我发现当我的用户达到100多的时候,我的CPU是95%以上也,我的CPU是P4 2.4 MEM 512+256 ,因为NAT 对CPU计算是很忙的。 后来没招了,换了 Linux 后性能好的很。

你先看看我这篇帖子http://bbs.linuxsir.cn/showthread.php?threadid=78668  。

安装好 shorewall 然后按照上面写的帖子的方法配置就可以了,即方便又省事,不用编译内核,一个 rpm -ivh shorewall.x.x.rpm 就搞定
像你这个要求只要几分钟就可以配好,非常容易,配置如下:

  1. cat /etc/shorewall/zones:
  2. ================================================
  3. wan        Internet         Internet
  4. lan        Lan              Lan
  5. ================================================

  6. cat /etc/shorewall/interfaces
  7. ================================================
  8. wan     eth0    detect
  9. lan     eth1    detect
  10. ================================================

  11. cat /etc/shorewall/masq
  12. ================================================
  13. eth0    192.168.0.0/24          218.27.X.X         #----- Lan Masq To Internet
  14. ================================================

  15. cat /etc/shorewall/policy
  16. ================================================
  17. fw      all     ACCEPT      # Firewall 可以任意访问所有区域,包括互联网
  18. lan     wan     ACCEPT      # Lan 可以任意访问互联网

  19. wan     all     DROP        # 互联网不能随意访问内部网络
  20. all     all     REJECT
  21. ================================================

  22. /etc/shorewall/rules 都不用加规则了,清空就可以了。
复制代码


然后用 shorewall restart 就可以啦!! :p
 楼主| 发表于 2003-12-17 13:00:54 | 显示全部楼层
启动shorewall的时候出现
Error: Shore wall can'tstart with the ipchains kernel module loaded - see FAQ #8

现在系统是redhat9 kernel 2.4.20-8
发表于 2003-12-17 13:04:07 | 显示全部楼层
最初由 hellozwz 发表
启动shorewall的时候出现
Error: Shore wall can'tstart with the ipchains kernel module loaded - see FAQ #8

现在系统是redhat9 kernel 2.4.20-8


你不是说你用的系统是 Redhat 8 吗?怎么变成 redhat 9 了,在 Redhat 9 下面需要这样....

  1. service ipchains stop
  2. chkconfig --delete ipchains
  3. rmmod ipchains
复制代码


你再试试:p
 楼主| 发表于 2003-12-17 21:14:14 | 显示全部楼层
现在shorewall肯定是起来了,我用192.168.0.X的IP肯定是能够访问Internet的。可是下面192.168.X.X的IP就出不去了。。我试着改了很多次masq用过的有

192.168.0.0/16
192.168.0.0/24
192.168.0.0/32
也这样做过
192.168.0.0/24
192.168.4.1/24
下面机器就是出不去。。。
现在eth0是218.27.X.X
eth1是192.168.0.2
交换机上的路由是 0.0.0.0/0 192.168.0.2
想不通了。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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