Comments (5)
Thanks for the kind words :)
Yeah, the problem with most Go radius implementation attempts is that they either don't work or they're unfinished.
Basically all you need is MySQL, config.toml for your IP+secrets and to run radiusd.
- Install MySQL-server on the server
- Use the default config.toml from the repo and adjust how you want it
- Compile radiusd, put it on the server, create an init.d/upstart/systemd script OR run it in a screen :p
- Need some verbosity why it fails? Stop the daemon, run
radiusd -v
to enable verbosity and have a peek :)
Something regarding Galera Cluster:
I mention Galera Cluster (MySQL with an active replication strategy) in the readme but that's only when you want to setup it for a corporate environment where you can't accept downtime when there's something wrong with the server or it's services.
In case you're interested in zero downtime, having no Single Point of Failure (marketing baby xD) in a corporate environment I suggest the following:
- Have at least 3 servers (quorum, against split-brain issues)
- On every server install RadiusD/Galera (with MySQL)
- Have something like a load-balancer, VIP or DNS round robin in front of it so downtime of one server doesn't break the service
- And most important, get familiar with MySQL replication using Galera Cluster, knowing at forehand HOW to recover from replication issues so when it happens (and it will) you know what to do
And in case you're interested why I prefer Galera replication opposed to all the other MySQL replication strategies:
I love active replication (data needs to be accepted on ALL available servers) so the chance of different data-states between servers is close to zero. The problem with most (asynchronous) replication strategies is that data could be different between nodes with the only way of knowing is using (free) tools like pt-table-checksum
from radiusd.
Before I forget, to set-up the DB in MySQL:
Add the required tables https://github.com/mpdroog/radiusd/blob/master/db/vpnxs_radius.sql
from radiusd.
Thanks for the response and the advice on zero downtime. I'm going to do some more research on that.
What do I need to fill out in the database? How do I add a user and whatever else I need? What if I needed to send an attribute on access-accept? Such as "address-list"?
I'm going to be testing this with a mikrotik device, isn't that what you're using? Any advice?
Again, I appreciate the help.
from radiusd.
We're using Mikrotik's here yes, but I have no experience with those things (I wrote this code for the company I work for).
I would advice getting it to work with just a simple MySQL-server, so you can learn how the basics work. As you sound like you don't have much experience with replication (it's not easy stuff).
What do I need to fill out in the database? How do I add a user and whatever else I need?
I would advice just start playing with it (I'm too lazy to write a manual for ya kid), I love tools that make it easier, maybe install Navicat
or SQLyog
on your PC to make it a bit easier for you.
What if I needed to send an attribute on access-accept? Such as "address-list"?
Well, you'll have to hack the code to add it :p, getting down and dirty. I wrote the code to do exactly what I needed.
from radiusd.
Considering the issue as resolved.
from radiusd.
Related Issues (7)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from radiusd.