Maska wildcard: jak ją policzyć do ACL i OSPF
Gdy konfigurujesz listę kontroli dostępu (ACL) albo uruchamiasz protokół routingu OSPF na routerze Cisco, w miejscu maski podsieci wpisujesz coś, co wygląda na „odwrócone”: zamiast 255.255.255.0 piszesz 0.0.0.255. To maska wildcard (wildcard mask, maska odwrotna) i przez wielu początkujących jest traktowana jak czarna magia. Tymczasem za całością stoją dwie proste reguły — po ich zrozumieniu przeliczysz każdą maskę w pamięci, bez kalkulatora.
Dwie reguły, które tłumaczą wszystko
Maska wildcard to liczba 32-bitowa, tak samo zapisywana czterema oktetami jak maska podsieci. Ale znaczenie bitów jest odwrotne:
- bit 0 oznacza „porównaj dokładnie” — ten fragment adresu musi się zgadzać,
- bit 1 oznacza „dowolny” — router nie patrzy na te bity.
Innymi słowy: maska podsieci mówi, które bity są częścią sieci, a wildcard — które bity router ma sprawdzać. Wszystko, co w masce podsieci jest jedynką, w wildcard jest zerem, i na odwrót.
Przeliczanie maski na wildcard w pamięci
W praktyce prawie zawsze przeliczasz znaną maskę podsieci na wildcard. Jest na to prosty sposób: każdy oktet policz jako 255 minus wartość maski (dla pełnego oktetu 255 wychodzi 0).
| Maska podsieci | Wildcard | Adresów w podsieci |
|---|---|---|
| 255.255.255.0 (/24) | 0.0.0.255 | 256 adresów |
| 255.255.255.128 (/25) | 0.0.0.127 | 128 adresów |
| 255.255.255.192 (/26) | 0.0.0.63 | 64 adresy |
| 255.255.255.224 (/27) | 0.0.0.31 | 32 adresy |
| 255.255.255.240 (/28) | 0.0.0.15 | 16 adresów |
| 255.255.255.252 (/30) | 0.0.0.3 | 4 adresy |
Zwróć uwagę na wzór: w maskach od /24 wzwyż (czyli /24, /25, /26…) ostatni oktet wildcarda to „liczba adresów w podsieci minus 1”. Dla /26 jest to 64 − 1 = 63, dla /30 — 4 − 1 = 3. Jeśli pamiętasz rozmiary podsieci z subnettingu (dzielenia sieci na podsieci), wildcardy dostajesz w prezencie.
Gdy bity maski wychodzą poza ostatni oktet (maski krótsze niż /24), każda pozycja liczy się osobno. Maska /21 to 255.255.248.0: oktet trzeci liczysz jako 255 − 248 = 7, więc wildcard to 0.0.7.255 — router porównuje dokładnie 21 bitów adresu, a 11 dolnych bitów ma zignorować.
Dwa skróty, które musisz znać
Zamiast niektórych wildcardów IOS (system operacyjny routera Cisco) przyjmuje krótsze zapisy — i właśnie w tej postaci pojawiają się na egzaminie:
host— zamiast adresu i maski0.0.0.0(wszystkie bity porównaj dokładnie).host 172.16.5.10znaczy dokładnie ten jeden adres.any— zamiast maski255.255.255.255(wszystkie bity dowolne), czyli każdy adres.
Wildcard w ACL: filtrujemy całą podsieć
W liście ACL wildcard mówi, dla jakiego zakresu adresów źródła lub celu obowiązuje reguła. Chcesz przepuścić cały ruch HTTP z podsieci 192.168.30.0/24 do serwera 172.16.5.10? Wildcard dla /24 to 0.0.0.255:
access-list 120 permit tcp 192.168.30.0 0.0.0.255 host 172.16.5.10 eq 80
Ta reguła czyta się tak: źródło zaczyna się od 192.168.30 (pierwsze 24 bity porównane dokładnie), ostatni oktet dowolny; celem jest dokładnie 172.16.5.10, protokół TCP, port 80. Jeśli w miejscu host wstawiłbyś any, reguła objęłaby każdy cel.
Pomyłka w ostatnim oktecie ma natychmiastowe skutki: napisz 0.0.0.0 zamiast 0.0.0.255, a reguła dopasuje wyłącznie adres 192.168.30.0, czyli adres sieci. Ruch z hostów nie pasuje wtedy do reguły permit, więc zatrzymuje go deny any — niewidoczna reguła, która odrzuca wszystko, czego lista wcześniej nie dopuściła.
Wildcard w OSPF: wskazujemy interfejsy
W protokole OSPF polecenie network też używa maski wildcard, ale robi z niej co innego: sprawdza, które interfejsy routera „wpadają” w podany zakres. Interfejs, którego adres IP pasuje, zostaje włączony do danego obszaru i zaczyna wysyłać pakiety rozpoznawcze hello.
router ospf 1
network 10.20.4.0 0.0.0.255 area 0
network 192.168.9.0 0.0.0.255 area 0
Tu 10.20.4.0 0.0.0.255 obejmuje każdy interfejs z adresem z podsieci 10.20.4.0/24. Możesz też wskazać jeden interfejs maską 0.0.0.0, np. network 10.20.4.1 0.0.0.0 area 0 — przydatne, gdy szerszy wildcard objąłby też interfejsy, które chcesz zostawić poza OSPF.
Ćwiczenie: przelicz sam
Dla każdej maski podsieci podaj wildcard, a dla każdego wildcarda — maskę. Rozwiązania pod listą.
- 255.255.255.192 (/26)
- 255.255.255.252 (/30)
- 255.255.0.0 (/16)
- 0.0.0.31
- 0.0.7.255
Odpowiedzi: 1 — 0.0.0.63; 2 — 0.0.0.3; 3 — 0.0.255.255; 4 — 255.255.255.224 (/27); 5 — 255.255.248.0 (/21).
Jeśli któraś odpowiedź cię zaskoczyła, policz ją jeszcze raz jako 255 minus wartość oktetu maski — ta reguła wystarcza do każdej pozycji z listy. Na egzaminie CCNA te same przeliczenia robi się w pamięci, a wildcardy spotkasz w labach z ACL i OSPF.