Академический Документы
Профессиональный Документы
Культура Документы
Troubleshooting ACI
Configuration Settings to Objects
Mioljub Jovanovic
Technical Leader, Customer Delivery
BRKACI-2643
#CLUS
Agenda
• Overview
• Classes in the real World
• Isn’t it easier with CLI?
• Configuring the APIC
• From APIC to the Switches
• Common Config Issues and Examples
• Summary
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 3
Cisco Webex Teams
Questions?
Use Cisco Webex Teams to chat
with the speaker after the session
How
1 Find this session in the Cisco Live Mobile App
2 Click “Join the Discussion”
3 Install Webex Teams or go directly to the team space
4 Enter messages/questions in the team space
#CLUS © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 4
Everything is an object!
apic1(config)# tenant mio10ant
apic1(config-tenant)# bridge-domain exampleBD-CLI
apic1(config-tenant-bd)# end
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 5
APIC Management Information Model Reference
direct URL
https://apic/doc/html/
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 6
Distributed Management Information Tree (dMIT)
• Objects are structured in a tree-based hierarchy
• Everything is an object topRoot
dn: uni
of tree, class: topRoot)
• Objects can be linked through relationships ctrlInst fvTenant fabricInst
dn: uni/controller dn:uni/tn-mgmt dn: uni/fabric
Ex: fvRsBD links EPG (fvAEPg) to desired BD (fvBD)
• Distributed: Across all Fabric Node devices fvAp fvBD
dn: uni/tn-mgmt/BD-
fvAEPg fvRsBD
dn: uni/tn-mgmt/ap-mgmt-app/epg-mgmt- dn:
epg tDn:uni/tn-mgmt/BD-inb
name: EPG1
pcTag: 16386
modTs: 2017-06-22T08:52:35.502+00:00
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 7
Object Naming
• Objects have a Relative Name (RN) and Distinguished Name (DN)
• Similar to file system structure
• RN = name of object; unique within the context of parent object
• DN = used a globally unique ID for an object
* credit: Burns & Pita #CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 8
Managed Object (MO) in ACI
• Everything in ACI is represented by a Managed Object (MO)
• Managed object is just an instance of some Class of objects
• MOs are organized in a Managed Information Tree (MIT)
• You can query or view the MIT in many different ways:
• Visore : https://apicIP/visore.html
• Browsing MIT in shell : cd /mit/… or cd /aci
• moquery : cli query utility to the DB
• REST : postman, curl GET and POST
• icurl (local REST client on apic/leaf)
• Python SDK (ACI Toolkit, Cobra etc)
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 11
Example object instance of a class Car
{
dn: “bru-airport/expo-bmw-1”
make: “BMW”,
model: “550i”,
colour: “gold”,
coolness: “fancy”,
price: 50000,
modTs: “Jan/09/2016”,
imgUrl: https://...
}
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
Another object instance of a Class Car
{
dn: “carHistory/yugo55-1”
make: “Yugo”,
model: “55”,
colour: “red”,
coolness: “NA”,
price: 3990,
modTs: “01/01/1985”,
imgUrl: “https://...”
}
* photo source: Alden Jewell
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 13
Array of objects
[
{ id: 1, make: “BMW”, model: “550i”, colour: “gold”, coolness:
“high”,price: “50000”, modTs: “01/01/2016”},
{ id: 2, make: “Yugo”, model: “55”, colour: “red”, coolness: “NA”,
price: “3990”, modTs: “01/01/1985” }
…
]
Single object instance is contained within curly braces: { property: value }
Array of objects is contained within square braces, delimited by comma:
[ {object 1}, {object 2}, {object 3} … ]
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 14
Great … but how is
this related to ACI
object model?
moquery -c fabricNode -f 'fabric.Node.id=="1"' -o json
{
Class fabricNode
"imdata": [
{
"fabricNode": {
"attributes": {
"dn": "topology/pod-1/node-1",
"uid": "0",
"fabricSt": "active",
"lastStateModTs": "2019-05-01T07:10:31.649+00:00",
"serial": "FCH2019SANCL",
"id": ”1",
"version": ”A0",
"role": ”controller",
"modTs": "2019-03-28T13:04:57.155+00:00",
"rn": "node-1",
"vendor": "Cisco Systems, Inc",
"address": "10.0.0.1",
"adSt": "on", model: APIC-SERVER-M2
"name": "bdsol-aci20-apic1",
"apicType": "apic",
"model": ”APIC-SERVER-M2"
} Class fabricNode represents some of the
}
} device properties / attributes in the real world.
], In the left pane we’re observing an object
"totalCount": "1" instance of the fabricNode class,
}
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 16
moquery -c fabricNode -f 'fabric.Node.id=="101"' -o json
{
Class fabricNode
"imdata": [
{
"fabricNode": {
"attributes": {
"dn": "topology/pod-1/node-101",
"uid": "0",
"fabricSt": "active",
"lastStateModTs": "2019-05-01T07:10:31.649+00:00",
"serial": "FDO2019CLUS",
"id": "101",
"version": "",
"role": "leaf",
"modTs": "2019-05-01T07:10:38.366+00:00",
"rn": "node-101",
"vendor": "Cisco Systems, Inc",
"address": "10.0.120.69",
"adSt": "on", model: N9K-C93180YC-EX
"name": "bdsol-aci20-leaf1",
"apicType": "apic",
"model": "N9K-C93180YC-EX"
} Class fabricNode represents some of the
}
} device properties / attributes in the real world.
], In the left pane we’re observing an object
"totalCount": "1" instance of the fabricNode class,
}
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 17
Topology is just graphical
representation of objects
• We could create our own tool wiringIssues : used to plot the topology diagram
for topology, monitoring or admin@bdsol-aci2-apic1:~> moquery -c fabricLink | egrep -e ^dn | head -5
dn : topology/pod-1/lnkcnt-1/lnk-102-1-2-to-1-2-2
troubleshooting dn
dn
: topology/pod-1/lnkcnt-2/lnk-102-1-4-to-2-2-2
: topology/pod-1/lnkcnt-3/lnk-102-1-6-to-3-2-2
dn : topology/pod-1/lnkcnt-201/lnk-102-1-49-to-201-1-34
dn : topology/pod-1/lnkcnt-202/lnk-102-1-50-to-202-1-34
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 18
Isn’t it easier with
CLI?
• What is easier for human
Is it easier to use
TCL/Expect to tell computer
what you want or to use an
Object?
SDN vs FDN
Dilemma For computers it’s easier to use
Objects and for Humans it’s
easier CLI
Finger defined Networking
BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 20
Wait a minute …
Automation
CLI Parsing
if CLI is easier …
BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 21
Everything that is displayed is an object of some class
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 22
API Inspector is good to see UI requests
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 23
APIC
Configuration using WebUI
Creating Objects using WebUI
PC REST API APIC Server
Browser
Request Method
TCP:443
Policy manager
IFM Intra Fabric
TCP:7777
TCP:443
Messaging
WebUI Debugging:
1. API Inspector Status Code
2. Developer Tools in
the Browser Logs on APIC (tail –f, tail -1000):
1. egrep exampleBD /var/log/dme/log/access.log
2. zegrep exampleBD /var/log/dme/log/nginx.bin.log*
Network debugging: 3. zegrep exampleBD /var/log/dme/log/svc_ifc_policymgr.bin.log.*
tcpdump, sniffer etc (policymgr logs may be on different APIC in the cluster)
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 25
Configuration using WebUI
Example API Inspector
Creating Objects using WebUI
PC REST API APIC
Browser
Request Method
TCP:443
Policy manager
tcpdump
Messaging
or similar
Example Chrome
Developer Tools (F12) Status Code
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 26
Configuration using WebUI
Creating Objects using CLI
apic1(config)# tenant mio10ant
apic1(config-tenant)# bridge-domain exampleBD-CLI
apic1(config-tenant-bd)# end
REST API APIC Server
Request Method
TCP:443
Policy manager
IFM Intra Fabric
TCP:7777
TCP:443
Messaging
CLI Debugging:
1. /var/log/dme/log/decoy.log
2. /var/log/dme/log/decoy_server.log
3. /var/log/dme/log/zsh-term.log Status Code
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 28
GUI download XML do not show all you need ?
Download Xml from that page
We only see dhcp info
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 29
Example:
How does Leaf get
config from the
controller?
What to check?
Logical, Resolved and Concrete Object models
•ACI objects ACI objects used for ACI objects upon
Logical model
Resolved model
Concrete model
configured by User passing information which which Switch
in APIC using and configuration operating systems
WebUI, CLI or REST from APIC to the acts. Concrete
based API. switches. These objects also user
objects are user visible but not
visible but not configurable.
configurable.
Resolved objects
are implicitly
configured, derived
from Logical model
by APIC.
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 31
From Logical Objects to Hardware - Workflow
2. 3. 4. Triggers sent
1.Configured
Logical
Converted to NXOS for
Resolved
Converted
by User by APIC by APIC/PE Concrete hardware
Hardware
Model Model Model programming
2. Logical Model is converted to Resolved Model by APIC. This resolved model is then
sent to the leaves & spines.
Resolved Model exists only for sending tenant configuration such as Epg, BD, Ctx.
Other configurations like Selectors are sent as is to the fabric nodes (Represented
by red line).
fvTenant
tn-coke
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 33
Logical Model Converted to Resolved Model
Endpoint Profile (EpP)
fvEpPCont epp
• Internal deployment profile for Epg
• Deployed to switch / policyelement
fv-[uni/tn-coke/ap-default/epg-App]/node-102/stpathatt-
[eth1/10]/conndef/conn-[vlan-19]-[0.0.0.0] fvIfConn fvIfConn
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 34
Logical Model Converted to Resolved Model
Endpoint Profile (fvBDDef & fvCtxDef)
uni
fvBDDef fvCtxDef
fvBDDef • Summarized internal representation of fvBD. fvCtxDef • Summarized internal representation of fvCtx.
• Naming property is the DN of the • Naming property is the DN of the
corresponding fvBD. corresponding fvCtx. Ctx identifiers like
• BD identifiers: Segment ID, PcTag (policy Segment ID and PcTag.
control tag used for Contracts. • Summarized internal representations of other
• Summarized internal representations of other Ctx policies like End Point Retention Policy
BD policies like IGMP, DHCP, End Point etc.
Retention Policy etc.
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 35
Resolved Model Converted to Concrete Model
sys topSystem, it’s the root of concrete model
Bridge Domain
l2BD l2BD l2BD sys/ctx-[vxlan-2555904]/bd-[vxlan-15826914]
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 36
Great, so we now
know how it’s
supposed to work …
have a great day
Config doesn’t exist on the switches
or is not programmed as anticipated
1. Very important: Always check for faults in the system. If anything fails
deployment then faults are raised. For instance, if EPg deployment fails for
any reason then faults will be raised on the EPg.
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 38
How to check for configuration related faults
Select
desired
fault for
more
details
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 39
Example Fault F0467 details
Cause: configuration-failed
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 41
Physical Interface Configuration Workflow
Global
Policy Interface
VMM (AAEP) Policies
Domain vSwitch Policies
Policies (settings)
Pools Interface
VLAN / Policies
VXLAN / Policy
Multicast Group Interface
Global
Policies
Physical Policy
Profiles
and (AAEP)
Port
External Phys, L2,
Blocks
Domains L3
(physical
ports)
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 44
Using CLI / moquery to check/sort active faults
(class faultInst) quickly sorts all active faults
Now we could query all faults details by criteria – such as fault description
fault.Inst.descr
moquery -c faultInst -f 'fault.Inst.descr=="Address configuration failure"'
show faults ? show commands also available as more user friendly than moquery
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
Using CLI / moquery to check/sort active faults
(class faultInfo) quickly sorts all active faults
moquery -c faultInfo -f 'fault.Info.type=="config"' | egrep "^cause" | sort | uniq -c
485 cause : configuration-failed
4 cause : fsm-failed
1 cause : product-not-registered
142 cause : resolution-failed
2 cause : wiring-check-failed
moquery -c faultInfo -f 'fault.Info.type=="config"' | egrep "^code" | sort | uniq -c
8 code : F0053
2 code : F0454
6 code : F0467
129 code : F0956
1 code : F0977
467 code : F1298
2 code
Now we could query: all
F1299
faults details by criteria – such as fault description
4 code : F609528
…
fault.Inst.descr
Class faultInfo includes both classes faultInst and faultDelegate
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 46
Class Property Property
Name name value
dn
cause
what changed
description
direct URL
https://apic1.cisco.com/visore.html
rule which triggered the fault
type
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 47
Significant improvements in Visore UI in 4.1 and newer releases
direct URL
https://apic1.cisco.com/visore.html
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 48
Summary
Summary
• When troubleshooting configuration issues always check for config
faults first
• Familiarity with ACI Classes greatly helps in troubleshooting
• Objects and Classes are facilitating automation and scaling
• Understanding of the configuration steps and dependencies to
accomplish desired outcome
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 50
Complete your
online session • Please complete your session survey
evaluation after each session. Your feedback
is very important.
• Complete a minimum of 4 session
surveys and the Overall Conference
survey (starting on Thursday) to
receive your Cisco Live water bottle.
• All surveys can be taken in the Cisco Live
Mobile App or by logging in to the Session
Catalog on ciscolive.cisco.com/us.
Cisco Live sessions will be available for viewing
on demand after the event at ciscolive.cisco.com.
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 51
Continue your education
Demos in the
Walk-in labs
Cisco campus
#CLUS BRKACI-2643 © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 52
Thank you
#CLUS
#CLUS