Hello,
Disclaimer: this topic is more related to Slack Nebula than LXD.
I am currently running a few baremetal servers, which LXD on top.
Each baremetal is connected to the others via a peervpn (https://peervpn.net/) overlay network.
The overlay network interface is accessible container through a bridge: each container has 2 interfaces, eth0 connected to lxdbr0 and eth1 connected to vpnbr0.
vpnbr0 bridge is connected to the interface provided by peervpn.
A dedicated container is acting as DHCP server to allocate IP addresses in the overlay network subnet to any container sending a DHCP request through eth1
As a result, each container has a “standard” eth0 interface fed by lxdbr0, and is able to access any container on the overlay network via eth1, regardless of the baremetal server location.
I would like to migrate from peervpn to Slack Nebula using a similar setup but am unable to create a “nebulabr0” bridge that could replace the peervpn bridge:
+---------------------+ +--------------------+
| Container 1 | | Container 2 |
| | | |
| | | |
| | | |
| eth0 eth1 | | eth0 eth1 |
| + + | | + + |
+---------------------+ +--------------------+
| | | |
lxdbr0 +-----+------------------------+-----------------+
192.168.0.1/24 | |
| |
| |
nebulabr0 +-----------+---------------------------+--------+
192.168.1.1/24
I understand this may be linked to the fact that peervpn and Nebula operate on different layers (2 vs 3). I also understand the “routed nic” mode may be relevant for this use case but am unable to find relevant documentation on the topic and previous discussions on the topic (https://github.com/slackhq/nebula/issues/54 or Is there a "best" (recommended) method Routing -or- Forwarding a VPN TUN IP traffic to LXDBR0 (or custom LXD Bridge device)) leave open questions on the actual recommended technical setup.
A solution is to run a Nebula client in each container which I do not wish to do.
As mentionned above, the baremetal server should provide access to the overlay network to the containers by exposing its nebula1 interface, if this is feasible, in a similar mode to tinc/peervpn.
Has anyone managed to implement a Slack Nebula overlay network used by LXD containers?
If yes, can the setup be shared with the rest of the world?
Best
D.