Using freeradius2.1.3 and rlm_dbm module Having a problem with rlm_dbm_parser to create dbm file. Testing with 3 DEFAULT Realm records and two username/password. Seems to be overwriting DEFAULT Realm as only last one exists. rlm_dbm_parser reports all records read and no errors but rlm_dbm_cat shows only last Default. radclient tests naturally only succeed with DEFAULT domain_three Is there a know issue here on creating dbm files or have I missed some setting to allow multiple DEFAULT Realm=xxx records in dbm file. Desired approach is - dbm file with large numbers of DEFAULT Realm and all with no fallthru. - we have no other (catch-all) DEFAULTs with explicit accept or reject - ideally usernames matching these realms (proxy.conf) and DEFAULT Realm should respond with Accept straight away - no searching full subscriber base dbm file and then DEFAULT match. (e.g treat DEFAULT Realm =xxx as distinct from generic DEFAULT) - ideally have DEFAULT Realm=xxx be read in to hash/memory from separate file and DBM users just have subscriber base (user/pass). This way every time users.db updated/re-created/re-read - does not impact DEFAULT Realm=xxx records. The later Realms more static - subscriber base changes more dynamic. - Also using dbm as faster/ less memory resources and no need to restart radiusd as dbm files change - and do change constantly.. This possible? Logs below: Test users file -------------------- DEFAULT Realm == "domain_one", Auth-Type := Accept Tunnel-Type:1 = L2TP, Tunnel-Medium-Type:1 = IP, Tunnel-Server-Endpoint:1 = "xxx.xxx.xxx.xxx", Tunnel-Client-Auth-Id:1 = "realm1", Tunnel-Password:1 = "xxx", Tunnel-Assignment-Id:1 = "xxx", Tunnel_Algorithm = 2, Tunnel_Domain = 1 DEFAULT Realm == "domain_two", Auth-Type := Accept Tunnel-Type:1 = L2TP, Tunnel-Medium-Type:1 = IP, Tunnel-Server-Endpoint:1 = "xxx.xxx.xxx.xxx", Tunnel-Client-Auth-Id:1 = "realm2", Tunnel-Password:1 = "xxx", Tunnel-Assignment-Id:1 = "xxx", Tunnel_Algorithm = 2, Tunnel_Domain = 1 DEFAULT Realm == "domain_three", Auth-Type := Accept Tunnel-Type:1 = L2TP, Tunnel-Medium-Type:1 = IP, Tunnel-Server-Endpoint:1 = "xxx.xxx.xxx.xxx", Tunnel-Client-Auth-Id:1 = "realm3", Tunnel-Password:1 = "xxx", Tunnel-Assignment-Id:1 = "xxx", Tunnel_Algorithm = 2, Tunnel_Domain = 1 userone@one Cleartext-Password := "pass" Class = "xxxclass1xxx", Service-Type = Framed-User, Framed-Protocol = PPP usertwo@norealm Cleartext-Password := "pass", Calling-Station-Id == "123456" Service-Type = Framed-User, Framed-Protocol = PPP, Framed-IP-Address = 10.10.10.0, Framed-IP-Netmask = 255.255.255.240, ------------------------------------------------------------------ rlm_dbm_parser logs: %% # /usr/local/freeradius/bin/rlm_dbm_parser -c -xxx -i /usr/local/freeradius/etc/raddb/users_generic -o /usr/local/freeradius/etc/raddb/users Use dictionary in: /usr/local/freeradius/etc/raddb Found user: DEFAULT Found user: DEFAULT Found user: DEFAULT Found user: userone@one Found user: usertwo@norealm Record loaded: 5 Lines parsed: 41 Record skiped: 0 Warnings: 0 Errors: 0 %%# rlm_dbm_cat logs - only shows last DEFAULT Realm ------------------------------ %% # /usr/local/freeradius/bin/rlm_dbm_cat -f /usr/local/freeradius/etc/raddb/users DEFAULT Realm == "domain_three", Auth-Type := Accept Tunnel-Type:1 = L2TP, Tunnel-Medium-Type:1 = IPv4, Tunnel-Server-Endpoint:1 = "xxx.xxx.xxx.xxx", Tunnel-Client-Auth-Id:1 = "realm3", Tunnel-Password:1 = "xxx", Tunnel-Assignment-Id:1 = "xxx", Tunnel_Algorithm = 2, Tunnel_Domain = 1 userone@one Cleartext-Password := "pass" Class = "xxxclass1xxx", Service-Type = Framed-User, Framed-Protocol = PPP usertwo@norealm Cleartext-Password := "pass", Calling-Station-Id == "123456" Service-Type = Framed-User, Framed-Protocol = PPP, Framed-IP-Address = 10.10.10.0, Framed-IP-Netmask = 255.255.255.240 %%# ----------------------- Havent included radiusd -X logs as issue seems to be creating dbm file and hence before using Radius. radclient tests are successful when matching 3 records that do exit in dbm file. Problem is two missing records