心想事成 发表于 2009-5-11 00:12:47

无限制安腾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;
            }
      }}下图为打补丁后的安腾的抓包图。

zmtvia 发表于 2009-5-11 00:27:50

顶 好东西 不过安腾都不会装呢:')

ksw520 发表于 2009-5-11 00:35:10

本帖最后由 ksw520 于 2009-5-11 00:38 编辑

终于来了。。明天再测试。。。期待老大发布pg数据库版本

zmtvia 发表于 2009-5-11 00:39:56

楼上老大们 有没有想法给小鸟们做个安腾的教程啊。。。。。。。。。。。。 找不到安腾的相关的资料 直接上很难 跨度有点大

47771885 发表于 2009-5-11 00:52:27

看起来很不错的样子

xugr 发表于 2009-5-11 11:01:04

3、本补丁只为测试之用,限制1000次认证内下发支持routeros的属性。

是不是只能用1000用户的安腾呢?

kkgogo 发表于 2009-5-11 11:40:21

希望老大能快点出支持ms-chap的补丁:)

ogion 发表于 2009-5-11 13:04:15

太强了,希望能支持加密方式

xugr 发表于 2009-5-11 16:06:58

cbms 3.1.7 支持chap了

caixue 发表于 2009-5-11 18:51:26

谁有CBMS3。17补丁呀,留下联系方式。。有好处

ksw520 发表于 2009-5-11 23:47:19

3.17PostgreSQL版本基本测试Ok 。

soft_route 发表于 2009-5-12 22:46:56

哪里有GBMS For Oracle 3.1.6 50用户测试版下载咯?:Q

politank 发表于 2009-5-13 20:14:19

有空研究研究

WGHBOY 发表于 2009-5-23 18:59:59

:lol1000次试用很快用完了

samboy 发表于 2009-5-23 20:18:19

如果1W次就好啊
页: [1] 2 3 4 5
查看完整版本: 无限制安腾radius支持routeros补丁