Cisco Fabric Services (CFS) Configuration [NX-OS]
What is CFS
Cisco Fabric Services (CFS), a Cisco proprietary feature that distributes data, including configuration changes, to all Cisco NX-OS devices in a network.
You can use Cisco Fabric Services (CFS) to distribute and synchronize a configuration on one Cisco device with all other Cisco devices in your network. CFS provides you with consistent and, in most cases, identical configurations and behavior in your network.
CFS distributes configuration changes to multiple devices across a complete network. CFS supports the following types of distribution:
- CFS over Ethernet (CFSoE): Distributes application data over an Ethernet network.
- CFS over IP (CFSoIP): Distributes application data over an IPv4 network.
- CFS over Fibre Channel (CFSoFC): Distributes application data over a Fibre Channel, such as a virtual storage area network (VSAN). If the device is provisioned with Fibre Channel ports, CFSoFC is enabled by default.
CFS Distribution Modes
CFS supports three distribution modes to accommodate different feature requirements. Only one mode is allowed at a given time.
- Uncoordinated distributions: Distribute information that is not expected to conflict with that from a peer. Parallel uncoordinated distributions are allowed for an application.
- Coordinated distributions: Distribute information that can be manipulated and distributed from multiple devices (for example, the port security configuration). Coordinated distributions allow only one application distribution at a given time. CFS uses locks to enforce this. A coordinated distribution is not allowed to start if locks are acquired for the application anywhere in the network. A coordinated distribution consists of three stages:
- A network lock is acquired.
- The configuration is distributed and committed.
- The network lock is released.CFS can execute these stages in response to an application request without intervention from the application or under complete control of the application.
- Unrestricted uncoordinated distributions: Allow multiple parallel distributions in the network in the presence of an existing coordinated distribution. Unrestricted uncoordinated distributions are allowed to run in parallel with all other types of distributions.
Locking the Network
When you configure an application that uses the CFS infrastructure, that application starts a CFS session and locks the network. When a network is locked, the device software allows configuration changes to this application only from the device holding the lock. If you make configuration changes to the application from another device, the device issues a message to inform the user about the locked status. The configuration changes are held in a pending database by that application.
If you start a CFS session that requires a network lock but forgets to end the session, an administrator can clear the session. If you lock a network at any time, your username is remembered across restarts and switchovers. If another user (on the same machine) tries to perform configuration tasks, that user’s attempts are rejected.
A CFS region is a user-defined subset of devices for a given feature or application. You usually define regions to localize or restrict distribution based on devices that are close to one another. When a network covers many geographies with many different administrators who are responsible for subsets of devices, you can manage the scope of an application by setting up a CFS region.
CFS regions are identified by numbers ranging from 0 through 200. Region 0 is reserved as the default region and contains every device in the network. You can configure regions from 1 through 200.
An application keeps the configuration synchronized in a fabric through CFS. Two such fabrics might merge as a result of an ISL coming up between them. These two fabrics could have two different sets of configuration information that need to be reconciled in the event of a merge. CFS provides notification each time an application peer comes online. If a fabric with M application peers merges with another fabric with N application peers, and if an application triggers a merge action on every such notification, a link-up event results in M*N merges in the fabric.
CFS supports a protocol that reduces the number of merges required to one by handling the complexity of the merge at the CFS layer. This protocol runs per application per scope. The protocol involves selecting one switch in a fabric as the merge manager for that fabric. The other switches do not play any role in the merge process. During a merge, the merge manager in the two fabrics exchanges their configuration databases with each other. The application on one of them merges the information, decides if the merge is successful, and informs all switches in the combined fabric of the status of the merge
Default Settings for CFS
|CFS distribution on the device||Enabled|
|IPv4 multicast address||220.127.116.11|
|CFSoFC||Enabled, if FCoE is present|
Enabling CFS to Distribute Smart Call Home Configurations:
You can enable CFS to distribute Call Home configurations to all Cisco NX-OS devices in the network. The entire Call Home configuration is distributed except the device priority and the sysContact names.
switch# configure terminal switch(config)# callhome switch(config-callhome)# distribute switch(config-callhome)# show callhome status Distribution : Enabled switch(config-callhome)# copy running-config startup-config
Enabling CFS to Distribute Device Alias Configurations:
You can enable CFS to distribute device alias configurations in order to consistently administer and maintain the device alias database across all Cisco NX-OS devices in the fabric.
switch(config)# device-alias distribute switch(config)# show cfs application ---------------------------------------------- Application Enabled Scope ---------------------------------------------- device-alias Yes Physical-fc switch(config)# copy running-config startup-config [########################################] 100%
Configuring CFS Regions
Creates the region and enters the configuration mode for the specified region.
For the specified region, adds the named application.
switch# configure terminal switch(config)# cfs region 4 switch(config-cfs-region)# callhome switch(config-cfs-region)# show cfs regions brief --------------------------------------- Region Application Enabled --------------------------------------- 4 callhome yes switch(config-cfs-region)# copy running-config startup-config
Disable CFS globally:
witch# configure terminal switch(config)# no cfs distribute This will prevent CFS from distributing the configuration to other switches. Are you sure? (y/n) [n] y