The RadVPN doesn't need any central point as it connects to other nodes directly (full mesh) it has built-in router that helps packets to route to the approperate destinations. there are two options for configuration: yaml file and if you want to have central configuration management it supports etcd. for the time being it supports symmetric encryptions and Linux platform.
Given that the Go Language compiler (version 1.11 or greater is required) is installed, you can build it with:
go get github.com/mehrdadrad/radvpn cd $GOPATH/src/github.com/mehrdadrad/radvpn go build .
docker pull mehrdadrad/radvpn:latest docker run --privileged -d -p 8085:8085 -v $(pwd)/radvpn.yaml:/etc/radvpn.yaml -e RADVPN_NODE_NAME=node1 mehrdadrad/radvpn:latest
With the default it tries to load config.yaml file individually at each node, but it can be configured to use same configuration through etcd. Once the configuration is changed, it loads and applies new changes by itself. Below yaml is a sample configuration:
revision: 1 crypto: type: gcm key: 6368616e676520746869732070617373776f726420746f206120736563726574 nodes: - node: name: node1 address: 220.127.116.11 privateAddresses: - 10.0.1.1/24 privateSubnets: - 10.0.1.0/24 - node: name: node2 address: 18.104.22.168 privateAddresses: - 10.0.2.1/24 privateSubnets: - 10.0.2.0/24
radvpn -config radvpn.conf
radvpn -config radvpn.conf -etcd
radvpn -update etcd -config radvpn.yaml
This project is licensed under MIT license. Please read the LICENSE file.
Welcomes any kind of contribution, please follow the next steps: