A successor of wgtools-dev, where I fxxk up the structure the code.
Based on the my understanding of the SDN:
- Control: control the network traffic, issue the configuration and monitor (both data plane and the network)
- Receiver/User: follow the instruction from the controller
Thus, In this time, flatTun can be seen into two parts:
- Server-side: Flask-based with SQLite, trying to store the client information and subnet information.
- Netspace: like zerotier, the user can create multiple subnet, and we call this subnet "Netspace"
- Node: Node is the machine inside the netspace, it can be:
- supernode: where it can contains Endpoint (Public IP)
- normalnode: where it can only access other nodes via the supernode
- Client: python-based script, trying to help setup the wireguard interface and vxlan is corresponds to the "Node" definition
- Login with the account
- Get peer's infomation, based on the TCP requests
- Parse the configuration
- Start/Stop/Restart the wireguard interface, based on the
wg-quick
- Background:
VxLAN over Wireguard
, whereVxLAN
is the overlay andWireguard
as the underlayEVPN
as the control plane of theVxLAN
- Web and Client:
- REST API everywhere -> frontend-backend separate
- Token-based authentication and RBAC-based authorization
- Clean & easy to use
Issues, Pull Requests/Contributions are welcomed! :)