2. FreeRADIUS implementation

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:

  1. A new definition for string replacement syntax seems to be required for JSON TR-69 since it uses {}-brackets.
  2. 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 configfileTR-69
    HostnameUsername (=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 tabledatabase relationAlways
1.QoSusergroup1 : 1YES. every QoS entry is a RADIUS usergroup)
2.Modemradcheck1 : 1NO. Only for Non-DOCSIS devices
3.NetGwnas1 : 1Only for NetGw of type BRAS/BNG





Reference:

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"