Exemple nous recevons les réseaux suivants :
172.16.1.0/24, 172.16.2.0/24, 172.16.3.0/24, 172.16.4.0/24, 172.16.5./24, 172.16.6.0/24.
Nous voulons garder uniquement les réseaux suivants : 172.16.2.0/24 à 172.16.5.0/24.
Nous voyons si l’on transforme en binaire ce qui nous interresse que nous avons 3 bits qui changent (envert). Nous transformons donc les trois bits en 1 et nous obtenons un wildcard de 7.
172.16.1.0/24 = 172.16.00000001.0
172.16.2.0/24 = 172.16.00000010.0
172.16.3.0/24 = 172.16.00000011.0
172.16.4.0/24 = 172.16.00000100.0
172.16.5.0/24 = 140.10.00000101.0
172.16.6.0/24 = 140.10.00000110.0
Wild card = 0.0.00000111.0 = 0.0.7.0
Le problème étant que nous voulons que de 2 à 5. Il faut donc segmenter.
172.16.1.0/24 = 172.16.00000001.0
172.16.2.0/24 = 172.16.00000010.0
172.16.3.0/24 = 172.16.00000011.0
172.16.4.0/24 = 172.16.00000100.0
172.16.5.0/24 = 140.10.00000101.0
172.16.6.0/24 = 140.10.00000110.0
En gardant seulement les 4 réseaux qui nous interessent, on peut voir que l’on a possibilité de couper en deux.
172.16.2.0/24 = 172.16.00000010.0
172.16.3.0/24 = 172.16.00000011.0
Et,
172.16.4.0/24 = 172.16.00000100.0
172.16.5.0/24 = 140.10.00000101.0
Dans les deux bits en verts qui reste on voit que seul le premier change. Ce qui fait 1 bits à 1 donc 1 en decimal.
En conclusion on peut avoir cette ACL :
ip access-list 10 permit 172.16.2.0 0.0.1.0
ip access-list 20 permit 172.16.4.0 0.0.1.0
Plus intéressant maintenant, nous recevons la classe compète 172.16.0.0/24 jusqu’à 172.16.255.0/24. Nous voulons uniquement les réseaux paires : 172.16.0.0, 172.16.2.0, etc…
On fait la même opération que precedement : à Gauche la liste complète de 0 à 32 et à droite en rouge les paires et en noir les impaires. En gros si l’on observe bien la seule différence entre les deux si l’on prend que les paires le premier bit est toujours à 0 et si on prend les impaires le premier est toujours à 1. Donc on peut faire le wildcard suivant : 1111 1110 => 254.
Liste complète des 32 premières entrées | Liste surligné des 32 premières entrées |
---|---|
bin 0000 0000 = dec 0 bin 0000 0001 = dec 1 bin 0000 0010 = dec 2 bin 0000 0011 = dec 3 bin 0000 0100 = dec 4 bin 0000 0101 = dec 5 bin 0000 0110 = dec 6 bin 0000 0111 = dec 7 bin 0000 1000 = dec 8 bin 0000 1001 = dec 9 bin 0000 1010 = dec 10 bin 0000 1011 = dec 11 bin 0000 1100 = dec 12 bin 0000 1101 = dec 13 bin 0000 1110 = dec 14 bin 0000 1111 = dec 15 bin 0001 0000 = dec 16 bin 0001 0001 = dec 17 bin 0001 0010 = dec 18 bin 0001 0011 = dec 19 bin 0001 0100 = dec 20 bin 0001 0101 = dec 21 bin 0001 0110 = dec 22 bin 0001 0111 = dec 23 bin 0001 1000 = dec 24 bin 0001 1001 = dec 25 bin 0001 1010 = dec 26 bin 0001 1011 = dec 27 bin 0001 1100 = dec 28 bin 0001 1101 = dec 29 bin 0001 1110 = dec 30 bin 0001 1111 = dec 31 bin 1111 1110 = dec 32 |
bin 0000 0000 = dec 0 bin 0000 0001 = dec 1 bin 0000 0010 = dec 2 bin 0000 0011 = dec 3 bin 0000 0100 = dec 4 bin 0000 0101 = dec 5 bin 0000 0110 = dec 6 bin 0000 0111 = dec 7 bin 0000 1000 = dec 8 bin 0000 1001 = dec 9 bin 0000 1010 = dec 10 bin 0000 1011 = dec 11 bin 0000 1100 = dec 12 bin 0000 1101 = dec 13 bin 0000 1110 = dec 14 bin 0000 1111 = dec 15 bin 0001 0000 = dec 16 bin 0001 0001 = dec 17 bin 0001 0010 = dec 18 bin 0001 0011 = dec 19 bin 0001 0100 = dec 20 bin 0001 0101 = dec 21 bin 0001 0110 = dec 22 bin 0001 0111 = dec 23 bin 0001 1000 = dec 24 bin 0001 1001 = dec 25 bin 0001 1010 = dec 26 bin 0001 1011 = dec 27 bin 0001 1100 = dec 28 bin 0001 1101 = dec 29 bin 0001 1110 = dec 30 bin 0001 1111 = dec 31 bin 1111 1110 = dec 32 |
Donc pour garder les réseaux paires, on part de 172.16.0.0 avec le masque 0.0.254.0 et on vire tous les impaires. Idem pour avoir que les impaires on part de 172.16.1.0 avec le meme masque 0.0.254.0.
Et voila on a ce que l’on veut en 1 ACL.
Dernier exemple un peu plus complexe. Nous allons combiner ce que l’on a vu en acceptant que les paires entre 20 et 30 exclus avec le moins de ligne d’ACL possible.
L’idée est de récupérer ce que l’on a d’abord entre 20 et 30. Si l’on fait le meme exercice on se rend compte que l’on va matcher sur 16, 18 et 30. Il faudra donc supprimer c’est enregistrement un par un.
bin 0001 0000 = dec 16
bin 0001 0010 = dec 18
bin 0001 0100 = dec 20
bin 0001 0110 = dec 22
bin 0001 1000 = dec 24
bin 0001 1010 = dec 26
bin 0001 1100 = dec 28
bin 0001 1110 = dec 30
le premier wildcard est 14 0000 1110. Cela va prendre les paires de 16 à 30. Il suffit après d’interdire les intrus.
#do sh ip access Standard IP access list 1 1 deny 172.16.16.0, wildcard bits 0.0.0.255 2 deny 172.16.18.0, wildcard bits 0.0.0.255 3 deny 172.16.30.0, wildcard bits 0.0.0.255 20 permit 172.16.16.0, wildcard bits 0.0.14.0 ! #do sh ip bgp BGP table version is 6, local router ID is 10.0.1.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 172.16.20.0/24 10.0.1.1 0 0 100 i *> 172.16.22.0/24 10.0.1.1 0 0 100 i *> 172.16.24.0/24 10.0.1.1 0 0 100 i *> 172.16.26.0/24 10.0.1.1 0 0 100 i *> 172.16.28.0/24 10.0.1.1 0 0 100 i