找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7114|回复: 4

BFW使用KERNEL-MODE-PPPOE

[复制链接]
发表于 2005-10-29 12:42:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
我下了个BFW的build tree,重新编译着来玩,给BUSYBOX加上了top命令。
在top下看,发现pppoe进程占用的CPU非常的高,当高峰时,BT下载上传都几百K接近1M时,它占用了30%的CPU。(机器cpu: CE333)
于是想到用kernel-mode-pppoe。
恰好BFW还带了pppox.o和pppoe.o
我又自己重新编译了rp-pppoe和pppd(用的新版本的,老版本没运行成功),得到rp-pppoe.so和pppd(这个pppd不晓得怎么搞的,很大,170K的样子)。

然后安装:
1.将pppox.o,pppoe.o,rp-pppoe.so加进/lib/modules
2.用新的pppd代替老的pppd
3.修改/etc/rc.d/rc.pppoe
echo "pty 'pppoe -I $IF_INET -m 1452'"           >>/etc/ppp/options
改为:
# use kernel mode pppoe
insmod /lib/modules/pppox.o
insmod /lib/modules/pppoe.o
echo "plugin /lib/modules/rp-pppoe.so $IF_INET "            >>/etc/ppp/options
#echo "pty 'pppoe -I $IF_INET -m 1452'"           >>/etc/ppp/options
这样就使用rp-pppoe.so这个plugin而不是pppoe了。但是这里还有个问题,原先传给pppoe的-m 1452的这个参数,现在没有办法传给rp-pppoe.so,导致不能设置MSS,有些网站就访问不了了,我搞了好久才找到原因并找出解决方法,这就是下面的:
4.修改/etc/ppp/ip-up
将文件末尾的 exit  0 这行前加点东西,改成下面这样:
# patch!
# needed for using rp-pppoe.so
iptables -I FORWARD -o $1 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452
iptables -I FORWARD -o $IF_LOCAL -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452
logger -p daemon.info -t ip-up "ip-up script do --set-mss 1452 on $1 and $IF_LOCAL"
exit 0

这样应该就没问题了。不过怎么保存就看自己的方法了,pppd在root.tgz里,这个包是不保存的。一般的方法是手动修改它了。
我的方法更方便

[ 本帖最后由 terminal2000 于 2005-10-29 16:02 编辑 ]

newpppoe.tar.gz

112.84 KB, 下载次数: 93, 下载积分: 铜板 -1

注:此包不能被保存,保存会损坏

routeros
发表于 2005-10-29 13:23:44 | 显示全部楼层
改完之后CPU占用率是多少?BFW我还没用呢。
感觉这个方法不好。
routeros
回复

使用道具 举报

 楼主| 发表于 2005-10-29 16:13:48 | 显示全部楼层
改后,PPPOE进程就没有了,PPPOE运行在KERNEL SPACE,用top也看不到CPU占用的。
不过,从load值来看,我CE333的机器,上传1MB再下载1MB,load值也比先前小得多了,只有0.0X的样子。
我上传了个包,里面有我说到的文件,除了pppoe.o和pppox.o两个是BFW自带的(但是这两个文件目前他还没有用到),其余的文件。
但并不是直接拷过去就能用的,这点要注意。
原因是BFW的备份脚本不备份ROOT.TGZ,而又会破坏不含有.list文件的包。所以不好打补丁。我的解决方案是修改那个备份脚本,使其不备份不含.list文件的包,那么补丁包直接拷过去就能用了,只是不能直接修改它们的内容。
routeros
回复

使用道具 举报

发表于 2005-10-29 17:17:21 | 显示全部楼层
嗯,修改备份脚本就是了。
routeros
回复

使用道具 举报

发表于 2005-12-3 19:49:49 | 显示全部楼层
老大,有没有方法只是把BFW的linux内核升级问2.5.75版本。
如果知道,麻烦告诉我如何做,谢谢~
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-11-22 04:44 , Processed in 0.064442 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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