IP Access List Matcher: which ACL line permits or denies an address
Paste an access list and an address or prefix, and get the verdict with the exact entry that produced it — including the implicit rules your platform applies but never prints.
- The line, not just the answerpermit or deny, and the exact entry that decided it, with every earlier line and why it did not match.
- Five platforms, their real behaviourIOS and IOS-XE, NX-OS, IOS-XR, Arista EOS and Junos, including the implicit rules each one applies but never shows in the configuration.
- Prefixes split, exactlyask about 10.0.0.0/16 and get the parts back one by one when different lines own different halves of it.
- It says when it cannot be surea line testing a protocol or port you did not give is reported as conditional rather than assumed away.
- Prefix lists tooge, le and eq windows, and Junos route filters with their longest-match rule, with the reason an entry missed.
- Nothing leaves your browserthe whole matcher runs client-side. No upload, no account, works offline.
Part of the same toolkit as the IPv4 & IPv6 subnet calculator, the MAC address lookup and the data unit converter.
40 permit ip 10.20.0.0 0.0.255.255 any- seq 20permit
20 permit tcp 10.20.0.0 0.0.255.255 host 10.0.0.10 eq 22applies when protocol tcp, and destination port eq 22, and destination host 10.0.0.10
| Line | Entry | Outcome |
|---|---|---|
| seq 20 | 20 permit tcp 10.20.0.0 0.0.255.255 host 10.0.0.10 eq 22protocol tcp · source 10.20.0.0 0.0.255.255 · destination host 10.0.0.10 · eq 22 | conditional matches on address, but only for packets where protocol tcp and destination port eq 22 and destination host 10.0.0.10 |
| seq 30 | 30 deny ip 10.20.99.0 0.0.0.255 anysource 10.20.99.0 0.0.0.255 | no match no address in 10.20.5.5 is inside 10.20.99.0 0.0.0.255 |
| seq 40 | 40 permit ip 10.20.0.0 0.0.255.255 anysource 10.20.0.0 0.0.255.255 | decides permits the whole of 10.20.5.5 |
| seq 50 | 50 deny ip any any logmatches everything | not reached every address in the query was already decided by an earlier line |
| implicit | deny ip any anymatches everything | not reached every address in the query was already decided by an earlier line |
- Traffic matching no entry hits the implicit deny at the end of the list.
ip prefix-list AS65000-IN seq 20 deny 0.0.0.0/0 le 32| Entry | Matches | Lengths | Outcome |
|---|---|---|---|
| seq 5deny | 0.0.0.0/0 | /0 | wrong length the candidate is /25, and this entry accepts /0 |
| seq 10permit | 10.0.0.0/8 le 24 | /8 to /24 | wrong length the candidate is /25, and this entry accepts /8 to /24 |
| seq 15permit | 192.168.0.0/16 ge 24 le 28 | /24 to /28 | wrong network the first 16 bits differ from 192.168.0.0 |
| seq 20deny | 0.0.0.0/0 le 32 | /0 to /32 | match inside 0.0.0.0/0 and /25 is within /0 to /32 |
- Entries are evaluated in sequence order and the first match wins.
- A prefix matching no entry hits the implicit deny at the end of the list.
- With no ge or le, an entry matches only prefixes of exactly its own length.