Cisco ACLs – The Hard Way

Apparently, my Norwegian/German brain only learns things the hard way, so here’s a little tip on writing ACLs.

If you’re specifying ports, the order in which you put the source, destination and ports is important. I was walking my way through some ACLs tonight, using the Cisco Help (/? or just ?) liberally. According to Cisco Help, this cmd was perfectly acceptable:

conf t

ip access-list extended WebAccess

permit tcp 10.0.150.0 0.0.0.255 eq 80 any

Unforutnately, that didn’t let ANYTHING through! Took me one drink to figure out that the any destination comes before the port designation of eq 80. Confusing at first, especially since the little router was perfectly happy with this (and about eight) other statements just like it. So, this was what made all the packet flow the right way:

permit tcp 10.0.150.0 0.0.0.255 any eq 80

Note to self – ACL cmd goes like this:

permit or deny – protocol – source – dest – port designation – options

Leave a comment