<div dir="ltr"><div><div><div><div>First, i would say that I only read about Canonical's FAN yesterday so have no insight into what it can or can't do.<br><br>This spring I spent time looking at various solutions for network overlays because of my interest in SDN and LXC.<br><br></div><div>My use-case "requirements" were:<br><ol><li>to <u><b>be able to interconnect LXC containers on any server on any Cloud</b></u> or private DataCenter</li><li><u><b>be simple</b></u> to install & configure</li><li><b><u>be full-mesh</u></b> without requiring any "super-node" in the network</li><li>provide layer 2 (L2) support thus supporting BOTH...<b> IPv4 -and- IPv6</b></li><li><b>support multi-tenancy </b>use</li><li><b>transparency to firewall & NAT<br></b></li><li><b>be open source<br></b></li></ol></div><div></div>For SDN use VxLAN is problematic because of its usual requirement for multicast to be enabled in the network which for most ISPs or Cloud environments is not available.   <br><br>Yes, there are some unicast VxLAN solutions now but they almost all (AFAIK) require use of proprietary networking hardware (cisco, juniper).    I've not used Flannel yet but I do not believe it requires multicast.<br><br></div><div>So I began looking at various full mesh VPN solutions including:<br></div><ul><li>ControlTier - required a "super-node" <br></li><li>Tinc - fairly complex setup/configuration<br></li><li>others.</li></ul><div></div><div>I also examined CJDNS but learned it may not be appropriate for my use case because of the way its architected.<br></div><div><br></div>A side benefit of a full-mesh VPN Network Overlay was that all the traffic would be encrypted.<br><br>After looking at various full-mesh vpn solutions I found and used <i><b>PeerVPN</b></i>.   <br><br>PeerVPN:<br><ul><li>was created by a recent PHD (Tobias Volk) </li><li>was implemented in C & is fast</li><li>is open source</li><li>is self-learning full-mesh vpn</li><li>provides strong encryption</li><li>and worked great with  LXC but also with with Docker and other container technologies.</li></ul></div><div>Because PeerVPN is an L2 VPN it also can support:<br><ul><li>both IPv4 and IPv6 (simple configuration)</li><li>use of routing protocols over it</li><li>implementation & use of VxLAN later when I get time</li><li>multi-tenancy use<br></li></ul></div><div>Because I wanted to interconnect LXC between any IaaS Cloud the PeerVPN encryption would ensure the security of the traffic.<br></div><div><br></div>This worked extremely well and met all of "use-case" requirements.<br><br></div><div>PeerVPN was simple to configure & setup (only 5 or 6 commands)... maybe 10 if you configure <u>both</u> IPv4 and IPv6.   Its also a self-learning full mesh vpn w/no super-node requirement.<br></div><div><br></div>I documented all of this on a blog post where I hope I have provided enough info.    I had input from the author (Tobias Volk) and others who had read it.<br><br><a href="https://bmullan.wordpress.com/">Proof-of-Concept Secure Mesh VPN Network Interconnect for LXC containers in Multiple IaaS Clouds</a><br><div><br></div><div>My testing of this included LXC containers running on "host" Servers on AWS and Digital Ocean Clouds as well as a local server.<br><br></div><div>No machine required more than 5-6 simple config commands for either IPv4 -or- IPv6 and maybe 10 commands total if using both.  <br><br></div><div>The full mesh VPN learned new nodes quickly and quickly provided an any-to-any connection, usually within a few seconds).<br><br></div><div>With the advent of LXD capabilities for remote LXC management/control the PeerVPN solution also presents a simple solution to a complex problem in a multi-cloud environment.<br><br></div><div>Brian<br><br></div><div><br></div><div><div><br></div></div></div>