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 |
|
0.0.0.15 | 00001111 |
|
0.0.0.252 | 11111100 |
|
0.0.0.255 | 11111111 |
|
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)#