Cisco IOS applique une logique interne aux listes de contrôle d'accès standard. Comme évoqué précédemment, une partie de cette logique empêche la configuration d'instructions d'hôte après une instruction de plage si l'hôte appartient à cette plage (voir Figure 1).
Une autre partie de la logique interne d'IOS fait appel au séquençage interne des ACE standard. La Figure 2 représente la configuration d'une liste de contrôle d'accès standard. Les instructions de plage qui refusent trois réseaux sont configurées en premier et sont suivies de cinq instructions d'hôte. Les instructions d'hôte sont toutes des instructions valides car leurs adresses IP d'hôte ne font pas partie des instructions de plage précédemment entrées.
La commande show running-config permet de vérifier la configuration de la liste. Notez que les instructions figurent dans un ordre différent de celui dans lequel elles ont été saisies. Nous allons utiliser la commande show access-lists pour comprendre la logique de ce processus.
Comme le montre la Figure 3, la commande show access-lists affiche les ACE et leurs numéros d'ordre. Il pourrait paraître logique que les instructions apparaissent dans l'ordre dans lequel elles ont été saisies. Cependant, le résultat de la commande show access-lists montre que ce n'est pas le cas.
L'ordre dans lequel les ACE standard figurent correspond à la séquence qu'IOS utilise pour traiter la liste. Notez que les instructions sont regroupées en deux sections : les instructions d'hôte, puis les instructions de plage. Le numéro d'ordre indique l'ordre dans lequel l'instruction a été saisie et non l'ordre de traitement de l'instruction.
Les instructions d'hôte apparaissent en premier, mais pas nécessairement dans l'ordre dans lequel elles ont été saisies. IOS classe les instructions d'hôte à l'aide d'une fonction de hachage spéciale. Le classement résultant permet d'optimiser la recherche d'une entrée de liste de contrôle d'accès d'hôte.
Les instructions de plage apparaissent après les instructions d'hôte. Ces instructions figurent dans l'ordre dans lequel elles ont été saisies.
N'oubliez pas que les listes de contrôle d'accès standard et numérotées peuvent être modifiées à l'aide des numéros d'ordre. Le numéro d'ordre indiqué dans le résultat de la commande show access-lists correspond au numéro utilisé pour supprimer l'une des instructions de la liste. Lorsque vous insérez une nouvelle instruction de liste de contrôle d'accès, le numéro d'ordre affecte la position de l'instruction dans la liste uniquement si elle concerne une plage. Les instructions d'hôte sont toujours organisées par la fonction de hachage.
Reprenons notre exemple. Une fois que vous avez enregistré la configuration en cours, le routeur est redémarré. Comme le montre la Figure 3, la commande show access-lists affiche la liste de contrôle d'accès dans le même ordre, mais les instructions ont été renumérotées. Les numéros d'ordre apparaissent maintenant dans l'ordre numérique.
Remarque : la fonction de hachage est appliquée uniquement aux instructions d'hôte dans les listes de contrôle d'accès IPv4 standard. L'algorithme n'est pas utilisé pour les listes de contrôle d'accès étendues IPv4 ni pour les listes de contrôle d'accès IPv6. En effet, les listes de contrôle d'accès IPv4 étendues et les listes de contrôle d'accès IPv6 filtrent d'autres critères que l'adresse source. Les détails de la fonction de hachage sortent du cadre de ce cours.