找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5893|回复: 7

[pppoe] pppoe 怎么限制每个用户只能拨一次啊

[复制链接]
发表于 2013-3-30 09:24:12 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 dxl812334885 于 2013-3-30 18:52 编辑

配置如下  
/ppp profile
set 0 change-tcp-mss=yes local-address=192.168.99.2 name=default only-one=yes remote-address=PPPoE use-compression=yes use-encryption=no use-ipv6=yes use-mpls=default use-vj-compression=yes
set 1 change-tcp-mss=yes name=default-encryption only-one=yes use-compression=default use-encryption=yes use-ipv6=yes use-mpls=default use-vj-compression=default

/ppp aaa
set accounting=yes interim-update=0s use-radius=yes

/interface pppoe-server server
add authentication=pap default-profile=default disabled=no interface=500 keepalive-timeout=10 max-mru=1480 max-mtu=1480 max-sessions=0 mrru=disabled one-session-per-host=yes service-name="vlan 500"


profile中已经设置了onlyone  
radius 用的是ACS5.2连接域控  验证是pap


写了个脚本,本来可以用的后来不知道怎么回事没用了,大家帮忙看看哪里出问题了
global usera;
global userb;
global client 2;
global session;

foreach i in=[ppp active find ] do={set usera [/ppp active get $i name];set session 0;foreach u in=[ppp active find name=$usera ]  do={set session (session+1);if (session>$client) do={ set userb [/ppp active get $u name];/ppp active remove $u;} }}





routeros
发表于 2013-3-30 10:01:32 | 显示全部楼层
为每个用户单独设置静态IP
routeros
回复

使用道具 举报

发表于 2013-3-30 11:30:10 | 显示全部楼层
radius的属性优先于ros里的属性, radius里设置一账户只能拨一次才行,一般RADIUS都支持这个属性。

routeros
回复

使用道具 举报

 楼主| 发表于 2013-3-30 18:55:23 | 显示全部楼层

我这里的u=1  直接ppp active remove 1 可以 但是ppp active remove $u 就提示no such item 很奇怪啊


[admin@MikroTik] > environment print           
"u"=1


[admin@MikroTik] > ppp active remove $u
no such item
[admin@MikroTik] > ppp active remove 1
[admin@MikroTik] >
routeros
回复

使用道具 举报

发表于 2013-3-30 19:29:44 | 显示全部楼层
本帖最后由 兰彻 于 2013-3-30 19:35 编辑
dxl812334885 发表于 2013-3-30 18:55
我这里的u=1  直接ppp active remove 1 可以 但是ppp active remove $u 就提示no such item 很奇怪啊

...


用脚本也可以轻松搞定
:local userX;
:local userY;
:local i;
:local u;
:local clogged 0;
:local addr;
:local addr2;

:foreach i in=[/ppp active find] do={
:set userX [/ppp active get $i name];
:set clogged 0;

:foreach u in=[/ppp active find name=$userX ] do={
:set clogged (clogged +1);

:if (clogged>1) do={
:set userY [/ppp active get $u name];
:set addr [/ppp active get $u caller-id];
:set addr2 [/ppp active get $i caller-id];

:if ($addr != addr2) do={
:log info "MPPP: FIRST ACTIVE <<$userX>> FROM IP $addr2";
:log info "MPPP: THE $clogged° <<$userY>> CALLING FROM IP $addr NOW DISCONNECTED";
/ppp active remove $u;
}

}
}
}

这个就行,可以防止openwrt多播。
routeros
回复

使用道具 举报

 楼主| 发表于 2013-3-30 21:07:24 | 显示全部楼层
兰彻 发表于 2013-3-30 19:29
用脚本也可以轻松搞定
:local userX;
:local userY;

/ppp active remove $u 最后这里有问题
假如  global u 1   /ppp active remove $u 提示no such item
               /ppp active remove 1 就正常 郁闷死了
         
routeros
回复

使用道具 举报

 楼主| 发表于 2013-3-30 21:25:34 | 显示全部楼层
rosabc 发表于 2013-3-30 11:30
radius的属性优先于ros里的属性, radius里设置一账户只能拨一次才行,一般RADIUS都支持这个属性。

我这边的用户是调用的域用户,貌似很多第三方的radius都不支持,而且很多功能受限
routeros
回复

使用道具 举报

发表于 2013-3-31 21:22:36 | 显示全部楼层
这个我  也需要      
routeros
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 19:50 , Processed in 0.058163 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

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