mirror of
				https://github.com/vyos/vyos-documentation.git
				synced 2025-10-26 08:41:46 +01:00 
			
		
		
		
	openfabric: T6652: OpenFabric protocol documentation
https://docs.frrouting.org/en/latest/fabricd.html#openfabric
This commit is contained in:
		
							parent
							
								
									78c7e67fbe
								
							
						
					
					
						commit
						5182b55e2d
					
				
							
								
								
									
										239
									
								
								docs/configuration/protocols/openfabric.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										239
									
								
								docs/configuration/protocols/openfabric.rst
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,239 @@ | ||||
| .. _openfabric: | ||||
| 
 | ||||
| ##### | ||||
| OpenFabric | ||||
| ##### | ||||
| 
 | ||||
| OpenFabric, specified in `draft-white-openfabric-06.txt | ||||
| <https://datatracker.ietf.org/doc/html/draft-white-openfabric-06>`_, 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 | ||||
| :abbr:`NET (Network Entity Title)`. The system identifier must be unique within | ||||
| the network | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric net <network-entity-title> | ||||
| 
 | ||||
|   This command sets network entity title (NET) provided in ISO format. | ||||
| 
 | ||||
|   Here is an example :abbr:`NET (Network Entity Title)` value: | ||||
| 
 | ||||
|   .. code-block:: none | ||||
| 
 | ||||
|     49.0001.1921.6800.1002.00 | ||||
| 
 | ||||
|   The CLNS address consists of the following parts: | ||||
| 
 | ||||
|   * :abbr:`AFI (Address family authority identifier)` - ``49`` The AFI value | ||||
|     49 is what OpenFabric uses for private addressing. | ||||
| 
 | ||||
|   * Area identifier: ``0001`` OpenFabric area number (numerical area ``1``) | ||||
| 
 | ||||
|   * 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 is ``192.168.1.2``, which if expanded will turn | ||||
|     into ``192.168.001.002``. Then all one has to do is move the dots to have | ||||
|     four numbers instead of three. This gives us ``1921.6800.1002``. | ||||
| 
 | ||||
|   * :abbr:`NET (Network Entity Title)` selector: ``00`` Must always be 00. This | ||||
|     setting indicates "this system" or "local system." | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain <name> interface <interface> | ||||
|    address-family <ipv4|ipv6> | ||||
| 
 | ||||
|   This command enables OpenFabric instance with <NAME> on this interface, and | ||||
|   allows for adjacency to occur for address family (IPv4 or IPv6 or both). | ||||
| 
 | ||||
| OpenFabric Global Configuration | ||||
| -------------------------- | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain-password <plaintext-password|md5> | ||||
|   <password> | ||||
| 
 | ||||
|   This command configures the authentication password for a routing domain, | ||||
|   as clear text or md5 one. | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain <name> purge-originator | ||||
| 
 | ||||
|   This command enables :rfc:`6232` purge originator identification. | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain <name> set-overload-bit | ||||
| 
 | ||||
|   This command sets overload bit to avoid any transit traffic through this | ||||
|   router. | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain <name> log-adjacency-changes | ||||
| 
 | ||||
|   Log changes in adjacency state. | ||||
|    | ||||
| .. cfgcmd:: set protocols openfabric domain <name> fabric-tier <number> | ||||
| 
 | ||||
|   This command sets a static tier number to advertise as location | ||||
|   in the fabric. | ||||
| 
 | ||||
| 
 | ||||
| Interface Configuration | ||||
| ----------------------- | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric interface <interface> hello-interval | ||||
|   <seconds> | ||||
| 
 | ||||
|   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. | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain <name> interface <interface> | ||||
|    hello-multiplier <number> | ||||
| 
 | ||||
|   This command sets multiplier for hello holding time on a given | ||||
|   interface. The range is 2 to 100. | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain <name> interface <interface> | ||||
|    metric <metric> | ||||
| 
 | ||||
|   This command sets default metric for circuit. | ||||
|   The metric range is 1 to 16777215. | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric interface <interface> passive | ||||
| 
 | ||||
|   This command enables the passive mode for this interface. | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain <name> interface <interface> | ||||
|    password plaintext-password <text> | ||||
| 
 | ||||
|   This command sets the authentication password for the interface. | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain <name> interface <interface> | ||||
|    csnp-interval <seconds> | ||||
| 
 | ||||
|   This command sets Complete Sequence Number Packets (CSNP) interval in seconds. | ||||
|   The interval range is 1 to 600. | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain <name> interface <interface> | ||||
|    psnp-interval <number> | ||||
| 
 | ||||
|   This command sets Partial Sequence Number Packets (PSNP) interval in seconds. | ||||
|   The interval range is 1 to 120. | ||||
| 
 | ||||
| Timers | ||||
| ------ | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain <name> lsp-gen-interval <seconds> | ||||
| 
 | ||||
|   This command sets minimum interval at which link-state packets (LSPs) are | ||||
|   generated. The interval range is 1 to 120. | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain <name> lsp-refresh-interval <seconds> | ||||
| 
 | ||||
|   This command sets LSP refresh interval in seconds. The interval range | ||||
|   is 1 to 65235. | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain <name> max-lsp-lifetime <seconds> | ||||
| 
 | ||||
|   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. | ||||
| 
 | ||||
| .. cfgcmd:: set protocols openfabric domain <name> spf-interval <seconds> | ||||
| 
 | ||||
|   This command sets minimum interval between consecutive shortest path first | ||||
|   (SPF) calculations in seconds.The interval range is 1 to 120. | ||||
| 
 | ||||
| 
 | ||||
| ******** | ||||
| Examples | ||||
| ******** | ||||
| 
 | ||||
| Enable OpenFabric | ||||
| ============ | ||||
| 
 | ||||
| **Node 1:** | ||||
| 
 | ||||
| .. code-block:: none | ||||
| 
 | ||||
|   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:** | ||||
| 
 | ||||
| .. code-block:: none | ||||
| 
 | ||||
|   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: | ||||
| 
 | ||||
| .. code-block:: none | ||||
| 
 | ||||
|   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: | ||||
| 
 | ||||
| .. code-block:: none | ||||
| 
 | ||||
|   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 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user