Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Southbound driver for vpn backends #374

Merged
merged 1 commit into from
Dec 21, 2020
Merged

Conversation

alacuku
Copy link
Member

@alacuku alacuku commented Nov 12, 2020

Description

Liqo-Gateway

The tunnel-operator has been renamed to liqo-gateway. It handles the VPN connections to remote peers through a southbound driver, an interface which defines a set of methods. The solution is flexible and separates the underlying VPN technology from the operator's business core logic. Based on the information of the tunnelendpoints.net.liqo.io resource the correct implementation of the driver is called to establish the VPN connection hence for different peering clusters different VPN backends can be used. A first implementation of the drives is done for the WireGuard VPN.
Further more the vpn network interface does not live on the host's network namespace where the pod runs but in the pod's network namespace. Not being bound anymore to a specific host, and not running in the host's network, nodePorts/loadBalancers services are used to expose the VPN endpoint to the remote peering clusters. Here are the features introduced for the liqo-gateway by this PR:

  • southbound driver for VPN technologies;
  • support for WireGuard VPN, a fast and secure solution;
  • the network interfaces, and all the needed configuration for liqo network live in the pod's namespace, isolated from the host's network namespace;
  • support for geographical peering by exposing the VPN endpoint through a loadBalancer service.

Liqo-Route

The route-operator has been renamed to liqo-route. The operator has been simplified since the NAT configuration has been moved to liqo-gateway. The VxLAN approach used before to connect the nodes to the gateway has been changed since it presented limitations with the new architecture where the gateway has been moved to a separate namespace. Each host establishes a VPN connection to the the liqo-gateway in order to route network traffic to remote services. Other than configure the overlay network the operator handles the routing rules on each host for the remote peers.

@alacuku alacuku changed the title Support for generic VPNs using a driver mechanism [WIP] Southbound driver for vpn backends Nov 14, 2020
@alacuku alacuku force-pushed the kcl/networkDriver branch 20 times, most recently from afbbce3 to 67d2fcf Compare November 21, 2020 19:55
@adamjensenbot adamjensenbot added the kind/docs Improvements or additions to documentation label Dec 17, 2020
@alacuku alacuku force-pushed the kcl/networkDriver branch 13 times, most recently from 7b7bcc1 to 08db765 Compare December 21, 2020 07:58
 - southbound driver to handle vpn connections
 - implementation of driver using WireGuard
 - overlay network using vpn connections from hosts to gateway pod
 - add support for generic vpn backends into the networkconfigs and tunnelendpoints CRDs
REFACTORING:
 - renamed tunnel-operator to liqo-gateway
 - renamed route-operator to liqo-route
@alacuku alacuku changed the title [WIP] Southbound driver for vpn backends Southbound driver for vpn backends Dec 21, 2020
Copy link
Member

@mlavacca mlavacca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mlavacca
Copy link
Member

/merge

@adamjensenbot adamjensenbot added the merge-requested Request bot merging (automatically managed) label Dec 21, 2020
@adamjensenbot adamjensenbot merged commit d0cecd2 into master Dec 21, 2020
@adamjensenbot adamjensenbot deleted the kcl/networkDriver branch December 21, 2020 10:24
@adamjensenbot adamjensenbot removed the merge-requested Request bot merging (automatically managed) label Dec 21, 2020
@alacuku alacuku added documentation kind/feature New feature or request and removed documentation kind/docs Improvements or additions to documentation labels Mar 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature New feature or request size/XXL
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants