Fabric
MSD

Step 1 - Set Up Ansible Directory Structure Required for MSD

Return to your Visual Studio Code Terminal window. Create the host_vars directory for your MSD fabric group.


mkdir -p host_vars/msd-fabric-group


Step 2 - Create MultiSite Child Fabrics YAML File


Define the child fabrics that will be part of the Multi-Site (MSD) fabric group in the child_fabrics.nac.yml file.

The child fabrics defined here will be the two VXLAN EVPN fabrics you created in the previous sections: site1-fabric and site2-fabric, along with the respective site ISN fabrics: site1-isn and site2-isn.

Child fabrics can be added or removed by updating this file and re-running Ansible; however, it is worth noting that removing a child fabric is only possible if no overlays are deployed to that given child fabric, as required by ND.



touch ~/workspace/ndlab/nac/host_vars/msd-fabric-group/child_fabrics.nac.yml
code-server -r ~/workspace/ndlab/nac/host_vars/msd-fabric-group/child_fabrics.nac.yml



---

vxlan:
  multisite:
    child_fabrics:
      - name: site1-fabric
      - name: site1-isn
      - name: site2-fabric
      - name: site2-isn


Step 3 - Create Multi-Site Fabric Settings YAML File


Define the Multi-Site (MSD) fabric settings in the fabric.nac.yml file.

The main settings to note here are the overlay_dci section, which defines the DCI connectivity method as Centralized_To_Route_Server, along with the route server peers that were configured in the previous section as Loopback101 on the ISN switches. ND can use this information to automatically configure the eBGP peering for the L2VPN EVPN address-family between the ISN switches and the route servers.

The underlay_autoconfig parameter is set to true to allow ND to automatically configure the underlay IP addressing and eBGP IPv4 Unicast address-family for the DCI links between the ISN switches and BGWs. ND can do this because the ISN switches are part of the MSD fabric group.



touch ~/workspace/ndlab/nac/host_vars/msd-fabric-group/fabric.nac.yml
code-server -r ~/workspace/ndlab/nac/host_vars/msd-fabric-group/fabric.nac.yml



---

vxlan:
  fabric:
    name: msd-fabric-group
    type: MSD
  multisite:
    anycast_gateway_mac: 1234.5678.9000
    overlay_dci:
      deployment_method: Centralized_To_Route_Server
      route_server:
        redistribute_direct: true
        ip_tag: 54321
        peers:
          - ip_address: 10.101.101.101
            bgp_asn: "65101"
          - ip_address: 10.201.201.201
            bgp_asn: "65201"
      underlay_autoconfig: true
      enable_bgp_send_community: true


Step 4 - Create Ansible Inventory File for ND MSD Fabric Group

Like previous fabrics, MSD will leverage the same ND group and ND instance, but specify the MSD fabric group as a logical host.


touch ~/workspace/ndlab/nac/hosts.msd.yml
cat << EOF >> ~/workspace/ndlab/nac/hosts.msd.yml
---
# Inventory Information For MSD Fabric
nd:
  hosts:
    msd-fabric-group:
      ansible_host: 10.15.0.98
EOF


Step 5 - Execute Ansible Playbook

Make sure you are in your root Ansible directory.


cd ~/workspace/ndlab/nac

From the root Ansible project directory execute the following command:


ansible-playbook -i hosts.msd.yml vxlan.yml

Upon a successful run of the playbook your output should look as follows:

  <... SNIP ...>

  PLAY RECAP **************************************************************************************************************************************************************************
  msd-fabric-group           : ok=100   changed=11   unreachable=0    failed=0    skipped=1478 rescued=0    ignored=0


  PLAYBOOK RECAP **********************************************************************************************************************************************************************
  Playbook run took 0 days, 0 hours, 3 minutes, 30 seconds


  TASKS RECAP *************************************************************************************************************************************************************************
  Tuesday 27 January 2026  15:06:03 +0000 (0:00:00.060)       0:03:30.028 *******
  ===============================================================================
  cisco.nac_dc_vxlan.deploy : Manage Fabric Deployment for MSD Fabric in Nexus Dashboard -------------------------------------------------------------------------------------- 85.22s
  cisco.nac_dc_vxlan.create : Add Child Fabrics To MSD Fabric in Nexus Dashboard ---------------------------------------------------------------------------------------------- 15.18s
  cisco.nac_dc_vxlan.create : Prepare Multisite Data --------------------------------------------------------------------------------------------------------------------------- 7.04s
  cisco.nac_dc_vxlan.remove : Prepare Multisite Data --------------------------------------------------------------------------------------------------------------------------- 7.01s
  cisco.nac_dc_vxlan.create : Manage Fabric in Nexus Dashboard ----------------------------------------------------------------------------------------------------------------- 5.74s
  cisco.nac_dc_vxlan.create : Display Flag Values ------------------------------------------------------------------------------------------------------------------------------ 2.17s
  cisco.nac_dc_vxlan.common : Display Flag Values ------------------------------------------------------------------------------------------------------------------------------ 2.14s
  cisco.nac_dc_vxlan.connectivity_check : Get Cisco Nexus Dashboard Fabric Controller Version ---------------------------------------------------------------------------------- 1.71s
  cisco.nac_dc_vxlan.common : Prepare Multisite Add and Remove Child Fabric Data ----------------------------------------------------------------------------------------------- 1.44s
  cisco.nac_dc_vxlan.validate : Copy Service Model Data to Host ---------------------------------------------------------------------------------------------------------------- 0.94s
  cisco.nac_dc_vxlan.common : Build Fabric Creation Parameters From Template --------------------------------------------------------------------------------------------------- 0.82s
  cisco.nac_dc_vxlan.connectivity_check : Verify Authorization to Nexus Dashboard ---------------------------------------------------------------------------------------------- 0.78s
  cisco.nac_dc_vxlan.create : Build VRFs Attach List From Template ------------------------------------------------------------------------------------------------------------- 0.75s
  cisco.nac_dc_vxlan.create : Build Networks Attach List From Template --------------------------------------------------------------------------------------------------------- 0.73s
  cisco.nac_dc_vxlan.common : Build BGW Anycast VIP IP address allocation From Template ---------------------------------------------------------------------------------------- 0.70s
  cisco.nac_dc_vxlan.validate : Copy Extended Service Model Data to Host ------------------------------------------------------------------------------------------------------- 0.65s
  cisco.nac_dc_vxlan.validate : Stat Factory Defaults -------------------------------------------------------------------------------------------------------------------------- 0.54s
  cisco.nac_dc_vxlan.connectivity_check : Get Cisco Nexus Dashboard Version ---------------------------------------------------------------------------------------------------- 0.54s
  cisco.nac_dc_vxlan.connectivity_check : Verify Connection to Nexus Dashboard ------------------------------------------------------------------------------------------------- 0.53s
  cisco.nac_dc_vxlan.common : Delete content & directory ----------------------------------------------------------------------------------------------------------------------- 0.51s

  ROLES RECAP *************************************************************************************************************************************************************************
  Tuesday 27 January 2026  15:06:03 +0000 (0:00:00.067)       0:03:30.033 *******
  ===============================================================================
  deploy ----------------------------------------------------------------- 86.64s
  create ----------------------------------------------------------------- 46.83s
  common ----------------------------------------------------------------- 40.69s
  remove ----------------------------------------------------------------- 20.67s
  validate ---------------------------------------------------------------- 5.36s
  connectivity_check ------------------------------------------------------ 3.91s
  common_global ----------------------------------------------------------- 0.04s
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  total ----------------------------------------------------------------- 204.16s

Step 6 - Return to ND & Verify MSD Fabric Group

  1. Return to ND in your browser where you should still be sitting at the Fabrics dashboard. Click Fabric groups in the top navigation bar.
  2. You should see the fabric group msd-fabric-group in the list; click it.

    Note

    If your msd-fabric-group is not showing, please try clicking the Refresh button in the top-right of the Fabrics pane.



  3. Review the Overview page



  4. Click the Inventory tab in the top navigation bar
  5. Click the Child Fabrics tab in the sub-navigation bar



  6. Click the Switches tab in the sub-navigation bar
  7. Verify you see the switches' Configuration sync status as In-Sync. If not, please click the Refresh button near the Actions button




Step 7 - Return to VSCode & Close All Open Tabs

Navigate back to your VSCode application.

  1. Right-Click on any open tab
  2. Select "Close All" from the drop-down menu


Please continue to the next section to start managing your overlay from the Multi-Site (MSD) fabric group level now.