一、使用radius本地文件存储IP地址。
修改modules/ippool
ippool main_pool {
range-start = 192.168.111.1
range-stop = 192.168.113.254
netmask = 255.255.255.0
cache-size = 800
session-db = ${db_dir}/db.ippool
ip-index = ${db_dir}/db.ipindex
override = no
maximum-timeout = 0
}
在sites-enabled/default 中修改:
accounting {
main_pool
}
post-auth {
main_pool
}
这个mian_pool就是modules/ippool中配置地址池名字。
然后重启radius,此时会在raddb下面生成db.ippool和db.ipindex用来存放IP地址池信息。
如果修改了modules/ippool的地址池配置,需要删除上述两个文件,并重启radius才能生效。
二、使用数据库配置地址池
取消radiusd.conf中 $INCLUDE sqlippool.conf 前面的注释
修改sites-enabled/default 的配置
注释掉先前的main_pool,增加:sqlippool
accounting {
sqlippool
}
post-auth {
sqlippool
}
修改sqlippool.conf配置文件中
$INCLUDE sql/mysql/ippool.conf
ippool.conf文件位置使之与你的数据库类型匹配,本例使用MySQL。
将ippool.sql导入数据库,创建数据库表 和 表结构。
mysql -uroot -p radius < sql/mysql/ippool.sql
添加几个测试组IP地址到radippool表中。
INSERT INTO radippool (pool_name, framedipaddress) VALUES ('main_pool', '10.0.0.1');
INSERT INTO radippool (pool_name, framedipaddress) VALUES ('main_pool', '10.0.0.2');
INSERT INTO radippool (pool_name, framedipaddress) VALUES ('main_pool', '10.0.0.3');
INSERT INTO radippool (pool_name, framedipaddress) VALUES ('main_pool', '10.0.0.4');
这样就为 main_pool 组添加了4个地址. (目前还没办法添加CIDR样式的地址.. 只能单个添加)
添加用户组的地址池组
INSERT into radgroupcheck (groupname,attribute,op,value) values('groupname', 'Pool-Name', ':=', 'main_pool');
如需为单个用户指定添加IP地址可直接在redreply中添加(为单个用户设置地址无需以上步骤,直接添加以下记录即可):
insert into radreply (username,attribute,op,value) value ('asd','Framed-IP-Address','=','10.10.10.1');
注:1、Framed-IP-Address值说明:255.255.255.255: NAS允许用户自行设置IP地址,255.255.255.254: NAS必须为用户分配IP地址,其他:radius将为用户分配该IP地址。
2、radippool是用来记录IP地址、及ip地址使用情况。用户通过验证即分配一个IP,用户下线及释放IP,里面配置有IP地址过期时间,默认为1小时,超过一小时没有计费信息更新以及下线信息则认为ip未被使用,将会被分配给其他用户。故要求NAS必须支持计费功能,并配置合适的计费信息更新频率,否则radippool将不会按照预期工作。
另:radippool中的ip被分配完毕以后,radius将不会给用户分配IP,转由NAS分配IP。
转载自: http://blog.163.com/dyc_888@126/blog/static/100443351201462393340360/