Sommario

Introduzione

Snooping DHCP e funzionalità correlate

Scenario senza snooping DHCP

Scenario con snooping DHCP

Avvelenamento ARP

Meccanismi di prevenzione

DAI (Dynamic ARP Inspection)

Protezione origine IP

IPSG per host statici

Suggerimenti per la risoluzione dei problemi per DAI e IPSG

Introduzione

In questo documento viene descritto il funzionamento di DAI (Dynamic ARP Inspection) e IPSG (IP Source Guard) e viene spiegato come convalidarli negli switch Catalyst 9K.

Snooping DHCP e funzionalità correlate

Prima di immergervi nei sistemi DAI e IPSG, dovete parlare brevemente di DHCP Snooping, un prerequisito per DAI e IPSG.

Il protocollo DHCP (Dynamic Host Configuration Protocol) è un protocollo client/server che fornisce automaticamente a un host IP (Internet Protocol) l'indirizzo IP e altre informazioni di configurazione correlate, ad esempio la subnet mask e il gateway predefinito. Gli RFC 2131 e 2132 definiscono DHCP come uno standard IETF (Internet Engineering Task Force) basato sul protocollo BOOTP (Bootstrap Protocol), un protocollo con cui DHCP condivide molti dettagli di implementazione. DHCP consente agli host di ottenere le informazioni di configurazione TCP/IP richieste da un server DHCP.

Lo snooping DHCP è una funzione di sicurezza che funziona come un firewall tra host non attendibili e server DHCP attendibili. La funzione di snooping DHCP esegue le seguenti attività:

- Convalida i messaggi DHCP ricevuti da origini non attendibili e filtra i messaggi non validi.

- Limita la velocità del traffico DHCP proveniente da fonti attendibili e non attendibili.

- Crea e gestisce il database di binding snooping DHCP, che contiene informazioni sugli host non attendibili con indirizzi IP in lease.

- Utilizza il database di binding dello snooping DHCP per convalidare le richieste successive da host non attendibili.

DAI è una funzionalità di sicurezza che convalida i pacchetti ARP (Address Resolution Protocol) in una rete. DAI consente a un amministratore di rete di intercettare, registrare ed eliminare pacchetti ARP con indirizzi MAC non validi per i binding di indirizzi IP. Questa funzionalità protegge la rete da alcuni attacchi "man-in-the-middle".

IPSG è una funzione di sicurezza che limita il traffico IP su interfacce di layer 2 non instradate filtrando il traffico in base al database di binding dello snooping DHCP e ai binding di origine IP configurati manualmente. È possibile utilizzare il protocollo IPSG per prevenire gli attacchi di traffico se un host tenta di utilizzare l'indirizzo IP del router adiacente.

Scenario senza snooping DHCP

1. In questo diagramma è possibile notare che più client desiderano ricevere un indirizzo IP dal server DHCP connesso allo switch principale.

2. Tuttavia, esiste un server DHCP dannoso/non autorizzato collegato a uno degli switch del livello di accesso in grado di ricevere le rilevazioni DHCP e inviare le offerte DHCP più rapidamente rispetto al server DHCP effettivo.

3. L'autore dell'attacco può impostare l'indirizzo del gateway nel messaggio di offerta in modo tale da poter ricevere tutto il traffico dal client, compromettendo così la riservatezza della comunicazione.

4. Questo è noto come l'attacco Man In The Middle.

Scenario con snooping DHCP

1. Abilitando lo snooping DHCP negli switch di accesso, configurare lo switch in modo che resti in ascolto sul traffico DHCP e arresti eventuali pacchetti DHCP dannosi ricevuti su porte non attendibili.

2. Non appena si abilita lo snooping DHCP nello switch, tutte le interfacce diventano automaticamente non attendibili.

3. Mantenere le porte connesse ai dispositivi terminali non attendibili e configurare come attendibili le porte connesse al server DHCP autentico.

4. Un'interfaccia non attendibile bloccherà i messaggi dell'offerta DHCP. I messaggi offerta DHCP saranno consentiti solo su porte attendibili.

5. È possibile limitare il numero di pacchetti di individuazione DHCP che gli host terminali possono inviare a un'interfaccia non attendibile al secondo. Questo meccanismo di sicurezza protegge il server DHCP da un numero anormalmente elevato di rilevamenti DHCP in arrivo che possono esaurire il pool in pochissimo tempo.

In questa sezione viene spiegato come configurare lo snooping DHCP in una rete commutata:

Topologia:

Le interfacce Gi1/0/1-4 dello switch di accesso sono connesse ai client DHCP. È possibile consentire a questi client di ricevere gli indirizzi IP dal server DHCP autentico e di proteggerli dal server DHCP dannoso utilizzando la funzionalità di snooping DHCP.

Per ulteriori informazioni su come ottenere questo risultato, fare riferimento alla procedura seguente:

Passaggio 1. Abilitare lo snooping DHCP a livello globale e nelle VLAN, sullo switch di accesso:

ip dhcp snooping

ip dhcp snooping vlan 10,20,30

Passaggio 2. Configurare il trust di snooping DHCP su tutte le interfacce dello switch di accesso che ricevono offerte DHCP da uno o più server DHCP autentici. Il numero di interfacce dipende dalla progettazione della rete e dal posizionamento dei server DHCP. Queste sono le interfacce che vanno verso il server DHCP autentico.

Switch di accesso:

interface TenGigabitEthernet1/0/2

switchport mode trunk

ip dhcp snooping trust

Passaggio 3. Dopo aver configurato lo snooping DHCP a livello globale, tutte le porte dello switch diventano automaticamente non attendibili, ad eccezione di quelle considerate manualmente attendibili, come mostrato in precedenza. È tuttavia possibile configurare il numero di pacchetti di individuazione DHCP che gli host terminali possono inviare a interfacce non attendibili al secondo.

Questo meccanismo di sicurezza protegge il server DHCP da un numero anormalmente elevato di rilevamenti DHCP in arrivo che possono esaurire il pool in pochissimo tempo.

interface range Gi1/0/1-5

ip dhcp snooping limit rate 10

Verifica:

Access_SW#show ip dhcp snooping

Switch DHCP snooping is enabled

Switch DHCP gleaning is disabled

DHCP snooping is configured on following VLANs:

10,20,30

DHCP snooping is operational on following VLANs:

10,20,30

DHCP snooping is configured on the following L3 Interfaces:

Insertion of option 82 is disabled

circuit-id default format: vlan-mod-port

remote-id: 00fc.ba9e.3980 (MAC)

Option 82 on untrusted port is not allowed

Verification of hwaddr field is enabled

Verification of giaddr field is enabled

DHCP snooping trust/rate is configured on the following Interfaces:

Interface                  Trusted    Allow option    Rate limit (pps)

-----------------------    -------    ------------    ----------------

GigabitEthernet1/0/1             no         no              10

Custom circuit-ids:

GigabitEthernet1/0/2             no         no              10

Custom circuit-ids:

GigabitEthernet1/0/3             no         no              10

Custom circuit-ids:

GigabitEthernet1/0/4             no         no              10

Custom circuit-ids:

GigabitEthernet1/0/5             no         no              10

Custom circuit-ids:

TenGigabitEthernet1/0/2          yes        yes             unlimited

Custom circuit-ids:

Nota: se si controlla questo output, si osserverà che Gi1/0/5, connesso al server DHCP dannoso, è indicato nell'show ip dhcp snooping  output come non attendibile.

Quindi, lo snooping DHCP eseguirà tutti i controlli su queste porte.

Ad esempio, in questo modo, tutte le offerte DHCP in arrivo su questa porta (Gi1/0/5) verranno eliminate.

Di seguito è riportata la tabella di binding Snooping DHCP, che mostra l'indirizzo IP, l'indirizzo MAC e l'interfaccia per 3 client su Gi1/0/1, Gi1/0/2, Gi1/0/3:

Access_SW#show ip dhcp snooping binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------------- ---- --------------------

00:FC:BA:9E:39:82 10.10.10.2 62488 dhcp-snooping 10 GigabitEthernet1/0/1

00:FC:BA:9E:39:A6 10.10.20.2 62492 dhcp-snooping 20 GigabitEthernet1/0/2

00:FC:BA:9E:39:89 10.10.30.3 62492 dhcp-snooping 30 GigabitEthernet1/0/3

Total number of bindings: 3

A scopo dimostrativo, ip dhcp snooping trustla configurazione viene rimossa da in Te1/0/2 nello switch di accesso. Esaminare i registri generati nello switch:

Access_SW#sh cdp neigh

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge

S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,

D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID Local Intrfce Holdtme Capability Platform Port ID

Dist_SW Ten 1/0/2 175 R S I C9300-48U Ten 1/1/3

Total cdp entries displayed : 1

Access_SW#show run int Te1/0/2

Building configuration...

Current configuration : 64 bytes

!

interface TenGigabitEthernet1/0/2

switchport mode trunk

*Apr 4 01:12:47.149: %DHCP_SNOOPING-5-DHCP_SNOOPING_UNTRUSTED_PORT: DHCP_SNOOPING drop message on untrusted port, message type: DHCPOFFER, MAC sa: f87a.41a8.ca65

*Apr 4 01:14:07.161: %DHCP_SNOOPING-5-DHCP_SNOOPING_UNTRUSTED_PORT: DHCP_SNOOPING drop message on untrusted port, message type: DHCPOFFER, MAC sa: f87a.41a8.ca65

*Apr 4 01:29:30.634: %DHCP_SNOOPING-5-DHCP_SNOOPING_UNTRUSTED_PORT: DHCP_SNOOPING drop message on untrusted port, message type: DHCPOFFER, MAC sa: f87a.41a8.ca56

*Apr 4 01:30:03.286: %DHCP_SNOOPING-5-DHCP_SNOOPING_UNTRUSTED_PORT: DHCP_SNOOPING drop message on untrusted port, message type: DHCPOFFER, MAC sa: f87a.41a8.ca46

- Come si può vedere, lo switch di accesso sta ignorando i pacchetti DHCP in arrivo su Te1/0/2 perché non è più considerato attendibile.

- Gli indirizzi MAC nei log appartengono alle SVI delle VLAN 10, 20 e 30, in quanto sono gli indirizzi che inviano queste offerte dal server DHCP ai client.

Avvelenamento ARP

ARP fornisce la comunicazione IP all'interno di un dominio di broadcast di layer 2 mappando un indirizzo IP su un indirizzo MAC. È un protocollo semplice ma vulnerabile ad un attacco chiamato avvelenamento ARP.

L'avvelenamento ARP è un attacco in cui un utente malintenzionato invia un falso pacchetto di risposta ARP sulla rete.

Un utente malintenzionato può attaccare gli host, gli switch e i router connessi alla rete di layer 2 avvelenando le cache ARP dei sistemi connessi alla subnet e intercettando il traffico destinato ad altri host nella subnet

Questo è il classico attacco Man-in-the-middle.

Meccanismi di prevenzione

DAI (Dynamic ARP Inspection)

L'ispezione ARP dinamica è una funzione di sicurezza che convalida i pacchetti ARP in una rete. Intercetta, registra ed elimina i pacchetti ARP con binding IP-MAC non validi. Questa funzionalità protegge la rete da alcuni attacchi man-in-the-middle.

L'ispezione ARP dinamica garantisce che vengano inoltrate solo le richieste e le risposte ARP valide. Lo switch esegue le seguenti attività:

- Intercetta tutte le richieste e le risposte ARP su porte non attendibili

- Verifica che ciascuno di questi pacchetti intercettati abbia un binding di indirizzi IP-MAC valido prima di aggiornare la cache ARP locale o prima di inoltrare il pacchetto alla destinazione appropriata

- Elimina i pacchetti ARP non validi

L'ispezione ARP dinamica determina la validità di un pacchetto ARP in base alle associazioni di indirizzi IP-MAC valide archiviate in un database attendibile, il database di associazione dello snooping DHCP.

Questo database è creato dallo snooping DHCP se lo snooping DHCP è abilitato sulle VLAN e sullo switch. Se il pacchetto ARP viene ricevuto su un'interfaccia attendibile, lo switch inoltra il pacchetto senza alcun controllo.

Sulle interfacce non attendibili, lo switch inoltra il pacchetto solo se è valido.

Suggerimento: fare riferimento a https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9300/software/release/17-9/configuration_guide/sec/b_179_sec_9300_cg/configuring_dynamic_arp_inspection.html

In questa immagine viene mostrato come lo switch Cat9500 sia collegato a quattro host, di cui 3 host sono client DHCP e 1 host ha un indirizzo IP statico (10.20.30.5). Il server DHCP è un router serie Cat8300 configurato con un pool DHCP.

Questa topologia viene utilizzata per dimostrare come DAI rileva le richieste ARP non valide su un'interfaccia e protegge la rete da attacchi dannosi.

Configurazione:

Passaggio 1. Configurare lo snooping DHCP e la DAI a livello globale nello switch.

F241.24.02-9500-1#sh run | i dhcp

ip dhcp snooping vlan 10

no ip dhcp snooping information option

ip dhcp snooping

F241.24.02-9500-1#sh run | i ip arp

ip arp inspection vlan 10

Passaggio 2. Configurare l'interfaccia Hu1/0/7 connessa al server DHCP come porta attendibile. In questo modo, le offerte DHCP potranno entrare nell'interfaccia e successivamente raggiungere i client DHCP.

F241.24.02-9500-1#sh run int Hu1/0/7

Building configuration...

Current configuration : 85 bytes

!

interface HundredGigE1/0/7

switchport access vlan 10

ip dhcp snooping trust

end

Passaggio 3. Configurare le porte connesse ai client DHCP come porte di accesso che consentono la VLAN 10.

F241.24.02-9500-1#sh run int Hu1/0/3

Building configuration...

Current configuration : 61 bytes

!

interface HundredGigE1/0/3

switchport access vlan 10

end

F241.24.02-9500-1#sh run int Hu1/0/4

Building configuration...

Current configuration : 61 bytes

!

interface HundredGigE1/0/4

switchport access vlan 10

end

F241.24.02-9500-1#sh run int Hu1/0/1

Building configuration...

Current configuration : 61 bytes

!

interface HundredGigE1/0/1

switchport access vlan 10

end

F241.24.02-9500-1#sh run int Hu1/0/6

Building configuration...

Current configuration : 85 bytes

!

interface HundredGigE1/0/6

switchport access vlan 10

end

Passaggio 4. Verificare che i client DHCP abbiano ricevuto l'indirizzo IP dal server DHCP, dalla tabella di binding Snooping DHCP nello switch Cat9500.

F241.24.02-9500-1#sh ip dhcp snooping binding

MacAddress          IpAddress        Lease(sec)  Type           VLAN  Interface

------------------  ---------------  ----------  -------------  ----  --------------------

78:72:5D:1B:7F:3F   10.20.30.2       85046       dhcp-snooping   10    HundredGigE1/0/1

5C:71:0D:CD:EE:0C   10.20.30.3       85065       dhcp-snooping   10    HundredGigE1/0/4

2C:4F:52:01:AA:CC   10.20.30.4       85085       dhcp-snooping   10    HundredGigE1/0/3

Total number of bindings: 3

È inoltre possibile controllare i binding nel server DHCP.

DHCP_Server#show ip dhcp binding

Bindings from all pools not associated with VRF:

IP address      Client-ID/              Lease expiration        Type       State      Interface

Hardware address/

User name

10.20.30.2      0063.6973.636f.2d37.    Apr 08 2024 07:04 AM    Automatic  Active     TenGigabitEthernet0/0/4

3837.322e.3564.3162.

2e37.6633.662d.4875.

312f.302f.31

10.20.30.3      0063.6973.636f.2d35.    Apr 08 2024 07:04 AM    Automatic  Active     TenGigabitEthernet0/0/4

6337.312e.3064.6364.

2e65.6530.632d.5465.

312f.302f.35

10.20.30.4      0063.6973.636f.2d32.    Apr 08 2024 07:05 AM    Automatic  Active     TenGigabitEthernet0/0/4

6334.662e.3532.3031.

2e61.6163.632d.5465.

312f.302f.35

Passaggio 5: Modificare l'indirizzo IP dell'host connesso a Hu1/0/6 da 10.20.30.5 a 10.20.30.2 e provare a eseguire il ping degli altri client DHCP da tale host.

Static_Host#ping 10.20.30.3

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.3, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

Static_Host#ping 10.20.30.4

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.4, timeout is 2 seconds:

.....

Sullo switch Cat9500, è possibile visualizzare i seguenti log ARP non validi:

F241.24.02-9500-1#

*Apr 7 09:29:24.520: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Hu1/0/6, vlan 10.([7035.0956.7ee4/10.20.30.2/0000.0000.0000/10.20.30.3/09:29:23 UTC Sun Apr 7 2024])

*Apr 7 09:29:26.520: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Hu1/0/6, vlan 10.([7035.0956.7ee4/10.20.30.2/0000.0000.0000/10.20.30.3/09:29:25 UTC Sun Apr 7 2024])

*Apr 7 09:29:28.521: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Hu1/0/6, vlan 10.([7035.0956.7ee4/10.20.30.2/0000.0000.0000/10.20.30.3/09:29:27 UTC Sun Apr 7 2024])

*Apr 7 09:29:30.521: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Hu1/0/6, vlan 10.([7035.0956.7ee4/10.20.30.2/0000.0000.0000/10.20.30.3/09:29:29 UTC Sun Apr 7 2024])

*Apr 7 09:29:32.521: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Hu1/0/6, vlan 10.([7035.0956.7ee4/10.20.30.2/0000.0000.0000/10.20.30.3/09:29:31 UTC Sun Apr 7 2024])

F241.24.02-9500-1#

*Apr 7 09:29:47.521: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Hu1/0/6, vlan 10.([7035.0956.7ee4/10.20.30.2/0000.0000.0000/10.20.30.4/09:29:46 UTC Sun Apr 7 2024])

*Apr 7 09:29:49.521: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Hu1/0/6, vlan 10.([7035.0956.7ee4/10.20.30.2/0000.0000.0000/10.20.30.4/09:29:48 UTC Sun Apr 7 2024])

*Apr 7 09:29:51.521: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Hu1/0/6, vlan 10.([7035.0956.7ee4/10.20.30.2/0000.0000.0000/10.20.30.4/09:29:50 UTC Sun Apr 7 2024])

*Apr 7 09:29:53.522: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Hu1/0/6, vlan 10.([7035.0956.7ee4/10.20.30.2/0000.0000.0000/10.20.30.4/09:29:52 UTC Sun Apr 7 2024])

*Apr 7 09:29:55.523: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Hu1/0/6, vlan 10.([7035.0956.7ee4/10.20.30.2/0000.0000.0000/10.20.30.4/09:29:54 UTC Sun Apr 7 2024])

- Come si può vedere, non è possibile eseguire il ping tra le versioni 10.20.30.3 e 10.20.30.4 di Static_Host.

Anche se Static_Host ha tentato di eseguire lo spoofing dell'indirizzo IP del client DHCP legittimo, non è stato in grado di farlo perché qualsiasi pacchetto ARP che arriva su Hu1/0/6 verrà ispezionato dallo switch e confrontato con i dati presenti nella tabella di binding dello snooping DHCP.

- I successivi registri dello switch Cat9500 confermano che le richieste ARP inviate da Static_Host ai client DHCP vengono eliminate.

- Per ottenere questo risultato, lo switch Cat9500 usa il database di binding dello snooping DHCP.

- Quando una richiesta ARP entra in Hu1/0/6 con l'indirizzo MAC-IP di origine che non corrisponde ai valori presenti nel database di binding dello snooping DHCP, lo switch rifiuta la richiesta ARP.

Passaggio 6. Verifica:

F241.24.02-9500-1#show ip arp inspection

Source Mac Validation      : Disabled

Destination Mac Validation : Disabled

IP Address Validation      : Disabled

Vlan     Configuration    Operation   ACL Match          Static ACL

----     -------------    ---------   ---------          ----------

10     Enabled          Active      DAI                No

Vlan     ACL Logging      DHCP Logging      Probe Logging

----     -----------      ------------      -------------

10     Deny             Deny              Off

Vlan      Forwarded        Dropped     DHCP Drops      ACL Drops

----      ---------        -------     ----------      ---------

10              9             39             39              0

Vlan   DHCP Permits    ACL Permits  Probe Permits   Source MAC Failures

----   ------------    -----------  -------------   -------------------

10              6              3              0                     0

Vlan   Dest MAC Failures   IP Validation Failures   Invalid Protocol Data

----   -----------------   ----------------------   ---------------------

10                   0                        0                       0

In questo output, è possibile vedere il numero di pacchetti scartati e autorizzati dalla DAI nella VLAN 10 nello switch Cat9500.

Nota: uno scenario molto importante potrebbe essere quello di un host legittimo della rete a cui sia stato assegnato un indirizzo IP statico (ad esempio, 10.20.30.5).

Sebbene l'host non stia tentando di eseguire lo spoofing di alcun elemento, verrà comunque isolato dalla rete perché i dati di binding MAC-IP non sono presenti nel database di binding dello snooping DHCP.

Infatti, poiché l'host statico non ha mai utilizzato DHCP per ricevere l'indirizzo IP, a causa della sua assegnazione statica.

Sono disponibili alcune soluzioni alternative che possono essere implementate per fornire connettività agli host legacy che dispongono di indirizzi IP statici.

Opzione 1.

Configurare l'interfaccia connessa all'host con ip arp Inspection trust.

F241.24.02-9500-1#sh run int HundredGigE 1/0/6

Building configuration...

Current configuration : 110 bytes

!

interface HundredGigE1/0/6

switchport access vlan 10

switchport mode access

ip arp inspection trust

end

Static_Host#ping 10.20.30.4

*Apr 7 18:44:45.299 JST: %SYS-5-CONFIG_I: Configured from console by admin on vty0 (192.168.1.5)

F241.24.02-9300-STACK#ping 10.20.30.4

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.4, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms

Static_Host#ping 10.20.30.3

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.3, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms

Static_Host#ping 10.20.30.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.2, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms

Opzione 2.

Consentire l'host statico utilizzando un elenco degli accessi ARP:

F241.24.02-9500-1#sh run | s arp access-list

arp access-list DAI

permit ip host 10.20.30.5 mac host 7035.0956.7ee4

F241.24.02-9500-1#sh run | i ip arp ins

ip arp inspection filter DAI vlan 10

Static_Host#ping 10.20.30.4

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.4, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms

Static_Host#ping 10.20.30.3

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.3, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms

Static_Host#ping 10.20.30.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.2, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms

Opzione 3.

Configurare una voce della tabella di binding per l'host statico.

F241.24.02-9500-1#sh run | i binding

ip source binding 7035.0956.7EE4 vlan 10 10.20.30.5 interface Hu1/0/6

F241.24.02-9500-1#show ip source binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------------- ---- --------------------

78:72:5D:1B:7F:3F 10.20.30.2 80640 dhcp-snooping 10 HundredGigE1/0/1

5C:71:0D:CD:EE:0C 10.20.30.3 80659 dhcp-snooping 10 HundredGigE1/0/4

70:35:09:56:7E:E4 10.20.30.5 infinite static 10 HundredGigE1/0/6

2C:4F:52:01:AA:CC 10.20.30.4 80679 dhcp-snooping 10 HundredGigE1/0/3

Total number of bindings: 4

Static_Host#ping 10.20.30.4

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.4, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms

Static_Host#ping 10.20.30.3

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.3, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms

Static_Host#ping 10.20.30.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.2, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms

Opzioni aggiuntive disponibili con DAI:

F241.24.02-9500-1(config)#ip arp inspection validate ?

dst-mac Validate destination MAC address

ip Validate IP addresses

src-mac Validate source MAC address

Per src-mac, controllare l'indirizzo MAC di origine nell'intestazione Ethernet confrontandolo con l'indirizzo MAC del mittente nel corpo ARP. Questo controllo viene eseguito sia sulle richieste che sulle risposte ARP. Quando questa opzione è abilitata, i pacchetti con indirizzi MAC diversi vengono classificati come non validi e quindi eliminati

Per dst-mac, controllare l'indirizzo MAC di destinazione nell'intestazione Ethernet confrontandolo con l'indirizzo MAC di destinazione nel corpo ARP. Questo controllo viene eseguito per le risposte ARP. Quando questa opzione è abilitata, i pacchetti con indirizzi MAC diversi vengono classificati come non validi e quindi eliminati.

Per gli indirizzi IP, controllare il corpo ARP per individuare gli indirizzi IP non validi e imprevisti. Gli indirizzi includono 0.0.0.0, 255.255.255.255 e tutti gli indirizzi multicast IP. Gli indirizzi IP dei mittenti vengono controllati in tutte le richieste e le risposte ARP, mentre gli indirizzi IP delle destinazioni vengono controllati solo nelle risposte ARP.

È inoltre possibile configurare la limitazione della velocità ARP. Per impostazione predefinita, il traffico ARP su interfacce non attendibili ha un limite di 15 app:

Switch(config)#interface Gigabitethernet<>

Switch(config-if)#ip arp inspection limit rate 10

Protezione origine IP

- IPSG è una funzione di sicurezza che limita il traffico IP su interfacce di layer 2 non instradate filtrando il traffico in base al database di binding dello snooping DHCP e ai binding di origine IP configurati manualmente.

- È possibile utilizzare il protocollo IPSG per prevenire gli attacchi di traffico se un host tenta di utilizzare l'indirizzo IP del router adiacente.

- È possibile abilitare IPSG quando lo snooping DHCP è abilitato su un'interfaccia non attendibile. Dopo aver abilitato IPSG su un'interfaccia, lo switch blocca tutto il traffico IP ricevuto sull'interfaccia, ad eccezione dei pacchetti DHCP consentiti dallo snooping DHCP.

- Lo switch utilizza una tabella di ricerca IP di origine nell'hardware per associare gli indirizzi IP alle porte. Per il filtro IP e MAC, viene utilizzata una combinazione di ricerche IP e MAC di origine. Il traffico IP con un indirizzo IP di origine nella tabella di binding è consentito. Tutto il resto del traffico è negato.

- La tabella di binding dell'origine IP contiene binding appresi dallo snooping DHCP o configurati manualmente (binding di origine IP statici). Una voce di questa tabella ha un indirizzo IP, l'indirizzo MAC associato e il numero VLAN associato. Lo switch utilizza la tabella di binding dell'origine IP solo quando la protezione dell'origine IP è abilitata.

- È possibile configurare IPSG con il filtro degli indirizzi IP di origine o con il filtro degli indirizzi IP e MAC di origine.

IPSG per host statici

- IPSG per host statici consente a IPSG di funzionare senza DHCP. Per installare gli ACL delle porte, il protocollo IPSG per gli host statici si basa sulle voci della tabella di rilevamento dei dispositivi IP. Lo switch crea voci statiche in base alle richieste ARP o ad altri pacchetti IP per mantenere l'elenco di host validi per una determinata porta.

Riferimento:

https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9300/software/release/17-9/configuration_guide/sec/b_179_sec_9300_cg/configuring_ip_source_guard.html

Lo switch Cat9500 è connesso a quattro host, di cui tre sono client DHCP e uno ha un indirizzo IP statico. Il server DHCP è un router serie Cat8300 configurato con un pool DHCP.

È possibile utilizzare questa topologia per dimostrare come IPSG rileva e blocca il traffico proveniente da host le cui associazioni MAC-IP non sono presenti nel database di binding dello snooping DHCP.

Configurazione:

Passaggio 1. Configurare lo snooping DHCP a livello globale nello switch Cat9500.

F241.24.02-9500-1#sh run | i dhcp

ip dhcp snooping vlan 10

no ip dhcp snooping information option

ip dhcp snooping

Passaggio 2. Configurare l'interfaccia Te1/0/7 connessa al server DHCP come porta attendibile. In questo modo, le offerte DHCP possono entrare nell'interfaccia e successivamente raggiungere i client DHCP.

F241.24.02-9500-1#sh run int Hu1/0/7

Building configuration...

Current configuration : 85 bytes

!

interface HundredGigE1/0/7

switchport access vlan 10

ip dhcp snooping trust

end

Passaggio 3. Configurare le porte connesse ai client DHCP come porte di accesso che consentono la VLAN 10.

F241.24.02-9500-1#sh run int Hu1/0/3

Building configuration...

Current configuration : 61 bytes

!

interface HundredGigE1/0/3

switchport access vlan 10

end

F241.24.02-9500-1#sh run int Hu1/0/4

Building configuration...

Current configuration : 61 bytes

!

interface HundredGigE1/0/4

switchport access vlan 10

end

F241.24.02-9500-1#sh run int Hu1/0/1

Building configuration...

Current configuration : 61 bytes

!

interface HundredGigE1/0/1

switchport access vlan 10

end

F241.24.02-9500-1#sh run int Hu1/0/6

Building configuration...

Current configuration : 85 bytes

!

interface HundredGigE1/0/6

switchport access vlan 10

end

Passaggio 4. Verificare che i client DHCP abbiano ricevuto l'indirizzo IP dal server DHCP.

F241.24.02-9500-1#sh ip dhcp snooping binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------------- ---- --------------------

78:72:5D:1B:7F:3F 10.20.30.2 85046 dhcp-snooping 10 HundredGigE1/0/1

5C:71:0D:CD:EE:0C 10.20.30.3 85065 dhcp-snooping 10 HundredGigE1/0/4

2C:4F:52:01:AA:CC 10.20.30.4 85085 dhcp-snooping 10 HundredGigE1/0/3

Total number of bindings: 3

F241.24.02-9500-1#show ip source binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

------------------ --------------- ---------- ------------- ---- --------------------

78:72:5D:1B:7F:3F 10.20.30.2 64764 dhcp-snooping 10 HundredGigE1/0/1

5C:71:0D:CD:EE:0C 10.20.30.3 64783 dhcp-snooping 10 HundredGigE1/0/4

2C:4F:52:01:AA:CC 10.20.30.4 64803 dhcp-snooping 10 HundredGigE1/0/3

Total number of bindings: 3

DHCP_Server#show ip dhcp binding

Bindings from all pools not associated with VRF:

IP address      Client-ID/              Lease expiration        Type       State      Interface

Hardware address/

User name

10.20.30.2      0063.6973.636f.2d37.    Apr 08 2024 07:04 AM    Automatic  Active     TenGigabitEthernet0/0/4

3837.322e.3564.3162.

2e37.6633.662d.4875.

312f.302f.31

10.20.30.3      0063.6973.636f.2d35.    Apr 08 2024 07:04 AM    Automatic  Active     TenGigabitEthernet0/0/4

6337.312e.3064.6364.

2e65.6530.632d.5465.

312f.302f.35

10.20.30.4      0063.6973.636f.2d32.    Apr 08 2024 07:05 AM    Automatic  Active     TenGigabitEthernet0/0/4

6334.662e.3532.3031.

2e61.6163.632d.5465.

312f.302f.35

Passaggio 5. Configurare IPSG sulle interfacce connesse a tutti gli host terminali (3 client DHCP e 1 host con indirizzo IP statico).

F241.24.02-9500-1#sh run int Hu1/0/3

Building configuration...

Current configuration : 79 bytes

!

interface HundredGigE1/0/3

switchport access vlan 10

ip verify source

end

F241.24.02-9500-1#sh run int Hu1/0/4

Building configuration...

Current configuration : 79 bytes

!

interface HundredGigE1/0/4

switchport access vlan 10

ip verify source

end

F241.24.02-9500-1#sh run int Hu1/0/1

Building configuration...

Current configuration : 79 bytes

!

interface HundredGigE1/0/1

switchport access vlan 10

ip verify source

end

F241.24.02-9500-1#sh run int Hu1/0/6

Building configuration...

Current configuration : 103 bytes

!

interface HundredGigE1/0/6

switchport access vlan 10

ip verify source

end

Verifica:

F241.24.02-9500-1#show ip verify source

Interface  Filter-type  Filter-mode  IP-address       Mac-address        Vlan

---------  -----------  -----------  ---------------  -----------------  ----

Hu1/0/1    ip           active       10.20.30.2                          10

Hu1/0/3    ip           active       10.20.30.4                          10

Hu1/0/4    ip           active       10.20.30.3                          10

Hu1/0/6    ip           active       deny-all                            10

Da questo output, è possibile vedere che il campo Indirizzo IP è impostato su deny-all per Hu1/0/6 perché non esiste alcun binding MAC-IP corrispondente a questa interfaccia nella tabella di binding dello snooping DHCP.

Passaggio 6. Provare a eseguire il ping dei client DHCP con gli indirizzi IP 10.20.30.2, 10.20.30.3 e 10.20.30.4 da Static_Host.

Static_Host#ping 10.20.30.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.2, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

Static_Host#ping 10.20.30.3

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.3, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

Static_Host#ping 10.20.30.4

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.4, timeout is 2 seconds:

.....

F241.24.02-9500-1(config)# ip source binding <mac-address-of-static-host> vlan 10 10.20.30.5 interface Hu1/0/6

F241.24.02-9500-1#show run int Hu1/0/6

*Apr  7 15:13:48.449: %SYS-5-CONFIG_I: Configured from console by console

F241.24.02-9500-1#show ip verify source

Interface  Filter-type  Filter-mode  IP-address       Mac-address        Vlan

---------  -----------  -----------  ---------------  -----------------  ----

Hu1/0/1    ip           active       10.20.30.2                          10

Hu1/0/3    ip           active       10.20.30.4                          10

Hu1/0/4    ip           active       10.20.30.3                          10

Hu1/0/6    ip           active       10.20.30.5                          10

F241.24.02-9500-1#show ip source binding

MacAddress          IpAddress        Lease(sec)  Type           VLAN  Interface

------------------  ---------------  ----------  -------------  ----  --------------------

78:72:5D:1B:7F:3F   10.20.30.2       62482       dhcp-snooping   10    HundredGigE1/0/1

5C:71:0D:CD:EE:0C   10.20.30.3       62501       dhcp-snooping   10    HundredGigE1/0/4

70:35:09:56:7E:E4   10.20.30.5       infinite    static          10    HundredGigE1/0/6

2C:4F:52:01:AA:CC   10.20.30.4       62521       dhcp-snooping   10    HundredGigE1/0/3

Total number of bindings: 4

Verification:

Static_Host#ping 10.20.30.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

Static_Host#ping 10.20.30.3

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.3, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

Static_Host#ping 10.20.30.4

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.20.30.4, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

Opzioni aggiuntive disponibili con IPSG:

Per impostazione predefinita, IPSG filtra il traffico in ingresso su porte non attendibili in base ai soli indirizzi IP.

Se si desidera eseguire il filtro in base all'indirizzo IP e MAC, attenersi alla seguente procedura.

F241.24.02-9500-1#sh run int Hu1/0/1

Building configuration...

Current configuration : 89 bytes

!

interface HundredGigE1/0/1

switchport access vlan 10

ip verify source mac-check

end

F241.24.02-9500-1#sh run int Hu1/0/3

Building configuration...

Current configuration : 89 bytes

!

interface HundredGigE1/0/3

switchport access vlan 10

ip verify source mac-check

end

F241.24.02-9500-1#sh run int Hu1/0/4

Building configuration...

Current configuration : 89 bytes

!

interface HundredGigE1/0/4

switchport access vlan 10

ip verify source mac-check

end

F241.24.02-9500-1#sh run int Hu1/0/6

Building configuration...

Current configuration : 113 bytes

!

interface HundredGigE1/0/6

switchport access vlan 10

switchport mode access

ip verify source mac-check

end

F241.24.02-9500-1#show ip verify source

Interface  Filter-type  Filter-mode  IP-address       Mac-address        Vlan

---------  -----------  -----------  ---------------  -----------------  ----

Hu1/0/1    ip-mac       active       10.20.30.2       78:72:5D:1B:7F:3F   10

Hu1/0/3    ip-mac       active       10.20.30.4       2C:4F:52:01:AA:CC   10

Hu1/0/4    ip-mac       active       10.20.30.3       5C:71:0D:CD:EE:0C   10

Hu1/0/6    ip-mac       active       deny-all         deny-all            10

In questo output, è possibile vedere che il tipo Filter è ip-mac. A questo punto, lo switch filtra i pacchetti in arrivo su queste interfacce in base all'indirizzo IP e all'indirizzo MAC di origine.

Suggerimenti per la risoluzione dei problemi per DAI e IPSG

- La prima cosa da controllare durante la risoluzione dei problemi relativi ai servizi DAI e IPSG è verificare se la tabella di binding dello snooping DHCP è stata compilata correttamente.

- Prima di abilitare queste funzionalità, gestire gli endpoint con indirizzi IP statici. Se non si desidera che questi dispositivi perdano la raggiungibilità, configurare i binding statici o utilizzare una delle metodologie sopra menzionate per fare in modo che lo switch consideri attendibili questi endpoint.

- Quando si configura DAI o IPSG in un ambiente in cui lo snooping DHCP non è già abilitato e i client hanno già ricevuto gli IP dal server DHCP, abilitare prima lo snooping DHCP ed eseguire una delle due operazioni seguenti:

- Rimbalzare le interfacce connesse al client in modo che rinnovino il lease.

- Attendere che i client rinnovino automaticamente il lease. Questa operazione può richiedere più tempo, ma consente di evitare il problema di rimbalzare manualmente tutte le porte connesse al client.

- L'esecuzione di uno dei due passi descritti in precedenza attiverà una nuova transazione DORA. Lo switch rileva i pacchetti DORA e aggiorna la tabella di binding. Se non si esegue questa operazione e DAI o IPSG viene immediatamente abilitato dopo la configurazione dello snooping DHCP, si potrebbe verificare un problema in cui tutti i client DHCP della rete perdono la connettività alla rete.

- Durante la risoluzione dei problemi di connettività in un ambiente in cui DAI o IPSG è configurato, assicurarsi che la tabella di binding dello snooping DHCP non sia danneggiata. Verificare che lo switch possa accedere alla struttura di dati in cui è memorizzata la tabella.

- In alcuni casi, la tabella di binding viene esportata su un supporto che impiega del tempo per essere inizializzata dopo l'avvio dello switch o che, per qualche motivo, non è più accessibile allo switch. È possibile che in tali scenari siano stati rilevati problemi di connettività.