PracticeLabs
Week 7Lesson 1Required59 min estimated0% progress

Standard and Extended ACLs

Read and write standard and extended IPv4 ACLs — choosing the right type, wildcard mask, rule order, direction, and placement — then verify with show access-lists and repair an ACL that blocks the wrong traffic.

Lesson orientation

What you'll learn (6 objectives)~59 min: video → lesson → check → apply → lab prep

Learning objectives

  • Choose standard vs extended based on whether the filter needs only a source or also destination, protocol, and port
  • Translate a subnet into the correct wildcard mask and use the host and any keywords
  • Predict how top-down first-match evaluation and the implicit deny decide a packet's fate
  • Place an ACL and pick a direction using the near-destination (standard) and near-source (extended) rules
  • Configure a numbered and a named ACL, apply it with ip access-group, and verify with show access-lists
  • Diagnose an ACL that blocks legitimate traffic and correct the order, direction, or placement

Terms you will see

ACLACEStandard ACLExtended ACLWildcard maskhost / anyImplicit denyFirst match winsip access-groupaccess-class

Time breakdown

  • Read the notes26 min
  • Walk the worked ACL and its verification14 min
  • Practise wildcard selection8 min
  • Repair the misplaced ACL11 min

Assigned video

Opens on YouTube
Recommended video

Standard ACLs (Day 34)

By Jeremy's IT Lab · Opens externally on YouTube

Assigned watch
~8 min

Where to stop

Skip the course-wide intro if you are continuing from the wildcard-mask lesson; the ACL logic, wildcard, and placement discussion is the core.

The source marks this segment timestampStatus="unresolved" with no start or end, so no bounds are shown here.

The link opens in a new browser tab. Return here when you finish watching.

Watch for these concepts

  • How a standard ACL matches source only, and why that forces near-destination placement
  • How the wildcard mask selects a subnet versus a single host

Go beyond the video

The assigned video introduces the idea. CCNA Practice Labs completes the learning path: clarify core concepts, explore how each device behaves, visualize the communication path, check your understanding, and prepare for hands-on lab work.

Watch the concept → understand it → visualize it → practice it → apply it.

Two families, and how the router reads a list

An Access Control List is an ordered list of permit and deny rules the router tests against each packet. Every CCNA IPv4 ACL is either standard or extended, and the difference is simply the set of packet fields it is allowed to look at.

Standard versus extended
TypeNumber rangeMatchesUse it when
Standard1-99, 1300-1999Source IP onlyYou care only about who sent it — "only the management subnet may reach these devices"
Extended100-199, 2000-2699Source IP, destination IP, protocol, portYou care about the specific flow — "block Telnet to that server but allow everything else"

A standard ACL physically cannot mention a destination or a port. access-list 10 permit 10.10.10.0 0.0.0.255 says "traffic from that subnet is permitted" and nothing whatsoever about where it is going. An extended ACL adds the Layer 3 and 4 detail: access-list 100 deny tcp any host 10.10.30.10 eq 23 reads as "deny TCP, from anyone, to that one host, destined for port 23".

Top-down, first match wins, then evaluation stops
Each rule is an Access Control Entry, and the router tests them in order. The instant a packet matches an ACE, that ACE's permit or deny is applied and the search ends — the router does not keep looking for a better match the way longest-prefix match does. This is the single most important behavioural difference between an ACL and a routing table, and almost every ordering bug traces back to forgetting it.
The implicit deny you never type
Every ACL ends with an invisible deny any. A packet matching no explicit ACE is dropped, and two consequences follow directly. An ACL made only of permit statements still blocks everything you did not explicitly permit. And an ACL with no permit at all drops every packet on that interface — so if you apply an ACL and connectivity dies completely, suspect a missing permit before you suspect anything else.

Order turns a correct rule into dead code. To deny one host but permit the rest of its subnet, the specific rule must sit above the broad one. Write permit 10.10.10.0 0.0.0.255 first and the host's packets match it at the top — the deny below is never reached and never fires. show access-lists proves it: an ACE with zero hits while its traffic is clearly flowing is an ACE the router never reaches.

Wildcard masks, direction, and the placement rule

An ACL selects addresses with a wildcard mask, the inverse of a subnet mask: a 0 bit means this bit must match, a 1 bit means do not care. This is the same inverse-mask arithmetic OSPF network statements use.

Wildcard masks and their shorthands
GoalAddress + wildcardShorthand
One host10.1.1.10 0.0.0.0host 10.1.1.10
Whole /24 subnet10.1.1.0 0.0.0.255
Any address0.0.0.0 255.255.255.255any
Four subnets 10.1.0.0-10.1.3.010.1.0.0 0.0.3.255

The classic trap is writing the subnet mask instead of its inverse: the wildcard for a /24 is 0.0.0.255, not 255.255.255.0.

Direction matters for efficiency. An inbound ACL is checked before the router makes its forwarding decision, so a denied packet is discarded without ever being routed. An outbound ACL is checked after routing, at the exit interface. You get one ACL per interface per direction — one in, one out — and cannot stack two inbound ACLs on the same interface.

Placement — this is the graded skill
ACL typePlace itWhy
StandardNear the destinationIt matches source only. Near the source it would block that source from everything, not just the one destination you meant.
ExtendedNear the sourceIt matches the exact flow, so unwanted traffic can be dropped early, before it consumes links across the network.
Interface ACLs do not filter the router's own traffic
Traffic the router originates itself — a ping or a Telnet typed at its own CLI — is not filtered by interface ACLs, which only see transit traffic. To restrict management sessions *to* the router, filter the VTY lines with access-class, not ip access-group. This is the same ACL skill pointed at the management plane, and it is the bridge into the next lesson.

Build it, apply it, read the hit counts

Goal: block Telnet from the user subnet to one server, and permit everything else. That needs a destination and a port, so it is extended — and extended goes near the source.

A named extended ACL applied near the source
R1(config)# ip access-list extended BLOCK-TELNET
R1(config-ext-nacl)# deny tcp 10.10.20.0 0.0.0.255 host 10.10.30.10 eq 23
R1(config-ext-nacl)# permit ip any any
R1(config-ext-nacl)# exit
!
! Apply inbound on the interface facing the user subnet
R1(config)# interface GigabitEthernet0/1
R1(config-if)# ip access-group BLOCK-TELNET in
show access-lists
R1# show access-lists
Extended IP access list BLOCK-TELNET
    10 deny tcp 10.10.20.0 0.0.0.255 host 10.10.30.10 eq telnet (4 matches)
    20 permit ip any any (37 matches)
  • 10 and 20 are auto-assigned sequence numbers. ACEs number in tens so you can insert a 15 between them later.
  • The deny line reads: protocol tcp, source the /24 (wildcard 0.0.0.255), destination the single server (host = wildcard 0.0.0.0), port eq telnet, which is 23. IOS echoes well-known ports by name.
  • (4 matches) is the hit counter. Four Telnet attempts were dropped. A deny ACE stuck at zero while its traffic is clearly flowing means those packets matched an earlier line instead.
  • permit ip any any is the explicit catch-all keeping every other flow alive. Without it the implicit deny would drop non-Telnet traffic too.
  • show ip interface GigabitEthernet0/1 | include access list confirms which ACL is bound and in which direction — the fastest way to catch an ACL on the wrong interface or facing the wrong way.
Troubleshooting — the ACL that blocked everything
Symptom: after applying an inbound extended ACL meant to deny only Telnet, users report that nothing works at all — ping, web, and Telnet all fail. Diagnosis: show access-lists shows a single explicit line, the deny, with no permit beneath it. Every packet that is not the denied flow falls through to the implicit deny and is dropped. show ip interface confirms the binding is on the right interface in the right direction, so placement is fine and the list itself is simply incomplete. Fix: add permit ip any any as the last ACE. Non-Telnet flows recover, Telnet still hits the deny above, and the permit line should immediately start accumulating the bulk of the hits.

What you should retain

  • Standard (1-99, 1300-1999) matches source only, so place it near the destination.
  • Extended (100-199, 2000-2699) matches source, destination, protocol, and port, so place it near the source.
  • Wildcard mask: 0 means must match, 1 means do not care. A /24 is 0.0.0.255; host is 0.0.0.0; any is 255.255.255.255.
  • Top-down, first match wins, then stop — put specific ACEs above general ones.
  • An implicit deny any ends every list, so an ACL with no permit drops everything.
  • Verify with show access-lists for hit counts and show ip interface for which ACL and which direction.
  • Interface ACLs never filter the router's own originated traffic; use access-class on the VTY lines for that.
Pause and predictNot scored — nothing is recorded

Before you read on

An admin wants to stop the HR subnet 10.10.20.0/24 reaching the finance subnet 10.10.30.0/24, and writes access-list 20 deny 10.10.20.0 0.0.0.255 / access-list 20 permit any, applied inbound on HR's own LAN interface. HR now cannot reach finance — but they have also lost internet access and the printer VLAN. What went wrong, and how do you fix it? Separately: what single address-and-wildcard pair matches every address in 172.16.8.0/22?

Interactive tool
Required~14 min

ACL Tools

Assemble this ACE set in the trainer and step a few packets through it. Watch the evaluation stop at the first match, and watch the implicit deny catch a packet that matched nothing — seeing it fire is worth more than reading about it.

Section quiz follows Lesson 2, once the management plane has been hardened as well as the data path.

Study deeper

Topic guides extend this lesson — they do not replace the first-party walkthrough above.

ACLs

For the full standard-versus-extended reference, placement diagrams, and a symptom-to-cause troubleshooting table