Wildcard Mask

I det föregående avsnittet beskrevs syftet med ACL. I detta avsnitt förklaras hur ACL använder wildcard-masker. En IPv4 ACE använder en 32-bitars wildcard-mask för att bestämma vilka bitar av IP-adressen som ska granskas för en matchning. Wildcard-masken används även av OSPF (Open Shortest Path First), ett routing-protokoll.

En wildcard-mask liknar en nätmask i det att den använder en AND-process för att avgöra vilka bitar i en IPv4-adress som ska matchas. Dock skiljer sig wildcard-masken från nätmasken genom hur den hanterar binära 1:or och 0:or. I en nätmask betyder binär 1 att biten ska matchas, medan binär 0 betyder att den inte ska matchas. I en wildcard-mask är det tvärtom: binär 1 innebär att biten ska ignoreras, och binär 0 att den ska matchas.

Wildcard mask använder följande regler för att matcha binära 1:or och 0:or:

  • bit 0 – Matcha motsvarande bitvärde i adressen
  • bit 1 – Ignorera motsvarande bitvärde i adressen

Tabellen listar några exempel på wild mask och vad de skulle identifiera.

Wildcard Mask Sista oktet (binärt) Betydelse (0 = match, 1 = ignorera)
0.0.0.0 00000000 Matchar alla oktett
0.0.0.63 00111111
  • Matchar de första tre oktetterna
  • Matchar de två vänstra bitarna i den sista oktetten
  • ignorerar de sista sex bitarna
0.0.0.15 00001111
  • Matchar de första tre oktetterna
  • Matchar de fyra vänstra bitarna i den sista oktetten
  • Ignorerar de fyra sista bitarna i den sista oktetten
0.0.0.252 11111100
  • Matchar de första tre oktetterna
  • Ignorerar de sex vänstra bitarna i den sista oktetteten
  • Matchar de sista två bitar
0.0.0.255 11111111
  • Matchar de första tre oktetterna
  • Ignorerar den sista oktetten

Typer av wildcard mask

Wildcard masken används för att filtrera trafik för en enskild nätverksenhet, ett delnät och en serie IPv4-adresser.

För att matcha en nätverksenhet

Anta att ACL 10 behöver en ACE som endast tillåter datorn med IPv4-adressen 192.168.1.1 åtkomst. I detta fall krävs en wildcard-mask som består av alla nollor (dvs. 0.0.0.0), där ”0” innebär en direkt matchning och ”1” innebär att motsvarande bit ignoreras. Denna wildcard-mask säkerställer att endast IP-adressen 192.168.1.1 matchas exakt.

Tabellen listar i binärt, enhetens IPv4-adress, wildcard mask och den tillåtna IPv4-adressen.

Decimalt Binärt
IPv4 adress 192.168.1.1 11000000.10101000.00000001.00000001
Wildcard mask 0.0.0.0 00000000.00000000.00000000.00000000
Tillåten IPv4 adress 192.168.1.1 11000000.10101000.00000001.00000001

Den resulterande ACE i ACL 10 skulle vara access-list 10 permit 192.168.1.1 0.0.0.0

För att matcha ett IPv4 delnät

I detta exempel behöver ACL 10 en ACE som tillåter alla nätverksenheter i nätverket 192.168.1.0/24. Wildcard masken 0.0.0.255 indikerar att de första tre oktetterna måste matcha exakt men den fjärde ignoreras. Se tabellen nedan:

Decimalt Binärt
IPv4 adress 192.168.1.1 11000000.10101000.00000001.00000001
Wildcard mask 0.0.0.255 00000000.00000000.00000000.11111111
Tillåten IPv4 adress intervall

192.168.1.1

192.168.1.254

11000000.10101000.00000001.00000001

11000000.10101000.00000001.11111111

Den resulterande ACE i ACL 10 skulle vara access-list 10 permit 192.168.1.0 0.0.0.255

För att matcha en IPv4 adressintervall

I detta exempel behöver ACL 10 en ACE som tillåter alla nätverksenheter i nätverken 192.168.16.0/24, 192.168.17.0/24, fram till 192.168.31.0/24. Wildcard masken 0.0.15.255 skulle korrekt filtrera det intervall av adresser.

  • 192.168.16.0 eller 11000000.10101000.00010000.00000000
  • 192.168.17.0 eller 11000000.10101000.00010001.00000000
  • 192.168.18.0 eller 11000000.10101000.00010010.00000000
  • . . . . . . .
  • 192.168.30.0 eller 11000000.10101000.00011110.00000000
  • 192.168.31.0 eller 11000000.10101000.00011111.00000000
  • Resulterar:
  • 192.168.16.0 eller 11000000.10101000.00010000.00000000
  • 192.168.16.0 /20 eller 255.255.240.0
  • 255 – 255 . 255 – 255 . 255 – 240 . 255 – 0
  • 0.0.15.255

Se tabellen nedan:

Decimalt Binärt
IPv4 adress 192.168.16.0 11000000.10101000.00010000.00000000
Wildcard mask 0.0.15.255 00000000.00000000.00001111.11111111
Tillåten IPv4 adress intervall

192.168.16.1

192.168.31.254

11000000.10101000.00010000.00000001

11000000.10101000.00001111.11111111

Den resulterande ACE i ACL 10 skulle vara access-list 10 permit 192.168.16.0 0.0.15.255

Beräkning av wildcard mask

Att beräkna wildcard mask kan användas en genvägs metod som går ut på att subtrahera nätmasken från 255.255.255.255. Till exempel 192.168.10/24 ger en nätmask på 255.255.255.0 dessa värden dras av från 255.255.255.255 och då resulterar i att wildcard masken blir 0.0.0.255

Startvärde      255.255.255.255
Dra av nätmasken –  255.255.255.    0
Resulterande wildcard mask 0  . 0  .  0  .255

För att förenkla hanteringen av decimala och binära värden i wildcard-masker, erbjuder Cisco IOS två nyckelord som underlättar identifieringen av de vanligaste användningarna:

  • host – Nyckelordet ”host” ersätter wildcard-masken 0.0.0.0, vilket innebär att alla bitar i en IPv4-adress måste matcha exakt.
  • any – Nyckelordet ”any” ersätter wildcard-masken 255.255.255.255, vilket innebär att alla bitar i en IPv4 adress ignoreras. Med andra ord att acceptera alla adresser.

Till exempel, i kommandon här nedan är två ACL:er konfigurerade. ACL 10 med en ACE som tillåter endast datorn 192.168.10.10 och ACL 11 med en ACE som tillåter alla datorer i detta nät.

  • R1(config)# access-list 10 permit 192.168.10.10 0.0.0.0
  • R1(config)# access-list 11 permit 0.0.0.0 255.255.255.255
  • R1(config)#

Alternativt kunde nyckelorden host och any ha använts för att ersätta den markerade utmatningen. Följande kommandon uppnår samma uppgift som de tidigare kommandona.

  • R1(config)# access-list 10 permit host 192.168.10.10
  • R1(config)# access-list 11 permit any
  • R1(config)#