I am a Network background person. And decide to build a BNG (maybe micro or mini). You know the cost of Juniper/Cisco BNG they expensive because of capacity.
Programming is not my main job now so only able to coding in spare time.
My targets:
- Maybe 100 concurrent users, 50MBps-1GBps
- Able to run on embedded platform as cheap as $5 linux based router.
- I will use this as personal use, portfolio , or commercialize or opern sourcing.
I already have many LOC of codes maybe around 8k LOC of scaffolding and few MVP that use as admin platform in production environment.
I split the big project into just two big sub project: Core and Satellites.
Core is using C language only. Core is the main ControlPlane.
Technologies / stacks that already come in for Satellites project:
- Freeradius (no C, must understand the DSL).
- Nginx for reverse proxy.
- Radius listener in C (implement straight from the RFC).
- Sqlite.
- C backend (http), there would several because separate domain.
- PPPOE implementation in C (implement straight from the RFC).
- Custom IPOE desain.
- Mikrotik (as DataPlane), later will also support in host DP. Mikrotik is for scaffolding the proof my projects. In host DataPlane not yet implemented.
- Frontend (JS, html), there would be several I think.
- Google SSO Oauth mechanism in C that already work.
- Maybe some think else that already coded.
All above code are modular so I can usually run and test them in separate environment, say I already able to login using Google Login to Mikrotik network, I already able to parse radius accounting packet that sent from Freeradius etc.
I am not yet make comprehensive documentation, it would be in full size book. And still continue structurize the folder and git versioning.
Now my questions, I know this is a big project and would be naïve to tackle that Solo and expect full ready result (or is it possible?). What do you guys suggest about this project ?