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

Add documentation on OVN BGP agent setup with EVPN #51

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

MatusJenca2
Copy link

@MatusJenca2 MatusJenca2 commented Sep 24, 2024

@MatusJenca2 MatusJenca2 force-pushed the mjenca-ovn-bgp-evpn branch 2 times, most recently from 3996ebd to f605f9f Compare October 2, 2024 07:43
@MatusJenca2 MatusJenca2 force-pushed the mjenca-ovn-bgp-evpn branch 3 times, most recently from 03e98d5 to 8cd0a52 Compare November 8, 2024 13:25
@MatusJenca2 MatusJenca2 marked this pull request as ready for review November 11, 2024 15:38
documentation/sdn/ovn_bgp_evpn.md Outdated Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn.md Outdated Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn.md Outdated Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn.md Outdated Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn.md Outdated Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn.md Outdated Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn.md Outdated Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn.md Outdated Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn_deployments.md Outdated Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn_deployments.md Outdated Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn_deployments.md Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn_deployments.md Outdated Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn_deployments.md Outdated Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn_deployments.md Outdated Show resolved Hide resolved
documentation/sdn/ovn_bgp_evpn_deployments.md Outdated Show resolved Hide resolved
Signed-off-by: Matus Jenca <[email protected]>
Signed-off-by: Ivan Vnučko <[email protected]>
Copy link
Member

@matofeder matofeder left a comment

Choose a reason for hiding this comment

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

LGTM

@scoopex
Copy link
Contributor

scoopex commented Nov 15, 2024

LGTM :-)
We should consider whether the “hardware-landscape” repository is the right place for this documentation as it is not directly related to this repo.

@maxwolfs What do you think is an appropriate place for this document?

documentation/sdn/ovn_bgp_evpn_deployments.md Outdated Show resolved Hide resolved
```
- Get images tag
```
dokcer image ls
Copy link
Contributor

Choose a reason for hiding this comment

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

Typo :-)

documentation/sdn/ovn_bgp_evpn_deployments.md Outdated Show resolved Hide resolved
Copy link

@fzakfeld fzakfeld left a comment

Choose a reason for hiding this comment

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

Thanks for the work. I did consider the agent back when we were building OCC2 (our first SCS region) and added some comments to it.

The OVN BGP Agent is a component designed to integrate the Open Virtual Network (OVN) with the Border Gateway Protocol (BGP) for routing purposes. OVN is a network virtualization system that provides software-defined networking (SDN) capabilities for virtualized environments, such as OpenStack. BGP, on the other hand, is the protocol used to exchange routing information between different networks (as explained in the previous message).

### Advantages of OVN BGP vs pure OVN networking
- **Direct external network reachability / connectivity** - External access to VMs and connectivity of VMs to external network is simplified because the BGP agent advertises their internal IP addresses without needing NAT, Floating IP or external gateway. By using BGP, which is a standard protocol in networking, the OVN BGP Agent integrates OVN virtual networks seamlessly with existing physical routers and external network infrastructures. This allows OVN environments to be easily connected to external data centers, service provider networks, or the Internet. Without OVN BGP Agent, connecting requires configuring gateway routers or L3 devices to handle the routing between the virtual and physical networks.

Choose a reason for hiding this comment

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

I think this lacks some realworld use case examples. Assuming we are talking about IPv4, in most use cases the customers want/should use RFC1918 / private addressing between VMs (keep in mind that IPv4 addresses are rare and expensive, we charge ~3 EUR per month for one!). Exposing them externally would not mean external connectivity without introducing NAT somewhere else.

This is of course different for IPv6 - which is not using NAT either way (nor with or without bgp agent)

Also, this seems to cover the L3 mode "afi IPv4/6 unicast", but below we are talking about the L2 "EVPN" mode. When we experimented with the OVN BGP Agent I was mostly interested in the "expose Floating IPs and IPv6 subnets to switches (L3)" part, but EVPN is a totally different use case, which might make a lot of sense for interconnectivity. Maybe I'm missing something here, but for me it's not clear.

BGP provides intelligent path selection, allowing optimized routing of traffic between the virtual and physical networks. For example, BGP can help choose the shortest or most efficient path for traffic between the data center and external networks, potentially improving performance and reducing latency.

- **Scalability and multi-tenant environments** - The OVN BGP Agent enables scalable multi-tenant environments. Each tenant's network can be advertised separately via BGP, and policies can be applied based on BGP advertisements. This makes it easier to manage large-scale cloud environments where multiple tenants or customers need isolated but externally reachable networks. No manual configuration of floating IPs and NATs required.
- **Enhanced security** - BGP routing policies can be used to apply access controls, such as filtering routes or controlling which networks can be advertised and accepted. This allows for more granular control of how traffic flows between the virtualized environment and external networks. Without OVN BGP Agent, security policies would need to be applied manually or through static firewall and NAT configurations, which may not be as flexible or scalable as BGP-based route filtering and access control mechanisms.

Choose a reason for hiding this comment

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

How are these policies configured? AFAIK the agent just controls routing on a Linux VRF and let's FRR announce it - which would be configured statically.

documentation/sdn/ovn_bgp_evpn.md Outdated Show resolved Hide resolved
where low-latency and highly predictable paths are required, or where MPLS
infrastructure already exists.

Geneve tunnels, VLANs or VXLANs can be also used by Neutron as ML2 drivers to

Choose a reason for hiding this comment

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

Multitenancy is the de facto standard (never came across even a private cloud that doesn't have tenant networks, whether that be VLAN-backed or VXLAN/Geneve). Maybe the "can also be used" is an underestimation ;-)

@scoopex
Copy link
Contributor

scoopex commented Nov 25, 2024

This documentation describes the development status for the SDN encyrption. As you can see, there are currently some Openstack change requests waiting to be integrated into Kolla-Ansible.

So that this can be tracked, it makes sense to create a new menu item ‘Technical Previews’ below https://docs.scs.community/docs/category/iaas-layer where this document is then stored.

(https://github.com/SovereignCloudStack/docs/tree/main/docs/02-iaas)

Signed-off-by: Marc Schöchlin <[email protected]>
Signed-off-by: Marc Schöchlin <[email protected]>
Signed-off-by: Marc Schöchlin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants