无限制安腾radius支持routeros补丁
经过N久的时间分析,以及ksw520的帮助下,终于做成了安腾radius支持routeros的补丁。这补丁已经做好两年了,当初费了很多心血才搞好,今天又在电脑里找了出来,分享给大家,不然这个好东东浪费了太可惜了。
通过对本补丁源码稍加修改,就可以支持任意的bras,比如ma5200,等等。。。。
因为routeros使用的是私有的radius属性,一般标准的radius都不能很好的配合routeros,通过本补丁radius 可以下发带宽、地址池给routeros。
更新记录:
5月31日 1.2版添加支持ms-chapv1和ms-chapv2认证。
本补丁:
针对安腾版本:gbms pgsql 3.17 测试版
routeros版本:任意版本。
使用方法:
1、安装配置好安腾和routeros,确保二者通信认证成功。
2、先用命令service radius stop终止程序。
3、将下载到的补丁文件覆盖同名的radiusd文件。
4、重新启动radius。输入命令service radius start
5、再pppoe拨号到routeros,可以看到routeros的简单队列有限速了。
重要提示:
1、如果打补丁后拨号时连接不成功或者提示无获取IP。那是因为radius下发的地址池的名称是1至9。不能是字母。所以要在routeros中把pool名设定为数字。即1-9之间的值。最好添加名字是2和4的地址池。
2、在radius的接入控制模板里一定要输入上行和下行的值,以及pool的值,否则程序可能会出错。
3、本补丁只为测试之用,无任何限制。
补丁程序限速关键部分源码:/*查找限速属性 */
up = 0;
for (i = 0; i < rt; i++)
{
if (memcmp(buf + i, key, 2) == 0)
{
up = ntohl(*(int *)(buf + i + 2));
down = ntohl(*(int *)(buf + i + 2 + 6));
memset(tmp1, 0, 50);
sprintf(tmp1, "%dk/%dk %dk/%dk %dk/%dk 10/10", up / 1000, down / 1000, up * 3 / 2 / 1000, down * 3 / 2 / 1000, up * 2 / 3 / 1000, down * 2 / 3 / 1000);
ros = strlen(tmp1) + 8;
ros = strlen(tmp1) + 2;
memcpy(buf + rt, ros, 8);
memcpy(buf + rt + 8, tmp1, strlen(tmp1));
pklen = rt + 8 + strlen(tmp1);
break;
}
设置地址池部分源码:/*查找地址池*/
for (i = 0; i < pklen; i++)
{
if (memcmp(buf + i, key1, 4) == 0)
{
pool = ntohl(*(int *)(buf + i + 2));
memset(tmp2, 0, 20);
memset(tmp2, 0x58, 1);
memset(tmp2 + 1, 0x58, 1);
sprintf(tmp2 + 2, "%d", pool + 1);
tmp2 = strlen(tmp2);
memcpy(buf + pklen, tmp2, strlen(tmp2));
pklen = pklen + strlen(tmp2) ;
break;
}
}}下图为打补丁后的安腾的抓包图。
顶 好东西 不过安腾都不会装呢:') 本帖最后由 ksw520 于 2009-5-11 00:38 编辑
终于来了。。明天再测试。。。期待老大发布pg数据库版本 楼上老大们 有没有想法给小鸟们做个安腾的教程啊。。。。。。。。。。。。 找不到安腾的相关的资料 直接上很难 跨度有点大 看起来很不错的样子 3、本补丁只为测试之用,限制1000次认证内下发支持routeros的属性。
是不是只能用1000用户的安腾呢? 希望老大能快点出支持ms-chap的补丁:) 太强了,希望能支持加密方式 cbms 3.1.7 支持chap了 谁有CBMS3。17补丁呀,留下联系方式。。有好处 3.17PostgreSQL版本基本测试Ok 。 哪里有GBMS For Oracle 3.1.6 50用户测试版下载咯?:Q 有空研究研究 :lol1000次试用很快用完了 如果1W次就好啊