ISN
Site1

Step 1 - Create Ansible Host Vars Directory for Site1 ISN

Return to your Visual Studio Code Terminal window. Create the host_vars directory for your Site1 ISN fabric.


mkdir -p host_vars/site1-isn


Step 2 - Create Site1 ISN Fabric YAML File

For your site1-isn fabric, create a file named fabric.nac.yml in the host_vars/site1-isn directory. This fabric is also a small representation in this lab, so all of your data model definition of the fabric can be contained to a single file.

Make note that below in the data model, the multisite section is introduced.

You still define the topology of the fabric switches, interfaces, and policies as before. The interfaces defined on the ISN switch include a loopback interface for the route server and a routed interface to connect to Site2 ISN. In the policy section, an external BGP neighbor policy is defined to peer with Site2 ISN using an ND policy template. With regards to interface Ethernet1/3 in the diagram, this interface is not defined in the data model as the settings you will use for Multi-Site (MSD) will be applied automatically by ND when the Multi-Site extension is enabled later in the lab.




touch ~/workspace/ndlab/nac/host_vars/site1-isn/fabric.nac.yml
code-server -r ~/workspace/ndlab/nac/host_vars/site1-isn/fabric.nac.yml



---

vxlan:
  fabric:
    name: site1-isn
    type: ISN
  multisite:
    isn:
      bgp_asn: "65101"
  topology:
    switches:
      - name: site1-isn1
        serial_number: 959MWVWAYQH
        role: core_router
        management:
          default_gateway_v4: 10.15.30.1
          management_ipv4_address: 10.15.30.17
        interfaces:
          - name: Loopback101
            mode: loopback
            description: Route Server Loopback
            enabled: true
            ipv4_address: 10.101.101.101
            ipv4_route_tag: 54321
          - name: Ethernet1/1
            mode: routed
            description: To Site2 ISN1 Eth1/1
            enabled: true
            ipv4_address: 10.0.0.0/31
  policy:
    policies:
      - name: ebgp_neighbor
        template_name: ext_bgp_neighbor
        template_vars:
          asn: "65101"
          NEIGHBOR_ASN: "65201"
          NEIGHBOR_IP: "10.0.0.1"
          IF_NAME: "Ethernet1/1"
          ENABLE_LOG_NEIGHBOR_CHANGE: true
    groups:
      - name: isn
        policies:
          - name: ebgp_neighbor
    switches:
      - name: site1-isn1
        groups:
          - isn


Step 3 - Create Ansible Inventory File for ND Site1 ISN Fabric

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


touch ~/workspace/ndlab/nac/hosts.site1_isn.yml
cat << EOF >> ~/workspace/ndlab/nac/hosts.site1_isn.yml
---
# Inventory Information For Site1 ISN Fabric
nd:
  hosts:
    site1-isn:
      ansible_host: 10.15.0.98
EOF


Step 4 - 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.site1_isn.yml vxlan.yml

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

  <... SNIP ...>

  PLAY RECAP **************************************************************************************************************************************************************************
  site1-isn                  : ok=199  changed=28   unreachable=0    failed=0    skipped=1373 rescued=0    ignored=0


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


  TASKS RECAP *************************************************************************************************************************************************************************
  Tuesday 27 January 2026  13:37:29 +0000 (0:00:00.064)       0:03:07.942 *******
  ===============================================================================
  cisco.nac_dc_vxlan.create : Add Fabric Devices in Nexus Dashboard ----------------------------------------------------------------------------------------------------------- 40.84s
  cisco.nac_dc_vxlan.deploy : Manage Fabric Deployment for ISN Fabric in Nexus Dashboard -------------------------------------------------------------------------------------- 27.87s
  cisco.nac_dc_vxlan.deploy : Manage Fabric Deployment for ISN Fabric in Nexus Dashboard --------------------------------------------------------------------------------------- 5.72s
  cisco.nac_dc_vxlan.create : Manage Fabric in Nexus Dashboard ----------------------------------------------------------------------------------------------------------------- 4.17s
  cisco.nac_dc_vxlan.common : Display Flag Values ------------------------------------------------------------------------------------------------------------------------------ 2.15s
  cisco.nac_dc_vxlan.common : Get POAP Data From POAP Enabled Devices ---------------------------------------------------------------------------------------------------------- 1.86s
  cisco.nac_dc_vxlan.create : Manage Interface All in Nexus Dashboard ---------------------------------------------------------------------------------------------------------- 1.73s
  cisco.nac_dc_vxlan.connectivity_check : Get Cisco Nexus Dashboard Fabric Controller Version ---------------------------------------------------------------------------------- 1.71s
  cisco.nac_dc_vxlan.create : Manage Fabric Policies in Nexus Dashboard -------------------------------------------------------------------------------------------------------- 1.64s
  cisco.nac_dc_vxlan.remove : Get List of ISN Fabric Switches from Nexus Dashboard --------------------------------------------------------------------------------------------- 1.23s
  cisco.nac_dc_vxlan.create : Build Switch Hostname Policy Payload from Data Model Update -------------------------------------------------------------------------------------- 1.16s
  cisco.nac_dc_vxlan.validate : Copy Service Model Data to Host ---------------------------------------------------------------------------------------------------------------- 0.96s
  cisco.nac_dc_vxlan.common : Retrieve NDFC Device Username and Password from Group Vars and update inv_config ----------------------------------------------------------------- 0.89s
  cisco.nac_dc_vxlan.common : Retrieve NDFC Device Username and Password from Group Vars and update inv_config ----------------------------------------------------------------- 0.89s
  cisco.nac_dc_vxlan.common : Build Policy List From Template ------------------------------------------------------------------------------------------------------------------ 0.85s
  cisco.nac_dc_vxlan.common : Build vPC interface ------------------------------------------------------------------------------------------------------------------------------ 0.81s
  cisco.nac_dc_vxlan.connectivity_check : Verify Authorization to Nexus Dashboard ---------------------------------------------------------------------------------------------- 0.77s
  cisco.nac_dc_vxlan.common : Build Interface ---------------------------------------------------------------------------------------------------------------------------------- 0.76s
  cisco.nac_dc_vxlan.common : Build Fabric Switch Inventory List From Template ------------------------------------------------------------------------------------------------- 0.76s
  cisco.nac_dc_vxlan.common : Build Fabric Creation Parameters From Template --------------------------------------------------------------------------------------------------- 0.75s

  ROLES RECAP *************************************************************************************************************************************************************************
  Tuesday 27 January 2026  13:37:29 +0000 (0:00:00.067)       0:03:07.944 *******
  ===============================================================================
  create ----------------------------------------------------------------- 62.91s
  common ----------------------------------------------------------------- 59.42s
  deploy ----------------------------------------------------------------- 35.13s
  remove ----------------------------------------------------------------- 15.20s
  validate ---------------------------------------------------------------- 5.45s
  connectivity_check ------------------------------------------------------ 3.96s
  common_global ----------------------------------------------------------- 0.04s
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  total ----------------------------------------------------------------- 182.11s

Step 5 - Return to ND & Verify Site1 ISN Fabric

  1. Return to ND in your browser where you should still be sitting at the Fabrics dashboard. You should see the fabric site1-isn in the list of fabrics; click it.

    Note

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

  2. Click the Inventory tab in the top navigation bar
  3. Click the Switches tab in the sub-navigation bar
  4. Verify you see your switches in the Config Status as In-Sync. If not, please click the refresh button to the right of the Actions button


  5. Click the Connectivity tab in the top navigation bar
  6. Click Interfaces in the sub-navigation bar



  7. Close your site1-isn fabric by clicking the close (X) button in the top right corner of the window




Step 6 - 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 model and setup your Site2 ISN fabric.