Skip to content

Managing Fabric Interconnects

Fabric Interconnects define the physical and logical connections between network fabrics, typically across different data center sites. They enable Data Center Interconnect (DCI) scenarios where workloads and logical networks need to stretch across locations.

A Fabric Interconnect is a resource that:

  • Connects two or more network fabrics by defining links between their network devices
  • Carries BGP configuration and neighbor templates that control how the interconnected switches peer with each other
  • Supports a deploy workflow with preview, confirmation, accept and reject steps
  • Uses a transport ID for overlay encapsulation across sites

Currently the supported interconnect type is DCI-EVPN, which uses EVPN with BGP to establish peering between border/spine switches in different fabrics, allowing VXLAN overlays to be extended across sites.

Fabric Interconnects follow a two-state lifecycle:

StatusDescription
draftThe interconnect has been created but is not yet active. Links, templates and configuration can be modified freely. This is the default status on creation.
activeThe interconnect has been deployed and the BGP configuration has been pushed to the network devices.
  1. Navigate to Fabrics and click on the Fabric Interconnects tab
  2. Click Add Fabric Interconnect
  3. Fill in the required fields:
    • Label — a unique identifier (max 63 characters)
    • Name — a human-readable name
    • Description — a short description of the interconnect’s purpose
    • Type — select DCI-EVPN
  4. Optionally configure the BGP templates (see BGP templates below)
  5. Click Create

The interconnect is created in draft status.

Terminal window
curl -X POST "https://<your-server>/api/v2/network-fabric-interconnects" \
-H "Content-Type: application/json" \
-d '{
"interconnectType": "dci-evpn",
"label": "dci-evpn-interconnect-01",
"name": "Primary DCI EVPN Interconnect",
"description": "Data center interconnect using EVPN",
"bgpConfigurationTemplate": "<base64-encoded-template>",
"bgpNeighborTemplate": "<base64-encoded-template>"
}'

Before creating an interconnect you can retrieve the default BGP templates for an interconnect type:

Terminal window
curl "https://<your-server>/api/v2/network-fabric-interconnects/template/dci-evpn"

This returns a NetworkFabricInterconnectTemplate with default bgpConfigurationTemplate and bgpNeighborTemplate values that you can customize before creating the interconnect.

Interconnect links define the physical connections between network devices in different fabrics. Each link specifies a pair of network devices (one from each fabric) that are directly connected.

Each link requires:

  • fabricAId — the ID of the first fabric
  • fabricANetworkEquipmentId — the ID of the network device in fabric A
  • fabricBId — the ID of the second fabric
  • fabricBNetworkEquipmentId — the ID of the network device in fabric B
  1. Open the fabric interconnect and go to the Links tab
  2. Click Add Link
  3. Select the two fabrics and network devices that are physically connected
  4. Click Create
Terminal window
curl -X POST "https://<your-server>/api/v2/network-fabric-interconnects/{id}/links" \
-H "Content-Type: application/json" \
-d '{
"fabricAId": 1,
"fabricANetworkEquipmentId": 10,
"fabricBId": 2,
"fabricBNetworkEquipmentId": 20
}'
Terminal window
curl "https://<your-server>/api/v2/network-fabric-interconnects/{id}/links"

Results can be filtered by fabricAId, fabricBId, fabricANetworkEquipmentId or fabricBNetworkEquipmentId.

Terminal window
curl -X DELETE "https://<your-server>/api/v2/network-fabric-interconnects/{id}/links/{linkId}" \
-H "If-Match: <revision>"

You can list the fabrics that are part of an interconnect, as well as fabrics that are available to be added:

Terminal window
# Fabrics currently in this interconnect
curl "https://<your-server>/api/v2/network-fabric-interconnects/{id}/fabrics"
# Available fabrics that can be added
curl "https://<your-server>/api/v2/network-fabric-interconnects/{id}/fabrics-available"

You can also list the interconnects associated with a specific fabric:

Terminal window
curl "https://<your-server>/api/v2/network-fabrics/{networkFabricId}/network-fabric-interconnects"

Fabric Interconnects use two BGP templates that control the switch configuration generated during deployment:

  • bgpConfigurationTemplate — the global BGP configuration applied to each network device in the interconnect. This typically includes BGP router-id, address families and EVPN settings.
  • bgpNeighborTemplate — the per-neighbor BGP configuration applied for each remote peer. This typically includes the neighbor address, remote ASN and address family activation.

Both templates are stored as strings and support template variables. The following variables are available in the interconnect template record set:

VariableDescription
local_idDatabase ID of the local network device
remote_idDatabase ID of the remote network device
local_asnBGP ASN assigned to the local network device
remote_asnBGP ASN assigned to the remote network device
local_loopback_ipv4Loopback IPv4 address of the local device
remote_loopback_ipv4Loopback IPv4 address of the remote device
local_vtep_ipv4VTEP IPv4 address of the local device
remote_vtep_ipv4VTEP IPv4 address of the remote device
local_vtep_external_ipv4External VTEP IPv4 address of the local device
remote_vtep_external_ipv4External VTEP IPv4 address of the remote device

Templates can be updated on an existing interconnect:

Terminal window
curl -X PATCH "https://<your-server>/api/v2/network-fabric-interconnects/{id}" \
-H "Content-Type: application/json" \
-H "If-Match: <revision>" \
-d '{
"bgpConfigurationTemplate": "<updated-base64-template>",
"bgpNeighborTemplate": "<updated-base64-template>"
}'

Once the interconnect has been configured with links and templates, it can be deployed to push the BGP configuration to the network devices. The deploy process supports an optional confirmation step that lets you review the changes before they are applied.

Terminal window
curl -X POST "https://<your-server>/api/v2/network-fabric-interconnects/{id}/actions/deploy" \
-H "Content-Type: application/json" \
-d '{
"requireConfirmation": true
}'
  • If requireConfirmation is true, the deployment pauses after generating a preview. The interconnect’s deployPreview field is populated with the configuration changes that will be applied to each network device. You must then accept or reject the deployment.
  • If requireConfirmation is false, the deployment proceeds immediately.

The response includes a JobInfo object that can be used to track the deployment progress.

After initiating a deployment with confirmation, retrieve the interconnect to see the preview:

Terminal window
curl "https://<your-server>/api/v2/network-fabric-interconnects/{id}"

The deployPreview array contains an entry for each affected network device with:

  • globalTemplateActivate — global BGP configuration commands to be applied
  • neighborTemplateActivate — per-neighbor BGP commands to be applied
  • globalTemplateDeactivate — global BGP configuration commands to be removed
  • neighborTemplateDeactivate — per-neighbor BGP commands to be removed

After reviewing the preview:

Terminal window
# Accept the deployment -- applies the configuration
curl -X POST "https://<your-server>/api/v2/network-fabric-interconnects/{id}/actions/accept-deploy"
# Reject the deployment -- discards the pending changes
curl -X POST "https://<your-server>/api/v2/network-fabric-interconnects/{id}/actions/reject-deploy"

Once accepted, the interconnect transitions from draft to active status.

draft ──► deploy (requireConfirmation: true) ──► review preview ──► accept-deploy ──► active
└─► reject-deploy ──► draft
draft ──► deploy (requireConfirmation: false) ──────────────────────────────────────► active

You can update the label, name, description and BGP templates of an existing interconnect:

Terminal window
curl -X PATCH "https://<your-server>/api/v2/network-fabric-interconnects/{id}" \
-H "Content-Type: application/json" \
-H "If-Match: <revision>" \
-d '{
"name": "Updated DCI Interconnect Name",
"description": "Updated description"
}'

The If-Match header must contain the current revision to prevent concurrent modification conflicts.

Before deleting a Fabric Interconnect, ensure no Logical Network Interconnects reference it.

Terminal window
curl -X DELETE "https://<your-server>/api/v2/network-fabric-interconnects/{id}"
Terminal window
# List all interconnects
curl "https://<your-server>/api/v2/network-fabric-interconnects"
# Filter by status
curl "https://<your-server>/api/v2/network-fabric-interconnects?filter.status=\$eq:active"
# Search by name
curl "https://<your-server>/api/v2/network-fabric-interconnects?search=primary"

To participate in a DCI-EVPN fabric interconnect, network devices should have the following properties configured:

  • Loopback IPv4 address — used as BGP router-id and VTEP source
  • External VTEP IPv4 address — the VTEP address reachable from remote sites (may differ from the local VTEP if NAT is involved)
  • ASN — assigned from the fabric’s ASN ranges

These can be configured on the network device via the network device management page.