From: Gabriel Goller <g.goller@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH pve-docs 1/1] sdn: add section about IS-IS fabric
Date: Tue, 19 Aug 2025 15:19:07 +0200 [thread overview]
Message-ID: <20250819131916.324392-9-g.goller@proxmox.com> (raw)
In-Reply-To: <20250819131916.324392-1-g.goller@proxmox.com>
Add short section about IS-IS fabrics, nearly the same as the OpenFabric
section. Also add a warning on the IS-IS Controller about the
deprecation and a link to the IS-IS Fabrics. Also mention the
differences between them, which is that the fabrics don't redistribute
connected routes.
Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
---
pvesdn.adoc | 111 +++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 105 insertions(+), 6 deletions(-)
diff --git a/pvesdn.adoc b/pvesdn.adoc
index 87596916d4cb..4cf0355ef9da 100644
--- a/pvesdn.adoc
+++ b/pvesdn.adoc
@@ -509,6 +509,10 @@ bgp-multipath-as-path-relax:: Allow ECMP if your peers have different ASN.
ISIS Controller
~~~~~~~~~~~~~~~
+WARNING: Consider using the xref:pvesdn_isis[IS-IS] Fabric, the ISIS Controller
+will be deprecated soon. Note that the IS-IS Fabric does not redistribute
+connected routes into the fabric.
+
The ISIS controller is not used directly by a zone.
You can use it to configure FRR to export EVPN routes to an ISIS domain.
@@ -603,12 +607,12 @@ behavior and proper source address selection throughout the fabric.
Notes on IPv6
^^^^^^^^^^^^^
-IPv6 is currently only usable on OpenFabric fabrics. These IPv6 Fabrics need
-global IPv6 forwarding enabled on all nodes contained in the fabric. Without
-IPv6 forwarding, non-full-mesh fabrics won't work because the transit nodes
-don't forward packets to the outer nodes. Currently there isn't an easy way to
-enable IPv6 forwarding per-interface like with IPv4, so it has to be enabled
-globally. This can be accomplished by appending this line:
+IPv6 is currently only usable on OpenFabric and IS-IS fabrics. These IPv6
+Fabrics need global IPv6 forwarding enabled on all nodes contained in the
+fabric. Without IPv6 forwarding, non-full-mesh fabrics won't work because the
+transit nodes don't forward packets to the outer nodes. Currently there isn't
+an easy way to enable IPv6 forwarding per-interface like with IPv4, so it has
+to be enabled globally. This can be accomplished by appending this line:
----
post-up sysctl -w net.ipv6.conf.all.forwarding=1
@@ -711,6 +715,101 @@ WARNING: When you remove an interface with an entry in `/etc/network/interfaces`
that has `manual` set, then the IP will not get removed on applying the SDN
configuration.
+
+[[pvesdn_isis]]
+IS-IS
+~~~~~
+
+NOTE: Unlike the IS-IS Controller, the IS-IS Fabric does not distribute all the
+connected routes into the fabric. So it does not set
+`redistribute ipv4/6 connected level-1`.
+
+IS-IS is a routing protocol specifically designed for data center fabrics.
+
+[thumbnail="screenshot/gui-datacenter-create-fabric-isis.png"]
+
+Configuration options:
+
+[[pvesdn_isis_fabric]]
+On the Fabric
+^^^^^^^^^^^^^
+
+Name:: This is the name (domain) of the IS-IS fabric and can be at most 8 characters long.
+
+IPv4 Prefix:: 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:: IPv6 CIDR network range (e.g., 2001:db8::/64) used to verify that
+all router-IDs in the fabric are contained within this prefix.
+
+WARNING: For IPv6 fabrics to work, global forwarding needs to be enabled on all
+nodes. Check xref:pvesdn_config_fabrics_ipv6[Notes on IPv6] for how to do it and additional info.
+
+Hello Interval:: Controls how frequently (in seconds) hello packets are sent to
+discover and maintain connections with neighboring nodes. Lower values detect
+failures faster but increase network traffic. This option is global on the
+fabric, meaning every interface on every node in this fabric will inherit this
+hello-interval property. The default value is 3 seconds.
+
+CSNP Interval:: Sets how frequently (in seconds) the node synchronizes its
+routing database with neighbors. Lower values keep the network topology information
+more quickly in sync but increase network traffic. This option is global on the
+fabric, meaning every interface on every node in this fabric will inherit this
+property. The default value is 10 seconds.
+
+[[pvesdn_isis_node]]
+On the Node
+^^^^^^^^^^^
+
+[thumbnail="screenshot/gui-datacenter-create-node-isis.png"]
+
+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
+currently are in the cluster will be shown.
+
+IPv4:: A unique IPv4 address used to generate the IS-IS
+Network Entity Title (NET). Each node in the same fabric must have a different
+Router-ID, while a single node must use the same NET address across all fabrics
+(If this is not given {pve} will automatically choose one and ensure that the
+configuration is valid).
+
+IPv6:: A unique IPv6 address used to generate the IS-IS
+Network Entity Title (NET). Each node in the same fabric must have a different
+Router-ID, while a single node must use the same NET address across all fabrics.
+If a IPv4 and IPv6 address is configured, the IPv4 one will be used to derive
+the NET.
+
+WARNING: When using IPv6 addresses, the last 3 segments are used to generate
+the NET. Ensure these segments differ between nodes.
+
+Interfaces:: Specify the interfaces used to establish peering connections with
+other IS-IS nodes. Preferably select interfaces without pre-assigned IP
+addresses, then configure addresses in the IPv4/IPv6 column if needed. A dummy
+"loopback" interface with the router-id is automatically created.
+
+On The Interface
+^^^^^^^^^^^^^^^^
+
+The following optional parameters can be configured per interface when enabling
+the additional columns:
+
+IP::: A IPv4 that should get automatically configured on this interface. Must
+include the netmask (e.g. /31). If no address is set, the interface is
+configured as a `point-to-point` interface.
+
+IPv6::: A IPv6 that should get automatically configured on this interface. Must
+include the netmask (e.g. /127). If no address is set, the interface is
+configured as a `point-to-point` interface.
+
+Hello Multiplier::: Defines how many missed hello packets constitute a failed
+connection. Higher values make the connection more resilient to packet loss but
+slow down failure detection. The default value is 10.
+
+WARNING: When you remove an interface with an entry in `/etc/network/interfaces`
+that has `manual` set, then the IP will not get removed on applying the SDN
+configuration.
+
[[pvesdn_ospf]]
OSPF
~~~~
--
2.47.2
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next prev parent reply other threads:[~2025-08-19 13:18 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-19 13:18 [pve-devel] [PATCH docs/gui-tests/manager/network/proxmox{-ve-rs, -perl-rs} 0/9] Add IS-IS protocol to fabrics Gabriel Goller
2025-08-19 13:19 ` [pve-devel] [PATCH proxmox-ve-rs 1/3] frr: add IS-IS frr configuration types Gabriel Goller
2025-08-19 13:19 ` [pve-devel] [PATCH proxmox-ve-rs 2/3] ve-config: add IS-IS fabric config parsing and frr config generation Gabriel Goller
2025-08-19 13:19 ` [pve-devel] [PATCH proxmox-ve-rs 3/3] ve-config: add integration tests for IS-IS fabrics Gabriel Goller
2025-08-19 13:19 ` [pve-devel] [PATCH proxmox-perl-rs 1/1] pve-rs: fabrics: add IS-IS protocol ifupdown config generation Gabriel Goller
2025-08-19 13:19 ` [pve-devel] [PATCH pve-manager 1/2] fabrics: add IS-IS panels Gabriel Goller
2025-08-19 13:19 ` [pve-devel] [PATCH pve-manager 2/2] sdn: add warning about IS-IS controller deprecation Gabriel Goller
2025-08-19 13:19 ` [pve-devel] [PATCH pve-network 1/1] fabrics: add IS-IS api types Gabriel Goller
2025-08-19 13:19 ` Gabriel Goller [this message]
2025-08-19 13:19 ` [pve-devel] [PATCH pve-gui-tests 1/1] fabrics: add screenshots for IS-IS fabric and nodes Gabriel Goller
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=20250819131916.324392-9-g.goller@proxmox.com \
--to=g.goller@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.