OpenFabric - Data Center Routing Protocol
Overview
OpenFabric is a link-state routing protocol designed specifically for modern data center (DC) architectures. The protocol is derived from IS-IS and optimized for Spine-Leaf (Clos) topologies with a large number of ECMP paths.
Key Features
- IS-IS foundation: Builds on the proven IS-IS protocol technology with data center optimizations
- Flat topology: No L1/L2 levels - all routers reside at the same level
- Dual-stack: Native support for IPv4 and IPv6 simultaneously
- ECMP: Efficient support for multiple equal-cost paths
- Scalability: Optimized for large Spine-Leaf topologies
- Fast convergence: Minimal reaction time to topology changes
OpenFabric Architecture
OpenFabric is designed to operate in the Clos (Spine-Leaf) topology, which has become the de facto standard for modern data centers:
┌─────────────────────────────────────────────────────────┐
│ Leaf Layer (Tier 2) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Leaf 1 │ │ Leaf 2 │ │ Leaf 3 │ │ Leaf 4 │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
└───────┼────────────┼────────────┼────────────┼─────────┘
│ │ │ │
└────┬───────┴─────┬──────┴─────┬──────┘
│ │ │
┌────────────┼─────────────┼────────────┼────────────────┐
│ │ │ │ │
│ ┌─────────▼──┐ ┌───────▼────┐ ┌───▼───────┐ │
│ │ Spine 1 │ │ Spine 2 │ │ Spine 3 │ │
│ └────────────┘ └────────────┘ └───────────┘ │
│ Spine Layer (Tier 1) │
└────────────────────────────────────────────────────────┘Differences from Traditional IS-IS
| Characteristic | IS-IS | OpenFabric |
|---|---|---|
| Hierarchy levels | L1, L2, L1/L2 | Flat topology |
| Target use case | Service provider networks | Data centers |
| Topology | Arbitrary | Spine-Leaf (Clos) |
| Optimization | General purpose | For ECMP and DC |
| Flood optimization | Standard | Enhanced for fabric |
Basic Configuration
Network Entity Title (NET)
The NET is a unique identifier for a router within an OpenFabric domain. Configuring the NET is mandatory.
NET format:
49.AREA.SYSTEM-ID.SELECTORComponents:
- AFI (Authority and Format Identifier):
49- private addressing - Area Identifier: The area identifier (typically
0001) - System Identifier: A unique system identifier (48 bits, usually 12 hexadecimal digits)
- NET Selector: Always
00
NET examples:
# NET derived from IP address 192.168.100.2
49.0001.1921.6810.0002.00
# NET derived from MAC address 00:50:56:00:10:02
49.0001.0050.5600.1002.00
# Arbitrary NET
49.0001.0000.0000.0001.00NET configuration:
set protocols openfabric net 49.0001.1921.6810.0002.00Creating an OpenFabric Domain
A domain is a logical grouping of routers and interfaces within OpenFabric.
# Create a domain named DATACENTER
set protocols openfabric domain DATACENTER
# Configure the NET for the domain
set protocols openfabric net 49.0001.1921.6810.0001.00Enabling Interfaces
Interfaces must be explicitly enabled within the OpenFabric domain, specifying the address families.
# Enable interface eth1 for IPv4
set protocols openfabric domain DATACENTER interface eth1 address-family ipv4
# Enable interface eth2 for IPv4 and IPv6
set protocols openfabric domain DATACENTER interface eth2 address-family ipv4
set protocols openfabric domain DATACENTER interface eth2 address-family ipv6
# Enable the loopback interface
set protocols openfabric domain DATACENTER interface lo address-family ipv4Minimal Working Configuration
# Spine router configuration
set protocols openfabric net 49.0001.1921.6810.0001.00
set protocols openfabric domain DC interface eth1 address-family ipv4
set protocols openfabric domain DC interface eth2 address-family ipv4
set protocols openfabric domain DC interface eth3 address-family ipv4
set protocols openfabric domain DC interface eth4 address-family ipv4
set protocols openfabric domain DC interface lo address-family ipv4
commit
saveFabric Tier Configuration
The Fabric Tier is a level in the Spine-Leaf hierarchy that defines the role of a router.
Fabric Levels
- Tier 0: Reserved for future use
- Tier 1: Spine layer (aggregation)
- Tier 2: Leaf layer (server access)
Tier Configuration
# Spine router configuration (Tier 1)
set protocols openfabric domain DATACENTER fabric-tier 1
# Leaf router configuration (Tier 2)
set protocols openfabric domain DATACENTER fabric-tier 2Important: Correct Tier configuration is critical for the flooding mechanism to work optimally and to prevent loops.
Interface Parameters
Hello Interval and Multiplier
Hello packets are used to discover neighbors and maintain adjacencies.
# Set the hello interval (default: 3 seconds)
set protocols openfabric domain DATACENTER interface eth1 hello-interval 5
# Set the hello multiplier (default: 3)
# Dead interval = hello-interval × hello-multiplier
set protocols openfabric domain DATACENTER interface eth1 hello-multiplier 3Calculating the Dead interval:
Dead Interval = Hello Interval × Hello Multiplier
Example: 5 seconds × 3 = 15 secondsInterface Metric
The metric affects path selection. A lower metric is preferred.
# Set the interface metric (default: 10)
set protocols openfabric domain DATACENTER interface eth1 metric 100
# Different metrics for different interfaces
set protocols openfabric domain DATACENTER interface eth1 metric 10
set protocols openfabric domain DATACENTER interface eth2 metric 20Metric range: 1 - 16,777,215
Passive Interface
A passive interface advertises networks but does not form adjacencies.
# Useful for loopback interfaces and interfaces facing servers
set protocols openfabric domain DATACENTER interface lo passive
# Server-facing interface without OpenFabric
set protocols openfabric domain DATACENTER interface eth5 passive
set protocols openfabric domain DATACENTER interface eth5 address-family ipv4CSNP and PSNP Intervals
CSNP (Complete Sequence Number PDU) and PSNP (Partial Sequence Number PDU) are used to synchronize the link-state database.
# Set the CSNP interval (default: 10 seconds)
set protocols openfabric domain DATACENTER interface eth1 csnp-interval 15
# Set the PSNP interval (default: 2 seconds)
set protocols openfabric domain DATACENTER interface eth1 psnp-interval 3LSP (Link State PDU) Parameters
LSP Generation
Control the rate of new LSP generation to optimize load.
# Minimum interval between LSP generations (milliseconds)
set protocols openfabric domain DATACENTER lsp-gen-interval 1
# Maximum interval between LSP generations (seconds)
set protocols openfabric domain DATACENTER lsp-mtu 1497LSP Refresh Interval
LSPs are refreshed periodically to prevent them from expiring.
# LSP refresh interval (default: 900 seconds)
set protocols openfabric domain DATACENTER lsp-refresh-interval 600
# Maximum LSP lifetime (default: 1200 seconds)
set protocols openfabric domain DATACENTER max-lsp-lifetime 1800Recommendation: max-lsp-lifetime must be greater than lsp-refresh-interval.
Overload Bit
The overload bit signals to neighbors that a router is overloaded and should not be used for transit traffic.
# Set the overload bit
set protocols openfabric domain DATACENTER overload
# Set the overload bit for a specific period (seconds)
set protocols openfabric domain DATACENTER overload on-startup 120Use cases:
- Planned maintenance
- Graceful restart
- Temporary performance issues
Purge Originator
Identify the source of an LSP purge in the network.
# Enable purge originator identification
set protocols openfabric domain DATACENTER purge-originatorAuthentication
Domain-Level Authentication
# Plaintext authentication
set protocols openfabric domain DATACENTER domain-password plaintext-password MySecretPassword
# MD5 authentication
set protocols openfabric domain DATACENTER domain-password md5 MySecretPasswordInterface-Level Authentication
# Plaintext interface authentication
set protocols openfabric domain DATACENTER interface eth1 password plaintext-password InterfacePassword
# MD5 interface authentication
set protocols openfabric domain DATACENTER interface eth1 password md5 InterfacePasswordRecommendation: Use MD5 authentication for stronger security.
Route Redistribution
Redistributing Connected Networks
# Redistribute all connected interfaces
set protocols openfabric domain DATACENTER redistribute ipv4 connected
# Redistribute with route-map filtering
set protocols openfabric domain DATACENTER redistribute ipv4 connected route-map CONNECTED-TO-FABRICRedistributing Static Routes
# Redistribute static routes
set protocols openfabric domain DATACENTER redistribute ipv4 static
# Redistribute with a metric
set protocols openfabric domain DATACENTER redistribute ipv4 static metric 50Redistributing from Other Protocols
# Redistribute from OSPF
set protocols openfabric domain DATACENTER redistribute ipv4 ospf
# Redistribute from BGP
set protocols openfabric domain DATACENTER redistribute ipv4 bgp
# Redistribute from Kernel
set protocols openfabric domain DATACENTER redistribute ipv4 kernelRoute-map for Filtering
# Create a route-map for filtering
set policy route-map CONNECTED-TO-FABRIC rule 10 action permit
set policy route-map CONNECTED-TO-FABRIC rule 10 match interface eth5
set policy route-map CONNECTED-TO-FABRIC rule 10 set metric 20
set policy route-map CONNECTED-TO-FABRIC rule 20 action deny
# Apply the route-map
set protocols openfabric domain DATACENTER redistribute ipv4 connected route-map CONNECTED-TO-FABRICIPv6 Configuration
OpenFabric natively supports IPv6 alongside IPv4.
# Enable IPv6 on interfaces
set protocols openfabric domain DATACENTER interface eth1 address-family ipv6
set protocols openfabric domain DATACENTER interface eth2 address-family ipv6
set protocols openfabric domain DATACENTER interface lo address-family ipv6
# Redistribute IPv6 routes
set protocols openfabric domain DATACENTER redistribute ipv6 connected
set protocols openfabric domain DATACENTER redistribute ipv6 static
# Dual-stack configuration
set protocols openfabric domain DATACENTER interface eth1 address-family ipv4
set protocols openfabric domain DATACENTER interface eth1 address-family ipv6Flooding Optimization
OpenFabric includes flooding optimization mechanisms to reduce redundant traffic in Spine-Leaf topologies.
How It Works
In traditional IS-IS, each router sends LSPs to all of its neighbors. In a Spine-Leaf topology, this creates redundancy:
- A Leaf sends LSPs to all Spines
- Each Spine sends the LSPs back to all Leaves
- Result: the same LSPs are transmitted multiple times
OpenFabric with correctly configured Tiers optimizes this process:
- A Leaf (Tier 2) sends LSPs to only one Spine (Tier 1)
- The Spine distributes the LSPs to the other Spines and to all Leaves
- A significant reduction in control-plane traffic
Configuration for Optimization
# Spine configuration
set protocols openfabric domain DATACENTER fabric-tier 1
# Leaf configuration
set protocols openfabric domain DATACENTER fabric-tier 2Important: All routers at the same physical layer must have the same Fabric Tier.
Configuration Examples
Example 1: Yandex Cloud - OpenFabric for a Clos Data Center
Architecture: 3 Spine routers and 4 Leaf routers in Yandex Cloud.
Topology
Yandex Cloud VPC
┌────────────────────────────────────────────────────────┐
│ │
│ Spine Layer (AS 64512) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Spine-1 │ │ Spine-2 │ │ Spine-3 │ │
│ │ 10.0.1.1/32 │ │ 10.0.1.2/32 │ │ 10.0.1.3/32 │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ └─────────┬────────┴────────┬─────────┘ │
│ │ │ │
│ Leaf Layer │ │ │
│ ┌────────────────▼──┐ ┌──────────▼────────┐ │
│ │ Leaf-1 │ │ Leaf-2 │ │
│ │ 10.0.2.1/32 │ │ 10.0.2.2/32 │ │
│ └───────────────────┘ └───────────────────┘ │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ Leaf-3 │ │ Leaf-4 │ │
│ │ 10.0.2.3/32 │ │ 10.0.2.4/32 │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ Subnet for Spine-Leaf links: 10.0.100.0/24 │
│ Subnet for Server links: 10.0.200.0/22 │
└────────────────────────────────────────────────────────┘Spine-1 Configuration
# Interfaces
set interfaces ethernet eth0 address 10.0.100.1/31
set interfaces ethernet eth1 address 10.0.100.9/31
set interfaces ethernet eth2 address 10.0.100.17/31
set interfaces ethernet eth3 address 10.0.100.25/31
set interfaces loopback lo address 10.0.1.1/32
# OpenFabric basic configuration
set protocols openfabric net 49.0001.0100.0000.1001.00
set protocols openfabric domain YANDEX fabric-tier 1
# Enable interfaces in OpenFabric
set protocols openfabric domain YANDEX interface eth0 address-family ipv4
set protocols openfabric domain YANDEX interface eth1 address-family ipv4
set protocols openfabric domain YANDEX interface eth2 address-family ipv4
set protocols openfabric domain YANDEX interface eth3 address-family ipv4
set protocols openfabric domain YANDEX interface lo address-family ipv4
set protocols openfabric domain YANDEX interface lo passive
# Timer optimization for the data center
set protocols openfabric domain YANDEX interface eth0 hello-interval 3
set protocols openfabric domain YANDEX interface eth0 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth1 hello-interval 3
set protocols openfabric domain YANDEX interface eth1 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth2 hello-interval 3
set protocols openfabric domain YANDEX interface eth2 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth3 hello-interval 3
set protocols openfabric domain YANDEX interface eth3 hello-multiplier 3
# Metrics (identical for ECMP)
set protocols openfabric domain YANDEX interface eth0 metric 10
set protocols openfabric domain YANDEX interface eth1 metric 10
set protocols openfabric domain YANDEX interface eth2 metric 10
set protocols openfabric domain YANDEX interface eth3 metric 10
# LSP parameters
set protocols openfabric domain YANDEX lsp-gen-interval 1
set protocols openfabric domain YANDEX lsp-refresh-interval 600
set protocols openfabric domain YANDEX max-lsp-lifetime 1200
# Authentication
set protocols openfabric domain YANDEX domain-password md5 YandexCloudSecret2024
commit
saveSpine-2 Configuration
# Interfaces
set interfaces ethernet eth0 address 10.0.100.3/31
set interfaces ethernet eth1 address 10.0.100.11/31
set interfaces ethernet eth2 address 10.0.100.19/31
set interfaces ethernet eth3 address 10.0.100.27/31
set interfaces loopback lo address 10.0.1.2/32
# OpenFabric basic configuration
set protocols openfabric net 49.0001.0100.0000.1002.00
set protocols openfabric domain YANDEX fabric-tier 1
# Enable interfaces
set protocols openfabric domain YANDEX interface eth0 address-family ipv4
set protocols openfabric domain YANDEX interface eth1 address-family ipv4
set protocols openfabric domain YANDEX interface eth2 address-family ipv4
set protocols openfabric domain YANDEX interface eth3 address-family ipv4
set protocols openfabric domain YANDEX interface lo address-family ipv4
set protocols openfabric domain YANDEX interface lo passive
# Timers and metrics (identical to Spine-1)
set protocols openfabric domain YANDEX interface eth0 hello-interval 3
set protocols openfabric domain YANDEX interface eth0 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth0 metric 10
set protocols openfabric domain YANDEX interface eth1 hello-interval 3
set protocols openfabric domain YANDEX interface eth1 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth1 metric 10
set protocols openfabric domain YANDEX interface eth2 hello-interval 3
set protocols openfabric domain YANDEX interface eth2 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth2 metric 10
set protocols openfabric domain YANDEX interface eth3 hello-interval 3
set protocols openfabric domain YANDEX interface eth3 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth3 metric 10
# LSP parameters
set protocols openfabric domain YANDEX lsp-gen-interval 1
set protocols openfabric domain YANDEX lsp-refresh-interval 600
set protocols openfabric domain YANDEX max-lsp-lifetime 1200
# Authentication
set protocols openfabric domain YANDEX domain-password md5 YandexCloudSecret2024
commit
saveSpine-3 Configuration
# Interfaces
set interfaces ethernet eth0 address 10.0.100.5/31
set interfaces ethernet eth1 address 10.0.100.13/31
set interfaces ethernet eth2 address 10.0.100.21/31
set interfaces ethernet eth3 address 10.0.100.29/31
set interfaces loopback lo address 10.0.1.3/32
# OpenFabric basic configuration
set protocols openfabric net 49.0001.0100.0000.1003.00
set protocols openfabric domain YANDEX fabric-tier 1
# Enable interfaces
set protocols openfabric domain YANDEX interface eth0 address-family ipv4
set protocols openfabric domain YANDEX interface eth1 address-family ipv4
set protocols openfabric domain YANDEX interface eth2 address-family ipv4
set protocols openfabric domain YANDEX interface eth3 address-family ipv4
set protocols openfabric domain YANDEX interface lo address-family ipv4
set protocols openfabric domain YANDEX interface lo passive
# Timers and metrics
set protocols openfabric domain YANDEX interface eth0 hello-interval 3
set protocols openfabric domain YANDEX interface eth0 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth0 metric 10
set protocols openfabric domain YANDEX interface eth1 hello-interval 3
set protocols openfabric domain YANDEX interface eth1 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth1 metric 10
set protocols openfabric domain YANDEX interface eth2 hello-interval 3
set protocols openfabric domain YANDEX interface eth2 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth2 metric 10
set protocols openfabric domain YANDEX interface eth3 hello-interval 3
set protocols openfabric domain YANDEX interface eth3 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth3 metric 10
# LSP parameters
set protocols openfabric domain YANDEX lsp-gen-interval 1
set protocols openfabric domain YANDEX lsp-refresh-interval 600
set protocols openfabric domain YANDEX max-lsp-lifetime 1200
# Authentication
set protocols openfabric domain YANDEX domain-password md5 YandexCloudSecret2024
commit
saveLeaf-1 Configuration
# Interfaces to Spine
set interfaces ethernet eth0 address 10.0.100.0/31
set interfaces ethernet eth1 address 10.0.100.2/31
set interfaces ethernet eth2 address 10.0.100.4/31
# Interface to servers
set interfaces ethernet eth3 address 10.0.200.1/24
# Loopback
set interfaces loopback lo address 10.0.2.1/32
# OpenFabric basic configuration
set protocols openfabric net 49.0001.0100.0000.2001.00
set protocols openfabric domain YANDEX fabric-tier 2
# Enable uplink interfaces
set protocols openfabric domain YANDEX interface eth0 address-family ipv4
set protocols openfabric domain YANDEX interface eth1 address-family ipv4
set protocols openfabric domain YANDEX interface eth2 address-family ipv4
set protocols openfabric domain YANDEX interface lo address-family ipv4
set protocols openfabric domain YANDEX interface lo passive
# Timers and metrics for uplinks
set protocols openfabric domain YANDEX interface eth0 hello-interval 3
set protocols openfabric domain YANDEX interface eth0 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth0 metric 10
set protocols openfabric domain YANDEX interface eth1 hello-interval 3
set protocols openfabric domain YANDEX interface eth1 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth1 metric 10
set protocols openfabric domain YANDEX interface eth2 hello-interval 3
set protocols openfabric domain YANDEX interface eth2 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth2 metric 10
# Redistribute the connected server network
set protocols openfabric domain YANDEX redistribute ipv4 connected route-map SERVER-NETWORKS
# Route-map for filtering
set policy route-map SERVER-NETWORKS rule 10 action permit
set policy route-map SERVER-NETWORKS rule 10 match interface eth3
# LSP parameters
set protocols openfabric domain YANDEX lsp-gen-interval 1
set protocols openfabric domain YANDEX lsp-refresh-interval 600
set protocols openfabric domain YANDEX max-lsp-lifetime 1200
# Authentication
set protocols openfabric domain YANDEX domain-password md5 YandexCloudSecret2024
commit
saveLeaf-2 Configuration
# Interfaces to Spine
set interfaces ethernet eth0 address 10.0.100.8/31
set interfaces ethernet eth1 address 10.0.100.10/31
set interfaces ethernet eth2 address 10.0.100.12/31
# Interface to servers
set interfaces ethernet eth3 address 10.0.201.1/24
# Loopback
set interfaces loopback lo address 10.0.2.2/32
# OpenFabric basic configuration
set protocols openfabric net 49.0001.0100.0000.2002.00
set protocols openfabric domain YANDEX fabric-tier 2
# Enable interfaces (same as Leaf-1)
set protocols openfabric domain YANDEX interface eth0 address-family ipv4
set protocols openfabric domain YANDEX interface eth1 address-family ipv4
set protocols openfabric domain YANDEX interface eth2 address-family ipv4
set protocols openfabric domain YANDEX interface lo address-family ipv4
set protocols openfabric domain YANDEX interface lo passive
# Timers and metrics
set protocols openfabric domain YANDEX interface eth0 hello-interval 3
set protocols openfabric domain YANDEX interface eth0 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth0 metric 10
set protocols openfabric domain YANDEX interface eth1 hello-interval 3
set protocols openfabric domain YANDEX interface eth1 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth1 metric 10
set protocols openfabric domain YANDEX interface eth2 hello-interval 3
set protocols openfabric domain YANDEX interface eth2 hello-multiplier 3
set protocols openfabric domain YANDEX interface eth2 metric 10
# Redistribute server networks
set protocols openfabric domain YANDEX redistribute ipv4 connected route-map SERVER-NETWORKS
set policy route-map SERVER-NETWORKS rule 10 action permit
set policy route-map SERVER-NETWORKS rule 10 match interface eth3
# LSP parameters
set protocols openfabric domain YANDEX lsp-gen-interval 1
set protocols openfabric domain YANDEX lsp-refresh-interval 600
set protocols openfabric domain YANDEX max-lsp-lifetime 1200
# Authentication
set protocols openfabric domain YANDEX domain-password md5 YandexCloudSecret2024
commit
saveLeaf-3 and Leaf-4 Configuration
The configuration is similar to Leaf-1 and Leaf-2 with the corresponding changes:
- Leaf-3: NET
49.0001.0100.0000.2003.00, Loopback10.0.2.3/32, Server subnet10.0.202.0/24 - Leaf-4: NET
49.0001.0100.0000.2004.00, Loopback10.0.2.4/32, Server subnet10.0.203.0/24
Example 2: VK Cloud - Spine-Leaf Fabric with OpenFabric
Architecture: 2 Spine and 2 Leaf for VK Cloud with IPv4 and IPv6 support.
Topology
VK Cloud VPC
┌─────────────────────────────────────────────────────┐
│ │
│ Spine Layer │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Spine-A │ │ Spine-B │ │
│ │ 10.10.0.1/32 │ │ 10.10.0.2/32 │ │
│ │ 2001:db8::1/128│ │ 2001:db8::2/128│ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ └──────────┬───────────────┘ │
│ │ │
│ Leaf Layer │ │
│ ┌──────────────────▼───┐ ┌──────────────────┐ │
│ │ Leaf-A │ │ Leaf-B │ │
│ │ 10.10.1.1/32 │ │ 10.10.1.2/32 │ │
│ │ 2001:db8::11/128 │ │ 2001:db8::12/128│ │
│ └──────────────────────┘ └──────────────────┘ │
│ │
│ P2P Links: 10.10.100.0/24, 2001:db8:100::/64 │
│ Server Networks: 10.10.200.0/22, 2001:db8:200::/56│
└─────────────────────────────────────────────────────┘Spine-A Configuration (VK Cloud)
# Interfaces
set interfaces ethernet eth0 address 10.10.100.1/31
set interfaces ethernet eth0 address 2001:db8:100::1/127
set interfaces ethernet eth1 address 10.10.100.3/31
set interfaces ethernet eth1 address 2001:db8:100::3/127
set interfaces loopback lo address 10.10.0.1/32
set interfaces loopback lo address 2001:db8::1/128
# OpenFabric basic configuration
set protocols openfabric net 49.0001.0101.0000.0001.00
set protocols openfabric domain VKCLOUD fabric-tier 1
# Enable interfaces with dual-stack
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv6
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv6
set protocols openfabric domain VKCLOUD interface lo address-family ipv4
set protocols openfabric domain VKCLOUD interface lo address-family ipv6
set protocols openfabric domain VKCLOUD interface lo passive
# Optimization for low latency
set protocols openfabric domain VKCLOUD interface eth0 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth0 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth0 metric 10
set protocols openfabric domain VKCLOUD interface eth1 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth1 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth1 metric 10
# LSP parameters
set protocols openfabric domain VKCLOUD lsp-gen-interval 1
set protocols openfabric domain VKCLOUD lsp-refresh-interval 900
set protocols openfabric domain VKCLOUD max-lsp-lifetime 1200
# Authentication
set protocols openfabric domain VKCLOUD domain-password md5 VKCloudFabric2024
commit
saveSpine-B Configuration (VK Cloud)
# Interfaces
set interfaces ethernet eth0 address 10.10.100.5/31
set interfaces ethernet eth0 address 2001:db8:100::5/127
set interfaces ethernet eth1 address 10.10.100.7/31
set interfaces ethernet eth1 address 2001:db8:100::7/127
set interfaces loopback lo address 10.10.0.2/32
set interfaces loopback lo address 2001:db8::2/128
# OpenFabric configuration (same as Spine-A)
set protocols openfabric net 49.0001.0101.0000.0002.00
set protocols openfabric domain VKCLOUD fabric-tier 1
# Dual-stack interfaces
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv6
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv6
set protocols openfabric domain VKCLOUD interface lo address-family ipv4
set protocols openfabric domain VKCLOUD interface lo address-family ipv6
set protocols openfabric domain VKCLOUD interface lo passive
# Timers
set protocols openfabric domain VKCLOUD interface eth0 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth0 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth0 metric 10
set protocols openfabric domain VKCLOUD interface eth1 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth1 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth1 metric 10
# LSP parameters
set protocols openfabric domain VKCLOUD lsp-gen-interval 1
set protocols openfabric domain VKCLOUD lsp-refresh-interval 900
set protocols openfabric domain VKCLOUD max-lsp-lifetime 1200
# Authentication
set protocols openfabric domain VKCLOUD domain-password md5 VKCloudFabric2024
commit
saveLeaf-A Configuration (VK Cloud)
# Uplink interfaces
set interfaces ethernet eth0 address 10.10.100.0/31
set interfaces ethernet eth0 address 2001:db8:100::0/127
set interfaces ethernet eth1 address 10.10.100.4/31
set interfaces ethernet eth1 address 2001:db8:100::4/127
# Server-facing interface
set interfaces ethernet eth2 address 10.10.200.1/24
set interfaces ethernet eth2 address 2001:db8:200:1::1/64
# Loopback
set interfaces loopback lo address 10.10.1.1/32
set interfaces loopback lo address 2001:db8::11/128
# OpenFabric basic configuration
set protocols openfabric net 49.0001.0101.0000.1001.00
set protocols openfabric domain VKCLOUD fabric-tier 2
# Uplink interfaces in OpenFabric
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv6
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv6
set protocols openfabric domain VKCLOUD interface lo address-family ipv4
set protocols openfabric domain VKCLOUD interface lo address-family ipv6
set protocols openfabric domain VKCLOUD interface lo passive
# Timers and metrics
set protocols openfabric domain VKCLOUD interface eth0 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth0 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth0 metric 10
set protocols openfabric domain VKCLOUD interface eth1 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth1 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth1 metric 10
# Redistribute server networks (IPv4 and IPv6)
set protocols openfabric domain VKCLOUD redistribute ipv4 connected route-map SERVERS
set protocols openfabric domain VKCLOUD redistribute ipv6 connected route-map SERVERS
# Route-map for server interfaces
set policy route-map SERVERS rule 10 action permit
set policy route-map SERVERS rule 10 match interface eth2
# LSP parameters
set protocols openfabric domain VKCLOUD lsp-gen-interval 1
set protocols openfabric domain VKCLOUD lsp-refresh-interval 900
set protocols openfabric domain VKCLOUD max-lsp-lifetime 1200
# Authentication
set protocols openfabric domain VKCLOUD domain-password md5 VKCloudFabric2024
commit
saveLeaf-B Configuration (VK Cloud)
# Uplink interfaces
set interfaces ethernet eth0 address 10.10.100.2/31
set interfaces ethernet eth0 address 2001:db8:100::2/127
set interfaces ethernet eth1 address 10.10.100.6/31
set interfaces ethernet eth1 address 2001:db8:100::6/127
# Server-facing interface
set interfaces ethernet eth2 address 10.10.201.1/24
set interfaces ethernet eth2 address 2001:db8:200:2::1/64
# Loopback
set interfaces loopback lo address 10.10.1.2/32
set interfaces loopback lo address 2001:db8::12/128
# OpenFabric configuration (same as Leaf-A)
set protocols openfabric net 49.0001.0101.0000.1002.00
set protocols openfabric domain VKCLOUD fabric-tier 2
# Dual-stack uplinks
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth0 address-family ipv6
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv4
set protocols openfabric domain VKCLOUD interface eth1 address-family ipv6
set protocols openfabric domain VKCLOUD interface lo address-family ipv4
set protocols openfabric domain VKCLOUD interface lo address-family ipv6
set protocols openfabric domain VKCLOUD interface lo passive
# Timers
set protocols openfabric domain VKCLOUD interface eth0 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth0 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth0 metric 10
set protocols openfabric domain VKCLOUD interface eth1 hello-interval 2
set protocols openfabric domain VKCLOUD interface eth1 hello-multiplier 3
set protocols openfabric domain VKCLOUD interface eth1 metric 10
# Redistribute server networks
set protocols openfabric domain VKCLOUD redistribute ipv4 connected route-map SERVERS
set protocols openfabric domain VKCLOUD redistribute ipv6 connected route-map SERVERS
set policy route-map SERVERS rule 10 action permit
set policy route-map SERVERS rule 10 match interface eth2
# LSP parameters
set protocols openfabric domain VKCLOUD lsp-gen-interval 1
set protocols openfabric domain VKCLOUD lsp-refresh-interval 900
set protocols openfabric domain VKCLOUD max-lsp-lifetime 1200
# Authentication
set protocols openfabric domain VKCLOUD domain-password md5 VKCloudFabric2024
commit
saveVerification and Monitoring
Checking OpenFabric Neighbors
# Show all OpenFabric neighbors
show openfabric neighbor
# Show neighbors for a specific domain
show openfabric domain DATACENTER neighbor
# Detailed information about a specific neighbor
show openfabric neighbor detailExample output:
Area DATACENTER:
System Id Interface L State Holdtime SNPA
0100.0000.1002 eth0 2 Up 27 2020.2020.2020
0100.0000.1003 eth1 2 Up 25 2020.2020.2021Checking the Topology Database
# Show the LSP database
show openfabric database
# Detailed database
show openfabric database detail
# Database for a specific domain
show openfabric domain DATACENTER databaseChecking Routes
# Show routes learned via OpenFabric
show ip route openfabric
# Show OpenFabric IPv6 routes
show ipv6 route openfabric
# Show the entire routing table
show ip routeExample output:
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
F>* 10.0.2.1/32 [115/20] via 10.0.100.0, eth0, weight 1, 00:15:23
* via 10.0.100.2, eth1, weight 1, 00:15:23
* via 10.0.100.4, eth2, weight 1, 00:15:23
F>* 10.0.200.0/24 [115/20] via 10.0.100.0, eth0, weight 1, 00:15:23Checking Interfaces
# Show OpenFabric interface information
show openfabric interface
# Detailed interface information
show openfabric interface eth0
# Show the status of domain interfaces
show openfabric domain DATACENTER interfaceChecking the Topology
# Show SPF statistics
show openfabric spf-delay-ietf
# Show hostname mapping (if configured)
show openfabric hostname
# Show summary information
show openfabric summaryMonitoring the Fabric Tier
# Check the router's fabric tier
show openfabric domain DATACENTER summary | grep Tier
# Check tier information in the database
show openfabric database detail | grep -A 5 "Fabric Tier"Troubleshooting
Problem: Neighbors Do Not Come Up
Diagnostics:
# Check the interface configuration
show configuration commands | grep openfabric
# Check the interface state
show interfaces
# Check authentication
show openfabric database detail | grep Authentication
# Debug adjacency
monitor logCommon causes:
- Authentication mismatch
- Incorrect interface configuration
- MTU mismatch
- Physical link problems
Solution:
# Check the MTU
show interfaces ethernet eth0
# Temporarily disable authentication for testing
delete protocols openfabric domain DATACENTER domain-password
commit
# Check hello packets
sudo tcpdump -i eth0 -vv proto 124Problem: Routes Do Not Appear in the Table
Diagnostics:
# Check the LSP database
show openfabric database
# Check redistribution
show configuration commands | grep redistribute
# Check the route-map
show route-map
# Check the routing table
show ip route openfabricCommon causes:
- Incorrect redistribution
- A route-map is blocking routes
- NET configuration problems
- The interface is not enabled in passive mode
Solution:
# Verify that connected networks are being redistributed
set protocols openfabric domain DATACENTER redistribute ipv4 connected
# Verify passive mode on the loopback
set protocols openfabric domain DATACENTER interface lo passive
# Check the route-map
show policy route-map SERVERSProblem: ECMP Paths Are Not Used
Diagnostics:
# Check interface metrics
show openfabric interface
# Check the FIB
show ip route 10.0.2.1
# Check the kernel routing table
ip route showCommon causes:
- Different metrics on the interfaces
- Incorrect Fabric Tier configuration
- The kernel does not support multipath
Solution:
# Make sure the metrics are identical
set protocols openfabric domain DATACENTER interface eth0 metric 10
set protocols openfabric domain DATACENTER interface eth1 metric 10
set protocols openfabric domain DATACENTER interface eth2 metric 10
# Check the Fabric Tier
set protocols openfabric domain DATACENTER fabric-tier 2Problem: High CPU Load Due to LSP Flooding
Diagnostics:
# Monitor CPU
top
# Check the LSP generation rate
show openfabric database detail | grep "Generated"
# Check the Fabric Tier configuration
show configuration commands | grep fabric-tierSolution:
# Increase the LSP generation interval
set protocols openfabric domain DATACENTER lsp-gen-interval 5
# Increase the refresh interval
set protocols openfabric domain DATACENTER lsp-refresh-interval 900
# Configure the Fabric Tier correctly
# Spine
set protocols openfabric domain DATACENTER fabric-tier 1
# Leaf
set protocols openfabric domain DATACENTER fabric-tier 2Problem: Frequent Neighbor Flapping
Diagnostics:
# Monitor logs
monitor log | match openfabric
# Check hello parameters
show openfabric interface eth0
# Check link quality
ping 10.0.100.1 size 1400 count 100Solution:
# Increase the hello interval and multiplier
set protocols openfabric domain DATACENTER interface eth0 hello-interval 5
set protocols openfabric domain DATACENTER interface eth0 hello-multiplier 5
# Reduce the MTU if there is fragmentation
set interfaces ethernet eth0 mtu 1400Debug Commands
# Enable debug for OpenFabric
# Warning: generates a lot of logs
sudo vtysh -c "debug openfabric events"
sudo vtysh -c "debug openfabric adj-packets"
sudo vtysh -c "debug openfabric lsp-gen"
sudo vtysh -c "debug openfabric update-packets"
# View FRR logs
tail -f /var/log/frr/frr.log
# Disable debug
sudo vtysh -c "no debug openfabric events"
sudo vtysh -c "no debug openfabric adj-packets"Best Practices
Network Design
Fabric Tier configuration
- Always configure the Fabric Tier to optimize flooding
- Spine: Tier 1, Leaf: Tier 2
- All routers at the same physical layer must have the same Tier
NET addressing
- Use a consistent scheme for the System ID
- Recommended: the last 6 bytes of the loopback IP address
- Document your NET addressing scheme
Metrics
- Use identical metrics on all uplinks for ECMP
- Change the metric only for traffic engineering
Loopback interfaces
- Always include the loopback in OpenFabric
- Always use passive mode for the loopback
- Use /32 (IPv4) or /128 (IPv6) for the loopback
Timers and Optimization
Hello parameters for the data center
- Hello interval: 2-3 seconds
- Hello multiplier: 3
- Dead interval: 6-9 seconds (fast failure detection)
LSP parameters
- lsp-gen-interval: 1-2 milliseconds (fast reaction)
- lsp-refresh-interval: 600-900 seconds
- max-lsp-lifetime: 1200-1800 seconds
CSNP/PSNP
- Use the default values
- Change them only for specific problems
Security
Authentication
- Always use MD5 authentication
- Use strong passwords
- Rotate passwords periodically
- You can use different passwords at the domain and interface levels
Restricting the protocol
- Enable OpenFabric only on the necessary interfaces
- Use passive mode for non-fabric interfaces
Scalability
Fabric size
- Recommended: up to 512 Leaves per 3-4 Spines
- For larger deployments, consider a Multi-POD architecture
Number of routes
- OpenFabric is efficient up to tens of thousands of routes
- For very large tables, consider summarization
ECMP paths
- Typical: 4-8 ECMP paths from Leaf to Spine
- Can be scaled to 16-32 paths
Operational Procedures
Router maintenance
# Set the overload bit before maintenance set protocols openfabric domain DATACENTER overload commit # Perform maintenance # Clear the overload bit delete protocols openfabric domain DATACENTER overload commitGraceful restart
# Overload for a specific period set protocols openfabric domain DATACENTER overload on-startup 300 commitMonitoring
- Monitor the number of neighbors
- Monitor the number of routes
- Set up alerts for neighbor flapping
- Monitor CPU utilization on Spines
BGP Integration
To connect the fabric to external networks, use BGP on the Leaf or Spine:
# Border Leaf configuration
set protocols bgp system-as 65000
set protocols bgp neighbor 192.0.2.1 remote-as 65001
set protocols bgp neighbor 192.0.2.1 address-family ipv4-unicast
# Redistribute OpenFabric into BGP
set protocols bgp address-family ipv4-unicast redistribute openfabric
# Redistribute BGP into OpenFabric
set protocols openfabric domain DATACENTER redistribute ipv4 bgp route-map BGP-TO-FABRICDual-stack Recommendations
- Enable IPv4 and IPv6 on all interfaces simultaneously
- Use identical metrics for IPv4 and IPv6
- Apply the same route-map to both address families
- Test failover for both protocols
Conclusion
OpenFabric is an efficient routing protocol for modern data centers, optimized for the Spine-Leaf architecture. Proper configuration of the Fabric Tier, metrics, and timers ensures fast convergence, optimal use of ECMP paths, and minimal control-plane traffic overhead.
Key points for a successful deployment:
- Proper Fabric Tier configuration (Spine = Tier 1, Leaf = Tier 2)
- Identical metrics on all uplinks for ECMP
- Aggressive timers for fast failure detection
- Use of MD5 authentication
- Regular monitoring of neighbors and routes
OpenFabric in VyOS provides enterprise-grade functionality for building fault-tolerant, scalable data center networks in the Yandex Cloud and VK Cloud cloud environments.