From: Hannes Laimer <h.laimer@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH pve-docs v3 8/8] sdn: add bgp fabric section
Date: Thu, 23 Apr 2026 16:02:14 +0200 [thread overview]
Message-ID: <20260423140214.187001-9-h.laimer@proxmox.com> (raw)
In-Reply-To: <20260423140214.187001-1-h.laimer@proxmox.com>
---
pvesdn.adoc | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
diff --git a/pvesdn.adoc b/pvesdn.adoc
index 8f955e8..27a9d75 100644
--- a/pvesdn.adoc
+++ b/pvesdn.adoc
@@ -835,6 +835,87 @@ NOTE: The dummy interface will automatically be configured as `passive`. Every
interface which doesn't have an ip-address configured will be treated as a
`point-to-point` link.
+[[pvesdn_bgp]]
+BGP
+~~~
+
+BGP (Border Gateway Protocol) can be used as an eBGP unnumbered fabric. Each
+node has its own Autonomous System Number (ASN) and peers with its neighbors
+over physical interfaces without requiring IP addresses on the fabric links.
+
+Configuration options:
+
+[[pvesdn_bgp_fabric]]
+On the Fabric
+^^^^^^^^^^^^^
+
+IPv4 Prefix:: Optional IPv4 CIDR network range (e.g., 192.0.2.0/24) used to
+verify that all router-IDs in the fabric are contained within this prefix.
+
+IPv6 Prefix:: Optional IPv6 CIDR network range (e.g., 2001:db8::/64) used to
+verify that all node IPv6 addresses in the fabric are contained within this
+prefix.
+
+BFD:: Enable Bidirectional Forwarding Detection on all peering sessions in this
+fabric. BFD provides fast failure detection for links between nodes.
+
+NOTE: If neither prefix is configured, each node must specify an explicit
+Router ID instead. This is useful when the loopback addresses are already
+managed by another fabric running on the same nodes.
+
+[[pvesdn_bgp_node]]
+On the Node
+^^^^^^^^^^^
+
+Options that are available on every node that is part of a fabric:
+
+Node:: Select the node which will be added to the fabric. Only nodes that
+are currently in the cluster will be shown.
+
+ASN:: BGP Autonomous System Number for this node. It is recommended to use
+private ASN numbers (64512-65534 for 16-bit, 4200000000-4294967294 for 32-bit).
+
+IPv4:: A unique IPv4 address for this node, also used as the BGP router-id.
+Required when the fabric has an IPv4 prefix configured; each node in the same
+fabric must have a different address.
+
+IPv6:: IPv6 address for dual-stack fabrics. If only an IPv6 address is
+configured (without an IPv4 address), the BGP router-id is automatically
+derived from it via a FNV-1a hash.
+
+Router ID:: Explicit BGP router-id for this node. Required when the fabric
+has no prefix configured; otherwise takes precedence over the router-id
+derived from the IPv4/IPv6 address.
+
+Interfaces:: Specify the interfaces used to establish peering connections with
+other BGP nodes. These interfaces run BGP unnumbered (no IP address assignment
+needed). When a node IP is configured, a dummy "loopback" interface is
+automatically created with that IP.
+
+NOTE: Unlike OSPF and OpenFabric, BGP unnumbered interfaces do not need IP
+addresses. Peering is established using IPv6 link-local addresses automatically.
+
+NOTE: In an eBGP unnumbered fabric, directly peering nodes must have different
+ASNs for BGP sessions to establish.
+
+[[pvesdn_bgp_evpn]]
+Using BGP Fabrics with EVPN
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When configuring an EVPN controller, a BGP fabric can be selected as the
+underlay instead of manually specifying peer addresses. The EVPN overlay
+sessions will run as iBGP, using the EVPN controller's ASN for the router
+process. The per-node fabric ASN is automatically applied via `local-as` on
+the underlay neighbor group.
+
+This means the EVPN controller ASN and the per-node fabric ASNs should be
+different. For example, with three nodes using ASNs 65001, 65002, and 65003
+for the underlay, the EVPN controller could use ASN 65000 for the overlay.
+
+NOTE: Using a BGP fabric for an EVPN underlay requires the fabric to have a
+prefix and each node to have an IP configured, since EVPN uses the node IP
+as the VTEP address.
+
[[pvesdn_config_ipam]]
IPAM
----
--
2.47.3
prev parent reply other threads:[~2026-04-23 14:03 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-23 14:02 [PATCH docs/manager/network/proxmox{-ve-rs,-perl-rs} v3 0/8] sdn: add BGP fabric Hannes Laimer
2026-04-23 14:02 ` [PATCH proxmox-ve-rs v3 1/8] sdn: fabric: add BGP protocol support Hannes Laimer
2026-04-23 14:02 ` [PATCH proxmox-perl-rs v3 2/8] sdn: fabrics: add BGP config generation Hannes Laimer
2026-04-23 14:02 ` [PATCH proxmox-perl-rs v3 3/8] sdn: fabrics: add BGP status endpoints Hannes Laimer
2026-04-23 14:02 ` [PATCH pve-network v3 4/8] sdn: fabrics: register bgp as a fabric protocol type Hannes Laimer
2026-04-23 14:02 ` [PATCH pve-network v3 5/8] test: evpn: add integration test for EVPN over BGP fabric Hannes Laimer
2026-04-23 14:02 ` [PATCH pve-network v3 6/8] sdn: evpn: validate fabric has prefix at controller update time Hannes Laimer
2026-04-23 14:02 ` [PATCH pve-manager v3 7/8] ui: sdn: add BGP fabric support Hannes Laimer
2026-04-23 14:02 ` Hannes Laimer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260423140214.187001-9-h.laimer@proxmox.com \
--to=h.laimer@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.