Chinaunix

标题: 咨询一下,万元左右的nat服务器有无经济实惠的配置? [打印本页]

作者: skylove    时间: 2007-09-03 16:48
标题: 咨询一下,万元左右的nat服务器有无经济实惠的配置?
如题,受人所托,帮我们这里的一个二级单位问问~~~他们部门需要一个独立nat服务器,投资大约在1w上下,他请我帮他写个配置,我很久没接触这一块的硬件了~~~

要求如下(其实是我的希望):

至强cpu
服务器主版
千M光网卡两张(它们那里连我们内部光纤网,速度要求比较高,这个就要求有2个pci-e接口)
内存4G左右

其他没有要求~~~ 有没有熟悉的朋友能给个大致配置?
作者: ssffzz1    时间: 2007-09-03 16:50
通常服务器主板集成2张网卡。
1W左右买硬件设备不好吗?
作者: kevin.tan    时间: 2007-09-03 16:54
我的建议是,

可以多考虑一块千兆网卡,做Bonding也可以,做DMZ也可以,如果这些都不需要,还可以拿来做工作网卡的备份,

嗯,自己DIY的话,超微的服务器主板不错

[ 本帖最后由 kevin.tan 于 2007-9-3 16:55 编辑 ]
作者: skylove    时间: 2007-09-03 18:08
原帖由 ssffzz1 于 2007-9-3 16:50 发表
通常服务器主板集成2张网卡。
1W左右买硬件设备不好吗?


怎么说呢。。。集成在主板上的网卡在大点的nat环境,基本没法用
作者: wysilly    时间: 2007-09-03 19:34
具体需求,有可能按他的需求5000都不到就可以搞定.3000的主机我安装gentoo做的一个简单nat,并发两千ip,用了两年多.

[ 本帖最后由 wysilly 于 2007-9-3 19:38 编辑 ]
作者: swordfish.cn    时间: 2007-09-03 22:48
那得看规模有多大了。小单位也用不了太好的机器。做 NAT 关键内存够大,CPU够好,当然,网卡也很重要。

怎么说呢。。。集成在主板上的网卡在大点的nat环境,基本没法用


主板集成的 Intel 网卡难道都不成吗?
作者: platinum    时间: 2007-09-03 22:52
内存也不需要太大,1GB 足够了
但是,单核处理速度一定要快,因为多核对 NAT 没有太大帮助,网络数据包在内核协议栈里是线性工作的
作者: skylove    时间: 2007-09-03 23:32
原帖由 platinum 于 2007-9-3 22:52 发表
内存也不需要太大,1GB 足够了
但是,单核处理速度一定要快,因为多核对 NAT 没有太大帮助,网络数据包在内核协议栈里是线性工作的


因为有打算在上面做个 web proxy 给内网用 。。。所以打算把squid的临时文件的一部分丢在内存里去~~~ 用这个擦写的速度快一些~~~

我下午的时候去大致拼凑了一个配置,现在可能是考虑的用至强的cpu,2.67g的,双核的(现在单核的cpu貌似比较少了!?),到时候就用一个核心来解包,另外一个核心指定给squid工作算了   还要去查查怎么指定哪个程序工作在哪个cpu上的做法呢
作者: platinum    时间: 2007-09-03 23:37
原帖由 skylove 于 2007-9-3 23:32 发表
因为有打算在上面做个 web proxy 给内网用 。。。所以打算把squid的临时文件的一部分丢在内存里去~~~ 用这个擦写的速度快一些~~~

哦,如果这样的话,那大内存,多核就再适合不过了!!!
内核线程会占用一个逻辑 CPU,其他进程/线程会占用其他的逻辑 CPU,负载会被自动分担

top 可以看到某个进程占用的 CPU,top 的顶端可以看到各个逻辑 CPU 的负载状况
但好像没有什么好的办法可以看到哪个进程占哪个逻辑 CPU 占多少
作者: skylove    时间: 2007-09-03 23:48
恩,感谢白金版主的回复

我正在寻找看有无办法进程绑定cpu,结果无意中发现了一张帖子。。。 似乎在linux内核中对 双核的支持确实是有一些问题。。。 原帖在 http://linux.chinaunix.net/bbs/archiver/tid-753474-page-3.html 这里,我没有做试验,到时候测试一下目前版本的2.6系列kernel对双核的支持程度
作者: skylove    时间: 2007-09-04 01:05
对了,顺便问一下,大家做nat的时候一般是用的哪个版本的linux? 我以前一直习惯用as3版本(不过kernel和不少sysctl的参数我修改了),最近有看到 http://www.lintrack.org/ 这里有个linux版本,似乎就是特地为作为路由、nat而做的,不晓得有无朋友用过给点经验?

后来又去看了看,原来从06年后就没有出新版本了。。。估计还是不行了。。。  看来我还是只有考虑其他更新地比较及时地版本了。。。

[ 本帖最后由 skylove 于 2007-9-4 01:11 编辑 ]
作者: platinum    时间: 2007-09-04 01:22
关键在于内核
我也没用过 Lintrack,若它的内核没特殊定制过的话,和正常发行版没什么区别
因为做 NAT 的话,关键是内核的网络协议栈在工作
作者: skylove    时间: 2007-09-04 09:23
原帖由 platinum 于 2007-9-4 01:22 发表
关键在于内核
我也没用过 Lintrack,若它的内核没特殊定制过的话,和正常发行版没什么区别
因为做 NAT 的话,关键是内核的网络协议栈在工作


恩,当时主要想偷懒(毕竟是免费帮别人做),那个版本我去看了一下,比较多的针对网络的kernel patch都打进去了的,而且安装的软件也基本上是针对做nat或者router用的,但是就是板本陈旧了一些,否则倒是一个相当值得可取的版本呢
作者: 美丽人生    时间: 2007-09-04 09:49
万元级NAT服务器就用飞鱼星6300路由器,路由器的节能专家(相于于PC来说)
详情请讯:www.adslr.com
作者: ssffzz1    时间: 2007-09-04 09:56
越看越广告。
还不如买个旧CISCO。
作者: skylove    时间: 2007-09-04 11:36
原帖由 ssffzz1 于 2007-9-4 09:56 发表
越看越广告。
还不如买个旧CISCO。


兄台自己有试过否? 一般的cisco设备 做nat的性能未必有多高,我这里的交换机和路由器都有不少~~~
作者: root_wxt    时间: 2007-09-04 11:38
W元的NAT,有钱人啊!
作者: skylove    时间: 2007-09-04 12:21
对了,咨询一下~~~

附件里这个网卡效率如何? 这类双口的一块网卡和2个单块的网卡比较起来,在做nat的时候是有优势一些还是比较劣势呢???

2.jpg (11.66 KB, 下载次数: 61)

2.jpg

作者: platinum    时间: 2007-09-04 12:28
问一下,那个 NAT 环境大概多少个 IP,多大的带宽?网络拓扑是怎样的?标准的三层结构吗?
作者: skylove    时间: 2007-09-04 12:47
原帖由 platinum 于 2007-9-4 12:28 发表
问一下,那个 NAT 环境大概多少个 IP,多大的带宽?网络拓扑是怎样的?标准的三层结构吗?


  在线的不多,ip只有几k而已,机器可能多一些(因为其下面还有2级nat),就是一个简单的内网(中间的路由不在nat机器上做),nat机器只需要作到把这几k个ip带到电信网络上就行了~~~

也不晓得是谁出的主意,直接买个服务器不好么,让我帮他们配pc服务器,我—*%—*%—……¥……
作者: platinum    时间: 2007-09-04 12:52
网卡选 Intel 的,芯片要 82546 或者 82540 的
系统最好用 CentOS5 based 或者 FC7
作者: skylove    时间: 2007-09-04 12:58
原帖由 platinum 于 2007-9-4 12:52 发表
网卡选 Intel 的,芯片要 82546 或者 82540 的
系统最好用 CentOS5 based 或者 FC7


恩,上面那张网卡就是intel的。。。算是双口的电口网卡里比较好的了(他们的价格买光纤网卡根本买不起,只有考虑电口千m了)~~~ 芯片是 82571EB 的

系统方面还没选, 感谢白金推荐的2个系统~~~ 这2个系统在国内有升级镜象之类的么? 前段时间我用ubuntu用得觉得感觉还不错,原本还说尝试一下它的server板本呢,反正做nat,基本上kernel都是得打打patch,用自己的编译的。
作者: platinum    时间: 2007-09-04 13:04
82571EB 我没接触过,你说“双口电口网卡”,是说一块网卡上有两个网口吗?
我见过一种 4 网口的,忘记叫什么名字了,觉得挺牛的

至于发行版的选择,我个人认为 ubuntu 没有 redhat 更权威
redhat 是多年的大厂商,他们的 kernel 都是 patch 过的,自己也优化过很多东西
redhat 的宗旨是稳定,他们的内核版本相对较低,ubuntu 和 gentoo 他们相比来说更 modern 一些
从稳定性讲我推荐用 redhat 的
centos 其实就是在 redhat 源码基础上再次加工的

FC7 下载地址 CU 有写
centos5 的下载地址可以去 www.centos.org
作者: skylove    时间: 2007-09-04 13:05
感谢白金的耐心解答~~~~

这帖子我忘记了悬赏了。。。现在改不了

最后询问一下,用32位或者64位的linux来做nat,效率上有无差别? 因为可能以后内存会考虑扩容(正在游说他把经费加点,内存加到2g x 4去),所以想考虑用64位的linux,但是不晓得在64bit情形下,对netfilter和周边的效率有无影响?
作者: platinum    时间: 2007-09-04 13:10
你个马后炮……

64 位的系统我没用过,因为身边没有 64 位处理器
但听说 64 位在 netfilter 部分有 BUG,会导致内存溢出还是怎么样我忘记了,已经得到了 redhat 的证实,那是去年年底或今年年初的事情了,不知道现在怎么样了

我的建议是:求稳而不是追新
作者: skylove    时间: 2007-09-04 13:14
原帖由 platinum 于 2007-9-4 13:10 发表
你个马后炮……

64 位的系统我没用过,因为身边没有 64 位处理器
但听说 64 位在 netfilter 部分有 BUG,会导致内存溢出还是怎么样我忘记了,已经得到了 redhat 的证实,那是去年年底或今年年初的事 ...


好的,感谢~~~ 改天来个其他帖子悬赏送分好了,最近这段时间得帮他们从头到尾搞定,来贵板咨询请教的时候想来勤快~~~到时候全部疑难求助均悬赏以感谢各位热心斑竹和版友的帮助

  溢出。。。好大的bug啊。。。   我查查去,感谢白金了。
作者: huzi1986    时间: 2007-09-04 13:16
skylove 可否考虑用router os MONOwall 这些软件路由呢.第一个基在linux 平台,,第二个基于unix (freebsd )..效果不错.现在国内很多大网都是用这些软路由来做NAT..可以接双线.负载!!router os 2.97 的网上有破解的..一样稳定使用..mono是免费版本的..www.m0n0china.org

上面有下载..大小只有5M左右..是潜入式的路由加防火墙..
作者: huzi1986    时间: 2007-09-04 13:18
Centos 在国内在更新源.下载源也有很多.可以自己找一下..FC 7还没有用过...Centos 4.5 或者5.0版本吧。
作者: platinum    时间: 2007-09-04 13:19
m0n0wall 的确很小巧,routeros 的确也很方便,但功能恐怕不足以满足需求
作者: skylove    时间: 2007-09-04 13:26
原帖由 huzi1986 于 2007-9-4 13:16 发表
skylove 可否考虑用router os MONOwall 这些软件路由呢.第一个基在linux 平台,,第二个基于unix (freebsd )..效果不错.现在国内很多大网都是用这些软路由来做NAT..可以接双线.负载!!router os 2.97 的网上有破解 ...


感谢,我之前也有考虑过,不过由于此nat可能还会加上一些相关的软件服务,比如squid,cache dns;而且目前的nat基本上除了转发外,还需要配合一些相关的模块来进行一些p2p方面的限制(tcp连接数限制,单ip带宽tc限制,用ipp2p来解决一些包匹配限制,然后用ulog来纪录一些包,还有limit一些端口的速率,还有就是限制单独每个ip的发包速率(这个我在某个防火墙里看到过,但是具体该用哪个模块实现还望指教),也可能会用到string匹配或者白金写的domain匹配这些模块的)和网络病毒的抓包分析等工作,因此小弟综合考虑自觉可能用包含了gcc等相关软件的发行版本,会在自行编译一些东西的时候更加方便一些。

m0n0wall更是久闻大名,由于freebsd的一些可取之处,在统计单ip流量和发报数方面有先天的优势,其他方面由于对freebsd了解有限也说不上来,但看到在一个纯粹研究软件路由的论坛上面对它还是相当推崇的。
作者: dzb_01    时间: 2007-09-04 13:56
原帖由 skylove 于 2007-9-4 12:21 发表
对了,咨询一下~~~

附件里这个网卡效率如何? 这类双口的一块网卡和2个单块的网卡比较起来,在做nat的时候是有优势一些还是比较劣势呢???


这个intel双千兆电口网卡我正在使用已经快一年了,
两个电口,一个跑网通80M,一个跑电信100M,
相当可以了,还没出现过故障

readme里说,如果你用的是2.6.14/15/16的内核还可以给内核打个ioatdma的 I/O Acceleration Technology 补丁
从2.6.18开始,ioat已经包含在内核里了

[root@ns ~]# ll /lib/modules/2.6.18-8.el5/kernel/drivers/dma/ioatdma.ko
-rw-r--r-- 1 root root 154272 Jul 30 20:33 /lib/modules/2.6.18-8.el5/kernel/drivers/dma/ioatdma.ko

以前用的是德国产的sk98lin,感觉一般,可能是驱动没装好吧
作者: platinum    时间: 2007-09-04 14:09
原帖由 dzb_01 于 2007-9-4 13:56 发表


这个intel双千兆电口网卡我正在使用已经快一年了,
两个电口,一个跑网通80M,一个跑电信100M,
相当可以了,还没出现过故障

readme里说,如果你用的是2.6.14/15/16的内核还可以给内核打个ioatdma的 I ...

有多少个 IP?
wc -l /proc/net/ip_conntrack 有多少?
作者: skylove    时间: 2007-09-04 14:10
原帖由 dzb_01 于 2007-9-4 13:56 发表


这个intel双千兆电口网卡我正在使用已经快一年了,
两个电口,一个跑网通80M,一个跑电信100M,
相当可以了,还没出现过故障

readme里说,如果你用的是2.6.14/15/16的内核还可以给内核打个ioatdma的 I ...


感谢大哥分享经验心得~~ok,那就它了
作者: dzb_01    时间: 2007-09-04 14:24
原帖由 platinum 于 2007-9-4 14:09 发表

有多少个 IP?
wc -l /proc/net/ip_conntrack 有多少?


现在用户总数大约是5300多
晚上高峰期同时在线2200左右

现在运行
cat /proc/slabinfo | grep ip_conn | tail -1 | cut -d " " -f 8
90058


晚上看到的是个六位数,第一位j是1,具体多少没有注意过,等今天晚上我看一下
作者: platinum    时间: 2007-09-04 14:28
原帖由 dzb_01 于 2007-9-4 14:24 发表


现在用户总数大约是5300多
晚上高峰期同时在线2200左右

现在运行
cat /proc/slabinfo | grep ip_conn | tail -1 | cut -d " " -f 8
90058


晚上看到的是个六位数,第一位j是1,具体多少没有注意过 ...

这么强!我还没接触过用 Linux 做 NAT 的这么庞大的网络
CPU 负载有多少,可否看一下 top 信息,按一下 1 看一下各个 CPU 的负载及调度情况?

btw: 晚上是 22000 多吧?2200 的话比现在还少呢
作者: skylove    时间: 2007-09-04 14:28
挖,楼上的厉害。。。我这里的某台nat才

cat /proc/slabinfo | grep ip_conn | tail -1 | cut -d " " -f 8
12786

wc -l /proc/net/ip_conntrack
  12607 /proc/net/ip_conntrack

估计都在睡午觉呢。。。
作者: platinum    时间: 2007-09-04 14:30
cat /proc/slabinfo | grep ip_conn
ip_conntrack         803   3900    256   76  260    1

这是我的,嘿嘿,才 800 左右
作者: dzb_01    时间: 2007-09-04 14:44
不好意思,两位版主,我说错了
我这个不是NAT是只是一个linux做的路由器,
它的下面带了三个NAT,网通,电信,铁通各一个NAT

不过我以前确定是NAT和路由都在一台机器上做的,也是三条专线,
那时晚上最高在线1500-1600人,
cat /proc/slabinfo | grep ip_conn | tail -1 | cut -d " " -f 8
也是个六位数,第1位是1
后来有点挺不住了,才换得现在这个样子的

上边那个5300多只是个节点数啊,不好意思
作者: skylove    时间: 2007-09-04 15:11
原帖由 dzb_01 于 2007-9-4 14:44 发表
不好意思,两位版主,我说错了
我这个不是NAT是只是一个linux做的路由器,
它的下面带了三个NAT,网通,电信,铁通各一个NAT

不过我以前确定是NAT和路由都在一台机器上做的,也是三条专线,
那时晚上最高 ...


太强了。。。想来大哥一定是作了一些特别的优化和内核参数选择,才让一台pc机器的效率能达到如此的高度吧
作者: dzb_01    时间: 2007-09-04 15:32
原帖由 skylove 于 2007-9-4 15:11 发表


太强了。。。想来大哥一定是作了一些特别的优化和内核参数选择,才让一台pc机器的效率能达到如此的高度吧


这台机器就一个CPU,Intel(R) Xeon(TM) CPU 3.00GHz,内存2G
/pric/irq/下关于网卡的irq已经做了调整
或是直接service irqbalance start就行了

但现在每到晚上CPU的idle都非常低,ps ax发现ksoftirq0,或是ksoftirq1总是用了很多CPU,
现在还没有对下面用户造成影响,不知以后用户越来越多会是什么样了
CPU图像如下


计划今晚加班再加一块相同的CPU,还不知道加了之后会不会缓解一下

[ 本帖最后由 dzb_01 于 2007-9-4 15:35 编辑 ]
作者: skylove    时间: 2007-09-04 15:46
原帖由 dzb_01 于 2007-9-4 15:32 发表


这台机器就一个CPU,Intel(R) Xeon(TM) CPU 3.00GHz,内存2G
/pric/irq/下关于网卡的irq已经做了调整
或是直接service irqbalance start就行了

但现在每到晚上CPU的idle都非常低,ps ax发现ksoftirq0, ...


做nat过程中,对cpu消耗比较大。。。恩,是因为做了包解析后策略过滤(ipp2p,layer7)这类的设置的缘故么?

我上面那台机器是一台 p4 的机器上开了 ht,内核是2.4 的,用了ipp2p (奇怪的是用layer7 会使iptables丧失响应),cpu基本上消耗不大~~~ 按理至强的cpu应该强悍很多呢~~~
作者: platinum    时间: 2007-09-04 15:54
原帖由 skylove 于 2007-9-4 15:46 发表
我上面那台机器是一台 p4 的机器上开了 ht,内核是2.4 的,用了ipp2p (奇怪的是用layer7 会使iptables丧失响应)

具体什么症状?也许有办法解决
作者: skylove    时间: 2007-09-04 15:59
原帖由 platinum 于 2007-9-4 15:54 发表

具体什么症状?也许有办法解决


比较早以前的事情了,现在模块已经删除了。。。只有凭印象说了

比如输入一条

[root@nat]#iptables -m layer7 xxxxx -j DROP

这样的命令,然后 enter ,本来不管命令对错,都应该回到提示符号 [root@nat]#  下的,但是我那个输入了后,就会象是挂起了一样,一直不回到提示符号下。。。只有按ctrl+c 终止掉它 (就用ctrl+c就能终止掉,所以响应应该是没死掉的),会不会是因为用户太多,解包速度跟不上所以挂起了?
作者: dzb_01    时间: 2007-09-04 16:05
原帖由 skylove 于 2007-9-4 15:46 发表


做nat过程中,对cpu消耗比较大。。。恩,是因为做了包解析后策略过滤(ipp2p,layer7)这类的设置的缘故么?

我上面那台机器是一台 p4 的机器上开了 ht,内核是2.4 的,用了ipp2p (奇怪的是用layer7 会 ...



那些机器上只用了ipp2p,没有做NAT
区分网通,电信,铁通的流量也没有用iptables的MARK目标匹配

是用了纯路由的方法

因为我先后用两种方法试验之后发现用iptables来打标记区分流量时,内网总是丢包
效果不如纯路由法
作者: skylove    时间: 2007-09-04 16:13
原帖由 dzb_01 于 2007-9-4 16:05 发表



那些机器上只用了ipp2p,没有做NAT
区分网通,电信,铁通的流量也没有用iptables的MARK目标匹配

是用了纯路由的方法

因为我先后用两种方法试验之后发现用iptables来打标记区分流量时,内网总是丢包 ...


小弟正好也是如此~~~ 我分的时候也是用

   route add -net 202.96.137.75/32 gw 网关1 metric 1
    route add -net 210.12.0.0/15 gw 网关2 metric 2

这样的方式来路由分别走的~~~

不知道大哥对 sysctl的参数作了些什么样的调整呢?

小弟目前上面那台的 sysctl 如下,请大哥和其他版友指点值得改进的地方


  1. abi.fake_utsname = 0
  2. abi.trace = 0
  3. abi.defhandler_libcso = 68157441
  4. abi.defhandler_lcall7 = 68157441
  5. abi.defhandler_elf = 0
  6. abi.defhandler_coff = 117440515
  7. dev.rtc.max-user-freq = 64
  8. net.unix.max_dgram_qlen = 50
  9. net.ipv4.ip_conntrack_max = 6553600
  10. net.ipv4.netfilter.ip_conntrack_generic_timeout = 600
  11. net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30
  12. net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 60
  13. net.ipv4.netfilter.ip_conntrack_udp_timeout = 30
  14. net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10
  15. net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
  16. net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
  17. net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
  18. net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
  19. net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 16376
  20. net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
  21. net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120
  22. net.ipv4.netfilter.ip_conntrack_buckets = 8192
  23. net.ipv4.netfilter.ip_conntrack_max = 6553600
  24. net.ipv4.conf.eth1.force_igmp_version = 0
  25. net.ipv4.conf.eth1.arp_ignore = 0
  26. net.ipv4.conf.eth1.arp_announce = 0
  27. net.ipv4.conf.eth1.arp_filter = 1
  28. net.ipv4.conf.eth1.tag = 0
  29. net.ipv4.conf.eth1.log_martians = 0
  30. net.ipv4.conf.eth1.bootp_relay = 0
  31. net.ipv4.conf.eth1.medium_id = 0
  32. net.ipv4.conf.eth1.proxy_arp = 1
  33. net.ipv4.conf.eth1.accept_source_route = 0
  34. net.ipv4.conf.eth1.send_redirects = 0
  35. net.ipv4.conf.eth1.rp_filter = 2
  36. net.ipv4.conf.eth1.shared_media = 1
  37. net.ipv4.conf.eth1.secure_redirects = 1
  38. net.ipv4.conf.eth1.accept_redirects = 0
  39. net.ipv4.conf.eth1.mc_forwarding = 0
  40. net.ipv4.conf.eth1.forwarding = 1
  41. net.ipv4.conf.eth0.force_igmp_version = 0
  42. net.ipv4.conf.eth0.arp_ignore = 0
  43. net.ipv4.conf.eth0.arp_announce = 0
  44. net.ipv4.conf.eth0.arp_filter = 0
  45. net.ipv4.conf.eth0.tag = 0
  46. net.ipv4.conf.eth0.log_martians = 0
  47. net.ipv4.conf.eth0.bootp_relay = 0
  48. net.ipv4.conf.eth0.medium_id = 0
  49. net.ipv4.conf.eth0.proxy_arp = 1
  50. net.ipv4.conf.eth0.accept_source_route = 0
  51. net.ipv4.conf.eth0.send_redirects = 0
  52. net.ipv4.conf.eth0.rp_filter = 2
  53. net.ipv4.conf.eth0.shared_media = 1
  54. net.ipv4.conf.eth0.secure_redirects = 1
  55. net.ipv4.conf.eth0.accept_redirects = 0
  56. net.ipv4.conf.eth0.mc_forwarding = 0
  57. net.ipv4.conf.eth0.forwarding = 1
  58. net.ipv4.conf.lo.force_igmp_version = 0
  59. net.ipv4.conf.lo.arp_ignore = 0
  60. net.ipv4.conf.lo.arp_announce = 0
  61. net.ipv4.conf.lo.arp_filter = 0
  62. net.ipv4.conf.lo.tag = 0
  63. net.ipv4.conf.lo.log_martians = 0
  64. net.ipv4.conf.lo.bootp_relay = 0
  65. net.ipv4.conf.lo.medium_id = 0
  66. net.ipv4.conf.lo.proxy_arp = 0
  67. net.ipv4.conf.lo.accept_source_route = 0
  68. net.ipv4.conf.lo.send_redirects = 0
  69. net.ipv4.conf.lo.rp_filter = 2
  70. net.ipv4.conf.lo.shared_media = 1
  71. net.ipv4.conf.lo.secure_redirects = 1
  72. net.ipv4.conf.lo.accept_redirects = 0
  73. net.ipv4.conf.lo.mc_forwarding = 0
  74. net.ipv4.conf.lo.forwarding = 1
  75. net.ipv4.conf.default.force_igmp_version = 0
  76. net.ipv4.conf.default.arp_ignore = 0
  77. net.ipv4.conf.default.arp_announce = 0
  78. net.ipv4.conf.default.arp_filter = 0
  79. net.ipv4.conf.default.tag = 0
  80. net.ipv4.conf.default.log_martians = 0
  81. net.ipv4.conf.default.bootp_relay = 0
  82. net.ipv4.conf.default.medium_id = 0
  83. net.ipv4.conf.default.proxy_arp = 0
  84. net.ipv4.conf.default.accept_source_route = 0
  85. net.ipv4.conf.default.send_redirects = 0
  86. net.ipv4.conf.default.rp_filter = 2
  87. net.ipv4.conf.default.shared_media = 1
  88. net.ipv4.conf.default.secure_redirects = 1
  89. net.ipv4.conf.default.accept_redirects = 0
  90. net.ipv4.conf.default.mc_forwarding = 0
  91. net.ipv4.conf.default.forwarding = 1
  92. net.ipv4.conf.all.force_igmp_version = 0
  93. net.ipv4.conf.all.arp_ignore = 0
  94. net.ipv4.conf.all.arp_announce = 0
  95. net.ipv4.conf.all.arp_filter = 0
  96. net.ipv4.conf.all.tag = 0
  97. net.ipv4.conf.all.log_martians = 0
  98. net.ipv4.conf.all.bootp_relay = 0
  99. net.ipv4.conf.all.medium_id = 0
  100. net.ipv4.conf.all.proxy_arp = 0
  101. net.ipv4.conf.all.accept_source_route = 0
  102. net.ipv4.conf.all.send_redirects = 0
  103. net.ipv4.conf.all.rp_filter = 2
  104. net.ipv4.conf.all.shared_media = 1
  105. net.ipv4.conf.all.secure_redirects = 1
  106. net.ipv4.conf.all.accept_redirects = 0
  107. net.ipv4.conf.all.mc_forwarding = 0
  108. net.ipv4.conf.all.forwarding = 1
  109. net.ipv4.neigh.eth1.locktime = 50
  110. net.ipv4.neigh.eth1.proxy_delay = 120
  111. net.ipv4.neigh.eth1.anycast_delay = 100
  112. net.ipv4.neigh.eth1.proxy_qlen = 96
  113. net.ipv4.neigh.eth1.unres_qlen = 6
  114. net.ipv4.neigh.eth1.gc_stale_time = 15
  115. net.ipv4.neigh.eth1.delay_first_probe_time = 2
  116. net.ipv4.neigh.eth1.base_reachable_time = 30
  117. net.ipv4.neigh.eth1.retrans_time = 150
  118. net.ipv4.neigh.eth1.app_solicit = 0
  119. net.ipv4.neigh.eth1.ucast_solicit = 3
  120. net.ipv4.neigh.eth1.mcast_solicit = 3
  121. net.ipv4.neigh.eth0.locktime = 100
  122. net.ipv4.neigh.eth0.proxy_delay = 80
  123. net.ipv4.neigh.eth0.anycast_delay = 100
  124. net.ipv4.neigh.eth0.proxy_qlen = 64
  125. net.ipv4.neigh.eth0.unres_qlen = 3
  126. net.ipv4.neigh.eth0.gc_stale_time = 15
  127. net.ipv4.neigh.eth0.delay_first_probe_time = 5
  128. net.ipv4.neigh.eth0.base_reachable_time = 30
  129. net.ipv4.neigh.eth0.retrans_time = 100
  130. net.ipv4.neigh.eth0.app_solicit = 0
  131. net.ipv4.neigh.eth0.ucast_solicit = 3
  132. net.ipv4.neigh.eth0.mcast_solicit = 3
  133. net.ipv4.neigh.lo.locktime = 100
  134. net.ipv4.neigh.lo.proxy_delay = 80
  135. net.ipv4.neigh.lo.anycast_delay = 100
  136. net.ipv4.neigh.lo.proxy_qlen = 64
  137. net.ipv4.neigh.lo.unres_qlen = 3
  138. net.ipv4.neigh.lo.gc_stale_time = 60
  139. net.ipv4.neigh.lo.delay_first_probe_time = 5
  140. net.ipv4.neigh.lo.base_reachable_time = 30
  141. net.ipv4.neigh.lo.retrans_time = 100
  142. net.ipv4.neigh.lo.app_solicit = 0
  143. net.ipv4.neigh.lo.ucast_solicit = 3
  144. net.ipv4.neigh.lo.mcast_solicit = 3
  145. net.ipv4.neigh.default.gc_thresh3 = 1638400
  146. net.ipv4.neigh.default.gc_thresh2 = 819200
  147. net.ipv4.neigh.default.gc_thresh1 = 409600
  148. net.ipv4.neigh.default.gc_interval = 1
  149. net.ipv4.neigh.default.locktime = 100
  150. net.ipv4.neigh.default.proxy_delay = 80
  151. net.ipv4.neigh.default.anycast_delay = 100
  152. net.ipv4.neigh.default.proxy_qlen = 64
  153. net.ipv4.neigh.default.unres_qlen = 3
  154. net.ipv4.neigh.default.gc_stale_time = 15
  155. net.ipv4.neigh.default.delay_first_probe_time = 5
  156. net.ipv4.neigh.default.base_reachable_time = 30
  157. net.ipv4.neigh.default.retrans_time = 100
  158. net.ipv4.neigh.default.app_solicit = 0
  159. net.ipv4.neigh.default.ucast_solicit = 3
  160. net.ipv4.neigh.default.mcast_solicit = 3
  161. net.ipv4.tcp_bic_beta = 819
  162. net.ipv4.tcp_moderate_rcvbuf = 0
  163. net.ipv4.tcp_default_win_scale = 0
  164. net.ipv4.tcp_bic_low_window = 14
  165. net.ipv4.tcp_bic_fast_convergence = 1
  166. net.ipv4.tcp_bic = 0
  167. net.ipv4.tcp_vegas_gamma = 2
  168. net.ipv4.tcp_vegas_beta = 6
  169. net.ipv4.tcp_vegas_alpha = 2
  170. net.ipv4.tcp_vegas_cong_avoid = 0
  171. net.ipv4.tcp_no_metrics_save = 0
  172. net.ipv4.tcp_westwood = 0
  173. net.ipv4.ipfrag_secret_interval = 600
  174. net.ipv4.tcp_low_latency = 0
  175. net.ipv4.tcp_frto = 0
  176. net.ipv4.tcp_tw_reuse = 1
  177. net.ipv4.icmp_ratemask = 6168
  178. net.ipv4.icmp_ratelimit = 100
  179. net.ipv4.tcp_adv_win_scale = 2
  180. net.ipv4.tcp_app_win = 31
  181. net.ipv4.tcp_rmem = 51200       131072  204800
  182. net.ipv4.tcp_wmem = 51200       131072  204800
  183. net.ipv4.tcp_mem = 192000       300000  732000
  184. net.ipv4.tcp_dsack = 1
  185. net.ipv4.tcp_ecn = 0
  186. net.ipv4.tcp_reordering = 5
  187. net.ipv4.tcp_fack = 1
  188. net.ipv4.tcp_orphan_retries = 3
  189. net.ipv4.inet_peer_gc_maxtime = 120
  190. net.ipv4.inet_peer_gc_mintime = 10
  191. net.ipv4.inet_peer_maxttl = 600
  192. net.ipv4.inet_peer_minttl = 120
  193. net.ipv4.inet_peer_threshold = 65664
  194. net.ipv4.igmp_max_msf = 10
  195. net.ipv4.igmp_max_memberships = 20
  196. net.ipv4.route.secret_interval = 600
  197. net.ipv4.route.min_adv_mss = 256
  198. net.ipv4.route.min_pmtu = 552
  199. net.ipv4.route.mtu_expires = 600
  200. net.ipv4.route.gc_elasticity = 8
  201. net.ipv4.route.error_burst = 500
  202. net.ipv4.route.error_cost = 200
  203. net.ipv4.route.redirect_silence = 2048
  204. net.ipv4.route.redirect_number = 9
  205. net.ipv4.route.redirect_load = 2
  206. net.ipv4.route.gc_interval = 60
  207. net.ipv4.route.gc_timeout = 300
  208. net.ipv4.route.gc_min_interval = 0
  209. net.ipv4.route.max_size = 262144
  210. net.ipv4.route.gc_thresh = 16384
  211. net.ipv4.route.max_delay = 10
  212. net.ipv4.route.min_delay = 2
  213. net.ipv4.icmp_ignore_bogus_error_responses = 1
  214. net.ipv4.icmp_echo_ignore_broadcasts = 0
  215. net.ipv4.icmp_echo_ignore_all = 0
  216. net.ipv4.ip_local_port_range = 1024     65000
  217. net.ipv4.tcp_max_syn_backlog = 4096
  218. net.ipv4.tcp_rfc1337 = 1
  219. net.ipv4.tcp_stdurg = 0
  220. net.ipv4.tcp_abort_on_overflow = 1
  221. net.ipv4.tcp_tw_recycle = 1
  222. net.ipv4.tcp_syncookies = 1
  223. net.ipv4.tcp_fin_timeout = 30
  224. net.ipv4.tcp_retries2 = 5
  225. net.ipv4.tcp_retries1 = 3
  226. net.ipv4.tcp_keepalive_intvl = 15
  227. net.ipv4.tcp_keepalive_probes = 2
  228. net.ipv4.tcp_keepalive_time = 1800
  229. net.ipv4.ipfrag_time = 30
  230. net.ipv4.ip_dynaddr = 0
  231. net.ipv4.ipfrag_low_thresh = 262144
  232. net.ipv4.ipfrag_high_thresh = 393216
  233. net.ipv4.tcp_max_tw_buckets = 240000
  234. net.ipv4.tcp_max_orphans = 327680
  235. net.ipv4.tcp_synack_retries = 2
  236. net.ipv4.tcp_syn_retries = 3
  237. net.ipv4.ip_nonlocal_bind = 0
  238. net.ipv4.ip_no_pmtu_disc = 0
  239. net.ipv4.ip_autoconfig = 0
  240. net.ipv4.ip_default_ttl = 64
  241. net.ipv4.ip_forward = 1
  242. net.ipv4.tcp_retrans_collapse = 0
  243. net.ipv4.tcp_sack = 1
  244. net.ipv4.tcp_window_scaling = 1
  245. net.ipv4.tcp_timestamps = 0
  246. net.core.somaxconn = 65535
  247. net.core.hot_list_length = 128
  248. net.core.optmem_max = 10240
  249. net.core.message_burst = 50
  250. net.core.message_cost = 5
  251. net.core.mod_cong = 290
  252. net.core.lo_cong = 100
  253. net.core.no_cong = 20
  254. net.core.no_cong_thresh = 10
  255. net.core.netdev_max_backlog = 4096
  256. net.core.dev_weight = 64
  257. net.core.rmem_default = 107520
  258. net.core.wmem_default = 107520
  259. net.core.rmem_max = 655350
  260. net.core.wmem_max = 655350
  261. vm.block_dump = 0
  262. vm.laptop_mode = 0
  263. vm.max_map_count = 65536
  264. vm.max-readahead = 31
  265. vm.min-readahead = 3
  266. vm.page-cluster = 3
  267. vm.pagetable_cache = 25 50
  268. vm.kswapd = 512 32      8
  269. vm.overcommit_memory = 0
  270. vm.bdflush = 100        1200    128     512     15      5000    60      20      0
  271. vm.vm_passes = 60
  272. vm.vm_lru_balance_ratio = 2
  273. vm.vm_anon_lru = 0
  274. vm.vm_mapped_ratio = 100
  275. vm.vm_cache_scan_ratio = 6
  276. vm.vm_vfs_scan_ratio = 6
  277. vm.vm_gfp_debug = 0
  278. kernel.overflowgid = 65534
  279. kernel.overflowuid = 65534
  280. kernel.random.uuid = 6e8628fe-72d4-48b4-8c88-9e9645b47aa6
  281. kernel.random.boot_id = 397b10ac-1a87-44c6-8c0f-02972db7cf9d
  282. kernel.random.write_wakeup_threshold = 128
  283. kernel.random.read_wakeup_threshold = 8
  284. kernel.random.entropy_avail = 4096
  285. kernel.random.poolsize = 512
  286. kernel.threads-max = 14336
  287. kernel.cad_pid = 1
  288. kernel.sysrq = 0
  289. kernel.sem = 250        32000   32      128
  290. kernel.msgmnb = 16384
  291. kernel.msgmni = 16
  292. kernel.msgmax = 8192
  293. kernel.shmmni = 4096
  294. kernel.shmall = 268435456
  295. kernel.shmmax = 268435456
  296. kernel.rtsig-max = 1024
  297. kernel.rtsig-nr = 0
  298. kernel.acct = 4 2       30
  299. kernel.hotplug = /sbin/hotplug
  300. kernel.modprobe = /sbin/modprobe
  301. kernel.printk = 6       4       1       7
  302. kernel.ctrl-alt-del = 0
  303. kernel.real-root-dev = 256
  304. kernel.cap-bound = -257
  305. kernel.tainted = 0
  306. kernel.core_pattern = core
  307. kernel.core_setuid_ok = 0
  308. kernel.core_uses_pid = 1
  309. kernel.panic = 0
  310. kernel.domainname = (none)
  311. kernel.hostname = newgateway
  312. kernel.version = #2 SMP 五 1月 6 01:19:55 CST 2006
  313. kernel.osrelease = 2.4.32
  314. kernel.ostype = Linux
  315. fs.quota.warnings = 1
  316. fs.quota.syncs = 7
  317. fs.quota.free_dquots = 0
  318. fs.quota.allocated_dquots = 0
  319. fs.quota.cache_hits = 0
  320. fs.quota.writes = 0
  321. fs.quota.reads = 0
  322. fs.quota.drops = 0
  323. fs.quota.lookups = 0
  324. fs.lease-break-time = 45
  325. fs.dir-notify-enable = 1
  326. fs.leases-enable = 1
  327. fs.overflowgid = 65534
  328. fs.overflowuid = 65534
  329. fs.dentry-state = 282480        265380  45      0       0       0
  330. fs.file-max = 209683
  331. fs.file-nr = 426        121     209683
  332. fs.inode-state = 276102 110     0       0       0       0       0
  333. fs.inode-nr = 276102    110
复制代码

作者: dzb_01    时间: 2007-09-04 16:27
原帖由 skylove 于 2007-9-4 16:13 发表


小弟正好也是如此~~~ 我分的时候也是用

   route add -net 202.96.137.75/32 gw 网关1 metric 1
    route add -net 210.12.0.0/15 gw 网关2 metric 2

这样的方式来路由分别走的~~~

不知道大哥 ...


我只做了这些修改啊
/sbin/modprobe ip_conntrack hashsize=131072
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
echo "1" >/proc/sys/net/ipv4/ip_forward
echo "0" >/proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 4096 > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo 3 > /proc/sys/net/ipv4/tcp_syn_retries
echo 3 > /proc/sys/net/ipv4/tcp_synack_retries
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 2097152 > /proc/sys/net/ipv4/ip_conntrack_max
echo 1800 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established


第一条是根据
http://bbs.chinaunix.net/redirec ... amp;goto=nextoldset
改的

最后一条是以前看白金版主的一个贴子改的
作者: skylove    时间: 2007-09-04 16:34
谢谢大哥分享,第一条我正好以前没看到呢。。。

配合您在前面说的 , 原来 ip_conntrack 上了 6位,1开头 就开始不稳定,是否是正好由于达到了 hashsize=131072 的上限导致的呢???

无妄猜测
作者: dzb_01    时间: 2007-09-04 16:39
这个具体我也不太清楚,

网上有人说改那个桶的参数还是没有多大用处

可是我处于心理作用还是把它改了
作者: skylove    时间: 2007-09-04 16:56
原帖由 dzb_01 于 2007-9-4 16:39 发表
这个具体我也不太清楚,

网上有人说改那个桶的参数还是没有多大用处

可是我处于心理作用还是把它改了


  大哥的网络规模甚大,以后还要多多向您请教~~~

顺带一提,我的网络有遇到过:
内网有机器中了arp 病毒或者其他病毒的时候,会高速地发一些特别小尺寸的udp包或者频繁地请求nat服务器的内网卡arp地址,这个时候nat服务器的cpu利用率就会彪升地蛮快的,希望这个能有助于协助到您解决贵网络nat服务器夜间cpu占用过高的问题。
作者: bigbomb    时间: 2007-09-04 16:59
标题: 强帖,顶顶顶顶顶顶顶
今天又从各位DX手上学到的不少东西
作者: dzb_01    时间: 2007-09-04 17:19
原帖由 skylove 于 2007-9-4 16:56 发表


  大哥的网络规模甚大,以后还要多多向您请教~~~

顺带一提,我的网络有遇到过:
内网有机器中了arp 病毒或者其他病毒的时候,会高速地发一些特别小尺寸的udp包或者频繁地请求nat服务器的内网卡 ...



谢谢你,我以后会多注意内网病毒问题

大家都是互相帮助

也午你们不知道,我从你们的以前贴子中真的学到好多东西

你们帮助别人的同时,也帮助了我
作者: skylove    时间: 2007-09-04 17:21
原帖由 dzb_01 于 2007-9-4 17:19 发表



谢谢你,我以后会多注意内网病毒问题

大家都是互相帮助

也午你们不知道,我从你们的以前贴子中真的学到好多东西

你们帮助别人的同时,也帮助了我


  互相交流,共同进步
作者: huzi1986    时间: 2007-09-04 18:02
都是高手在交流..俺菜鸟学到很多东西..暂时没有机会接触到这么大的网络...哈哈..楼主是多少个信息点.同时的并发连接数目是多少..上行及下行带宽是多少.
作者: huzi1986    时间: 2007-09-04 18:07
原帖由 dzb_01 于 2007-9-4 13:56 发表


这个intel双千兆电口网卡我正在使用已经快一年了,
两个电口,一个跑网通80M,一个跑电信100M,
相当可以了,还没出现过故障

readme里说,如果你用的是2.6.14/15/16的内核还可以给内核打个ioatdma的 I ...




cat /proc/slabinfo | grep ip_conn | tail -1 | cut -d " " -f 8

把最后一个命令解析一下..

cat 查看/proc/slabinfo  文件 管道传给grep grep 过滤去ip_conn | 结果传给tail -1 tail -1是选择最后一行,还是统计所有的..|

cut -d "" -f 8 解析一下


谢谢



请问LZ是用什么LINUX来做的..自己经过编译的的吗?还是一些专业的LINUX 路由


请教哈
作者: skylove    时间: 2007-09-04 18:20
原帖由 huzi1986 于 2007-9-4 18:07 发表

请问LZ是用什么LINUX来做的..自己经过编译的的吗?还是一些专业的LINUX 路由


以前是用自己编译过的linux kernel ,os是 rh as3 。 这次大概也差不多

cut -d " " -f 8


man一下cut就看到解释了


-d, --delimiter=DELIM
            use DELIM instead of TAB for field delimiter

-f, --fields=LIST
            output only these fields;  also print any line that contains  no
            delimiter character, unless the -s option is specified

作用就是把该行第2个数字串取出来, 有意思的是在连接数不上w的情况下 -f 8 得变成 -f 9 ... 所以我个人而言还是比较习惯最后用 awk {'print $2'} 来得到这个数字串。。。

[ 本帖最后由 skylove 于 2007-9-4 18:24 编辑 ]
作者: alin999    时间: 2007-09-04 21:51
有多少用户?

我认为这个很重要
作者: platinum    时间: 2007-09-04 22:17
原帖由 alin999 于 2007-9-4 21:51 发表
有多少用户?

我认为这个很重要

我不认为“用户数”是很重要的
我认为重要的是“连接数”而并不是“用户数”
100 个开 P2P 的用户(即使找不到资源,下载速度极慢)有可能比 10000 个浏览网页的用户对网络更具有威胁
作者: wysilly    时间: 2007-09-04 22:25
呵呵,我的经验是5000元左右的机子,就可以了.调优很重要,多核及64位不适合nat也是过时的言论了.我看到一个6月的测试文档,2.6.20的内核.能够满足大多数的应用了.
作者: platinum    时间: 2007-09-04 23:20
原帖由 wysilly 于 2007-9-4 22:25 发表
呵呵,我的经验是5000元左右的机子,就可以了.调优很重要,多核及64位不适合nat也是过时的言论了.我看到一个6月的测试文档,2.6.20的内核.能够满足大多数的应用了.

那个 2.6 的 netfilter 的 BUG 是在加一定数量规则以后产生的,一般用户不会遇到,是 RH 受理的,也不知道他们会怎么处理这个 BUG,是自己处理还是公开提交
至于你说的 6 月的测试文档,在哪里可以找到?我也想看一下
作者: qishking    时间: 2007-09-04 23:54
原帖由 platinum 于 2007-9-4 13:04 发表
82571EB 我没接触过,你说“双口电口网卡”,是说一块网卡上有两个网口吗?
我见过一种 4 网口的,忘记叫什么名字了,觉得挺牛的

至于发行版的选择,我个人认为 ubuntu 没有 redhat 更权威
redhat 是多年的 ...

Debian 的发行版也很稳定
作者: abcbuzhiming    时间: 2007-09-05 08:58
原帖由 platinum 于 2007-9-4 23:20 发表

那个 2.6 的 netfilter 的 BUG 是在加一定数量规则以后产生的,一般用户不会遇到,是 RH 受理的,也不知道他们会怎么处理这个 BUG,是自己处理还是公开提交
至于你说的 6 月的测试文档,在哪里可以找到?我也 ...

这是内核bug还是iptables的bug,为什么会轮到redhat来受理?
作者: seven007    时间: 2007-09-05 09:12
原帖由 skylove 于 2007-9-4 11:36 发表


兄台自己有试过否? 一般的cisco设备 做nat的性能未必有多高,我这里的交换机和路由器都有不少~~~

cisco router switch做nat都很占CPU和内存,但cisco的防火墙就不会,我测试过,几乎没什么影像
作者: skylove    时间: 2007-09-05 09:17
原帖由 seven007 于 2007-9-5 09:12 发表

cisco router switch做nat都很占CPU和内存,但cisco的防火墙就不会,我测试过,几乎没什么影像


按照原来而论,转发的ip track 状态注定是需要一个hash表来维护查找的,这个有内存开销;包的解码分析(7层过滤p2p这些)也是决定了会导致cpu负载增加的。

不知道朋友提到的是cisco哪一款防火墙? 或许小弟正好也有用过,交流一下使用心得岂不妙哉?
作者: seven007    时间: 2007-09-05 09:26
原帖由 skylove 于 2007-9-5 09:17 发表


按照原来而论,转发的ip track 状态注定是需要一个hash表来维护查找的,这个有内存开销;包的解码分析(7层过滤p2p这些)也是决定了会导致cpu负载增加的。

不知道朋友提到的是cisco哪一款防火墙? 或许小 ...

小弟可能没说清楚,是CPU没什么影像,内存还是增加的,小弟用的是最抵挡的Pix506e
作者: platinum    时间: 2007-09-05 09:27
原帖由 abcbuzhiming 于 2007-9-5 08:58 发表

这是内核bug还是iptables的bug,为什么会轮到redhat来受理?

这是我一个朋友做项目,公司用 AS4 的时候遇到的,x64 的系统,iptables 添加了上万条策略,结果报错
因为用的是 redhat 的产品,而且是付费了的,所以要求他们解决
redhat 经过很长时间摸索发现这是一个 netfilter 的 BUG,给了一个内核补丁,但不让外传
其他的后来就不清楚了
作者: skylove    时间: 2007-09-05 11:05
原帖由 seven007 于 2007-9-5 09:26 发表

小弟可能没说清楚,是CPU没什么影像,内存还是增加的,小弟用的是最抵挡的Pix506e


pix似乎是依照了bsd的一些想法进行设计的,而且经过了一些硬件上的定制优化,所以性能还是值得称道的~~~ 但可能价格就超出了题目范畴许多了哟
作者: ssffzz1    时间: 2007-09-05 11:29
更绝的,买SE440主板,自己DIY  CISCO的PIX。
我自己DIY了CISCO的IDS,还有JUIPPER的路由器,都曼不错的。
作者: platinum    时间: 2007-09-05 11:31
原帖由 ssffzz1 于 2007-9-5 11:29 发表
更绝的,买SE440主板,自己DIY  CISCO的PIX。
我自己DIY了CISCO的IDS,还有JUIPPER的路由器,都曼不错的。

啊?!
他们的程序在那个板子上能跑起来?他们没有加密吗?功能没有损失吗?
作者: skylove    时间: 2007-09-05 11:41
原帖由 ssffzz1 于 2007-9-5 11:29 发表
更绝的,买SE440主板,自己DIY  CISCO的PIX。
我自己DIY了CISCO的IDS,还有JUIPPER的路由器,都曼不错的。


恩,这个早就有所了解,白金若有兴趣,不妨去 http://bbs.routerclub.com/forum-14-1.html 这里看看做法? 值得一提的是,这个站点的站长本人也是cu的常客
作者: platinum    时间: 2007-09-05 11:54
哈,太美是我的朋友,我们经常在 MSN 上切磋
作者: ssffzz1    时间: 2007-09-05 12:11
跑的都是原来的内核代码,不是模拟的。
损失的只是接口类型没有真机丰富,特别是JUIPPER的。
这个只能支持以太口的,别的好像即使支持也很难调试。
作者: abcbuzhiming    时间: 2007-09-05 19:14
原帖由 platinum 于 2007-9-5 09:27 发表

这是我一个朋友做项目,公司用 AS4 的时候遇到的,x64 的系统,iptables 添加了上万条策略,结果报错
因为用的是 redhat 的产品,而且是付费了的,所以要求他们解决
redhat 经过很长时间摸索发现这是一个 n ...

什么应用居然会写上万条iptables的策略,要上写错一条,查起来岂不是要死人
作者: platinum    时间: 2007-09-05 20:07
原帖由 abcbuzhiming 于 2007-9-5 19:14 发表

什么应用居然会写上万条iptables的策略,要上写错一条,查起来岂不是要死人

具体我不清楚,但据说效率不错,虽然规则很多,但每个数据包经过的规则却很少
作者: 河里的鱼    时间: 2007-09-05 20:27
原帖由 platinum 于 2007-9-5 09:27 发表

这是我一个朋友做项目,公司用 AS4 的时候遇到的,x64 的系统,iptables 添加了上万条策略,结果报错
因为用的是 redhat 的产品,而且是付费了的,所以要求他们解决
redhat 经过很长时间摸索发现这是一个 n ...



后来就是X64这个东西很烂,换掉了
作者: platinum    时间: 2007-09-05 21:11
原帖由 河里的鱼 于 2007-9-5 20:27 发表



后来就是X64这个东西很烂,换掉了

呵呵,对,河里的鱼就是我说的那位朋友
作者: skylove    时间: 2007-09-05 21:22
  俺不信邪 我今天刚游说对方多投资了5k,这下把内存扩到8g去了。。。   x64一条路走到黑了
作者: wysilly    时间: 2007-09-05 21:25
呵呵,内存密集型企业.
作者: shdnzwy    时间: 2007-09-06 00:22
学习了,占个位置不好意思……
作者: zdx3578    时间: 2008-01-02 22:36
标题: Lintrack
Lintrack is a small, easy to configure and highly integrated GNU/Linux distribution for routers, firewalls, network access servers, content filters and more. It is targeted especially at small and medium-sized wireless Internet Service Providers. More...
功能好像很全很强哦
作者: zdx3578    时间: 2008-01-02 22:52
标题: Astaro good!!黑客大暴光推荐
Astaro Security Gateway provides immediate protection for your network, web access and email traffic. The Astaro solution integrates more security applications than any competitor in one award-winning management device. A complete range of hardware appliances scale to the performance level which you demand.

Over 100,000 IT security experts in 60 countries entrust their network with Astaro's Unified Threat Management solutions.
作者: fuleru    时间: 2008-01-03 10:09
没有做过那么大的网络,看看牛人们都是如何做的。
作者: skylove    时间: 2008-03-05 00:11
采购的人把机器买回来了,最后买的是一台 intel 至强 4核 ,8G 内存的机器 。。。

目前我已经装了 Centos 5.1 ,但是用默认的最新源代码无法编译内核,现在下了一个 linux-2.6.24.3 版本的内核,编译成功,目前正在搞这个东西,网卡就是用的前面提的,我刚才远程把 ioatdma 和e1000的驱动装好了,但是好像ioatdma加速并没有能够启动,我也按照README去内核设置里特别注意了三个地方是y,不过按照 http://support.dell.com/support/ ... R166298/cs/ioat.htm 一文的说明,确实是没有启动成功。。。

我单独运行 modprobe ioatdma 的时候,提示为 WARNING: Error inserting dca (/lib/modules/2.6.24.3skylove/extra/dca/dca.ko): Invalid module format 。。。 好像和里面说明的 “注意:此模块必须存在于 /lib/modules/`uname –r`/kernel/drivers/dma/ioatdma.ko 中。” 这话不对应,连位置和模块名都不一致呢
作者: kevin.tan    时间: 2008-03-05 09:18
原帖由 skylove 于 2008-3-5 00:11 发表
采购的人把机器买回来了,最后买的是一台 intel 至强 4核 ,8G 内存的机器 。。。

目前我已经装了 Centos 5.1 ,但是用默认的最新源代码无法编译内核,现在下了一个 linux-2.6.24.3 版本的内核,编译成功,目 ...


在使用rh发行版过程中,经常有套件tarball方式无法编译成功的,比喻说我在centos 5(rhel 5)中最新版的pppd和rp-pppoe就没编译成功过,使用自带的套件也因为pppd进程与syslogd进程冲突先造成pppoe-server无法拔入。

最后换debian了。

期待skylove版主解决问题,同时期待思一克版主的多核补丁能够完善。
作者: skylove    时间: 2008-03-05 09:53
原帖由 kevin.tan 于 2008-3-5 09:18 发表


在使用rh发行版过程中,经常有套件tarball方式无法编译成功的,比喻说我在centos 5(rhel 5)中最新版的pppd和rp-pppoe就没编译成功过,使用自带的套件也因为pppd进程与syslogd进程冲突先造成pppoe-server无 ...


那边赶鸭子上架得紧,暂时我只有就这样丢上去了(虽然效率可能有所不足~~~),上架以后,大概就不可以频繁地改动了。。。5555,郁闷,等机器等了近半年,拿到机器3天就要让投入实际应用。。。干~~~~
作者: skylove    时间: 2008-03-05 11:14
刚把在 x86_64 下, hping2 不能成功编译的问题解决了。

修改src下的 bytesex.h 文件
原来的大概是

  1. /* Original code from the Linux C library */
  2. /* Copyright (C) 2000,2001 Salvatore Sanfilippo <[email]antirez@invece.org[/email]>
  3. * This code is under the original GNU C library license (GPL) */

  4. /* $Id: bytesex.h,v 1.3 2003/07/28 09:00:55 njombart Exp $ */

  5. #ifndef ARS_BYTESEX_H
  6. #define ARS_BYTESEX_H

  7. #if     defined(__i386__) \
  8.         || defined(__alpha__) \
  9.         || (defined(__mips__) && (defined(MIPSEL) || defined (__MIPSEL__)))
  10. #define BYTE_ORDER_LITTLE_ENDIAN
  11. #elif   defined(__mc68000__) \
  12.         || defined (__sparc) \
  13.         || defined (__sparc__) \
  14.         || defined (__PPC__) \
  15.         || defined (__BIG_ENDIAN__) \
  16.         || (defined(__mips__) && (defined(MIPSEB) || defined (__MIPSEB__)))
  17. #define BYTE_ORDER_BIG_ENDIAN
  18. #else
  19. # error can not find the byte order for this architecture, fix bytesex.h
  20. #endif

  21. #endif /* ARS_BYTESEX_H */
复制代码


在其中
        || defined (__sparc__) \
添加上一行
        || defined (__x86_64__) \
即可
作者: twodog29    时间: 2008-03-05 11:27
学到了不少东西啊

要是skylove版主能写个详细实施过程就更好了
作者: skylove    时间: 2008-03-05 17:59
原帖由 twodog29 于 2008-3-5 11:27 发表
学到了不少东西啊

要是skylove版主能写个详细实施过程就更好了


偶们这里是根据需求来定制,所以有不少规则会蛮奇特的~~~ 而关于流量整形等方面,还在考虑是用tc还是前端时间看到有网友写的一个限速模块实现。目前正在考虑把ip和mac绑定的程序写成数据库+php前台(方便那个部门的那个不会linux的女同事操作,我省事),以前用postgresql 配合 php写了一半,正好这次借这个机会写完吧。

目前跑了半天,基本还算正常。。。不过cpu和内存基本上都没发挥作用,正在琢磨考虑要不要加个squid。。。 或者找个另外轻量级一些的反向代理~~~!
作者: kevin.tan    时间: 2008-03-06 10:40
原帖由 skylove 于 2008-3-5 17:59 发表


偶们这里是根据需求来定制,所以有不少规则会蛮奇特的~~~ 而关于流量整形等方面,还在考虑是用tc还是前端时间看到有网友写的一个限速模块实现。目前正在考虑把ip和mac绑定的程序写成数据库+php前台(方便那 ...


squid 可以结合tmpfs使用,反正有大量的空闲内存,顺便加个DNS forward效果也会很好。(在我测试的网络环境中,上行链路拥堵的厉害的环境中,DNS forward是有必要的)。

顺便问一下,你那个4路服务器真的才1W左右么?

[ 本帖最后由 kevin.tan 于 2008-3-6 10:41 编辑 ]
作者: skylove    时间: 2008-03-06 12:52
原帖由 kevin.tan 于 2008-3-6 10:40 发表


squid 可以结合tmpfs使用,反正有大量的空闲内存,顺便加个DNS forward效果也会很好。(在我测试的网络环境中,上行链路拥堵的厉害的环境中,DNS forward是有必要的)。

顺便问一下,你那个4路服务器真的 ...


是真的,是1w+5k元左右,超出去的5k的部分是后来追加的,除了4路cpu那里增加了点钱,多加了4g内存多了点点钱,我还要了个4g的u盘,一个外置的apache的dvd刻录机,还有一个19寸的宽屏显示器,samsung的。。。

恩,我现在就是用了4g的空间做的tmpfs,正在配置squid。。。 DNS Forward 我们内网里有一个,我正在考虑要不要在这个网关上做一个 cache dns ~~~~
作者: kevin.tan    时间: 2008-03-06 14:10
原帖由 skylove 于 2008-3-6 12:52 发表


是真的,是1w+5k元左右,超出去的5k的部分是后来追加的,除了4路cpu那里增加了点钱,多加了4g内存多了点点钱,我还要了个4g的u盘,一个外置的apache的dvd刻录机,还有一个19寸的宽屏显示器,samsung的。。。 ...


哇,那真的不是很贵,
作者: skylove    时间: 2008-03-06 17:55
目前进度:

1.内核编译修改大致完成,优化了一些,从正常运行时候reboot到重新启动完成可nat状态,大约3~4分钟 (关机1分钟,系统自我检测1分钟,启动大约1-2分钟),大致能够接受;
2.netfilter/iptable 编译大致完成,目前加入了改良后的ipp2p模块,限速模块未遂~~~;
3.透明squid和chroot的cache dns server 架设完成(虚拟了4G的tmpfs给内存用),目前启用测试中;

其他的还没有搞。。。
作者: kevin.tan    时间: 2008-03-07 09:23
原帖由 skylove 于 2008-3-6 17:55 发表
目前进度:

1.内核编译修改大致完成,优化了一些,从正常运行时候reboot到重新启动完成可nat状态,大约3~4分钟 (关机1分钟,系统自我检测1分钟,启动大约1-2分钟),大致能够接受;
2.netfilter/iptable 编 ...



如果skylove兄要作限速的话,我推荐 iptables + IMQ +  HTB ,规则多的话,可用“散列表"作优化。(这个在本站网友翻的那篇高级路由与流量控制有讲)

CU blog中也有网友有写。http://blog.chinaunix.net/u/6542/showart.php?id=238377
作者: skylove    时间: 2008-03-07 09:37
原帖由 kevin.tan 于 2008-3-7 09:23 发表



如果skylove兄要作限速的话,我推荐 iptables + IMQ +  HTB ,规则多的话,可用“散列表"作优化。(这个在本站网友翻的那篇高级路由与流量控制有讲)

CU blog中也有网友有写。http://blog.chinaunix.net ...


感谢推荐,以前也拜读过牛老师翻译的中文版,不过 IMQ 这个是第一次听说呢,等下查查资料 ~~~ 感谢您热心帮助,实施的过程中,还请多多指教。
作者: kevin.tan    时间: 2008-03-07 10:56
原帖由 skylove 于 2008-3-7 09:37 发表


感谢推荐,以前也拜读过牛老师翻译的中文版,不过 IMQ 这个是第一次听说呢,等下查查资料 ~~~ 感谢您热心帮助,实施的过程中,还请多多指教。



说不上指教哦,互相学习。IMQ的好处是在有多个网络出口和多个本地网口应用比较方便。

再有就是对包的匹配有别于iptables 的MARK,它可以直接用tc的u32分类器来match ,个人主观认为效率要高些。
作者: sgsfly    时间: 2008-03-07 11:12
原帖由 skylove 于 2007-9-4 14:10 发表


感谢大哥分享经验心得~~ok,那就它了

劝你还是在考虑下 或者在借鉴下别人的意见
现在我在测试这个网卡
在主板_微星_I3200_MS-9656   上进行测试
用的ISCSI  影射另外一个机器 简单跑IOmeter 发现速度较低 开始速度正常 8个小时后速度明显开始下降 持续下降到开始速度40%  当然也有可能和我的平台有关
现在 正在测试bond 速度 稳定性怎么样
作者: skylove    时间: 2008-03-07 13:25
原帖由 sgsfly 于 2008-3-7 11:12 发表

劝你还是在考虑下 或者在借鉴下别人的意见
现在我在测试这个网卡
在主板_微星_I3200_MS-9656   上进行测试
用的ISCSI  影射另外一个机器 简单跑IOmeter 发现速度较低 开始速度正常 8个小时后速度明显开始 ...


我的记录如下

#uptime
13:22:43 up 1 day, 8 min,  2 users,  load average: 4.08, 4.06, 4.00

1.JPG (58.99 KB, 下载次数: 45)

1.JPG

作者: skylove    时间: 2008-03-07 13:28
既然用到iscsi了,不妨考虑用光纤作为介质来通信吧。。。否则传输通道成了iscsi方案的效率速度的瓶颈了
作者: marsaber    时间: 2008-03-08 12:25
没必要这么多钱吧?
我给其他网吧配置代理服务器,二三百台机子,服务器配置下来也不到3000.
跑起来呼呼的,一点问题都没有。
作者: skylove    时间: 2008-03-09 01:13
原帖由 marsaber 于 2008-3-8 12:25 发表
没必要这么多钱吧?
我给其他网吧配置代理服务器,二三百台机子,服务器配置下来也不到3000.
跑起来呼呼的,一点问题都没有。


是5千来台机器。。。 当然,不是全部同时用

今天大致上把 squid 微调到比较合适了,昨天效果不是太理想,原来是因为limits的限制太小,而内存盘tmpfs设置地过大了,刚把 postgresql 装上,打算配合自己写的php程序做管理, 接下来大概会装个ulogd 配合ULOG模块来记录60天内的日志到第2硬盘去

由于机器一共是两台,所以顺便找了一下对copy的方式,其中有介绍 G4L 比较好用~~~ 找了则文章,如何节约张光盘的方法。。。如果我没有记错,好象grub是直接支持iso文件启动的吧???所以理论上应该是可以连包都不用解的~~~

==================================================================================================================
下载下来的文件是ISO文件,可刻成盘使用。但60多兆的ISO刻录成盘怎么着都觉得亏了,于是搜到了重硬盘应到G4L的方法:

1.在G4L的ISO文件中提取出 bzImage20.1和ramdisk.gz放在你认为合适的位置,例如/boot下。

2.修改GRUB配置文件/boot/grub/menu.lst,指向上述文件,如下:

title G4L
root        (hd0,0)
kernel /boot/bzImage20.1 ramdisk_size=65536 root=/dev/ram0
initrd /boot/ramdisk.gz

3.重启电脑,此时在GRUB菜单中就可以选G4L了。
==================================================================================================================

最后装了 hashlimit,实验了一下,确实能够限制速度,暂时先用着。。。tc慢慢啃啃看。。。
作者: kevin.tan    时间: 2008-03-17 11:33
原帖由 skylove 于 2008-3-9 01:13 发表


是5千来台机器。。。 当然,不是全部同时用

今天大致上把 squid 微调到比较合适了,昨天效果不是太理想,原来是因为limits的限制太小,而内存盘tmpfs设置地过大了,刚把 postgresql 装上,打算配合自己写 ...


skylove兄,系统运行得如何呀?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2