Netxol RADIUS vs FreeRADIUS + daloRADIUS: from a AAA server to a subscriber layer
FreeRADIUS is a superb AAA server. Combined with daloRADIUS you get an admin UI. What you do not get is a subscriber, a plan or an invoice.
FreeRADIUS is the reference open-source RADIUS implementation and, honestly, one of the finest pieces of network software ever written. Most ISPs adopting PPPoE start with it. Combined with daloRADIUS for the admin UI, the stack is workable — until you need it to talk to a subscriber master or a billing system, at which point the integration burden starts.
FreeRADIUS handles PPP authentication, accounting and post-auth well. daloRADIUS is a PHP admin layer around it — usable, but stale, and it does not carry any concept of a subscriber lifecycle or a plan. That is the gap Netxol fills.
| Metric | Before | After | Δ |
|---|---|---|---|
| RADIUS protocol (auth + acct + CoA) | FreeRADIUS · yes | Netxol RADIUS · yes | — |
| PPPoE | FreeRADIUS · yes | Netxol · yes | — |
| IPoE / DHCP Option 82 identification | FreeRADIUS · custom module | Netxol · first-class | — |
| EAP-TLS | FreeRADIUS · yes (config) | Netxol · yes (integrated PKI) | — |
| Subscriber master | FreeRADIUS · none (radcheck / radgroupreply tables) | Netxol CRM · full identity | — |
| Plan / speed change → CoA | FreeRADIUS · scripting | Netxol · CRM plan change triggers CoA | — |
| Suspend / restore on non-payment | FreeRADIUS · scripting | Netxol Billing → NMM · seconds | — |
| Session ↔ invoice link | FreeRADIUS · not a concept | Netxol · usage → billing on one graph | — |
When FreeRADIUS is still the right call
If you are running a corporate WiFi rollout, a lab, or a niche network where the AAA layer never has to talk to a subscriber lifecycle, FreeRADIUS is bulletproof and free. For an FTTH ISP, the day you connect FreeRADIUS to a billing system by hand is the day the maintenance clock starts ticking.
The DB-partition story, plainly
FreeRADIUS with MySQL or PostgreSQL scales to roughly 60–80K concurrent sessions before the accounting-interim table row-lock contention shows up. The workaround is monthly partitioning plus aggressive expiry plus separate DB for accounting versus auth. Netxol RADIUS uses the same underlying pattern but the accounting store is part of the shared platform graph — see the [RADIUS at 100K sessions research post](/blog/radius-at-100k-sessions).
FreeRADIUS + MySQL default
Comfortable ceiling
~60K concurrent sessions
FreeRADIUS + partitioned DB
Achievable
~200K
Netxol RADIUS on Core X20
Native ceiling
~300K
Moving from FreeRADIUS to Netxol
Subscriber check and reply tables map directly to the Netxol subscriber master; migration is a supervised bulk import plus cutover at a maintenance window. Ongoing CoA continues to work through the same NAS shared secrets. See the [Netxol NMM module page](/products/modules/nmm).
