Skip to content

Managing logical network interconnects

Logical Network Interconnects allow you to stretch logical networks across multiple data center sites by linking them through a Fabric Interconnect. This enables workloads in different locations to share the same Layer 2/Layer 3 network using DCI-EVPN.

A Logical Network Interconnect is a resource that:

  • Groups one or more logical networks that should be extended across sites
  • References a Fabric Interconnect that provides the underlying physical and BGP connectivity
  • Is assigned a transport ID (allocated automatically from the range 999999999—900000000, descending) used for overlay encapsulation between sites
  • Tracks its own activation status independently from the Fabric Interconnect

Currently the only supported kind is dci-evpn.

The relationship between the key resources is:

Fabric Interconnect (physical links + BGP templates)
└── Logical Network Interconnect (overlay identity + transport ID)
├── Logical Network A (site 1)
└── Logical Network B (site 2)
  1. A Fabric Interconnect defines which network devices are physically connected between sites and how BGP peering is configured.
  2. A Logical Network Interconnect sits on top of a Fabric Interconnect and defines which logical networks should be reachable across sites through a shared transport ID.
  3. You add individual logical networks from different fabrics/sites to the interconnect, and MetalSoft extends the overlay (VXLAN with EVPN) between them.

Logical Network Interconnects and their logical network memberships follow a four-state lifecycle:

StatusDescription
pending_activationMetalSoft creates the interconnect or membership and waits for the next deployment to activate it.
activeMetalSoft deploys the interconnect and extends the logical networks across sites.
pending_deletionMetalSoft receives a delete request and waits for the next deployment to remove it.
deletingMetalSoft is removing the interconnect or membership from the network devices.
  • A Fabric Interconnect must exist and be in active status
  • At least two logical networks in different fabrics that you want to connect
  1. Navigate to Fabrics and click on the Logical Network Interconnects tab
  2. Click Add Logical Network Interconnect
  3. Fill in the required fields:
    • Label — a unique identifier (max 63 characters)
    • Name — a human-readable name
    • Fabric Interconnect — select the Fabric Interconnect to use
    • Kind — select DCI-EVPN
  4. Click Create

The interconnect is created in pending_activation status.

Terminal window
curl -X POST "https://<your-server>/api/v2/logical-network-interconnects" \
-H "Content-Type: application/json" \
-d '{
"label": "logical-network-interconnect-01",
"name": "Primary Logical Network Interconnect",
"fabricInterconnectId": 1,
"kind": "dci-evpn"
}'

The kind field defaults to dci-evpn if omitted.

Once the interconnect exists, add the logical networks that should be extended across sites.

Terminal window
curl -X POST "https://<your-server>/api/v2/logical-network-interconnects/{id}/logical-networks" \
-H "Content-Type: application/json" \
-d '{
"logicalNetworkId": 10
}'

Repeat for each logical network you want to include in the interconnect.

MetalSoft tracks each membership with its own status (starting at pending_activation) and timestamps.

Listing logical networks in an interconnect

Section titled “Listing logical networks in an interconnect”
Terminal window
curl "https://<your-server>/api/v2/logical-network-interconnects/{id}/logical-networks"

You can filter results by logicalNetworkId and status.

Terminal window
curl "https://<your-server>/api/v2/logical-network-interconnects/{id}/logical-networks/{logicalNetworkId}"
Terminal window
curl -X DELETE "https://<your-server>/api/v2/logical-network-interconnects/{id}/logical-networks/{logicalNetworkId}"

Viewing interconnects for a logical network

Section titled “Viewing interconnects for a logical network”

You can also look up which interconnects a specific logical network belongs to:

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

This is useful when troubleshooting connectivity or verifying that a logical network extends correctly to remote sites.

You can update the label, name, annotations, kind, and fabric interconnect reference:

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

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

Before deleting, remove all logical networks from the interconnect or ensure they are no longer needed.

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

The interconnect transitions to pending_deletion and then deleting before MetalSoft fully removes it.

Terminal window
# List all logical network interconnects
curl "https://<your-server>/api/v2/logical-network-interconnects"
# Filter by fabric interconnect
curl "https://<your-server>/api/v2/logical-network-interconnects?filter.fabricInterconnectId=\$eq:1"
# Filter by status
curl "https://<your-server>/api/v2/logical-network-interconnects?filter.status=\$eq:active"
# Filter by transport ID
curl "https://<your-server>/api/v2/logical-network-interconnects?filter.transportId=\$eq:999999999"
# Search by name or label
curl "https://<your-server>/api/v2/logical-network-interconnects?search=primary"

Logical Network Interconnects support a free-form annotations object for storing additional metadata as key-value string pairs. You can use this for tagging, organizational purposes, or integration with external systems.

Terminal window
curl -X PATCH "https://<your-server>/api/v2/logical-network-interconnects/{id}" \
-H "Content-Type: application/json" \
-H "If-Match: <revision>" \
-d '{
"annotations": {
"environment": "production",
"region": "us-east"
}
}'

Set a key to null to remove an annotation.

This example shows the complete flow for extending a logical network between two data center sites.

Prerequisites:

  • Site A has fabric ID 1 with logical network ID 10
  • Site B has fabric ID 2 with logical network ID 20
  • A Fabric Interconnect (ID 1) already connects the two fabrics and is in active status

Step 1: Create the Logical Network Interconnect

Terminal window
curl -X POST "https://<your-server>/api/v2/logical-network-interconnects" \
-H "Content-Type: application/json" \
-d '{
"label": "site-a-to-site-b",
"name": "Site A to Site B Interconnect",
"fabricInterconnectId": 1
}'

Note the returned id (e.g. 5).

Step 2: Add logical networks from both sites

Terminal window
# Add logical network from Site A
curl -X POST "https://<your-server>/api/v2/logical-network-interconnects/5/logical-networks" \
-H "Content-Type: application/json" \
-d '{"logicalNetworkId": 10}'
# Add logical network from Site B
curl -X POST "https://<your-server>/api/v2/logical-network-interconnects/5/logical-networks" \
-H "Content-Type: application/json" \
-d '{"logicalNetworkId": 20}'

Step 3: Verify the configuration

Terminal window
curl "https://<your-server>/api/v2/logical-network-interconnects/5/logical-networks"

Both logical networks appear with status pending_activation. After the next deployment cycle they transition to active, and workloads on both sites can communicate over the extended overlay network.