Modifiera IPv4 ACL

Efter att en ACL har konfigurerats kan det bli nödvändigt att ändra den. ACL:er med flera ACE-poster kan vara komplexa att konfigurera. Ibland leder den konfigurerade ACE-posten inte till de förväntade beteendena. Av dessa anledningar kan ACL:er initialt kräva modifieringar för att uppnå det önskade filtreringsresultatet. I detta avsnitt diskuteras två metoder för att modifiera en ACL:

  • Textredigerare
  • Sekvensnummer

Textredigerare

ACL:er med flera ACE-poster bör skapas i en textredigerare. Detta möjliggör att du kan planera de nödvändiga ACE-instruktioner, skapa ACL och sedan klistra in den i routerns nödvändig läge. Det förenklar också uppgifterna att redigera och korrigera en ACL.

Anta till exempel att ACL 1, som är avsedd att reglera internetåtkomst, felaktigt registrerades med 19 istället för 192 som den första oktetten för att endast blockera datorn 192.168.10.10, vilket visas i den aktuella konfigurationen.

R1# show run | section access-list
access-list 1 deny 19.168.10.10
access-list 1 permit 192.168.10.0 0.0.0.255
R1#

För att rätta till felet:

  • Kopiera ACL från den aktuella konfigurationen på routern R1 och klistra in den i textredigeraren.
  • Gör nödvändiga ändringar.
  • Ta bort den tidigare konfigurerade ACL på routern, annars kommer de redigerade ACE-poster bara att läggas till (dvs. adderas) till de befintliga ACL på routern.
  • Kopiera och klistra in den redigerade ACL tillbaka till routern.

Anta att ACL 1 nu har korrigerats. Den felaktiga ACL raderas och de korrigerade ACL 1 måste klistras in i det globala konfigurationsläget. Se exemplet nedan:

R1(config)# no access-list 1
R1(config)#
R1(config)# access-list 1 deny 192.168.10.10
R1(config)# access-list 1 permit 192.168.10.0 0.0.0.255
R1(config)#

Sekvensnummer

En ACE-post i en ACL kan även tas bort eller läggas till genom att använda ACL:s sekvensnummer. Sekvensnummer tilldelas automatiskt när en ACE matas in. Dessa nummer listas i kommandot show access-lists. Kommandot show running-config visar inte sekvensnummer.

I det tidigare exemplet använder den felaktiga ACE för ACL 1 sekvensnummer 10, som visas i exemplet.

R1# show access-lists
Standard IP access list 1
10 deny 19.168.10.10
20 permit 192.168.10.0, wildcard bits 0.0.0.255
R1#

Använd kommandot ip access-list standard för att redigera en ACL. ACE-poster kan inte skrivas över en befintlig ACE med samma sekvensnummer. Därför måste den aktuella ACE först tas bort med kommandot no 10. Sedan kan den korrekta ACE läggas till med samma sekvensnummer 10. Verifiera ändringarna med kommandot show access-lists, som visas i exemplet.

R1# conf t
R1(config)# ip access-list standard 1
R1(config-std-nacl)# no 10
R1(config-std-nacl)# 10 deny host 192.168.10.10
R1(config-std-nacl)# end
R1# show access-lists
Standard IP access list 1
10 deny 192.168.10.10
20 permit 192.168.10.0, wildcard bits 0.0.0.255
R1#

Modifiera namngiven ACL exempel

Namngivna ACL kan också använda sekvensnummer för att ta bort och lägga till ACE. Se exemplet för ACL NO-ACCESS.

R1# show access-lists
Standard IP access list NO-ACCESS
10 deny 192.168.10.10
20 permit 192.168.10.0, wildcard bits 0.0.0.255

Antag att datorn 192.168.10.5 från nätverket 192.168.10.0/24 också borde ha nekats. Om du hade lagt till en ny ACE skulle den läggas till i slutet av ACL NO-ACCESS. Därför skulle datorn aldrig nekas eftersom ACE 20 tillåter alla datorer från det nätverket.

Lösningen är att lägga till en ACE-post som nekar datorn 192.168.10.5 mellan ACE 10 och ACE 20, som ACE 15, som visas i exemplet. Observera också att den nya ACE-posten lades till utan att använda nyckelordet ”host”. Nyckelordet är valfritt när en destinationsdator specificeras.

R1# configure terminal
R1(config)# ip access-list standard NO-ACCESS
R1(config-std-nacl)# 15 deny 192.168.10.5
R1(config-std-nacl)# end
R1#

Använd kommandot ”show access-lists” för att verifiera att ACL nu har en ny ACE 15 insatt korrekt före ACE-posten som tillåter åtkomst.

R1# show access-lists
Standard IP access list NO-ACCESS
15 deny 192.168.10.5
10 deny 192.168.10.10
20 permit 192.168.10.0, wildcard bits 0.0.0.255
R1#

Observera att sekvensnummer 15 visas före sekvensnummer 10. Vi kan förvänta oss att ordningen på ACE-poster sker automatiskt i den ordning de programmeras in. Dock organiserar IOS ACE-posterna enligt en speciell hashfunktion. Den resulterande ordningen optimerar ACL för att först söka efter ACE-poster för datorer och sedan ACE-poster för nätverk.

Notera: Hashfunktionen appliceras endast på ACE-poster för datorer i en IPv4-standardåtkomstlista. Detaljer om hashfunktionen ligger utanför denna kursens omfattning.

Observera att kommandot ”show access-lists” i exemplet visar statistik för varje ACE-post som har matchats. Den nekande ACE i NO-ACCESS ACL har matchats 20 gånger och den tillåtande ACE har matchats 64 gånger.

R1# show access-lists
Standard IP access list NO-ACCESS
10 deny 192.168.10.10 (20 matches)
20 permit 192.168.10.0, wildcard bits 0.0.0.255 (64 matches)

Observera att det implicita ”deny any” som det sista ACE-posten inte visar någon statistik. För att spåra hur många paket som ”implicit deny any” nekats måste du manuellt konfigurera kommandot ”deny any” i slutet av ACL.

Använd kommandot ”clear access-list counters” för att rensa ACL-statistiken. Detta kommando kan användas ensamt eller med numret eller namnet på en specifik ACL.

R1# clear access-list counters NO-ACCESS
R1# show access-lists
Standard IP access list NO-ACCESS
10 deny 192.168.10.10
20 permit 192.168.10.0, wildcard bits 0.0.0.255
R1#