OpenFabric
OpenFabric, specified in draft-white-openfabric-06.txt, is a routing protocol derived from IS-IS, providing link-state routing with efficient flooding for topologies like spine-leaf networks.
OpenFabric a dual stack protocol. A single OpenFabric instance is able to perform routing for both IPv4 and IPv6.
General
Configuration
Mandatory Settings
For OpenFabric to operate correctly, one must do the equivalent of a Router ID in Connectionless Network Service (CLNS). This Router ID is called the NET. The system identifier must be unique within the network
This command sets network entity title (NET) provided in ISO format.
Here is an example NET value:
49.0001.1921.6800.1002.00
The CLNS address consists of the following parts:
AFI -
49
The AFI value 49 is what OpenFabric uses for private addressing.Area identifier:
0001
OpenFabric area number (numerical area1
)System identifier:
1921.6800.1002
- for system identifiers we recommend to use IP address or MAC address of the router itself. The way to construct this is to keep all of the zeroes of the router IP address, and then change the periods from being every three numbers to every four numbers. The address that is listed here is192.168.1.2
, which if expanded will turn into192.168.001.002
. Then all one has to do is move the dots to have four numbers instead of three. This gives us1921.6800.1002
.NET selector:
00
Must always be 00. This setting indicates “this system” or “local system.”
OpenFabric Global Configuration
This command configures the authentication password for a routing domain, as clear text or md5 one.
This command enables RFC 6232 purge originator identification.
This command sets overload bit to avoid any transit traffic through this router.
Interface Configuration
This command sets hello interval in seconds on a given interface. The range is 1 to 600. Hello packets are used to establish and maintain adjacency between OpenFabric neighbors.
This command sets multiplier for hello holding time on a given interface. The range is 2 to 100.
This command sets default metric for circuit. The metric range is 1 to 16777215.
This command enables the passive mode for this interface.
This command sets the authentication password for the interface.
This command sets Complete Sequence Number Packets (CSNP) interval in seconds. The interval range is 1 to 600.
Timers
This command sets minimum interval at which link-state packets (LSPs) are generated. The interval range is 1 to 120.
This command sets LSP refresh interval in seconds. The interval range is 1 to 65235.
This command sets LSP maximum LSP lifetime in seconds. The interval range is 360 to 65535. LSPs remain in a database for 1200 seconds by default. If they are not refreshed by that time, they are deleted. You can change the LSP refresh interval or the LSP lifetime. The LSP refresh interval should be less than the LSP lifetime or else LSPs will time out before they are refreshed.
Examples
Enable OpenFabric
Node 1:
set interfaces loopback lo address '192.168.255.255/32'
set interfaces ethernet eth1 address '192.0.2.1/24'
set protocols openfabric domain VyOS interface eth1 address-family ipv4
set protocols openfabric domain VyOS interface lo address-family ipv4
set protocols openfabric net '49.0001.1921.6825.5255.00'
Node 2:
set interfaces loopback lo address '192.168.255.254/32'
set interfaces ethernet eth1 address '192.0.2.2/24'
set protocols openfabric domain VyOS interface eth1 address-family ipv4
set protocols openfabric domain VyOS interface lo address-family ipv4
set protocols openfabric net '49.0001.1921.6825.5254.00'
This gives us the following neighborships:
Node-1@vyos:~$ show openfabric neighbor
show openfabric neighbor
Area VyOS:
System Id Interface L State Holdtime SNPA
vyos eth1 2 Up 27 2020.2020.2020
Node-2@vyos:~$ show openfabric neighbor
show openfabric neighbor
Area VyOS:
System Id Interface L State Holdtime SNPA
vyos eth1 2 Up 30 2020.2020.2020
Here’s the IP routes that are populated:
Node-1@vyos:~$ show ip route openfabric
show ip route openfabric
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 - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
f 192.0.2.0/24 [115/20] via 192.0.2.2, eth1 onlink, weight 1, 00:00:10
f>* 192.168.255.254/32 [115/20] via 192.0.2.2, eth1 onlink, weight 1, 00:00:10
Node-2@vyos:~$ show ip route openfabric
show ip route openfabric
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 - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
f 192.0.2.0/24 [115/20] via 192.0.2.1, eth1 onlink, weight 1, 00:00:48
f>* 192.168.255.255/32 [115/20] via 192.0.2.1, eth1 onlink, weight 1, 00:00:48