Aci Troubleshooting Lab Readthedocs Io en Latest
Aci Troubleshooting Lab Readthedocs Io en Latest
Release 1.0
Edi Wibowo
1 Physical Topology 3
2 Table of Contents 5
2.1 Fabric Discovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Access Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 End Point Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5 End Point Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.6 L3out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.7 Virtual Machine Manager Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.8 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.9 Firmware Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4 Attachments 41
5 Author 43
i
ii
ACI Troubleshooting Documentation, Release 1.0
Contents 1
ACI Troubleshooting Documentation, Release 1.0
2 Contents
CHAPTER 1
Physical Topology
3
ACI Troubleshooting Documentation, Release 1.0
Table of Contents
The ACI fabric is brought up in a cascading manner, starting with the leaf nodes that are directly attached to the APIC.
LLDP and control-plane IS-IS convergence occurs in parallel to this boot process. The ACI fabric uses LLDP- and
DHCP-based fabric discovery to automatically discover the fabric switch nodes, assign the infrastructure VXLAN
tunnel endpoint (VTEP) addresses.
5
ACI Troubleshooting Documentation, Release 1.0
cimc#
cimc# scope sol
cimc /sol # set enabled yes
cimc /sol *# set baud-rate 115200
cimc /sol *# commit
cimc /sol # connect host
CISCO Serial Over LAN:
Press Ctrl+x to Exit the session
To erase configuration of leaf/spine switch so that they can automatically retrieve configuration from APIC:
Once the APIC is rebooted, it will start in the initial config wizard:
This setup utility will guide you through the basic configuration of
the system. Setup configures only enough connectivity for management
of the system.
Warning: TEP address pool, Infra VLAN ID and Multicast address pool
cannot be changed later, these are permanent until the
fabric is wiped.
Leaf switch discovers the attached APIC via LLDP and requests a TEP address via DHCP from the APIC.
Check the incoming lldp information that APIC receives from Leaf switch:
Check the outgoing lldp information that APIC sends to Leaf switch:
Ensure that the infra VLANs on APIC and Leaf match. If they do not match, please run the following to reset switch
to manufacture config (bug CSCvd67346). Use prepare-mfg.sh on all switches in the environment and reload at the
same time. For example:
If the incoming LLDP is empty (shown below), that means the VIC port has consumed the LLDP and the APIC port
does not receive it. The reason is that the LLDP is enabled on VIC card. We need to disable the LLDP on the VIC
card so that the LLDP information is passed to the APIC port (eth2-1).
apic1#
When leaf is registered, it will request VTEP address for loopback0 interface via DHCP.
Once all switches are registered, we can see their VTEPs (loopback lo0 interfaces):
Total 6 nodes
Also we can see the Dynamic Tunnel End Points are created in IS-IS:
2.1.5 Reference
Access policies define the connectivity from external devices to ACI leaf switches such as interfaces, VLANs, CDP,
LLDP, etc.
Attachable Entiry Profile is used for linking many to many relationships between Domains and Interface Policy
Groups.
A domain determines the type of bridge domain that is deployed to the leaf port.
VPC
First of all, we will need to create a VPC domain for a pair of leaf switches:
vPC status
---------------------------------------------------------------------------------
id Port Status Consistency Reason Active vlans Bndl Grp Name
(continues on next page)
• Speed mismatch
• MCP - Duplicate VLAN
• A VPC policy group represent 1 virtual port-channel.
• LACP Mismatch
2.2.4 Reference
So far all the fabric nodes have been discovered (VTEPs are assigned) and access policies have been created (port
speed, cdp, lldp and other leaf port properties). Now, we are ready to assign the ownership of leaf ports to EPGs.
EPG classification can be based on:
• Access (untagged) = Access VLAN
• Source IP address
• Trunk = Trunk
• Access (802.1p) = Native VLAN
• NVGRE
• VXLAN
In this lab, we will use VLAN as an EPG classifier. Therefore, we will need to create a VLAN pool
When you create a VLAN pool, it is a good practice to set allocation mode to dynamic.
Then when you add an encap block, you can choose either static or dynamic. In that way, you will have flexibility
to add both dynamic and static encap blocks. Dynamic encap blocks are used for Virtual Machine Manager (VMM)
domain.
Make sure VLAN pools do not have overlapping vlans. The reason is that ACI floods STP Bridge Protocol Data Units
(BPDUs) to the VXLAN network identifier (VNID) assigned to the FD VLAN. VNID is assigned through the VLAN
pool so encapsulation has to be part of same VLAN pool to be in part of same STP domain. Otherwise STP BPDU
can be dropped by ACI.
We can statically classify EPG by assigning an encap vlan on leaf ports. In below example, port eth1/1 on leaf103
is statically bound with encap vlan 100. That means any incoming traffic with vlan tag 100 is classified as EPG
“tshoot-epg”.
8 vlan-100 0050.5696.609a L
˓→ eth1/1
tshoot:tshoot-vrf vlan-100 192.168.1.101 L
˓→ eth1/1
(continues on next page)
+----------+---------+-----------------+----------+------+----------+-----------
VLAN ID Type Access Encap Fabric H/W id BD VLAN Endpoint
(Type Value) Encap Count
+----------+---------+-----------------+----------+------+----------+-----------
8 FD vlan 802.1Q 100 8192 7 7 1
In above example, encap vlan-100 has been mapped to ACI platform independent (PI) vlan 8 which is mapped to
vxlan-8192.
2.3.3 Reference
1. CNA Data Center DCICT 200-155 Official Cert Guide by Ahmed Afrose et. al.
2. ACI Operation with L2 Switches and Spanning Tree Link Types https://www.cisco.com/c/
en/us/support/docs/cloud-systems-management/application-policy-infrastructure-controller-apic/
211236-ACI-operation-with-L2-switches-and-Spann.html
2.4 Contract
The requirement for contracts to be applied in the zoning-rule, the VRF must be inthe enforced mode.
2.4. Contract 23
ACI Troubleshooting Documentation, Release 1.0
In order for different EPGs to be able to communicate, they must have a contract. Server provides the contract and
Client consumes a contract.
Each EPG has a source class. To find out the source class of an EPG:
For example, the vlan encap for an EPG is vlan-100.
In above example, encap vlan-100 has been mapped to ACI platform independent (PI) vlan 8.
NorthStar Info:
qq_tbl_id: 1441 ::: qq_ocam: 0
seg_stat_tbl_id: 0 ::: seg_ocam: 0
::::
We can see that the source class (sclass) is 49156 for EPG tshoot:tshoot-ap:A-epg.
To know the sclass of an external EPG of L3out:
leaf103# vsh_lc
module-1# show system internal aclqos prefix | grep 2949120
Vrf Vni Addr Mask Scope Class Shared Remote
From above, we can see that ip address 9.9.9.9/32 has sclass 16388.
Contracts exist in VRF. To know the VRF ID, you can run the following command:
leaf103# show system internal epm vrf all
+--------------------------------+--------+----------+----------+------+--------
VRF Type VRF vnid Context ID Status Endpoint
Count
+--------------------------------+--------+----------+----------+------+--------
black-hole Tenant 16777200 3 Up 0
tshoot:tshoot-vrf Tenant 2949120 6 Up 1
overlay-1 Infra 16777199 4 Up 2
2.4. Contract 25
ACI Troubleshooting Documentation, Release 1.0
˓→PktLen: 98
In above example, a packet with source IP 9.9.9.9 is denied to access destination IP 192.168.200.254
2.4.1 Reference
+------------------------------------------------------------------------------+
Endpoint Summary
+------------------------------------------------------------------------------+
Total number of Local Endpoints : 2
Total number of Remote Endpoints : 0
Total number of Peer Endpoints : 0
Total number of vPC Endpoints : 2
Total number of non-vPC Endpoints : 0
Total number of MACs : 2
Total number of VTEPs : 0
Total number of Local IPs : 1
Total number of Remote IPs : 0
Total number All EPs : 2
2.6 L3out
2.6. L3out 29
ACI Troubleshooting Documentation, Release 1.0
2.6.2 Troubleshooting
The indication that the external EPG has been correctly configured is the L3out shadow BD is deployed to the border
leaf switches.
We can see that the L3out shadow BD has been deployed with Access Encap Vlan 198 and Fabric Encap (VxLAN ID)
14974940.
Applying a contract to the internal EPG and the external EPG will create zoning-rules and pervasive static route:
To check the EPG source class (sclass) ID for external EPGs which are classified based on source IP addresses:
2.6. L3out 31
ACI Troubleshooting Documentation, Release 1.0
leaf103# vsh_lc
module-1# show system internal aclqos prefix
To check whether the BD subnet is externally advertised and associated to the L3out:
We can see that subnet 192.168.200.254/24 is permited to be redistibuted from static to OSPF.
To check whether BGP route reflector has been configured, we can check the BGP VPNV4 neigborship in vrf overlay-
1. 10.0.32.90 is the spine which is configured as a BGP route reflector.
To check whether the external routes from external EPGs has been learnt in BGP VPNV4:
2.6. L3out 33
ACI Troubleshooting Documentation, Release 1.0
BD Subnets
• Pre-provision—Specifies that a policy (for example, VLAN, VXLAN binding, contracts, or filters) is down-
loaded to a leaf switch even before a VM controller is attached to the virtual switch (for example, VMware
VDS). This pre-provisions the configuration on the switch. This helps the situation where management traf-
fic for hypervisors/VM controllers are also using the virtual switch associated to APIC VMM domain (VMM
switch). Deploying a VMM policy such as VLAN on ACI leaf switch requires APIC to collect CDP/LLDP infor-
mation from both hypervisors via VM controller and ACI leaf switch. However if VM Controller is supposed to
use the same VMM policy (VMM switch) to communicate with its hypervisors or even APIC, the CDP/LLDP
information for hypervisors can never be collected because the policy required for VM controller/hypervisor
management traffic is not deployed yet. When using pre-provision immediacy, policy is downloaded to ACI leaf
switch regardless of CDP/LLDP neighborship. Even without a hypervisor host connected to the VMM switch.
• Immediate—Specifies that EPG policies (including contracts and filters) are downloaded to the associated leaf
switch software upon ESXi host attachment to a DVS. LLDP or OpFlex permissions are used to resolve the
VM controller to leaf node attachments. The policy will be downloaded to leaf when you add host to the VMM
switch. CDP/LLDP neighborship from host to leaf is required.
• On Demand—Specifies that a policy (for example, VLAN, VXLAN bindings, contracts, or filters) is pushed to
the leaf node only when an ESXi host is attached to a DVS and a VM is placed in the port group (EPG). The
policy will be downloaded to leaf when host is added to VMM switch and virtual machine needs to be placed
into port group (EPG). CDP/LLDP neighborship from host to leaf is required. With both immediate and on
demand, if host and leaf lose LLDP/CDP neighborship the policies are removed.
• Once the policies are downloaded to the leaf software, deployment immediacy can specify when the policy is
pushed into the hardware policy content-addressable memory (CAM).
• Immediate—Specifies that the policy is programmed in the hardware policy CAM as soon as the policy is
downloaded in the leaf software. On demand—Specifies that the policy is programmed in the hardware policy
CAM only when the first packet is received through the data path. This process helps to optimize the hardware
space.
2.7.4 Reference
This is an example of using REST API to interact with APIC. This script is written in Python. However, you can also
use Postman to send the http request.
import requests
requests.packages.urllib3.disable_warnings()
if __name__ == '__main__':
# variables
apic_ip = '192.168.1.1' # OOB mgmt
apic_user = 'admin'
apic_pw = 'xyz'
apic_apic_url = 'https://' + apic_ip + '/api/'
# login data
login_data = '''<?xml version="1.0" encoding="UTF-8"?>
<imdata totalCount="1">
<aaaUser name="''' + apic_user + '''" pwd="''' + apic_pw
˓→+ '''"/>
</imdata>'''
tail -f /mnt/pss/installer.log
• genindex
• modindex
• search
39
ACI Troubleshooting Documentation, Release 1.0
Attachments
41
ACI Troubleshooting Documentation, Release 1.0
42 Chapter 4. Attachments
CHAPTER 5
Author
43