Skip to content

Fabric Site

Location in GUI: Provision » SD-Access » Fabric Sites

NameTypeConstraintMandatoryDefault Value
fabricClassfabricNo

NameTypeConstraintMandatoryDefault Value
fabric_sitesListfabric_sitesNo

NameTypeConstraintMandatoryDefault Value
nameStringYes
fabric_devicesListfabric_devicesNo
authentication_template_nameChoiceNo Authentication, Open Authentication, Closed Authentication, Low ImpactNo
authentication_templateClassauthentication_templateNo
pub_sub_enabledBooleantrue, falseNofalse
reconfigureBooleantrue, falseNo
l3_virtual_networksListString[min: 1]No
l2_virtual_networksListl2_virtual_networksNo
anycast_gatewaysListanycast_gatewaysNo
wireless_ssidsListwireless_ssidsNo
fabric_zonesListfabric_zonesNo
multicastClassmulticastNo

NameTypeConstraintMandatoryDefault Value
nameStringYes
authentication_templateClassauthentication_templateNo
pub_sub_enabledBooleantrue, falseNofalse
reconfigureBooleantrue, falseNo
l3_virtual_networksListStringNo
l2_virtual_networksListl2_virtual_networksNo
anycast_gatewaysListanycast_gatewaysNo
wireless_ssidsListwireless_ssidsNo
fabric_zonesListfabric_zonesNo
multicastClassmulticastNo

fabric_devices (catalyst_center.fabric.fabric_sites)

Section titled “fabric_devices (catalyst_center.fabric.fabric_sites)”
NameTypeConstraintMandatoryDefault Value
nameStringmin: 1, matches: .*\S.*Yes
fabric_rolesListChoice[BORDER_NODE, CONTROL_PLANE_NODE, EDGE_NODE, WIRELESS_CONTROLLER_NODE, EMBEDDED_WIRELESS_CONTROLLER_NODE, EXTENDED_NODE]No
border_typesListChoice[LAYER_2, LAYER_3]No
sda_transitStringNo
affinity_id_primeIntegermin: 0, max: 2147483647No
affinity_id_deciderIntegermin: 0, max: 2147483647No
connected_to_internetBooleantrue, falseNo
multicast_over_transitBooleantrue, falseNo
import_external_routesBooleantrue, falseNo
default_exitBooleantrue, falseNo
border_priorityIntegermin: 1, max: 9No
prepend_autonomous_system_countIntegermin: 1, max: 10No
local_autonomous_system_numberIntegermin: 1, max: 4294967295No
external_domain_routing_protocol_nameChoiceBGPNo
external_handoff_poolStringNo
l2_handoffsClassl2_handoffsNo
l3_handoffsListl3_handoffsNo
port_assignmentsClassport_assignmentsNo

authentication_template (catalyst_center.fabric.fabric_sites)

Section titled “authentication_template (catalyst_center.fabric.fabric_sites)”
NameTypeConstraintMandatoryDefault Value
nameChoiceOpen Authentication, Closed Authentication, Low ImpactYesNo Authentication
dot1x_to_mab_fallback_timeoutIntegermin: 3, max: 120No
wake_on_lanBooleantrue, falseNo
number_of_hostsChoiceUnlimited, SingleNo
bpdu_guardBooleantrue, falseNo
authentication_orderChoicemac, dot1xNo
pre_auth_aclClasspre_auth_aclNo

authentication_template (catalyst_center.fabric.fabric_sites)

Section titled “authentication_template (catalyst_center.fabric.fabric_sites)”
NameTypeConstraintMandatoryDefault Value
nameStringYesNo Authentication
dot1x_to_mab_fallback_timeoutIntegermin: 3, max: 120No
wake_on_lanBooleantrue, falseNo
number_of_hostsChoiceUnlimited, SingleNo
bpdu_guardBooleantrue, falseNo
authentication_orderChoicemac, dot1xNo
pre_auth_aclClasspre_auth_aclNo

l2_virtual_networks (catalyst_center.fabric.fabric_sites)

Section titled “l2_virtual_networks (catalyst_center.fabric.fabric_sites)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
vlan_nameStringNo
vlan_idIntegermin: 2, max: 4093No
traffic_typeChoiceDATA, VOICENo
fabric_enabled_wirelessBooleantrue, falseNo
wireless_flooding_enabledBooleantrue, falseNo
associated_l3_virtual_network_nameStringNo

l2_virtual_networks (catalyst_center.fabric.fabric_sites)

Section titled “l2_virtual_networks (catalyst_center.fabric.fabric_sites)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
vlan_nameStringNo
vlan_idIntegermin: 2, max: 4093No
traffic_typeChoiceDATA, VOICENo
fabric_enabled_wirelessBooleantrue, falseNo
associated_l3_virtual_network_nameStringNo

anycast_gateways (catalyst_center.fabric.fabric_sites)

Section titled “anycast_gateways (catalyst_center.fabric.fabric_sites)”
NameTypeConstraintMandatoryDefault Value
ip_pool_nameStringmin: 1, matches: .*\S.*Yes
pool_typeAnyChoice[EXTENDED_NODE, FABRIC_AP] or NullNo
auto_generate_vlan_nameBooleantrue, falseNofalse
vlan_nameStringNo
vlan_idIntegermin: 2, max: 4093No
security_group_nameStringNo
ip_directed_broadcastBooleantrue, falseNofalse
intra_subnet_routing_enabledBooleantrue, falseNofalse
multiple_ip_to_mac_addressesBooleantrue, falseNofalse
supplicant_based_extended_node_onboardingBooleantrue, falseNo
group_based_policy_enforcement_enabledBooleantrue, falseNo
layer2_floodingBooleantrue, falseNofalse
wireless_flooding_enabledBooleantrue, falseNo
traffic_typeChoiceDATA, VOICENoDATA
critical_poolBooleantrue, falseNofalse
wireless_poolBooleantrue, falseNofalse
tcp_mss_adjustmentIntegermin: 500, max: 1440No
l3_virtual_networkStringNo
additional_ip_poolsListadditional_ip_poolsNo

anycast_gateways (catalyst_center.fabric.fabric_sites)

Section titled “anycast_gateways (catalyst_center.fabric.fabric_sites)”
NameTypeConstraintMandatoryDefault Value
ip_pool_nameStringYes
additional_ip_poolsListStringNo
pool_typeAnyChoice[EXTENDED_NODE, FABRIC_AP] or NullNo
auto_generate_vlan_nameBooleantrue, falseNofalse
vlan_nameStringNo
vlan_idIntegermin: 2, max: 4093No
security_group_nameStringNo
ip_directed_broadcastBooleantrue, falseNofalse
intra_subnet_routing_enabledBooleantrue, falseNofalse
multiple_ip_to_mac_addressesBooleantrue, falseNofalse
supplicant_based_extended_node_onboardingBooleantrue, falseNo
group_based_policy_enforcement_enabledBooleantrue, falseNo
layer2_floodingBooleantrue, falseNofalse
wireless_flooding_enabledBooleantrue, falseNo
traffic_typeChoiceDATA, VOICENoDATA
critical_poolBooleantrue, falseNofalse
wireless_poolBooleantrue, falseNofalse
tcp_mss_adjustmentIntegermin: 500, max: 1440No
l3_virtual_networkStringNo

anycast_gateways (catalyst_center.fabric.fabric_sites)

Section titled “anycast_gateways (catalyst_center.fabric.fabric_sites)”
NameTypeConstraintMandatoryDefault Value
ip_pool_nameStringYes
additional_ip_poolsListStringNo
pool_typeAnyChoice[EXTENDED_NODE, FABRIC_AP] or NullNo
auto_generate_vlan_nameBooleantrue, falseNofalse
vlan_nameStringNo
vlan_idIntegermin: 2, max: 4093No
security_group_nameStringNo
ip_directed_broadcastBooleantrue, falseNofalse
intra_subnet_routing_enabledBooleantrue, falseNofalse
multiple_ip_to_mac_addressesBooleantrue, falseNofalse
supplicant_based_extended_node_onboardingBooleantrue, falseNo
group_based_policy_enforcement_enabledBooleantrue, falseNo
layer2_floodingBooleantrue, falseNofalse
traffic_typeChoiceDATA, VOICENoDATA
critical_poolBooleantrue, falseNofalse
wireless_poolBooleantrue, falseNofalse
tcp_mss_adjustmentIntegermin: 500, max: 1440No
l3_virtual_networkStringNo

wireless_ssids (catalyst_center.fabric.fabric_sites)

Section titled “wireless_ssids (catalyst_center.fabric.fabric_sites)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
vlan_nameStringYes
security_group_nameStringNo

wireless_ssids (catalyst_center.fabric.fabric_sites)

Section titled “wireless_ssids (catalyst_center.fabric.fabric_sites)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
vlan_nameStringYes

fabric_zones (catalyst_center.fabric.fabric_sites)

Section titled “fabric_zones (catalyst_center.fabric.fabric_sites)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
authentication_template_nameChoiceNo Authentication, Open Authentication, Closed Authentication, Low ImpactNo
l3_virtual_networksListStringNo
l2_virtual_networksListStringNo
anycast_gatewaysListStringNo

fabric_zones (catalyst_center.fabric.fabric_sites)

Section titled “fabric_zones (catalyst_center.fabric.fabric_sites)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
authentication_templateClassauthentication_templateNo
l3_virtual_networksListStringNo
anycast_gatewaysListStringNo
l2_virtual_networksListStringNo

multicast (catalyst_center.fabric.fabric_sites)

Section titled “multicast (catalyst_center.fabric.fabric_sites)”
NameTypeConstraintMandatoryDefault Value
replication_modeChoiceNATIVE_MULTICAST, HEADEND_REPLICATIONNo
wireless_multicast_enabledBooleantrue, falseNo
virtual_networksListvirtual_networksNo

l2_handoffs (catalyst_center.fabric.fabric_sites.fabric_devices)

Section titled “l2_handoffs (catalyst_center.fabric.fabric_sites.fabric_devices)”
NameTypeConstraintMandatoryDefault Value
l2_without_anycast_gatewayClassl2_without_anycast_gatewayNo
l2_with_anycast_gatewayListl2_with_anycast_gatewayNo

l3_handoffs (catalyst_center.fabric.fabric_sites.fabric_devices)

Section titled “l3_handoffs (catalyst_center.fabric.fabric_sites.fabric_devices)”
NameTypeConstraintMandatoryDefault Value
ip_transit_nameStringYes
interfacesListinterfacesYes

port_assignments (catalyst_center.fabric.fabric_sites.fabric_devices)

Section titled “port_assignments (catalyst_center.fabric.fabric_sites.fabric_devices)”
NameTypeConstraintMandatoryDefault Value
interfacesListinterfacesNo
port_channelsListport_channelsNo

pre_auth_acl (catalyst_center.fabric.fabric_sites.authentication_template)

Section titled “pre_auth_acl (catalyst_center.fabric.fabric_sites.authentication_template)”
NameTypeConstraintMandatoryDefault Value
enabledBooleantrue, falseNo
implicit_actionChoiceDENY, PERMITNo
descriptionStringNo
access_contractsListaccess_contractsNo

additional_ip_pools (catalyst_center.fabric.fabric_sites.anycast_gateways)

Section titled “additional_ip_pools (catalyst_center.fabric.fabric_sites.anycast_gateways)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
orderIntegermin: 2, max: 5Yes

virtual_networks (catalyst_center.fabric.fabric_sites.multicast)

Section titled “virtual_networks (catalyst_center.fabric.fabric_sites.multicast)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
ip_pool_nameStringYes
ipv4_ssm_rangesListStringNo
multicast_rpsListmulticast_rpsNo

l2_without_anycast_gateway (catalyst_center.fabric.fabric_sites.fabric_devices.l2_handoffs)

Section titled “l2_without_anycast_gateway (catalyst_center.fabric.fabric_sites.fabric_devices.l2_handoffs)”
NameTypeConstraintMandatoryDefault Value
vlansListvlansNo
interfacesListStringNo

l2_with_anycast_gateway (catalyst_center.fabric.fabric_sites.fabric_devices.l2_handoffs)

Section titled “l2_with_anycast_gateway (catalyst_center.fabric.fabric_sites.fabric_devices.l2_handoffs)”
NameTypeConstraintMandatoryDefault Value
l3_virtual_networkStringYes
ip_pool_nameStringYes
external_vlanIntegermin: 2, max: 4094No
interfacesListStringNo

interfaces (catalyst_center.fabric.fabric_sites.fabric_devices.l3_handoffs)

Section titled “interfaces (catalyst_center.fabric.fabric_sites.fabric_devices.l3_handoffs)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
virtual_networksListvirtual_networksYes

interfaces (catalyst_center.fabric.fabric_sites.fabric_devices.port_assignments)

Section titled “interfaces (catalyst_center.fabric.fabric_sites.fabric_devices.port_assignments)”
NameTypeConstraintMandatoryDefault Value
interface_nameStringNo
interfaces_rangeStringRegex: ^[A-Za-z]+\d+(/\d+)+-\d+(/\d+)+$No
interface_descriptionStringNo
connected_device_typeChoiceUSER_DEVICE, ACCESS_POINT, TRUNKING_DEVICE, AUTHENTICATOR_SWITCH, SUPPLICANT_BASED_EXTENDED_NODEYes
data_vlan_nameStringNo
voice_vlan_nameStringNo
security_group_nameStringNo
authenticate_template_nameChoiceNo Authentication, Open Authentication, Closed Authentication, Low ImpactNo

port_channels (catalyst_center.fabric.fabric_sites.fabric_devices.port_assignments)

Section titled “port_channels (catalyst_center.fabric.fabric_sites.fabric_devices.port_assignments)”
NameTypeConstraintMandatoryDefault Value
idIntegerYes
connected_device_typeChoiceTRUNK, EXTENDED_NODEYes
protocolChoiceON, LACP, PAGPNo
descriptionStringNo
interface_namesListStringYes
native_vlan_idIntegermin: 1, max: 4094No
allowed_vlan_rangesStringNo

access_contracts (catalyst_center.fabric.fabric_sites.authentication_template.pre_auth_acl)

Section titled “access_contracts (catalyst_center.fabric.fabric_sites.authentication_template.pre_auth_acl)”
NameTypeConstraintMandatoryDefault Value
actionChoicePERMIT, DENYYes
portChoicedomain, bootpc, bootpsYes
protocolChoiceTCP, UDP, TCP_UDPYes

multicast_rps (catalyst_center.fabric.fabric_sites.multicast.virtual_networks)

Section titled “multicast_rps (catalyst_center.fabric.fabric_sites.multicast.virtual_networks)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
rp_locationChoiceFABRIC, EXTERNALYes
ipv4_addressIPNo
ipv6_addressIPNo
is_default_v4_rpBooleantrue, falseNo
is_default_v6_rpBooleantrue, falseNo
fabric_rpsListStringNo
ipv4_asm_rangesListStringNo
ipv6_asm_rangesListStringNo

vlans (catalyst_center.fabric.fabric_sites.fabric_devices.l2_handoffs.l2_without_anycast_gateway)

Section titled “vlans (catalyst_center.fabric.fabric_sites.fabric_devices.l2_handoffs.l2_without_anycast_gateway)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
external_vlanIntegermin: 2, max: 4094No

virtual_networks (catalyst_center.fabric.fabric_sites.fabric_devices.l3_handoffs.interfaces)

Section titled “virtual_networks (catalyst_center.fabric.fabric_sites.fabric_devices.l3_handoffs.interfaces)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
local_ip_addressIPNo
peer_ip_addressIPNo
peer_ipv6_addressIPNo
local_ipv6_addressIPNo
tcp_mss_adjustmentIntegermin: 500, max: 1440No
vlanIntegermin: 2, max: 4093Yes

Fabric Sites define the SD-Access fabric boundary within the site hierarchy. Enabling a site as a fabric site activates Software-Defined Access functionality including micro-segmentation, policy enforcement, and automated underlay/overlay provisioning. Fabric sites contain Border Devices, Virtual Networks, Anycast Gateways, and Port Assignments. This resource is SDA fabric only.

Example-1: Basic Fabric Site with No Authentication

Section titled “Example-1: Basic Fabric Site with No Authentication”

This example demonstrates how to configure a basic SD-Access fabric site in Catalyst Center with no authentication requirements. Fabric sites enable Software-Defined Access functionality within designated network areas, providing centralized policy enforcement and micro-segmentation capabilities.

The fabric site configuration includes:

  • Site hierarchy specification (Global/Canada) for geographic and organizational structure
  • Authentication template assignment (No Authentication) for simplified initial deployment
  • Foundation for SD-Access fabric enablement without immediate authentication requirements
  • Base configuration suitable for proof-of-concept or laboratory environments
catalyst_center:
fabric:
fabric_sites:
- name: Global/Canada
authentication_template_name: No Authentication
pub_sub_enabled: true

Example-2: Campus Fabric Site with Closed Authentication

Section titled “Example-2: Campus Fabric Site with Closed Authentication”

This example demonstrates how to configure a campus fabric site with closed authentication mode for high-security environments where all network access requires explicit authentication and authorization.

catalyst_center:
fabric:
fabric_sites:
- name: Global/Canada
authentication_template_name: Closed Authentication
pub_sub_enabled: true

Note: A fabric site that uses Closed Authentication, Open Authentication or Low Impact needs an ISE server configured for its site hierarchy (see AAA Servers). Otherwise Catalyst Center rejects the fabric site with NCHS20424 (“Please configure an ISE server for the network hierarchy before enabling an authentication profile”).

This example shows how to configure multiple fabric sites across different geographic locations, each with appropriate authentication templates based on local security requirements and organizational policies.

catalyst_center:
fabric:
fabric_sites:
- name: Global/North_America/New_York_Office
authentication_template_name: Closed Authentication
pub_sub_enabled: true
- name: Global/Asia_Pacific/Tokyo_Branch
authentication_template_name: Open Authentication
pub_sub_enabled: true
- name: Global/Europe/London_Office
authentication_template_name: Low Impact
pub_sub_enabled: true
- name: Global/Americas/Mexico_City_Branch
authentication_template_name: No Authentication
pub_sub_enabled: true

Example-4: Fabric Site with a Custom Authentication Template

Section titled “Example-4: Fabric Site with a Custom Authentication Template”

This example demonstrates how to configure a fabric site with custom options for authentication templates

---
catalyst_center:
fabric:
fabric_sites:
- name: Global/Corporate/London_Office
authentication_template:
name: Closed Authentication
dot1x_to_mab_fallback_timeout: 30
wake_on_lan: false
number_of_hosts: Unlimited
authentication_order: dot1x
bpdu_guard: false
pub_sub_enabled: true
- name: Global/Corporate/Tokyo_Branch
authentication_template:
name: Low Impact
dot1x_to_mab_fallback_timeout: 30
wake_on_lan: false
number_of_hosts: Unlimited
authentication_order: mac
bpdu_guard: false
pre_auth_acl:
enabled: true
implicit_action: PERMIT
access_contracts:
- action: PERMIT
port: domain
protocol: UDP
- action: PERMIT
port: bootpc
protocol: UDP
- action: PERMIT
port: bootps
protocol: UDP
pub_sub_enabled: true

When the IPv4 pool used by a Fabric site is modified, for example when DHCP or DNS server information is updated, the Fabric becomes out of date. The site must be re-provisioned so that the changes take effect.

Cisco Catalyst Center displays a warning on the Fabric site indicating that a reconfiguration is required.

---
catalyst_center:
fabric:
fabric_sites:
- name: Global/Poland/Krakow
reconfigure: true

Example-6: Fabric Site Configuration with Fabric Zones

Section titled “Example-6: Fabric Site Configuration with Fabric Zones”

This example demonstrates how to configure a fabric site that has a fabric zone

catalyst_center:
fabric:
fabric_sites:
- name: Global/Poland/Krakow
authentication_template:
name: Closed Authentication
dot1x_to_mab_fallback_timeout: 30
wake_on_lan: false
number_of_hosts: Unlimited
authentication_order: dot1x
pub_sub_enabled: false
l2_virtual_networks:
- name: L2_SDA_VN_1
vlan_name: L2_VLAN_USERS
vlan_id: 455
traffic_type: DATA
fabric_enabled_wireless: false
- name: L2_VN
vlan_name: L2VN_VLAN
traffic_type: DATA
fabric_enabled_wireless: false
l3_virtual_networks:
- SDA_VN_USERS
- SDA_VN_PRINTERS
- SDA_VN_CORPORATE
- INFRA_VN
anycast_gateways:
- ip_pool_name: Campus
vlan_name: Campus_VLAN
traffic_type: DATA
l3_virtual_network: SDA_VN_USERS
wireless_pool: true
- ip_pool_name: Voice
vlan_name: Voice_VLAN
vlan_id: 224
traffic_type: VOICE
l3_virtual_network: SDA_VN_USERS
- ip_pool_name: AP
pool_type: FABRIC_AP
vlan_name: AP_VLAN
vlan_id: 225
traffic_type: DATA
l3_virtual_network: INFRA_VN
fabric_zones:
- name: Global/Poland/Krakow/Bld_B
authentication_template_name: No Authentication
l3_virtual_networks:
- SDA_VN_USERS
l2_virtual_networks:
- L2_SDA_VN_1
anycast_gateways:
- Campus
- name: Global/Poland/Krakow/Bld_B
fabric_devices:
- name: LAN-EN2
fabric_roles:
- EDGE_NODE
inventory:
devices:
- name: LAN-EN2
fqdn_name: LAN-EN2.cisco.eu
device_ip: 181.1.1.43
pid: C9KV-UADP-8P
state: PROVISION
device_role: ACCESS
site: Global/Poland/Krakow/Bld_B

Example-7: Brownfield Fabric Zone Conversion

Section titled “Example-7: Brownfield Fabric Zone Conversion”

Catalyst Center supports two ways to create a Fabric Zone through the GUI:

  1. Greenfield: Create the Fabric Zone during the creation of the Fabric Site.
  2. Brownfield: Convert an existing Fabric Site (or move devices from an existing Fabric Site) into a Fabric Zone.

Why is this disruptive?

The brownfield conversion requires swapping the device’s fabric membership from a Fabric Site ID to a Fabric Zone ID (i.e. replacing the fabric_site reference with a fabric_zone reference on the device). To perform this swap safely, the existing fabric_roles must first be removed from the affected devices. Removing fabric roles also affects any associated port-assignments and port-channels on those devices, which will interrupt traffic on those interfaces until the devices are re-provisioned into the Fabric Zone.

This procedure also requires several sequential Terraform applies to complete safely, since each device must be fully removed from its current fabric role (Fabric Site ID) before being re-associated with the target Fabric Zone ID.

Steps to perform a brownfield Fabric Zone conversion:

  1. Plan a maintenance window. Notify stakeholders since traffic on the affected devices’ port-assignments and port-channels will be disrupted.
  2. Remove the existing fabric_roles and fabric_site from ALL devices that will become part of the location associated with the day-N Fabric Zone (commenting out or deleting these fields in the inventory data model), then run terraform apply.
  3. Create the Fabric Zone under the parent Fabric Site and swap the device’s fabric_site reference for a fabric_zone reference in the inventory data model, pointing it to the target Fabric Zone name, then run terraform apply to re-provision the devices into the Fabric Zone with the desired fabric_roles.
  4. Re-apply any port-assignments and port-channels that were affected by the removal of the fabric roles.
  5. Validate that the devices are correctly provisioned in the target Fabric Zone and that all port-assignments and port-channels are restored and operational.

Example-8: Global Authentication Templates

Section titled “Example-8: Global Authentication Templates”

fabric.authentication_templates customizes the global (COMMON) authentication templates that fabric sites and zones start from. Only Closed Authentication, Open Authentication and Low Impact can be customized. A fabric site that needs different settings can still override them with its own authentication_template (Example-4).

catalyst_center:
fabric:
authentication_templates:
- name: Closed Authentication
dot1x_to_mab_fallback_timeout: 28
number_of_hosts: Single
authentication_order: dot1x
bpdu_guard: false
- name: Low Impact
dot1x_to_mab_fallback_timeout: 22
pre_auth_acl:
enabled: true
implicit_action: DENY
access_contracts:
- action: PERMIT
port: bootps
protocol: UDP
- action: PERMIT
port: bootpc
protocol: UDP
- action: PERMIT
port: domain
protocol: UDP

Note: Removing an entry from authentication_templates does not revert the global template in Catalyst Center; it keeps the last values that were applied. To go back to the previous settings, set them explicitly before removing the entry.

Note: Supplicant-based extended node onboarding (an EXTENDED_NODE anycast gateway with supplicant_based_extended_node_onboarding: true) needs the global Closed Authentication template with authentication_order: dot1x and bpdu_guard: false; otherwise Catalyst Center rejects it (NCSO30009, NCSO30015). See Anycast Gateway.

Changing fabric_roles of an existing fabric device, or its border settings local_autonomous_system_number, default_exit or import_external_routes, is not a simple in-place update:

  • With the bulk API (use_bulk_api = true), the fabric device is deleted and added again. Catalyst Center removes the device’s L2 and L3 handoffs and port assignments together with it. If adding it back fails, the apply can still finish without an error, so check the next plan for missing fabric devices and handoffs.
  • Without the bulk API, role changes are ignored only while the device remains in the same resource and its device_roles attribute is covered by ignore_changes. Changes that move the device between role-specific resources cause removal and recreation. For example, adding BORDER_NODE to an edge-only or control-plane-only device moves it to border_device. Review the Terraform plan and allow for disruption to fabric membership and dependent configuration. A change of local_autonomous_system_number or import_external_routes on an existing border can fail at apply with NCHS20123 (“Update not allowed for field”).

Plan such a change inside a maintenance window, and expect the device’s handoffs and port assignments to be removed and created again.

Note: A fabric site with a fabric wireless controller supports at most two control plane nodes. Catalyst Center rejects a third one with NCWL10805 (“Wireless Controller can support only a maximum of 2 Enterprise Map Servers per Fabric Domain”).

Fabric Sites define the SD-Access fabric boundary within the site hierarchy. Enabling a site as a fabric site activates Software-Defined Access functionality including micro-segmentation, policy enforcement, and automated underlay/overlay provisioning. Fabric sites contain Border Devices, Virtual Networks, Anycast Gateways, and Port Assignments. This resource is SDA fabric only.

Example-1: Basic Fabric Site with No Authentication

Section titled “Example-1: Basic Fabric Site with No Authentication”

This example demonstrates how to configure a basic SD-Access fabric site in Catalyst Center with no authentication requirements. Fabric sites enable Software-Defined Access functionality within designated network areas, providing centralized policy enforcement and micro-segmentation capabilities.

The fabric site configuration includes:

  • Site hierarchy specification (Global/Canada) for geographic and organizational structure
  • Authentication template assignment (No Authentication) for simplified initial deployment
  • Foundation for SD-Access fabric enablement without immediate authentication requirements
  • Base configuration suitable for proof-of-concept or laboratory environments
---
catalyst_center:
fabric:
fabric_sites:
- name: Global/Canada
authentication_template:
name: No Authentication
pub_sub_enabled: true

Example-2: Campus Fabric Site with Closed Authentication

Section titled “Example-2: Campus Fabric Site with Closed Authentication”

This example demonstrates how to configure a campus fabric site with closed authentication mode for high-security environments where all network access requires explicit authentication and authorization.

---
catalyst_center:
fabric:
fabric_sites:
- name: Global/Canada
authentication_template:
name: Closed Authentication
pub_sub_enabled: true

This example shows how to configure multiple fabric sites across different geographic locations, each with appropriate authentication templates based on local security requirements and organizational policies.

---
catalyst_center:
fabric:
fabric_sites:
- name: Global/North_America/New_York_Office
authentication_template:
name: Closed Authentication
pub_sub_enabled: true
- name: Global/Asia_Pacific/Tokyo_Branch
authentication_template:
name: Open Authentication
pub_sub_enabled: true
- name: Global/Europe/London_Office
authentication_template:
name: Low Impact
pub_sub_enabled: true
- name: Global/Americas/Mexico_City_Branch
authentication_template:
name: No Authentication
pub_sub_enabled: true

Example-4: Fabric Site with a Custom Authentication Template

Section titled “Example-4: Fabric Site with a Custom Authentication Template”

This example demonstrates how to configure a fabric site with custom options for authentication templates

---
catalyst_center:
fabric:
fabric_sites:
- name: Global/Corporate/London_Office
authentication_template:
name: Closed Authentication
dot1x_to_mab_fallback_timeout: 30
wake_on_lan: false
number_of_hosts: Unlimited
authentication_order: dot1x
bpdu_guard: false
pub_sub_enabled: true
- name: Global/Corporate/Tokyo_Branch
authentication_template:
authentication_template:
name: Low Impact
dot1x_to_mab_fallback_timeout: 30
wake_on_lan: false
number_of_hosts: Unlimited
authentication_order: mac
bpdu_guard: false
pre_auth_acl:
enabled: true
implicit_action: PERMIT
access_contracts:
- action: PERMIT
port: domain
protocol: UDP
- action: PERMIT
port: bootpc
protocol: UDP
- action: PERMIT
port: bootps
protocol: UDP
pub_sub_enabled: true

When the IPv4 pool used by a Fabric site is modified, for example when DHCP or DNS server information is updated, the Fabric becomes out of date. The site must be re-provisioned so that the changes take effect.

Cisco Catalyst Center displays a warning on the Fabric site indicating that a reconfiguration is required.

---
catalyst_center:
fabric:
fabric_sites:
- name: Global/Poland/Krakow
reconfigure: true

Example-6: Fabric Site Configuration with Fabric Zones

Section titled “Example-6: Fabric Site Configuration with Fabric Zones”

This example demonstrates how to configure a fabric site that has a fabric zone

---
catalyst_center:
fabric:
fabric_sites:
- name: Global/Poland/Bytom
authentication_template:
name: Closed Authentication
dot1x_to_mab_fallback_timeout: 30
wake_on_lan: false
number_of_hosts: Unlimited
authentication_order: dot1x
pub_sub_enabled: false
l2_virtual_networks:
- name: L2_SDA_VN_1
vlan_name: L2_VLAN_USERS
vlan_id: 455
traffic_type: DATA
fabric_enabled_wireless: false
- name: L2_VN
vlan_name: L2VN_VLAN
traffic_type: DATA
fabric_enabled_wireless: false
l3_virtual_networks:
- SDA_VN_USERS
- SDA_VN_PRINTERS
- SDA_VN_CORPORATE
- INFRA_VN
anycast_gateways:
- ip_pool_name: Campus
vlan_name: Campus_VLAN
traffic_type: DATA
l3_virtual_network: SDA_VN_USERS
wireless_pool: true
- ip_pool_name: Voice
vlan_name: Voice_VLAN
vlan_id: 224
traffic_type: VOICE
l3_virtual_network: SDA_VN_USERS
- ip_pool_name: AP
pool_type: FABRIC_AP
vlan_name: AP_VLAN
vlan_id: 225
traffic_type: DATA
l3_virtual_network: INFRA_VN
fabric_zones:
- name: Global/Poland/Bytom/Bld_B
authentication_template:
name: No Authentication
l3_virtual_networks:
- SDA_VN_USERS
l2_virtual_networks:
- L2_SDA_VN_1
anycast_gateways:
- Campus
inventory:
devices:
- name: LAN-EN2
fqdn_name: LAN-EN2.cisco.eu
device_ip: 181.1.1.43
pid: C9KV-UADP-8P
state: PROVISION
device_role: ACCESS
site: Global/Poland/Bytom/Bld_B
fabric_zone: Global/Poland/Bytom/Bld_B
fabric_roles:
- EDGE_NODE

Example-7: Brownfield Fabric Zone Conversion

Section titled “Example-7: Brownfield Fabric Zone Conversion”

Catalyst Center supports two ways to create a Fabric Zone through the GUI:

  1. Greenfield: Create the Fabric Zone during the creation of the Fabric Site.
  2. Brownfield: Convert an existing Fabric Site (or move devices from an existing Fabric Site) into a Fabric Zone.

Why is this disruptive?

The brownfield conversion requires swapping the device’s fabric membership from a Fabric Site ID to a Fabric Zone ID (i.e. replacing the fabric_site reference with a fabric_zone reference on the device). To perform this swap safely, the existing fabric_roles must first be removed from the affected devices. Removing fabric roles also affects any associated port-assignments and port-channels on those devices, which will interrupt traffic on those interfaces until the devices are re-provisioned into the Fabric Zone.

This procedure also requires several sequential Terraform applies to complete safely, since each device must be fully removed from its current fabric role (Fabric Site ID) before being re-associated with the target Fabric Zone ID.

Steps to perform a brownfield Fabric Zone conversion:

  1. Plan a maintenance window. Notify stakeholders since traffic on the affected devices’ port-assignments and port-channels will be disrupted.
  2. Remove the existing fabric_roles and fabric_site from ALL devices that will become part of the location associated with the day-N Fabric Zone (commenting out or deleting these fields in the inventory data model), then run terraform apply.
  3. Create the Fabric Zone under the parent Fabric Site and swap the device’s fabric_site reference for a fabric_zone reference in the inventory data model, pointing it to the target Fabric Zone name, then run terraform apply to re-provision the devices into the Fabric Zone with the desired fabric_roles.
  4. Re-apply any port-assignments and port-channels that were affected by the removal of the fabric roles.
  5. Validate that the devices are correctly provisioned in the target Fabric Zone and that all port-assignments and port-channels are restored and operational.