Föregående avsnitt beskrev syftet med ACL. Här förklaras hur ACL använder wildcard-masker, som är 32-bitars värden i Access Control Entries (ACE) för att avgöra vilka delar av en IP-adress som ska matchas. Wildcard-masker används även i OSPF.
Wildcard-masker liknar nätmasker genom att använda en AND-process för att identifiera relevanta bitar i en IPv4-adress. Skillnaden ligger i tolkningen av binära värden:
- Nätmask: 1 = matcha biten, 0 = ignorera.
- Wildcard-mask: 1 = ignorera biten, 0 = matcha.
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 | 0011 1111 |
|
0.0.0.15 | 0000 1111 |
|
0.0.0.252 | 11111100 |
|
0.0.0.255 | 11111111 |
|
Typer av wildcard masker
Wildcard masker används för att filtrera trafik för en enskild enhet, ett delnät eller en serie IPv4-adresser.
Wildcard mask för en specfik enhet
Om en ACL ska tillåta endast en specifik IP-adress, används wildcard-masken 0.0.0.0, där:
- 0 innebär exakt matchning.
- 1 innebär att biten ignoreras.
Exempel:
ACL 10 ska endast tillåta datorn med IPv4-adress 192.168.1.1, då passar bra wildcard-masken 0.0.0.0 för att match enbart denna IP-adress. Den resulterande ACL-regeln blir:
access-list 10 permit 192.168.1.1 0.0.0.0
Wildcard-mask för ett IPv4 delnät
I detta exempel ska ACL 10 tillåta alla enheter i delnätet 192.168.1.0/24. Wildcard-masken 0.0.0.255 passar bra att använda vilken innebär att:
- De första tre oktetterna måste matcha exakt (192.168.1)
- Den fjärde oktetten ignoreras, vilket tillåter alla adresser från 192.168.1.1 till 192.168.1.254
Den resulterande ACL-regeln blir:
access-list 10 permit 192.168.1.0 0.0.0.255
Wildcard-mask för ett IPv4 adressintervall
I detta exempel ska ACL 10 tillåta alla enheter i nätverken från 192.168.16.0 till 192.168.31.0/24. För att matcha detta intervall används wildcard-masken 0.0.15.255, vilket innebär att:
- De första två oktetterna (192.168) måste matcha exakt.
- De tredje oktettens första fyra bitar (0001xxxx) kan variera mellan 16 och 31.
- Den fjärde oktetten ignoreras, vilket tillåter alla adresser inom varje delnät.
Exempel på adresser inom intervallet:
- 192.168.16.0 eller 11000000.10101000. 0001 0000. 00000000
- 192.168.17.0 eller 11000000.10101000. 0001 0001. 00000000
- . . . . . . .
- 192.168.30.0 eller 11000000.10101000. 0001 1110. 00000000
- 192.168.31.0 eller 11000000.10101000. 0001 1111. 00000000
Wildcard-masken 0.0.15.255 matchar alla adresser från 192.168.16.0 till 192.168.31.255, därför den resulterande ACL-regeln blir:
access-list 10 permit 192.168.16.0 0.0.15.255
Beräkning av wildcard mask
Wildcard-masken kan beräknas genom att subtrahera nätmasken från 255.255.255.255
Exempel:
För nätverket 192.168.10.0/24 med nätmasken 255.255.255.0, beräknas wildcard-masken så här:
Startvärde | 255.255.255.255 |
Dra av nätmasken | – 255.255.255. 0 |
Resulterande wildcard mask | 0 . 0 . 0 .255 |
Förenklad wildcard-hantering
Cisco IOS erbjuder två nyckelord för enklare ACL-konfiguration:
- host – Ersätter wildcard-masken 0.0.0.0 och matchar en exakt IPv-4 adress.
- any – Ersätter wildcard-masken 255.255.255.255 och matchar alla IPv4 adresser.
Exempel på ACL-konfiguration:
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
Samma regler kan skrivas mer koncist med nyckelorden host och any:
R1(config)# access-list 10 permit host 192.168.10.10 R1(config)# access-list 11 permit any