System Cisco IOS ma zaimplementowaną wewnętrzną logikę do standardowych list ACL. Jak omówiono wcześniej, pewna część tej logiki zapobiega wprowadzeniu do ACL wpisu hosta, należącego do pewnego zakresu, po wcześniejszej definicji wpisu dla tego zakresu, jak pokazano na rysunku 1.

Druga część tej wewnętrznej logiki IOS dotyczy wewnętrznego sekwencjonowania standardowych wpisów ACE. Na rysunku 2 pokazano konfigurację standardowej listy ACL. W pierwszej kolejności skonfigurowane są wpisy blokujące trzy zakresy sieci, następnie 5 wpisów dotyczących hostów. Wpisy dotyczące hostów są prawidłowe i zostały zaakceptowane, ponieważ ich adresy IP nie należą do zakresów zdefiniowanych wcześniej.

Do sprawdzenia konfiguracji listy ACL, została użyta komenda show running-config . Zauważ, że poszczególne wpisy zostały wypisane w innej kolejności niż były wprowadzane. Aby zrozumieć logikę, która za tym stoi, wydamy polecenie show access-lists .

Jak widać na rysunku 3, komenda show access-lists powoduje wyświetlenie poszczególnych wpisów ACE, wraz z ich numerami sekwencyjnymi. Powinniśmy spodziewać się, że kolejność, w jakiej wpisy będą wyświetlane, będzie analogiczna do kolejności, w jakiej były wprowadzane do listy. Jednak wynik polecenia show access-lists pokazuje, że tak nie jest.

Wpisy ACE są wyświetlane w kolejności, w jakiej są analizowane przez system IOS podczas przetwarzania listy ACL. Zauważ, że reguły są podzielone na dwie sekcje, najpierw wpisy dotyczące hostów, potem wpisy dotyczące zakresów. Numer sekwencyjny określa kolejność, w jakiej dany wpis został wprowadzony do systemu a nie kolejność, w jakiej jest przetwarzany.

Reguły dotyczące hostów są wyświetlane na początku listy, ale niekoniecznie w kolejności ich wprowadzania. Kolejność wpisów dla hostów ustalana jest przez system IOS, przy użyciu specjalnej funkcji hashującej. Celem jest zoptymalizowanie procesu wyszukiwania wpisu hosta na liście wpisów ACE.

Wpisy dotyczące zakresów wyświetlane są po wpisach hostów. Kolejność wyświetlania tych wpisów jest dokładnie taka sama, jaka była kolejność ich wprowadzania.

Przypomnijmy, że standardowe numerowane listy ACL mogą być edytowane wykorzystując ich numery sekwencyjne. Numer sekwencyjny widoczny w wyniku polecenia show access-lists to numer, przy pomocy którego można usunąć dany wpis z listy ACL. Gdy dodajemy do listy nową regułę ACL dla zakresu, jej numer sekwencyjny będzie odpowiadał aktualnej pozycji tego zakresu na liście. Wpisy hostów zawsze są umieszczone w kolejności ustalonej przez algorytm hashujący.

W dalszej części przykładu, po zapisaniu konfiguracji bieżącej, router jest uruchamiany ponownie (reload). Po tej czynności, ponowne użycie komendy show access-lists powoduje wyświetlenie zawartości listy ACL w tej samej kolejności co poprzednio, jednak teraz poszczególne wpisy zostały ponownie ponumerowane. Numery sekwencyjne są teraz przypisane do wpisów w kolejności rosnącej.

Uwaga: Funkcja hashująca kontroluje wpisy hostów tylko w przypadku standardowych list ACL w IPv4. Algorytm nie jest stosowany w przypadku rozszerzonych list ACL dla IPv4 ani IPv6. Jest to spowodowane tym, że rozszerzone listy ACL oraz listy ACL w protokole IPv6 operują na więcej niż tylko adresie źródłowym. Szczegóły działania funkcji hashującej są poza zakresem tego kursu.

Przed rozpoczęciem tego kursu, zaloguj się na stronę netacad.com.