用ROS实现PPPoE服务及限速计费
以前用freeradius实现的限速计费,优点是Mysql数据库可以自由定制,可实现一些复杂的功能,这次又需要实现类似的功能,装过freeradius和Ros对接的都知道,这个没有一天是搞不定的,感觉也挺烦的,还单独需要一台服务器做认证,看了一下那个ros自带的userman也可实现类似的功能,试了一下感觉还不错。
一、建立光纤连接
用winbox连接后,如下图操作,添加pppoe client
输入用户名和密码就可以了。
为了实现内网共享上网还要加一条nat规则,为禁止内网不拨号直接上网,加一条源地址过滤,只允许ppp拨号网段。
路径为:IP->Firewall-Nat
如有多台路由器部署,图形界面太麻烦,可以用对应脚本实现
ADSL拨号:
/interface pppoe-client
add ac-name="" add-default-route=yes allow=pap,chap,mschap1,mschap2
dial-on-demand=no disabled=no interface=adsl \
max-mru=1480 max-mtu=1480 mrru=disabled name=pppoe-out1 password=xxxxx profile=default service-name="" \
use-peer-dns=no user=adxxxxxxx
/ip firewall nat
add action=masquerade chain=srcnat disabled=no src-address=192.168.51.0/24
二、建立PPPoE服务器
路径为:IP->Firewall-Nat
因为我们不用本地认证,所以这样就可以了,本地认证也可以做限速的。不过没有认证和计费的记录,一般用也可以的。
脚本:
PPPOE服务器:
/interface pppoe-server server
add authentication=pap,chap,mschap1,mschap2 default-profile=default-encryption disabled=no interface=lan \
keepalive-timeout=10 max-mru=1480 max-mtu=1480 max-sessions=0
mrru=disabled one-session-per-host=no service-name=\
psvr_ros
三、ROS和userman对接
路径为:Radius
这里我们写127.0.0.1是指内置的userman,如是freeradius,这里写上他的地址,secret 随便写,相当于握手key,在radius服务器中填写。
ros和userman对接脚本
/radius
add accounting-backup=no accounting-port=1813 address=127.0.0.1 \ authentication-port=1812 called-id="" disabled=no domain="" realm="" \
secret=xxxxxx service=ppp,login,hotspot,wireless,dhcp timeout=300ms /radius incoming
set accept=yes port=1700
四、userman限速计费
在浏览器打开:http://172.16.10.251/userman
1.先建立ROS关联,添加Router
2.建立limitation
由于现在的接入是50M的光纤,现在也可以大方一点,分成1M,5 M,10 M几种模式,1M分给喜欢看视频的伙伴,一般都是5 M, 5 M试了一下感觉还可以,关系户可以用10 M的,不过特殊的不能太多,多了大家都不快了。
3.建立profile并和limitation关联
他那个web界面有时有点问题,界面上看上去关联好,测试的是时候没反应,通过console进去看时,实际上没关联
/tool user-manager profile profile-limitation
add from-time=0s limitation=1m profile=pro1m till-time=23h59m59s weekdays=\
sunday,monday,tuesday,wednesday,thursday,friday,Saturday
这个关联表没有的话,可以重启一下路由再加一下
4.建立用户
这里还有经验分享一下,web界面好像不能更改profile,我试了多次都没改过来,但可以删掉,再加也不行,后来console里手工改了一下,反正这个也不常用,直接删掉用户重建一个也可以。