Domain weights from the official v1.2 blueprint. Tap a domain to study only its cards. Source tags: OCG = ENCOR Official Cert Guide 2nd ed (chapter shown per sub-objective) Β· CRAM = ENCOR Exam Cram Β· INE = INE ENCOR v1.2 course Β· PCG = Portable Command Guide Β· CISCO-DS = Cisco Catalyst Center data sheet
π― Am I ready to pass? blueprint v1.2
Cisco publishes the 120-minute length and the domain weights, but not the question count or the cut score. Third-party sites quote ~90β110 questions and ~825/1000; treat those as estimates. So the targets below are a coverage plan, not a pass prediction.
Your score per sub-objective
π§ How to read ENCOR questions
1 Β· Architecture (15 %)
Campus designs: 2-tier, 3-tier, fabric, cloud OCG Β· INE
Three-tier and collapsed core
Leaf-spine fabric
| Fits | Watch out | |
|---|---|---|
| 2-tier | Small / one building | Core = distribution pair |
| 3-tier | Large, many blocks | More boxes, more cost |
| Fabric | DC east-west, SD-Access | Overlay + underlay |
| Cloud | IaaS / PaaS / SaaS | Path to cloud, less control |
Core = fast + no policy Β· Fabric = routed underlay + overlay (VXLAN)
High availability: redundancy, FHRP, SSO/NSF OCG
Catalyst SD-WAN: bring-up in order OCG Β· CRAM Β· INE
| Plane | Component | Job |
|---|---|---|
| Orchestration | Validator (vBond) | Auth, NAT traversal, points to controllers |
| Management | Manager (vManage) | GUI, templates, REST API |
| Control | Controller (vSmart) | OMP, policy, keys (like a BGP RR) |
| Data | WAN Edge | IPsec tunnels, BFD per path |
Limits: needs controllers + PKI, overlay overhead, licensing, migration effort
Controller DTLS default UDP 12346 (INE) Β· VPN 0 = transport, VPN 512 = management
SD-Access: LISP lookup β VXLAN forwarding OCG Β· CRAM Β· INE
| Plane | Technology |
|---|---|
| Control | LISP (control plane node = MS/MR, HTDB) |
| Data | VXLAN-GPO (VN ID + SGT in header) |
| Policy | TrustSec SGT/SGACL from ISE |
| Management | Catalyst Center (+ ISE) |
VN = macro segmentation (VRF) Β· SGT = micro segmentation inside a VN
Traditional campus β SD-Access INE Β· OCG
Interpret QoS: MQC, read top to bottom OCG
class-map match-any VOICE ! OR of matches match dscp ef class-map match-any VIDEO match dscp af41 policy-map CHILD class VOICE priority percent 20 ! LLQ, policed under congestion class VIDEO bandwidth percent 30 ! minimum guarantee class class-default fair-queue policy-map PARENT class class-default shape average 100m ! sub-rate, outbound only service-policy CHILD interface g0/0 service-policy output PARENT ! nothing happens without this ! access edge: classify and mark inbound policy-map MARK-IN class VOICE set dscp ef interface g1/0/5 service-policy input MARK-IN show policy-map interface g0/0 output ! matches, drops per class
Hierarchical QoS: parent shaper, child queues
priority can't share a class with bandwidth/shape/random-detect Β· sum of bandwidth β€ 100 %
2 Β· Virtualization (10 %)
Hypervisors, VMs, virtual switching OCG
Virtual switching
VRF-lite: overlapping prefixes OCG Β· PCG
vrf definition RED address-family ipv4 interface g0/1 vrf forwarding RED ! removes the IP: re-add it ip address 10.1.1.1 255.255.255.0 interface g0/2.100 ! VRF-lite: one subinterface per VRF per hop encapsulation dot1Q 100 vrf forwarding RED ip address 10.0.100.1 255.255.255.252 ! routing inside the VRF (static or a VRF-aware IGP) ip route vrf RED 10.2.0.0 255.255.0.0 10.0.100.2 router ospf 10 vrf RED network 10.0.100.0 0.0.0.3 area 0 show ip route vrf RED Β· ping vrf RED 10.1.1.2 Β· show vrf
GRE over IPsec and IKE phases OCG
How the IPsec tunnel comes up
! Phase 1 (IKEv1 shown; IKEv2 uses proposal/policy/keyring/profile) crypto isakmp policy 10 encryption aes 256 hash sha256 authentication pre-share group 14 crypto isakmp key MyK3y address 203.0.113.2 ! Phase 2 crypto ipsec transform-set TS esp-aes 256 esp-sha256-hmac mode transport ! fine for GRE/VTI (tunnel mode also works) crypto ipsec profile P set transform-set TS interface Tunnel0 ip address 172.16.0.1 255.255.255.252 ip mtu 1400 ip tcp adjust-mss 1360 tunnel source g0/0 tunnel destination 203.0.113.2 tunnel mode ipsec ipv4 ! VTI; omit (= GRE) for GRE over IPsec tunnel protection ipsec profile P router ospf 1 network 172.16.0.0 0.0.0.3 area 0 ! routing over the tunnel ! never advertise the tunnel destination into the tunnel (recursive routing) show crypto isakmp sa ! QM_IDLE = Phase 1 up show crypto ipsec sa ! encaps/decaps counters show interfaces tunnel0
LISP: register β request β reply β data OCG Β· INE
VXLAN header and VTEPs OCG
Control plane: flood-and-learn, BGP EVPN (DC) or LISP (SD-Access)
3 Β· Infrastructure (30 %)
DTP: does it trunk? OCG
| access | auto | desirable | trunk | |
|---|---|---|---|---|
| access | A | A | A | β |
| auto | A | A | T | T |
| desirable | A | T | T | T |
| trunk | β | T | T | T |
What's wrong here? Native VLAN mismatch
A = access, T = trunk, β = mismatch (doesn't work). auto + auto (orange) is the classic trap: no trunk.
vlan 10,20,30,99 ! VLANs must exist to be 'active' interface g1/0/24 switchport trunk encapsulation dot1q ! only on ISL-capable models switchport mode trunk ! or dynamic desirable/auto switchport nonegotiate ! no DTP frames switchport trunk native vlan 99 ! same on both ends switchport trunk allowed vlan 10,20 switchport trunk allowed vlan add 30 ! without add = replace show interfaces trunk ! allowed β active β STP forwarding show interfaces g1/0/24 switchport ! admin vs operational mode show dtp interface g1/0/24
Native VLAN must match Β· 'allowed vlan add X' Β· nonegotiate turns off DTP
EtherChannel: which modes bundle? OCG Β· PCG
| on | active | passive | desirable | auto | |
|---|---|---|---|---|---|
| on | β | β | β | β | β |
| active | β | β | β | β | β |
| passive | β | β | β | β | β |
| desirable | β | β | β | β | β |
| auto | β | β | β | β | β |
! SW1 interface range g1/0/1 - 2 channel-group 1 mode active ! LACP; desirable/auto = PAgP, on = static interface port-channel 1 switchport mode trunk ! set L2 options on the Po, they copy down ! SW2: same members, mode active or passive (not passive on both) interface range g1/0/1 - 2 channel-group 1 mode passive ! Layer 3 bundle instead: interface range g1/0/3 - 4 no switchport channel-group 2 mode active interface port-channel 2 ip address 10.0.0.1 255.255.255.252 port-channel load-balance src-dst-ip ! global hash lacp system-priority 100 ! lower = decides active members show etherchannel summary ! P bundled Β· s suspended Β· I stand-alone show lacp neighbor Β· show etherchannel load-balance
Members must match: speed, duplex, VLANs, trunk mode, native VLAN Β· flags P bundled, s suspended
STP: root, root ports, designated ports in order OCG
| RSTP (802.1w) | MST (802.1s) | |
|---|---|---|
| Instances | 1 per VLAN (Rapid PVST+) | Few, VLANs mapped |
| Roles | root, desig., alternate, backup | same + region boundary |
| States | discarding, learning, fwd | same |
| Must match | β | name, revision, VLAN map |
spanning-tree mode rapid-pvst spanning-tree vlan 10 root primary ! = priority 24576 or lower spanning-tree vlan 20 priority 28672 ! multiples of 4096 ! MST instead: spanning-tree mode mst spanning-tree mst configuration name CAMPUS revision 1 instance 1 vlan 10-20 spanning-tree mst 1 root primary show spanning-tree vlan 10 ! root ID, role, state, cost show spanning-tree mst configuration
Root Guard vs BPDU Guard: where they go OCG
interface g1/0/5 ! host port spanning-tree portfast spanning-tree bpduguard enable spanning-tree portfast bpduguard default ! all PortFast ports interface g1/0/48 ! distribution downlink spanning-tree guard root errdisable recovery cause bpduguard ! optional auto-recovery show spanning-tree inconsistentports ! root-inconsistent ports show interfaces status err-disabled
PortFast only on host ports Β· spanning-tree portfast bpduguard default = all PortFast ports
EIGRP vs OSPF OCG
| EIGRP | OSPF | |
|---|---|---|
| Type | Advanced distance vector, DUAL | Link state, SPF (Dijkstra) |
| Knows | Neighbors' reported distances | Full LSDB of the area |
| Metric | BW + delay (K1, K3) | Cost = ref BW / BW |
| Load balancing | Equal + unequal (variance); maximum-paths 4 default | Equal only; maximum-paths 4 default |
| Path selection | Lowest FD β successor | Intra-area > inter-area > E1 > E2, then cost |
| Path operations | Lost route, no FS β queries; stuck in active (3 min) | LSA flooded β SPF rerun in the area |
| Backup path | Feasible successor | Recalculate SPF |
| Hierarchy | Summarize anywhere, stub routers | Areas, ABR/ASBR |
| Area types | β | backbone 0, normal, stub, totally stubby, NSSA |
| AD | 90 / 170 external | 110 |
Feasible successor check
OSPF: how LSAs travel across areas OCG
| Area type | Type 3 | Type 5 | Type 7 |
|---|---|---|---|
| Normal | β | β | β |
| Stub | β | β | β |
| Totally stubby | default | β | β |
| NSSA | β | β | β |
router ospf 1 area 1 range 10.1.0.0 255.255.0.0 ! ABR: inter-area summary summary-address 172.16.0.0 255.255.0.0 ! ASBR: externals area 1 filter-list prefix NO-LAB in ! ABR: block type 3 into area 1 distribute-list prefix NO-LAB in ! local RIB only ip prefix-list NO-LAB deny 10.99.0.0/16 ip prefix-list NO-LAB permit 0.0.0.0/0 le 32 ! OSPFv3 (address-family style) ipv6 unicast-routing router ospfv3 1 router-id 1.1.1.1 ! needed if no IPv4 address address-family ipv6 unicast area 1 range 2001:db8:1::/48 distribute-list prefix-list V6-FILTER in show ip ospf database summary Β· show ip route ospf Β· show ospfv3 database
Filter: area X filter-list prefix (type 3) Β· distribute-list in = local RIB only
OSPF adjacency checklist and DR election OCG
What's wrong here?
| Network type | DR/BDR | Hello/dead | Default on |
|---|---|---|---|
| Broadcast | yes | 10 / 40 | Ethernet |
| Point-to-point | no | 10 / 40 | Serial, tunnels |
| NBMA | yes | 30 / 120 | Frame Relay main if. |
| Point-to-multipoint | no | 30 / 120 | manual |
| Loopback | β | β | advertised as /32 |
Both ends must use compatible types: broadcast on one side and point-to-point on the other forms an adjacency but routes break (a DR is expected on one side only).
| Stuck in | Usual cause |
|---|---|
| Down / no neighbor | Passive, ACL, wrong network statement |
| INIT | One-way hellos (ACL, unicast issue) |
| Never 2-WAY | Area, subnet, hello/dead, auth, stub flag mismatch |
| EXSTART/EXCHANGE | MTU mismatch, duplicate RID |
| 2-WAY (on LAN) | Normal between DROTHERs |
router ospf 1 router-id 1.1.1.1 ! manual > loopback > interface IP auto-cost reference-bandwidth 100000 ! 100 G; same on all routers passive-interface g0/2 network 10.1.0.0 0.0.255.255 area 1 interface g0/0 ip ospf network point-to-point ! no DR/BDR interface g0/3 ip ospf 1 area 0 ! interface method instead of network ip ospf priority 255 ! wins DR (0 = never) ip ospf hello-interval 10 ! must match the neighbor interface g0/1 ospfv3 1 ipv6 area 0 ! OSPFv3 is enabled per interface show ip ospf neighbor Β· show ip ospf interface brief Β· show ospfv3 neighbor
eBGP neighbors and best path OCG
router bgp 65001 bgp router-id 1.1.1.1 neighbor 10.0.12.2 remote-as 65002 ! directly connected eBGP neighbor 2.2.2.2 remote-as 65002 ! loopback peering: neighbor 2.2.2.2 update-source Loopback0 neighbor 2.2.2.2 ebgp-multihop 2 address-family ipv4 unicast neighbor 10.0.12.2 activate neighbor 2.2.2.2 activate network 10.1.0.0 mask 255.255.0.0 ! exact RIB match needed ip route 10.1.0.0 255.255.0.0 Null0 ! makes the match exist ip route 2.2.2.2 255.255.255.255 10.0.12.2 ! reach the peer's loopback ! R2 mirrors it: remote-as 65001, update-source Lo0, ebgp-multihop 2 show ip bgp summary ! number = Established, word = not up show ip bgp ! * valid Β· > best show ip bgp neighbors 10.0.12.2 advertised-routes
"We Love Oranges AS Oranges Mean Pure Refreshment"
Stuck in Active = TCP not forming (IP, AS, reachability, update-source). Idle = no route to peer or admin down.
Policy-based routing OCG
access-list 10 permit 10.1.1.0 0.0.0.255 track 5 ip sla 5 reachability ! optional: check the next hop route-map PBR permit 10 match ip address 10 set ip next-hop verify-availability 192.0.2.1 10 track 5 route-map PBR permit 20 ! optional; no match = normal routing anyway interface g0/1 ! LAN, inbound ip policy route-map PBR ip local policy route-map PBR ! only for the router's own traffic show ip policy Β· show route-map PBR ! match counters Β· debug ip policy
NTP stratum chain OCG
ntp authenticate ntp authentication-key 1 md5 S3cr3t ntp trusted-key 1 ntp server 10.1.1.1 key 1 prefer ! client ntp peer 10.1.1.2 ! symmetric ntp master 5 ! serve own clock (no upstream) ntp source Loopback0 show ntp status ! synchronized? stratum? reference? show ntp associations ! * sys.peer + candidate ~ configured
Interpret the output
R1# show ntp associations (columns trimmed) address ref clock st reach *~10.1.1.1 .GPS. 1 377 +~10.1.1.2 10.1.1.1 2 377 ~10.9.9.9 .INIT. 16 0 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured ! 10.1.1.1 = chosen source (stratum 1) β R1 becomes stratum 2 ! reach 377 = last 8 polls answered Β· st 16 + reach 0 = unreachable R1# show ntp status Clock is synchronized, stratum 2, reference is 10.1.1.1
ntp server X (client) Β· ntp peer X (symmetric) Β· ntp master N (own clock, default 8)
PTP (IEEE 1588): clock types and messages INE
| Clock | Role |
|---|---|
| Grandmaster | Root time source (GPS), elected by BMCA |
| Ordinary | One PTP port, master or slave (end device) |
| Boundary | Slave upstream, master downstream; multi-VLAN |
| Transparent | Corrects residence time; single VLAN |
ptp mode boundary delay-req ! clock type + delay mechanism ptp domain 0 ptp priority1 128 ! lower = preferred by BMCA interface g1/0/1 ptp enable show ptp clock ! local clock: type, domain, priority show ptp parent ! parent vs grandmaster identity show ptp port ! port state: MASTER / SLAVE / PASSIVE
Exact PTP CLI differs by platform (INE shows several); know what each show command reveals. Parent clock β grandmaster in show output β you are behind a boundary clock. PTP domain = number grouping clocks under one GM.
NAT terms and PAT OCG
interface g0/0 ip nat inside ! LAN side interface g0/1 ip nat outside ! ISP side access-list 1 permit 10.1.1.0 0.0.0.255 ! inside locals to translate ! PAT on the interface address ip nat inside source list 1 interface g0/1 overload ! or dynamic NAT from a pool (add overload for PAT on the pool) ip nat pool PUB 203.0.113.20 203.0.113.30 netmask 255.255.255.224 ip nat inside source list 1 pool PUB ! static one-to-one for an inside server ip nat inside source static 10.1.1.10 203.0.113.10 show ip nat translations Β· show ip nat statistics Β· clear ip nat translation *
HSRP vs VRRP with tracking OCG
What's wrong here? STP root β HSRP active
track 1 interface g0/1 line-protocol ! R1 (HSRP active) interface vlan 10 ip address 10.1.10.2 255.255.255.0 standby version 2 ! both routers standby 10 ip 10.1.10.1 standby 10 priority 110 ! default 100 standby 10 preempt ! off by default standby 10 track 1 decrement 20 ! R2 (standby): must preempt to take over when R1 drops to 90 interface vlan 10 ip address 10.1.10.3 255.255.255.0 standby version 2 standby 10 ip 10.1.10.1 standby 10 preempt ! VRRP on IOS XE fhrp version vrrp v3 ! enables VRRPv3 syntax interface vlan 20 ip address 10.1.20.2 255.255.255.0 vrrp 20 address-family ipv4 address 10.1.20.1 primary priority 110 ! preempt is on by default track 1 decrement 20 show standby brief Β· show vrrp brief Β· show track
| HSRP v1 / v2 | VRRP v2/v3 | |
|---|---|---|
| Standard | Cisco | IETF |
| Roles | Active / standby | Master / backup |
| Preempt | off | on |
| Hello | 3 s / hold 10 s | 1 s advert |
| Multicast | 224.0.0.2 / .102 | 224.0.0.18 |
| MAC | 0000.0c07.acXX / 0c9f.fXXX | 0000.5e00.01XX |
PIM-SM: shared tree β SPT in order OCG
RPF check (what's wrong here?)
ASM vs SSM vs Bidir, and MSDP OCG
| PIM-SM | SSM | Bidir | |
|---|---|---|---|
| RP | yes | no | yes |
| Trees | shared β SPT | SPT only | shared only |
| State | (*,G) + (S,G) | (S,G) | (*,G) |
| IGMP | v2/v3 | v3 | v2/v3 |
| Use | general | one-to-many, known source | many-to-many |
IGMP snooping stops L2 flooding
4 Β· Network Assurance (10 %)
Syslog, SNMP, debugs OCG
| Question | Tool |
|---|---|
| Can I reach it? | ping (extended: source, size, DF bit, repeat) |
| Where does the path break? | traceroute (UDP, TTL +1; * = no reply) |
| What is the protocol doing now? | debug, limited with debug condition / ACL |
| What happened earlier? | syslog (buffer or server, timestamps) |
| Trend, counters, alerts? | SNMP polling (GET) and traps/informs |
| Level | Name | Level | Name |
|---|---|---|---|
| 0 | Emergency | 4 | Warning |
| 1 | Alert | 5 | Notification |
| 2 | Critical | 6 | Informational |
| 3 | Error | 7 | Debugging |
logging host 10.1.1.50 logging trap warnings ! send 0β4 to the server logging source-interface Loopback0 logging buffered 16384 debugging service timestamps log datetime msec snmp-server view ALL iso included snmp-server group NMS v3 priv read ALL snmp-server user ops NMS v3 auth sha AuthPass priv aes 128 PrivPass snmp-server host 10.1.1.60 informs version 3 priv ops snmp-server enable traps access-list 100 permit ip host 10.1.1.10 any ! what to debug debug condition interface g0/1 ! limit the next debug debug ip packet 100 ! ACL 100 narrows it further undebug all ping 10.2.2.2 source lo0 size 1500 df-bit ! extended ping: MTU test traceroute 10.2.2.2 source lo0 show logging Β· show snmp user Β· show debugging
debug condition interface g0/1 β then debug Β· undebug all Β· traceroute: UDP, TTL+1
Flexible NetFlow building blocks OCG Β· PCG
match = key
collect = data
dest, udp port
record + exporter
ip flow monitor M input
flow record R match ipv4 source address ! key fields define the flow match ipv4 destination address match ipv4 protocol match transport source-port match transport destination-port collect counter bytes ! non-key data collect counter packets flow exporter E destination 10.1.1.50 source Loopback0 transport udp 2055 export-protocol netflow-v9 ! or ipfix flow monitor M record R exporter E cache timeout active 60 interface g0/1 ip flow monitor M input show flow monitor M cache Β· show flow exporter E statistics Β· show flow interface g0/1
SPAN vs RSPAN vs ERSPAN OCG
! Local SPAN monitor session 1 source interface g1/0/1 rx monitor session 1 destination interface g1/0/24 ! RSPAN: VLAN 99 on all switches in the path vlan 99 remote-span ! source switch monitor session 2 source interface g1/0/1 monitor session 2 destination remote vlan 99 ! destination switch monitor session 2 source remote vlan 99 monitor session 2 destination interface g1/0/48 ! ERSPAN (IOS XE) monitor session 3 type erspan-source source interface g1/0/1 destination erspan-id 10 ip address 10.9.9.9 ! analyzer side origin ip address 10.1.1.1 no shutdown ! ERSPAN sessions start shut show monitor session all
IP SLA β track β route failover OCG Β· PCG
ip sla 1 icmp-echo 8.8.8.8 source-interface g0/0 frequency 10 timeout 2000 ip sla schedule 1 life forever start-time now track 1 ip sla 1 reachability delay down 10 up 30 ! optional: damp flapping ip route 0.0.0.0 0.0.0.0 198.51.100.1 track 1 ip route 0.0.0.0 0.0.0.0 203.0.113.1 250 ! floating backup ! udp-jitter needs the far end to answer: ip sla responder show ip sla statistics 1 Β· show track 1 Β· show ip route 0.0.0.0
Catalyst Center: traditional vs AI-powered workflows CRAM Β· INE Β· CISCO-DS
sites, settings, images
VNs, SGTs, QoS
PnP, templates, SWIM
health, issues
| Need | Traditional | Catalyst Center |
|---|---|---|
| Config | CLI box by box | Templates, intent, LAN Automation |
| Images | Manual copy | SWIM golden image |
| Monitor | SNMP thresholds | Telemetry + health scores |
| Baseline | Static thresholds | AI Network Analytics |
| Root cause | Manual show/debug | Machine Reasoning Engine |
| Ask | β | Cisco AI Assistant (natural language) |
NETCONF vs RESTCONF OCG
| NETCONF | RESTCONF | |
|---|---|---|
| Transport | SSH, TCP 830 | HTTPS 443 |
| Encoding | XML | XML or JSON |
| Operations | get, get-config, edit-config, commit, lock | GET, POST, PUT, PATCH, DELETE |
| Datastores | running, candidate, startup | running (unified) |
| Enable | netconf-yang | restconf + ip http secure-server |
username admin privilege 15 secret **** aaa new-model aaa authentication login default local aaa authorization exec default local netconf-yang ! SSH 830 netconf-yang feature candidate-datastore restconf ! needs the HTTPS server ip http secure-server ip http authentication local show netconf-yang status Β· show netconf-yang sessions ! test from a host: ssh admin@R1 -p 830 -s netconf curl -k -u admin:**** -H "Accept: application/yang-data+json" \ https://R1/restconf/data/ietf-interfaces:interfaces
NETCONF transaction in order
Header: Accept: application/yang-data+json
5 Β· Security (20 %)
Device access: lines, local users, AAA OCG
hostname R1 ip domain-name lab.local crypto key generate rsa modulus 2048 ip ssh version 2 enable algorithm-type scrypt secret **** username admin privilege 15 algorithm-type scrypt secret **** aaa new-model tacacs server T1 address ipv4 10.1.1.5 key **** radius server R1 ! RADIUS alternative address ipv4 10.1.1.6 auth-port 1812 acct-port 1813 key **** aaa authentication login default group tacacs+ local aaa authorization exec default group tacacs+ local aaa authorization commands 15 default group tacacs+ local aaa accounting exec default start-stop group tacacs+ ip access-list standard MGMT permit 10.10.10.0 0.0.0.255 line vty 0 4 transport input ssh access-class MGMT in exec-timeout 10 0 ! without AAA: login local show aaa servers Β· show users Β· show ip ssh
ACL placement and types OCG
What's wrong here?
| Type | Matches | Numbers | Place |
|---|---|---|---|
| Standard | Source only | 1β99, 1300β1999 | Near dest. |
| Extended | Src, dst, proto, port | 100β199, 2000β2699 | Near source |
| VACL | Inside a VLAN | vlan access-map | VLAN |
| PACL | L2 port, inbound | named | Switchport |
ip access-list extended BLOCK-HTTPS 10 deny tcp host 10.1.1.10 host 10.2.2.20 eq 443 20 permit ip any any ! or the implicit deny drops the rest interface g0/0 ! near the source ip access-group BLOCK-HTTPS in ip access-list standard MGMT permit 10.10.10.0 0.0.0.255 line vty 0 4 access-class MGMT in ! VACL: in an access-map, permit = "match", the action decides ip access-list extended VACL-HTTPS permit tcp any host 10.2.2.20 eq 443 vlan access-map V10 10 match ip address VACL-HTTPS action drop vlan access-map V10 20 ! no match clause = everything else action forward vlan filter V10 vlan-list 10 ! IPv6 ACL ipv6 access-list V6-IN deny tcp any host 2001:db8::20 eq 443 permit ipv6 any any ! implicit permits ND before the implicit deny interface g0/0 ipv6 traffic-filter V6-IN in ip access-list resequence BLOCK-HTTPS 10 10 show access-lists Β· show ip interface g0/0 | include access list
Wildcard = 255.255.255.255 β mask (/26 β 0.0.0.63)
CoPP: protect the CPU OCG Β· PCG
ip access-list extended ACL-ROUTING permit ospf any any permit tcp any any eq bgp ip access-list extended ACL-MGMT permit tcp 10.10.10.0 0.0.0.255 any eq 22 ip access-list extended ACL-ICMP permit icmp any any ! = "belongs to this class" class-map COPP-ROUTING match access-group name ACL-ROUTING class-map COPP-MGMT match access-group name ACL-MGMT class-map COPP-ICMP match access-group name ACL-ICMP policy-map COPP class COPP-ROUTING police 1000000 conform-action transmit exceed-action transmit ! generous class COPP-MGMT police 500000 conform-action transmit exceed-action drop class COPP-ICMP police 8000 conform-action transmit exceed-action drop class class-default police 64000 conform-action transmit exceed-action drop control-plane service-policy input COPP show policy-map control-plane
REST API security: token flow CRAM Β· OCG Β· INE
Security design: where each product sits OCG Β· CRAM
| Need | Product |
|---|---|
| DNS-layer blocking | Umbrella |
| App control + IPS + URL | NGFW (Secure Firewall / FMC) |
| Endpoint malware, retrospection | Secure Endpoint (AMP) |
| Flow-based anomaly detection | Secure Network Analytics |
| Identity, posture, SGT | ISE (+ Secure Client) |
| Threat intelligence | Talos |
TrustSec in order, and MACsec CRAM Β· OCG
MACsec: hop-by-hop encryption
6 Β· Automation and AI (15 %)
Read a Python script OCG
import requests, json # modules
base = "https://cc.lab"
# 1. get a token (basic auth)
auth = requests.post(base + "/dna/system/api/v1/auth/token",
auth=("admin", "****"), verify=False)
token = auth.json()["Token"] # dict lookup
# 2. call the Intent API with the token
hdr = {"X-Auth-Token": token, "Accept": "application/json"}
resp = requests.get(base + "/dna/intent/api/v1/network-device", headers=hdr, verify=False)
if resp.status_code == 200: # block = indentation
data = resp.json() # JSON β dict
for dev in data["response"]: # list of dicts
print(dev["hostname"], dev["managementIpAddress"])
else:
print("Error", resp.status_code)
Valid vs invalid JSON OCG
// valid
{
"hostname": "R1",
"vlans": [10, 20],
"enabled": true,
"mgmt": {"ip": "10.0.0.1", "mask": null}
}
| Invalid | Why |
|---|---|
| {'vlan': 10} | single quotes |
| {vlan: 10} | unquoted key |
| {"vlan": 10,} | trailing comma |
| {"up": True} | booleans are lowercase |
| // comment | no comments in JSON |
YANG model β payload OCG
module example-interfaces {
namespace "urn:example:interfaces";
prefix "ex";
container interfaces { // groups nodes
list interface { // repeated, keyed
key "name";
leaf name { type string; } // one value
leaf enabled { type boolean; default true; }
leaf-list vlan { type uint16; } // many values
}
}
}
β JSON: {"example-interfaces:interfaces":{"interface":[{"name":"Gi1","enabled":true,"vlan":[10,20]}]}}
IETF + OpenConfig = multivendor Β· Cisco native = all features
Controller APIs: northbound and southbound CRAM Β· INE Β· OCG
| Catalyst Center | SD-WAN Manager | |
|---|---|---|
| Login | POST /dna/system/api/v1/auth/token | POST /j_security_check |
| Credential | X-Auth-Token header | JSESSIONID cookie (+ X-XSRF-TOKEN) |
| Example | GET /dna/intent/api/v1/network-device | GET /dataservice/device |
| Docs | Platform β Developer Toolkit | /apidocs |
HTTP response codes and payloads OCG
| Code | Meaning | Code | Meaning |
|---|---|---|---|
| 200 | OK | 400 | Bad request |
| 201 | Created | 401 | Not authenticated |
| 202 | Accepted (task) | 403 | Forbidden |
| 204 | No content | 404 | Not found |
| β | 500 / 503 | Server error / unavailable |
Async change: 202 β taskId β poll
{"response": [ {"hostname": "C9300-1", "role": "ACCESS"} ],
"version": "1.0"}
β data["response"][0]["hostname"] = "C9300-1"
RESTCONF GET β 200 OK
GET https://R1/restconf/data/ietf-interfaces:interfaces/interface=GigabitEthernet1
Accept: application/yang-data+json
{
"ietf-interfaces:interface": {
"name": "GigabitEthernet1",
"type": "iana-if-type:ethernetCsmacd",
"enabled": true,
"ietf-ip:ipv4": {"address": [{"ip": "10.1.1.1", "netmask": "255.255.255.0"}]}
}
}
β data["ietf-interfaces:interface"]["ietf-ip:ipv4"]["address"][0]["ip"] = "10.1.1.1"
RESTCONF error β 404
{"ietf-restconf:errors": {"error": [{
"error-type": "application",
"error-tag": "invalid-value",
"error-message": "uri keypath not found"}]}}
β wrong path/module name; 401 = credentials, 400 = bad body
EEM applet anatomy OCG Β· PCG Β· CRAM
syslog / cli / timer / none / track
cli "enable"
cli / syslog / mail
event manager applet WAN-UP event syslog pattern "Interface GigabitEthernet0/0, changed state to administratively down" action 1.0 cli command "enable" action 2.0 cli command "configure terminal" action 3.0 cli command "interface g0/0" action 4.0 cli command "no shutdown" action 4.5 cli command "end" action 5.0 syslog msg "g0/0 re-enabled by EEM" ! data collection every day at 23:00 event manager applet NIGHTLY event timer cron cron-entry "0 23 * * *" action 1.0 cli command "enable" action 2.0 cli command "show ip route summary | append flash:routes.txt" ! block a command: event cli pattern "debug ip packet" sync no skip yes ! manual: event none β event manager run NAME show event manager policy registered Β· show event manager history events
Agent vs agentless orchestration OCG Β· CRAM
| Puppet | Chef | Salt | Ansible | |
|---|---|---|---|---|
| Model | agent, pull | agent, pull | agent (Salt SSH agentless) | agentless, push |
| Language | Ruby | Ruby | Python | Python |
| Instructions | manifests | recipes / cookbooks | states / modules | playbooks (YAML) |
Idempotent: running the same playbook/manifest again changes nothing if the device is already in the desired state. Push vs pull: agentless tools act when you run them; agents check in on a schedule (Puppet every 30 min by default).
v1.2 dropped the tool names from this objective, so expect the agent vs agentless concept first; the tools remain the usual examples.
Exam facts
| Length | 120 min |
| Questions (not published; third-party estimate) | ~90β110 |
| Pass score (not published; third-party estimate) | ~825/1000 |
| v1.2 live since (third-party) | 19 Mar 2026 |
Weights: Architecture 15 Β· Virtualization 10 Β· Infrastructure 30 Β· Assurance 10 Β· Security 20 Β· Automation & AI 15. Removed vs v1.1: all wireless (RF, AP modes, roaming, WLAN security) and 802.1X/MAB/WebAuth NAC.
Ports (TCP/UDP)
| SSH / Telnet | TCP 22 / 23 |
| TACACS+ | TCP 49 |
| NTP | UDP 123 |
| SNMP poll / trap | UDP 161 / 162 |
| BGP | TCP 179 |
| HTTPS / RESTCONF | TCP 443 |
| IKE / NAT-T | UDP 500 / 4500 |
| Syslog | UDP 514 |
| MSDP | TCP 639 |
| NETCONF | TCP 830 |
| RADIUS auth / acct (legacy 1645/1646) | UDP 1812 / 1813 |
| PTP event / general | UDP 319 / 320 |
| LISP data / control | UDP 4341 / 4342 |
| VXLAN | UDP 4789 |
| SD-WAN control DTLS (INE) | UDP 12346+ |
IP protocol numbers
| GRE | 47 |
| ESP / AH | 50 / 51 |
| EIGRP | 88 |
| OSPF | 89 |
| PIM | 103 |
| VRRP | 112 |
1 Β· Architecture
Campus design and HA 1.1aβb Β· OCG ch22 Β· CRAM
| Hierarchy | access β distribution β core |
| 2-tier (collapsed core) | small campus / one building |
| Distribution switches per building block | max 2 (a pair) |
| Simplified campus | StackWise Virtual / VSS / stacking |
| NSF needs | SSO enabled first |
| Graceful Restart needs | routing-protocol extensions on peers |
| FHRP timers | HSRP 3/10 Β· VRRP 1/3 s |
| Fast failure detection | BFD (ms-level) |
Catalyst SD-WAN 1.2 Β· INE Β· OCG
| VPN 0 | transport (WAN) |
| VPN 512 | out-of-band management |
| Service VPNs | user traffic (e.g. 1, 10) |
| Controller DTLS | UDP 12346, +100 per core |
| TLOC | system IP + color + encap |
| Path probe in each tunnel | BFD |
SD-Access 1.3 Β· OCG Β· CRAM
| VXLAN VNI | 24 bit |
| SGT carried in VXLAN-GPO | 16 bit |
| Underlay built by LAN Automation | IS-IS |
| Border β fusion handoff | VRF-lite + BGP |
QoS marking fields 1.4 Β· INE Β· OCG
| 802.1Q CoS (PCP) | 3 bits, 0β7 |
| IP Precedence | 3 bits, 0β7 |
| DSCP | 6 bits, 0β63 |
| MPLS EXP | 3 bits |
| Voice CoS / DSCP | 5 / EF 46 |
| Shaping direction | outbound only |
DSCP grid: AF class Γ drop precedence 1.4
| Class | low (1) | med (2) | high (3) | CS |
|---|---|---|---|---|
| AF1x | 10 | 12 | 14 | CS1 8 |
| AF2x | 18 | 20 | 22 | CS2 16 |
| AF3x | 26 | 28 | 30 | CS3 24 |
| AF4x | 34 | 36 | 38 | CS4 32 |
2 Β· Virtualization
Virtualization and VRF 2.1 Β· 2.2a Β· OCG ch6, 27
| Type 1 (bare metal) | ESXi, KVM, Hyper-V |
| Type 2 (hosted) | VirtualBox, Workstation |
| Container vs VM | shared kernel vs own guest OS |
| Virtual switch | vSwitch Β· vDS Β· OVS |
| Default routing table | global (no VRF) |
| VRF-lite per hop | 1 interface/subinterface per VRF |
| Create / assign | vrf definition Β· vrf forwarding |
| Assigning a VRF | clears the interface IP |
| Verify | show vrf Β· show ip route vrf X Β· ping vrf X |
GRE and IPsec 2.2b Β· OCG
| GRE header (IP 20 + GRE 4) | 24 B |
| GRE tunnel MTU on 1500 B link | 1476 |
| With IPsec: ip mtu / tcp adjust-mss | 1400 / 1360 |
| IKEv1 Phase 1: main / aggressive | 6 / 3 messages |
| IKEv1 Phase 2 (quick mode) | 3 messages |
| IKEv2 IKE_SA_INIT + IKE_AUTH | 4 messages |
| IKE / NAT-T | UDP 500 / 4500 |
| ESP / AH / GRE | IP 50 / 51 / 47 |
LISP and VXLAN 2.3aβb Β· OCG ch16
| LISP data / control | UDP 4341 / 4342 |
| VXLAN (IANA) / old Linux | UDP 4789 / 8472 |
| VXLAN overhead | ~50 B |
| VNI vs VLAN ID | 24 bit vs 12 bit |
OCG notes some Linux builds still default to 8472; the exam answer is 4789.
3 Β· Infrastructure
VLANs and trunks 3.1a Β· CRAM Β· PCG
| VLAN 1 | default, can't delete |
| Normal range (CRAM) | 1β1001 |
| Reserved legacy (CRAM) | 1002β1005 |
| Extended range | 1006β4094 |
| 802.1Q tag | 4 B: 12-bit VID, 3-bit PCP |
| VTP v1/v2 propagate | 1β1005 only (v3: all) |
PCG calls 1β1005 the normal range; CRAM says 1β1001 plus 1002β1005 reserved. Both agree 1002β1005 aren't for users.
EtherChannel 3.1b Β· OCG ch5
| LACP system priority (default) | 32768, lower = primary |
| LACP port priority (default) | 32768, lower = active |
| Limit active members | lacp max-bundle N |
| Extra LACP members show | (H) hot-standby |
| Flags | P bundled Β· s suspended Β· I stand-alone Β· SU L2 in use |
STP 3.1c Β· OCG ch2β4
| Default bridge priority | 32768 |
| Priority steps | 4096 |
| root primary / secondary | 24576 / 28672 |
| Shown priority | set value + VLAN ID |
| MST instance 0 | IST (CIST) |
| RSTP: neighbor lost after | 3 missed hellos (6 s) |
STP port cost 3.1c
| Speed | Short (802.1D) | Long (802.1t) |
|---|---|---|
| 10 Mbps | 100 | 2,000,000 |
| 100 Mbps | 19 | 200,000 |
| 1 Gbps | 4 | 20,000 |
| 10 Gbps | 2 | 2,000 |
Which column applies depends on 'spanning-tree pathcost method'. Questions normally show the short values unless they say "long".
Timers 3.2β3.3
| OSPF hello/dead broadcast & p2p | 10 / 40 |
| OSPF hello/dead NBMA | 30 / 120 |
| EIGRP hello/hold (fast links) | 5 / 15 |
| HSRP hello/hold | 3 / 10 |
| VRRP advertisement | 1 s |
| STP hello / fwd delay / max age | 2 / 15 / 20 |
| BGP keepalive / hold | 60 / 180 |
OSPF 3.2aβb Β· OCG ch8β10
| States in order | Down β Init β 2-Way β ExStart β Exchange β Loading β Full |
| Priority default / never DR | 1 / 0 |
| Router ID order | manual β highest loopback β highest interface IP |
| Broadcast Β· P2P | 10/40, DR Β· 10/40, no DR |
| NBMA Β· P2MP | 30/120, DR Β· 30/120, no DR |
| Default reference bandwidth | 100 Mbps |
| OSPFv3 router ID | still 32-bit |
OSPF LSA types 3.2b
| Router (in area) | 1 |
| Network (DR, in area) | 2 |
| Summary (ABR, inter-area) | 3 |
| ASBR summary | 4 |
| External (ASBR) | 5 |
| NSSA external | 7 |
EIGRP 3.2a Β· OCG ch7
| Default K values | K1 = K3 = 1, others 0 |
| Metric (defaults) | 256 Γ (10β·/min BW + delay/10) |
| Feasibility condition | RD < FD |
| Unequal-cost load balancing | variance (FS only) |
| AD internal / external / summary | 90 / 170 / 5 |
BGP 3.2c Β· PCG Β· OCG ch11β12
| Weight default / locally originated | 0 / 32768 |
| Local Preference default | 100 (higher wins) |
| MED default | 0 (lower wins) |
| Origin preference | i (IGP) < e (EGP) < ? (incomplete) |
| AD eBGP / iBGP | 20 / 200 |
| eBGP TTL default | 1 |
| Message types | Open, Update, Keepalive, Notification |
| Best path | Weight β LP β local β AS-path β origin β MED β eBGP β IGP β oldest β RID |
| States | Idle β Connect β Active β OpenSent β OpenConfirm β Established |
Policy-based routing 3.2d Β· OCG ch6 Β· PCG
| route-map default sequence / action | 10 / permit |
| Match options | match ip address (ACL) Β· match length |
| Set options | ip next-hop Β· ip default next-hop Β· interface Β· default interface |
| Applied | ingress interface: ip policy route-map |
| Router-generated traffic | ip local policy route-map |
| No match / deny | normal routing |
| Verify | show ip policy Β· show route-map Β· debug ip policy |
NTP and PTP 3.3a Β· OCG Β· INE
| NTP port | UDP 123 |
| Valid strata | 1β15 (0 = reference clock) |
| Unsynchronized | stratum 16 |
| ntp master default stratum | 8 |
| Client stratum | source + 1 |
| PTP event / general | UDP 319 / 320 |
| PTP accuracy vs NTP | sub-Β΅s vs ms |
NAT 3.3b Β· OCG ch15 Β· CRAM
| Default translation timeout | 24 h (86400 s) |
| Change it | ip nat translation timeout s |
| PAT | many inside locals β 1 global, unique ports |
| Clear dynamic entries | clear ip nat translation * |
FHRP 3.3c Β· OCG ch15 Β· CRAM
| HSRP priority range / default | 0β255 / 100 |
| HSRP v1 groups / MAC | 0β255 / 0000.0c07.acXX |
| HSRP v2 groups / MAC | 0β4095 / 0000.0c9f.fXXX |
| VRRP default priority / owner | 100 / 255 |
| VRRP MAC / protocol | 0000.5e00.01XX / IP 112 |
| VRRP advert / hold | 1 s / 3 s |
| GLBP multicast | 224.0.0.102 (same as HSRPv2) |
Multicast addresses 3.3d
| All multicast | 224.0.0.0/4 |
| Link-local (TTL 1) | 224.0.0.0/24 |
| SSM | 232.0.0.0/8 |
| Administratively scoped | 239.0.0.0/8 |
| OSPF all / DR | 224.0.0.5 / .6 |
| EIGRP | 224.0.0.10 |
| PIM / BSR | 224.0.0.13 |
| VRRP | 224.0.0.18 |
| HSRP v1 / v2 | 224.0.0.2 / .102 |
| Auto-RP announce / discovery | 224.0.1.39 / .40 |
| Multicast MAC | 01:00:5E + low 23 bits |
IGMP and PIM 3.3d Β· OCG ch13
| General query sent to | 224.0.0.1 (all hosts) |
| IGMPv2 leave sent to | 224.0.0.2 (all routers) |
| IGMPv3 reports sent to | 224.0.0.22 |
| Max response time default | 10 s |
| Query interval | Cisco 60 s Β· RFC 125 s |
| Querier election | lowest IP |
| PIM DR election | highest priority (default 1), then highest IP |
| SPT switchover default | after the first packet |
OCG uses the Cisco IOS 60 s query interval; the IGMP RFC default is 125 s.
4 Β· Network Assurance
Syslog severities 4.1 Β· OCG
| 0 Emergency Β· 1 Alert | unusable / act now |
| 2 Critical Β· 3 Error | critical / error |
| 4 Warning Β· 5 Notification | warning / normal but significant |
| 6 Informational Β· 7 Debugging | info / debug |
| logging trap N sends | levels 0 β¦ N |
SNMP versions 4.1
| Version | Security |
|---|---|
| v1 / v2c | community string in clear text |
| v3 noAuthNoPriv | username only |
| v3 authNoPriv | HMAC authentication |
| v3 authPriv | authentication + encryption |
NetFlow, SPAN, IP SLA 4.2β4.4 Β· OCG Β· PCG
| NetFlow export versions | v5 fixed Β· v9 template Β· IPFIX (v10) |
| IPFIX IANA port | UDP 4739 |
| Collector port examples | UDP 2055 / 9995 / 9996 |
| ERSPAN encapsulation | GRE (IP 47) |
| SPAN source default | both (rx + tx) |
| IP SLA won't run without | ip sla schedule |
| IOS traceroute probes | UDP, high ports, TTL +1 |
Catalyst Center 4.5 Β· CRAM Β· INE Β· CISCO-DS
| Workflow sections | Design Β· Policy Β· Provision Β· Assurance |
| Healthy device/client score | 8β10 (of 10) |
| Client health recalculated | every 5 min |
| Onboarding score | 4 = connected Β· 0 = failed |
| Day-0 onboarding | PnP Β· LAN Automation (IS-IS underlay) |
| Images | SWIM golden image |
| AI baselining | AI Network Analytics |
| AI root cause | Machine Reasoning Engine |
| Natural language | Cisco AI Assistant |
NETCONF / RESTCONF 4.6 Β· OCG Β· CRAM
| NETCONF | SSH TCP 830, XML |
| RESTCONF | HTTPS 443, XML/JSON |
| RESTCONF media type | application/yang-data+json |
| NETCONF datastores | running Β· candidate Β· startup |
| Required user level | privilege 15 |
5 Β· Security
ACL numbers and wildcards 5.2a
| Standard IPv4 | 1β99, 1300β1999 |
| Extended IPv4 | 100β199, 2000β2699 |
| /24 wildcard | 0.0.0.255 |
| /26 wildcard | 0.0.0.63 |
| /20 wildcard | 0.0.15.255 |
Password types and privilege levels 5.1a
| Type 0 (clear) | 0 |
| MD5 (enable secret default on older IOS) | 5 |
| Reversible (service password-encryption) | 7 |
| PBKDF2-SHA256 | 8 |
| scrypt (strongest) | 9 |
| Privilege: user EXEC / privileged | 1 / 15 |
Device access and AAA 5.1aβb Β· OCG ch26
| TACACS+ | TCP 49, full body encrypted |
| RADIUS (RFC / legacy) | UDP 1812-1813 / 1645-1646 |
| SSH v2 minimum RSA key | 768 bit (2048 recommended) |
| VTY lines | 0β4 (often 0β15) |
| AAA fallback to next method | only on error / no answer |
CoPP 5.2b Β· OCG ch26
| Applied under | control-plane |
| Direction | service-policy input |
| Affects | only traffic punted to the CPU |
| Typical action | police (bps) conform transmit / exceed drop |
| ACL permit in a class | = match this class |
| Typical classes | routing Β· management Β· ICMP Β· undesirable Β· class-default |
| Verify | show policy-map control-plane |
REST API security 5.3 Β· CRAM Β· INE
| Transport | HTTPS / TLS 443 |
| Basic auth | base64 user:password (not encrypted) |
| Catalyst Center credential | X-Auth-Token header |
| SD-WAN Manager credential | JSESSIONID cookie + X-XSRF-TOKEN |
| Not authenticated / not allowed | 401 / 403 |
| Too many requests (rate limit) | 429 |
| Good practice | RBAC Β· OAuth scopes Β· token expiry Β· logging |
Security design products 5.4aβc Β· OCG ch25 Β· CRAM
| DNS-layer blocking | Umbrella |
| Threat intelligence | Talos |
| Flow-based detection | Secure Network Analytics (NetFlow) |
| Endpoint malware | Secure Endpoint (AMP) |
| Posture / identity / SGT | ISE + Secure Client |
| NGFW | Secure Firewall (FTD) + FMC |
| NGFW adds | AVC Β· NGIPS Β· URL Β· malware |
TrustSec and MACsec 5.4d Β· CRAM Β· OCG
| SGT size | 16 bit |
| SXP transport | TCP, speaker β listener |
| MACsec EtherType | 0x88E5 |
| MACsec SecTAG + ICV | 16 + 16 B |
6 Β· Automation and AI
Python and JSON 6.1 Β· 6.2 Β· OCG ch28
| list / dict / tuple | [ ] / { } / ( ) |
| First / last index | [0] / [-1] |
| Python booleans / empty | True, False / None |
| JSON booleans / empty | true, false / null |
| JSON object β Python | dict |
| JSON array β Python | list |
| String β data | json.loads / json.dumps |
| HTTP call | requests.get(url, headers=β¦).status_code / .json() |
| JSON quotes | double only Β· no trailing comma Β· no comments |
YANG and model RFCs 6.3 Β· OCG ch28
| Groups nodes, no value | container |
| Repeated entries with a key | list |
| One value / many values | leaf / leaf-list |
| YANG 1.0 / 1.1 | RFC 6020 / RFC 7950 |
| NETCONF / RESTCONF | RFC 6241 / RFC 8040 |
| Multivendor models | IETF Β· OpenConfig |
| Encodings | XML (NETCONF) Β· XML/JSON (RESTCONF) |
Controller API paths 6.4 Β· CRAM Β· INE Β· OCG
| Catalyst Center token | POST /dna/system/api/v1/auth/token |
| Catalyst Center devices | GET /dna/intent/api/v1/network-device |
| Catalyst Center task | GET /dna/intent/api/v1/task/{taskId} |
| SD-WAN Manager login | POST /j_security_check |
| SD-WAN Manager XSRF token | GET /dataservice/client/token |
| SD-WAN Manager devices | GET /dataservice/device |
| SD-WAN Manager docs | /apidocs |
| Northbound / southbound | REST to apps / NETCONF, SSH, SNMP to devices |
HTTP codes 6.5
| OK / Created / Accepted / No content | 200 / 201 / 202 / 204 |
| Bad request / Unauthorized / Forbidden / Not found | 400 / 401 / 403 / 404 |
| Server error / Unavailable | 500 / 503 |
EEM 6.6 Β· OCG ch29 Β· PCG Β· INE
| Event detectors | syslog Β· cli Β· timer (cron, watchdog) Β· none Β· track Β· snmp Β· interface |
| Run manually | event none β event manager run NAME |
| Block a typed command | event cli β¦ sync no skip yes |
| Run before the command | sync yes |
| First CLI action | cli command "enable" |
| Last CLI output | $_cli_result |
| Email variables | _email_server Β· _email_to Β· _email_from Β· _email_cc |
| Suppress confirmations | file prompt quiet |
| Verify | show event manager policy registered Β· history events |
Action labels are compared as text, so keep them the same width (1.0, 1.5, 2.0 β¦ or 010, 020) to keep the order you expect.
Orchestration tools 6.7 Β· CRAM Β· OCG ch29
| Puppet | agent pull Β· manifests Β· Ruby Β· TCP 8140 |
| Chef | agent pull Β· recipes / cookbooks Β· Ruby |
| SaltStack | minions (agent) Β· Python Β· TCP 4505/4506 Β· Salt SSH agentless |
| Ansible | agentless push Β· playbooks (YAML) Β· Python Β· SSH 22 |
| Puppet Bolt | agentless Puppet |
| Common property | idempotent |
HTTP methods 6.5 Β· OCG
| Create / Read | POST / GET |
| Replace / Merge | PUT / PATCH |
| Delete | DELETE |
All domains
Administrative distance
| Connected | 0 |
| Static | 1 |
| eBGP | 20 |
| EIGRP internal | 90 |
| OSPF | 110 |
| IS-IS | 115 |
| RIP | 120 |
| EIGRP external | 170 |
| iBGP | 200 |
| Unknown / unusable | 255 |
Overheads and sizes
| GRE header (IP 20 + GRE 4) | 24 B |
| VXLAN encapsulation | ~50 B |
| MACsec SecTAG + ICV (CRAM) | 16 + 16 B |
| VXLAN VNI / VLAN ID | 24 bit / 12 bit |
| HSRP groups v1 / v2 | 0β255 / 0β4095 |
| Syslog levels | 0 emerg β¦ 7 debug |
βοΈ Where the books differ
β± Exam-day plan
Architecture: must know
1.1a Access = hosts, marking, port security Β· Distribution = L2/L3 boundary, FHRP, summary, policy Β· Core = fast, no policy
1.1b Redundancy: dual links, PSUs, supervisors Β· FHRP = gateway redundancy Β· SSO = standby RP synced Β· NSF/GR = keep forwarding Β· StackWise Virtual = one logical switch + MEC Β· BFD = sub-second detection
1.2a SD-WAN planes: Validator (vBond) orchestration β Manager (vManage) management β Controller (vSmart) control, OMP over DTLS β WAN Edge data, IPsec + BFD Β· TLOC = system IP + color + encap
1.2b Benefits: any transport, App-Aware Routing (BFD SLA), ZTP, central policy, segmentation (VPN 0 transport, 512 mgmt) Β· Limits: needs controllers + PKI, overlay overhead, licensing, migration effort
1.3a SD-Access: LISP control (control plane node = MS/MR, HTDB) Β· VXLAN data (VN + SGT) Β· TrustSec policy Β· Catalyst Center management Β· edge = anycast gateway Β· border = exit Β· intermediate = underlay only
1.3b Traditional interop: border β fusion router via VRF-lite + BGP (leaks shared services) Β· L2 handoff extends a fabric subnet to a legacy VLAN Β· IP transit vs SD-Access transit
1.4 QoS: class-map (match-all = AND, default) β policy-map β service-policy Β· priority = LLQ, policed in congestion Β· bandwidth = minimum Β· police drops/re-marks Β· shape buffers, outbound only Β· parent shape + child queues
Virtualization: must know
2.1b VM = vCPU, RAM, disk, vNIC + own guest OS, stored as files Β· container = shares the host kernel, lighter
2.1c Virtual switching: vSwitch / vDS / OVS connects vNICs to port groups (VLANs) and uplinks to the physical NIC trunk
2.2a VRF = separate routing table Β· vrf definition + address-family Β· vrf forwarding removes the IP Β· show ip route vrf X Β· ping vrf X Β· VRF-lite = per-hop, no MPLS
2.2b GRE IP 47, 24 B, carries multicast/IGP Β· ESP 50 Β· IKE UDP 500/4500 Β· Phase 1 = IKE SA, Phase 2 = IPsec SA Β· VTI = tunnel mode ipsec ipv4 Β· recursive routing = dest via tunnel
2.3a LISP: EID (who) / RLOC (where) Β· ETR Map-Register β MS Β· ITR Map-Request β MR β Map-Reply Β· data UDP 4341, control 4342 Β· PxTR = to non-LISP
2.3b VXLAN: MAC-in-UDP 4789 Β· 24-bit VNI β 16 M Β· VTEP encaps/decaps Β· ~50 B overhead β jumbo underlay Β· control plane = BGP EVPN or LISP
Infrastructure: must know
3.1b Static = on Β· LACP active/passive (std) Β· PAgP desirable/auto Β· passive+passive / auto+auto = nothing Β· members must match Β· (s) suspended, (I) stand-alone
3.1c RSTP roles root/designated/alternate/backup, states discarding/learning/forwarding Β· root = lowest BID Β· MST region = name + revision + map Β· BPDU Guard β err-disabled Β· Root Guard β root-inconsistent
3.2a EIGRP = advanced distance vector (DUAL, FS: RD < FD, variance = unequal cost) Β· OSPF = link state (LSDB + SPF, equal cost only)
3.2a Metric: EIGRP = min BW + total delay Β· OSPF cost = ref BW / BW (100 Mbps default: 1 G = 10 G) Β· AD 90/170 vs 110 Β· areas: normal, stub (no type 5), totally stubby (default only), NSSA (type 7)
3.2b Adjacency: area, subnet, hello/dead, auth, stub flags must match Β· MTU β stuck EXSTART Β· broadcast = DR/BDR (priority, then RID, no preempt) Β· point-to-point = no DR Β· passive = no hellos
3.2b area range (ABR) Β· summary-address (ASBR) Β· filter-list = type 3 Β· distribute-list = local RIB only Β· OSPFv3: per interface, IPv6 AF, 32-bit RID
3.2c eBGP neighbor remote-as, TCP 179, TTL 1 β multihop + update-source Β· states Idle β Connect β Active β OpenSent β OpenConfirm β Established Β· network = exact RIB match
3.2c Best path: Weight β Local Pref β local β AS-path β origin β MED β eBGP > iBGP β IGP β oldest β RID Β· * valid, > best
3.2d PBR: route-map + ip policy on the ingress interface Β· no match = normal routing Β· own traffic = ip local policy Β· verify-availability + track
3.3a NTP: * sys.peer, + candidate Β· stratum = source + 1, 16 = unsynced Β· ntp master N Β· PTP: GM (BMCA) Β· BC = new hop Β· TC = adds residence time Β· UDP 319/320
3.3b NAT: inside local (private) β inside global (public) Β· ip nat inside / outside on the right interfaces Β· overload = PAT Β· static for inbound Β· timeout 24 h
3.3c HSRP: pri 100, highest wins, preempt off, 224.0.0.2/.102 Β· VRRP: standard, preempt on, 224.0.0.18 Β· track + decrement + preempt on the peer
3.3d RPF fail = drop Β· PIM-SM: RP, shared tree β SPT Β· IGMPv2 group / v3 group + source Β· SSM 232/8, no RP Β· Bidir = shared only Β· MSDP TCP 639 between RPs Β· DR = highest IP, querier = lowest IP
Assurance: must know
4.2 FNF: record (match = key, collect = data) β exporter (dest, port, version) β monitor β ip flow monitor M input
4.3 SPAN local Β· RSPAN = remote-span VLAN over trunks Β· ERSPAN = GRE over L3 (no shutdown) Β· destination port = no normal traffic
4.4 IP SLA needs schedule Β· track β static route β floating backup (AD 250) Β· udp-jitter needs ip sla responder
4.5 Traditional = CLI box by box Β· Catalyst Center = Design β Policy β Provision (PnP, templates, SWIM) β Assurance Β· AI: AI Network Analytics (baselines), MRE (root cause), AI Assistant (natural language)
4.6 NETCONF SSH 830, XML, candidate + commit (netconf-yang) Β· RESTCONF HTTPS, JSON/XML, PATCH merges (restconf + ip http secure-server) Β· user priv 15
Security: must know
5.1a SSH needs hostname + ip domain-name + crypto key generate rsa (β₯ 768, 2048) + ip ssh version 2
5.1b AAA: aaa new-model Β· authentication (login), authorization (exec, commands), accounting Β· TACACS+ TCP 49, full encryption, per-command Β· RADIUS UDP 1812/1813, password only Β· fallback only if the server doesn't answer
5.2a ACL: standard near dest, extended near source Β· top-down, first match Β· implicit deny Β· one per interface/direction/protocol Β· VACL in VLAN (permit = match)
5.2b CoPP: class-maps (ACL permit = match) β police β control-plane / service-policy input Β· don't starve routing/mgmt Β· show policy-map control-plane
5.3 REST API: HTTPS only Β· token (X-Auth-Token, expires β 401) Β· OAuth = scoped tokens Β· API keys Β· RBAC least privilege (403) Β· rate limiting Β· input validation Β· logging
5.4a Threat defense: Umbrella (DNS layer) Β· Secure Network Analytics (NetFlow) Β· Talos (intel) Β· Secure Malware Analytics/NGIPS
5.4b Endpoint: Secure Endpoint (AMP: malware, retrospection) Β· ISE posture with Secure Client β quarantine non-compliant
5.4c NGFW: stateful + AVC + NGIPS + URL + malware (Secure Firewall, FMC) vs classic = state/NAT/ACL only
5.4d TrustSec: classify (ISE) β propagate (inline / SXP) β enforce (SGACL, egress) Β· MACsec 802.1AE hop-by-hop, 0x88E5, MKA Β· IPsec = L3 end-to-end
Automation & AI: must know
6.2 JSON: { } object, [ ] array, double quotes, true/false/null lowercase, no trailing comma, no comments
6.3 YANG: module β container β list (key) β leaf / leaf-list Β· structure vs encoding (XML/JSON) Β· IETF/OpenConfig multivendor, Cisco native = all features
6.4 Catalyst Center: POST /dna/system/api/v1/auth/token β X-Auth-Token Β· Intent API /dna/intent/api/v1/β¦ Β· Integration, events/webhooks Β· SD-WAN Manager: POST /j_security_check β JSESSIONID, /dataservice/β¦ Β· NB = REST, SB = NETCONF/SSH/SNMP
6.5 200 OK Β· 201 Created Β· 202 Accepted (taskId β poll) Β· 204 No Content Β· 400 Β· 401 not authenticated Β· 403 forbidden Β· 404 not found Β· 500 Β· payload: data['response'][0]['hostname']
6.6 EEM: event manager applet β one event (syslog pattern / cli pattern sync+skip / timer cron / none / track) β actions in label order, action 1.0 cli command "enable" first Β· $_cli_result
6.7 Agent-based = installed SW pulls (Puppet manifests, Chef recipes, Salt minions) Β· agentless = push over SSH/NETCONF (Ansible playbooks, Puppet Bolt, Salt SSH) Β· idempotent