找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 38584|回复: 61

[radius] 无限制安腾radius支持routeros补丁

  [复制链接]
发表于 2009-5-11 00:12:47 | 显示全部楼层 |阅读模式

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

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

×
经过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、本补丁只为测试之用,无任何限制。

补丁程序限速关键部分源码:
  1. /*查找限速属性 */

  2.                 up = 0;
  3.         for (i = 0; i < rt; i++)
  4.         {
  5.             if (memcmp(buf + i, key, 2) == 0)
  6.             {
  7.                 up = ntohl(*(int *)(buf + i + 2));
  8.                 down = ntohl(*(int *)(buf + i + 2 + 6));
  9.                 memset(tmp1, 0, 50);
  10.                 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);
  11.                 ros[1] = strlen(tmp1) + 8;
  12.                 ros[7] = strlen(tmp1) + 2;
  13.                 memcpy(buf + rt, ros, 8);
  14.                 memcpy(buf + rt + 8, tmp1, strlen(tmp1));
  15.                 pklen = rt + 8 + strlen(tmp1);
  16.                 break;
  17.             }

复制代码
设置地址池部分源码:
  1. /*查找地址池*/
  2.         for (i = 0; i < pklen; i++)
  3.         {
  4.             if (memcmp(buf + i, key1, 4) == 0)
  5.             {
  6.                 pool = ntohl(*(int *)(buf + i + 2));
  7.                 memset(tmp2, 0, 20);
  8.                 memset(tmp2, 0x58, 1);
  9.                 memset(tmp2 + 1, 0x58, 1);
  10.                 sprintf(tmp2 + 2, "%d", pool + 1);
  11.                 tmp2[1] = strlen(tmp2);
  12.                 memcpy(buf + pklen, tmp2, strlen(tmp2));
  13.                 pklen = pklen + strlen(tmp2) ;
  14.                 break;
  15.             }
  16.         }}
复制代码
下图为打补丁后的安腾的抓包图。
未命名.jpg
radiusd.rar (61.57 KB, 下载次数: 108, 售价: 20 铜板)

评分

参与人数 1铜板 +10 收起 理由
tyfj + 10

查看全部评分

routeros
发表于 2009-5-11 00:27:50 | 显示全部楼层
顶 好东西 不过安腾都不会装呢
routeros
回复

使用道具 举报

发表于 2009-5-11 00:35:10 | 显示全部楼层
本帖最后由 ksw520 于 2009-5-11 00:38 编辑

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

使用道具 举报

发表于 2009-5-11 00:39:56 | 显示全部楼层
楼上老大们 有没有想法给小鸟们做个安腾的教程啊。。。。。。。。。。。。 找不到安腾的相关的资料 直接上很难 跨度有点大
routeros
回复

使用道具 举报

发表于 2009-5-11 00:52:27 | 显示全部楼层
看起来很不错的样子
routeros
回复

使用道具 举报

发表于 2009-5-11 11:01:04 | 显示全部楼层
3、本补丁只为测试之用,限制1000次认证内下发支持routeros的属性。

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

使用道具 举报

发表于 2009-5-11 11:40:21 | 显示全部楼层
希望老大能快点出支持ms-chap的补丁
routeros
回复

使用道具 举报

发表于 2009-5-11 13:04:15 | 显示全部楼层
太强了,希望能支持加密方式
routeros
回复

使用道具 举报

发表于 2009-5-11 16:06:58 | 显示全部楼层
cbms 3.1.7 支持chap了
routeros
回复

使用道具 举报

发表于 2009-5-11 18:51:26 | 显示全部楼层
谁有CBMS3。17补丁呀,留下联系方式。。有好处
routeros
回复

使用道具 举报

发表于 2009-5-11 23:47:19 | 显示全部楼层
3.17  PostgreSQL版本基本测试Ok 。
routeros
回复

使用道具 举报

发表于 2009-5-12 22:46:56 | 显示全部楼层
哪里有GBMS For Oracle 3.1.6 50用户测试版下载咯?
routeros
回复

使用道具 举报

发表于 2009-5-13 20:14:19 | 显示全部楼层
有空研究研究
routeros
回复

使用道具 举报

发表于 2009-5-23 18:59:59 | 显示全部楼层
1000次试用很快用完了
routeros
回复

使用道具 举报

发表于 2009-5-23 20:18:19 | 显示全部楼层
如果1W次就好啊
routeros
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-26 18:24 , Processed in 0.228239 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

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