2. FreeRADIUS implementation
- Torsten Schmidt
- Nino Ryschawy
- Roy Schneider
- Ole Ernst
Owned by Torsten Schmidt
1. Install FreeRADIUS with database driver
- Add the package "freeradius-mysql" as a dependency to nmsprime-provbase
- adapt install scripts
- like starting & enabling,
create database & users
populating schema's
/etc/raddb/mods-config/sql/main/mysql/setup.sql
/etc/raddb/mods-config/sql/main/mysql/schema.sql
2. Add TR-69 ConfigFile Device Type
Validation Rule: If device type = TR-69 config file parameters must be in JSON (also for validation)
NOTE:
- A new definition for string replacement syntax seems to be required for JSON TR-69 since it uses {}-brackets.
- For example in DOCSIS configfile a {provbase.ro_community.0} will be replaced with SQL datas –> this syntac must be replaced
See 3. TR-69 implementation example API call
3. Rebuild Modem page
- Configfile MUST be second entry after "Name"
- add "username" and "password" to Modem table and MVC
dynamically display or hide fields depending on if configfile is DOCSIS or TR-69
DOCSIS configfile TR-69 Hostname Username (=id) MAC Address* Password (=automatically filled if empty with a random generated psw)
4. Rename CMTS to Network Gateway
- rename
- type select e.g. enum ('CMTS', 'BRAS') or similar
5. Connect NMS PRIME to FreeRADIUS
NMS PRIMEÂ Model (MVC) | FreeRADIUS table | database relation | Always | |
---|---|---|---|---|
1. | QoS | usergroup | 1 : 1 | YES. every QoS entry is a RADIUS usergroup) |
2. | Modem | radcheck | 1 : 1 | NO. Only for Non-DOCSIS devices |
3. | NetGw | nas | 1 : 1 | Only for NetGw of type BRAS/BNG |
Reference:
- https://wiki.freeradius.org/guide/SQL-HOWTO#populating-sql
- https://wiki.freeradius.org/modules/Rlm_sql
5.1 QoS mapping
- Create Mapping between with an QoS Observer and RADIUS usergroup
(take care that create, delete, update syncs with FreeRADIUS)
Fields that MUST be synchronisedÂ
5.2 Modem mapping
- Create Mapping between with an Modem Observer and RADIUS radcheck
(take care that create, delete, update syncs with FreeRADIUS)
Fields that MUST be synchronised
nmsprime.modem.username –> radius.radcheck.UserName
nmsprime.modem.password –> radius.radcheck.Value
...
- Create Mapping between RADIUS user and RADIUS usergroup according to subscribed QoS
5.3 NetGw mapping
Create mapping between NetGw (only of type BRAS) and RADIUS nas
Don't forget to restart radiusd on every change in the nas table! → add sudoers entry for "systemctl restart radiusd"