mirror of
				https://github.com/vyos/vyos-documentation.git
				synced 2025-10-26 08:41:46 +01:00 
			
		
		
		
	Merge pull request #1544 from natali-rs1985/T6652-current
openfabric: T6652: OpenFabric protocol documentation
This commit is contained in:
		
						commit
						ae6887eb8f
					
				
							
								
								
									
										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