Continuiamo con la nostra serie di articoli che, attraverso esempi pratici e semplificati, dimostrano l’applicazione di strumenti fondamentali nei rispettivi ambiti. Introduciamo le configurazione di base di uno strumento onnipresente come le Access List applicate nell’ambito dell’indirizzamento IPv6. Consigliamo la presa visione dei seguenti articoli:
Configurazione di base IPV6;
Introduzione al routing statico manuale IPv6;
Il seguente Laboratorio ci guiderà attraverso la configurazione e l’applicazione delle Access List IPv6 Extended. La topologia di rete è stata costruita per meglio prestarsi alla trattazione dell’argomento e non riflette uno scenario comune produttivo. Ricordiamo che nel ruolo dei dispositivi di tipo “End Device” come PC e Server sono utilizzati dei router. I dispositivi sono dotati di una configurazione di base, nello specifico:
– Indirizzi IPv4 e IPv6 configurati;
– Protocollo RIP su R1 e R2 per garantire routing IPv4;
– Rotte statiche su R1 e R2 per garantire routing IPv6;
Di seguito lo schema degli indirizzi che caratterizzano la topologia oggetto del laboratorio:
Per configurare e applicare una ACL IPv6 è sufficiente eseguire 3 semplici azioni:
– Istanziare l’access List dandole un nome – Applicare l’ACL all’interfaccia desiderata nella direzione voluta;
– Specificare le condizioni per negare o permettere i pacchetti di rete;
– Applicare l’ACL all’interfaccia nella direzione voluta;
Ricordiamo, inoltre, che ogni ACL IPv6 ha come le ACL IPv4 un implicita negazione finale che impedisce tutto il traffico se non precedentemente permesso (deny ipv6 any any). In più le Access List IPv6 sono dotate di altre 2 implicite entries (regole che formano le ACL). Ambedue permettono il traffico di tipo neighbor discovery, fondamentale per il funzionamento per il protocollo IPv6:
– permit icmp any any nd-na;
– permit icmp any any nd-ns;
Router(config)# ipv6 access-list name
Router(config-ipv6-acl)# {permit | deny} protocol {source-ipv6-
prefix/prefix-length | any | host source-ipv6-address} [operator port]
{destination-ipv6-prefix/prefix-length | any | host destination-ipv6-
address} [operator port]
Router(config-if)# ipv6 traffic-filter name {in | out}
Procediamo a configurare su R1 una ACL IPv6 extended chiamata “Example6”. L’ACL dovrà avere le seguenti regole nella sequenza con cui sono specificate:
– Negare tutto il traffico UDP;
– Permettere tutto il traffico TCP dal PC2 verso tutte le destinazioni purché indirizzate al porta 23 (Telnet);
– Negare tutto il rimanente traffico TCP dal PC2;
– Permettere, infine, tutto il traffico IPv6;
Il PC2 ha l’indirizzo IPv6 2001:DB8:0:10:A8BB:CCFF:FE00:1900;
R1# conf t
R1(config)# ipv6 access-list Example6
R1(config-ipv6-acl)# deny udp any any
R1(config-ipv6-acl)# permit tcp host 2001:DB8:0:10:A8BB:CCFF:FE00:1900 any eq 23
R1(config-ipv6-acl)# deny tcp host 2001:DB8:0:10:A8BB:CCFF:FE00:1900 any
R1(config-ipv6-acl)# permit ipv6 any any
R1(config-ipv6-acl)# exit
Applichiamo l’ACL appena creata sull’interfaccia Ethernet1/1 nella direzione IN (inbound). Subito dopo visualizziamo l’ACL con l’opportuno comando di show apprezzando le varie regole di cui si compone l’ACL e rilevando come le regole implicite non siano visualizzate:
R1(config)# interface Ethernet1/1
R1(config-if)# ipv6 traffic-filter Example6 in
R1(config-if)# end
R1# show ipv6 access-list Example6
IPv6 access list Example6
deny udp any any sequence 10
permit tcp host 2001:DB8:0:10:A8BB:CCFF:FE00:1900 any eq telnet sequence 20
deny tcp host 2001:DB8:0:10:A8BB:CCFF:FE00:1900 any sequence 30
permit ipv6 any any sequence 40
CORSI CORRELATI:
- Corso Cisco CCNA;
- Corso CCNP Enterprise ENCOR;
- Corso CCNP Enterprise ENARSI;
- Corso CCNP Enterprise ENWLSI;
- Corsi CCNP Enterprise;
- Corso Fortinet NSE4;
- Corso Huawei HCIA R&S;
Consulta il nostro Catalogo Corsi per Tecnologia oppure fai una Ricerca per Vendor o ancora trova uno specifico corso attraverso il motore di ricerca interno: Ricerca Corsi. Contattaci ora al Numero Verde 800-177596, il nostro team saprà supportarti nella scelta del percorso formativo più adatto alla tue esigenze.
La prima regola dell’ACL nega tutto il traffico UDP. SRV1 è configurato come server NTP. Configuriamo il PC2 per utilizzare SRV1 come server NTP, ma per via della regola che impedisce il traffico UDP apprezzeremo come il PC2 non riesca a sincronizzarsi con il Server:
PC2# conf t
PC2(config)# ntp server 2001:DB8:0:3::30
PC2(config)# end
PC2# show ntp status
Clock is unsynchronized, stratum 16, no reference clock
nominal freq is 250.0000 Hz, actual freq is 250.0000 Hz, precision is 2**10
ntp uptime is 6500 (1/100 of seconds), resolution is 4000
reference time is 00000000.00000000 (00:00:00.000 PST Mon Jan 1 1900)
clock offset is 0.0000 msec, root delay is 0.00 msec
root dispersion is 0.99 msec, peer dispersion is 0.00 msec
loopfilter state is 'FSET' (Drift set from file), drift is 0.000000000 s/s
system poll interval is 8, never updated.
La seconda regola dell’ACL permette il traffico Telnet dal PC2. Verifichiamo che effettivamente il PC2 riesca a raggiungere in Telnet il SRV1 attraverso il suo indirizzo IPv6:
PC2# telnet 2001:DB8:0:3::30
Trying 2001:DB8:0:3::30 ... Open
User Access Verification
Username: admin
Password:
SRV1> exit
[Connection to 2001:DB8:0:3::30 closed by foreign host]
PC2#
La terza regola dell’ACL nega tutto il traffico TCP non permesso prima. Proviamo quindi a connetterci in SSH dal PC2 al SRV1 rilevando, questa volta, che la connessione venga effettivamente negata:
PC2# ssh -l admin 2001:DB8:0:3::30
% Destination unreachable; gateway or host down
La quarta regola dell’ACL, che esplicitamente permette tutto il traffico IPv6, dovrebbe permettere tutto il traffico non UDP dal PC2. Lo verifichiamo con un ping dal PC2 al Server. In effetti le prime 3 linee non permettono esplicitamente il traffico protocollo ICMP. Quindi questo tipo di traffico è intercettato e permesso dalla quarta regola, proprio perché non gestita dalle regole precedenti. Ricordiamo cosi la dinamica strettamente sequenziale dell’applicazione delle regole all’interno dell’ACL:
PC2# ping 2001:DB8:0:3::30
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:DB8:0:3::30, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/15 ms
Le regole si riferiscono al traffico proveniente dal PC2, quindi ripetiamo i medesimi test dal PC1 verificando che tutti hanno successo, compreso la connessione SSH:
PC1# telnet 2001:DB8:0:3::30
Trying 2001:DB8:0:3::30 ... Open
User Access Verification
Username: admin
Password:
SRV1> exit
[Connection to 2001:DB8:0:3::30 closed by foreign host]
PC1# ssh -l admin 2001:DB8:0:3::30
Password:
SRV1> exit
[Connection to 2001:DB8:0:3::30 closed by foreign host]
PC1# ping 2001:DB8:0:3::30
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:DB8:0:3::30, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/15 ms
Per concludere visualizziamo attraverso l’opportuno comando si show, l’ACL “Example6” apprezzando l’aggiornamento dei contatori che tengono traccia di quante volte una determinata regola abbia avuto effetto sul traffico:
R1# show ipv6 access-list Example6
IPv6 access list Example6
deny udp any any (9 matches) sequence 10
permit tcp host 2001:DB8:0:10:A8BB:CCFF:FE00:1900 any eq telnet (39 matches)
sequence 20
deny tcp host 2001:DB8:0:10:A8BB:CCFF:FE00:1900 any (1 match) sequence 30
permit ipv6 any any (173 matches) sequence 40