Introduzione
In questo documento vengono descritti i diversi modi per configurare i possibili modi per bloccare o filtrare determinati traffici multicast sugli switch Nexus 7000/9000. Può inoltre essere utilizzato per preservare le risorse multicast. Uno degli esempi più comuni è l'implementazione Microsoft di un'operazione Plug and Play universale che utilizza SSDP per la comunicazione tra i server.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza del funzionamento di AnySource Multicast (ASM) con la modalità PIM Sparse sulla piattaforma Nexus.
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
- Nexus 7K con LC F3/M3 con NXOS 7.3(4)D1(1)
- Nexus N9K-C93180YC-EX/FX con 7.0(3)I7(9) o 9.3(5)
Nota: I risultati possono variare se SW/HW è diverso.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
Di seguito è riportato l'elenco degli acronimi utilizzati:
RP - Punto di rendering
FHR - Router primo hop
LHR - Ultimo router hop
SRC - Origine multicast
REC - Ricevitore multicast
PACL - Elenco accessi porta
RACL - Routed Access-List
SVI - Interfaccia virtuale commutata
ACL - Access Control List
Configurazione
Topologia generica

Esempi di configurazione
Supponiamo che:
L'indirizzo IP di RP è 192.168.10.1
L'indirizzo IP di SRC è 172.16.10.100/32
Gruppo SSDP: 239.255.255.250/239.255.255.253
Ora, discutiamo la configurazione in base al ruolo del dispositivo. Ad esempio, FHR, LHR, RP e altro ancora.
FHR - In genere, Multicast SRC è connesso direttamente qui
1. Filtrare la registrazione in base all'RP esistente.
ip pim rp-address 192.168.10.1 route-map filter-registration
!
Route-map filter-registration deny 5
match ip multicast source 172.16.10.100/32 group 239.255.255.250/32
// Above line is specific to SRC/GROUP pair
Route-map filter-registration deny 7
match ip multicast group 239.255.255.250/32
// Above line is for any SRC and specific group
!
Route-map filter-registration permit 100
Match ip multicast group 224.0.0.0/4
|
2. filtrare la registrazione verso l'RP definendo un RP falso (che non esiste (ad esempio, 1.1.1.1) per i gruppi SSDP; FHR, in questo caso, assume il ruolo di RP.
ip route 1.1.1.1/32 Null0
!
ip pim rp-address 1.1.1.1 route-map SSDP_groups
!
Route-map SSDP_groups permit 5
match ip multicast group 239.255.255.250/32
Route-map SSDP_groups permit 10
match ip multicast group 239.255.255.253/32
Route-map SSDP_groups deny 20
match ip multicast group 224.0.0.0/4
!
ip pim rp-address 192.168.10.1 route-map all_other_groups
!
Route-map all_other_groups deny 5
match ip multicast group 239.255.255.250/32
Route-map all_other_groups deny 10
match ip multicast group 239.255.255.253/32
Route-map all_other_groups permit 20
match ip multicast group 224.0.0.0/4
|
Verifica:
Nexus9K_OR_N7K# show ip pim rp
PIM RP Status Information for VRF "default"
BSR disabled
Auto-RP disabled
BSR RP Candidate policy: None
BSR RP policy: None
Auto-RP Announce policy: None
Auto-RP Discovery policy: None
RP: 192.168.10.1, (0),
uptime: 00:00:27 priority: 0,
RP-source: (local), group-map: Filter-registration,
group rangs:
224.0.0.0/4
239.255.255.253/32 (deny)
239.255.255.250/32 (deny)
Nexus9K_OR_N7K# show ip mroute
IP Multicast Routing Table for VRF "default"
(172.16.10.100/32, 239.255.255.250/32), uptime: 00:04:12, ip pim
Incoming interface: Vlan10, RPF nbr: 172.16.10.100
Outgoing interface list: (count: 0)
Nexus9K_OR_N7K# show system internal mfwd event-history pkt
pkt events for MCASTFWD process
2021 Jan 1 11:11:41.792316 mcastfwd [21914]: [21933]: Create state for (172.16.10.100, 239.255.255.250)
Nexus9K_OR_N7K # show ip pim internal event-history null-register
2021 Jan 01 11:15:19.095711: E_DEBUG pim [21935]: Null Register not sent for (172.16.10.100/32, 239.255.255.250/32) yes
|
Questo output conferma che FHR non sta registrando il flusso in RP.
LHR - In genere, la registrazione multicast è collegata direttamente qui
3. Applicazione della policy IGMP sulla SVI in entrata (dove REC risiede). L'idea qui è di filtrare i report di appartenenza IGMP per i gruppi SSDP da REC.
ip pim rp-address 192.168.10.1 group-list 224.0.0.0/4
!
route-map filter-SSDP-joins deny 5
match ip multicast group 239.255.255.250/32
route-map filter-SSDP-joins deny 6
match ip multicast group 239.255.255.253/32
route-map filter-SSDP-joins permit 100
match ip multicast group 224.0.0.0/4
!
Interface VlanXX
ip igmp report-policy filter-SSDP-joins
|
Verifica:
Nexus9K_OR_N7K (config)# show ip mroute 239.255.255.250
IP Multicast Routing Table for VRF "default"
Group not found
!
Nexus9K_OR_N7K (config)# show ip igmp snooping groups vlan 44
Type: S - Static, D - Dynamic, R - Router port, F - Fabricpath core port
Vlan Group Address Ver Type Port list
44 */* - R Vlan44
44 239.255.255.250 v2 D Eth1/5
!
Nexus9K_OR_N7K (config)# show ip igmp internal event-history debugs
debugs events for IGMP process
2021 Jan 1 11:52:21.277915 igmp [1125]: : Filtered group 239.255.255.250
2021 Jan 1 11:52:21.277903 igmp [1125]: : Received v2 Report for 239.255.255.250 from 172.16.44.100 (Vlan44)
|
Questo output conferma che il report di appartenenza IGMP è filtrato e (*,G) join non viene inviato a RP.
PIM - Router abilitato che opera come FHR/LHR
È possibile utilizzare una combinazione delle opzioni 1, 2 e 3, a seconda delle esigenze.
Ad esempio:
4. Filtra registrazione in base al ruolo RP (FHR) esistente:
ip pim rp-address 192.168.10.1 route-map filter-registration
!
Route-map filter-registration deny 5
match ip multicast source 172.16.10.100/32 group 239.255.255.250/32
Route-map filter-registration deny 7
match ip multicast group 239.255.255.250/32
!
Route-map filter-registration permit 100
Match ip multicast group 224.0.0.0/4
|
5. Criteri IGMP per filtrare i rapporti di appartenenza IGMP da REC (ruolo LHR).
ip pim rp-address 192.168.10.1 group-list 224.0.0.0/4
!
route-map filter-SSDP-joins deny 5
match ip multicast group 239.255.255.250/32
route-map filter-SSDP-joins deny 6
match ip multicast group 239.255.255.253/32
route-map filter-SSDP-joins permit 100
match ip multicast group 224.0.0.0/4
!
Interface VlanXX
ip igmp report-policy filter-igmp-joins
|
Verifica:
Praticamente le stesse verifiche effettuate ai punti C e D di cui sopra.
Show ip mroute
Show ip pim rp
Show ip pim internal event-history join-prune
Show ip igmp internal event-history debugs
|
RP - Rendezvous Point
6. Politica di registrazione per bloccare la registrazione di un gruppo SSDP da FHR.
ip pim rp-address 192.168.10.1 group-list 224.0.0.0/4
ip pim register-policy all_groups
!
Route-map all_groups deny 5
match ip multicast group 239.255.255.250/32
Route-map all_groups deny 10
match ip multicast group 239.255.255.253/32
Route-map all_groups permit 20
match ip multicast group 224.0.0.0/4
|
Verifica:
Nexus9K_OR_N7K (config)# show ip mroute 239.255.255.250
IP Multicast Routing Table for VRF "default"
Group not found
!
Nexus9K_OR_N7K (config)# show ip pim internal event-history data-register-receive
2021 Jan 08 03:33:06.353951: E_DEBUG pim [1359]: Register disallowed by policy
2021 Jan 08 03:33:06.353935: E_DEBUG pim [1359]: Received DATA Register from 172.16.10.1 for (172.16.10.100/32, 239.255.255.250/32) (pktlen 1028)
2021 Jan 08 03:29:42.602744: E_DEBUG pim [1359]: Add new route (172.16.10.100/32, 239.1.1.1/32) to MRIB, multi-route TRUE
F241.01.13-C93180YC-EX-1(config)# show ip pim internal event-history null-register
2021 Jan 08 03:35:40.966617: E_DEBUG pim [1359]: Send Register-Stop to 172.16.10.1 for (172.16.10.100/32, 239.255.255.250/32)
2021 Jan 08 03:35:40.966613: E_DEBUG pim [1359]: Register disallowed by policy
2021 Jan 08 03:35:40.966597: E_DEBUG pim [1359]: Received NULL Register from 172.16.10.1 for (172.16.10.100/32, 239.255.255.250/32) (pktlen 20)
|
Questo output conferma che RP blocca la registrazione per il gruppo 239.255.255.250.
7. Applicazione della regola di join-prune nell'RP - sia pim (*,G) join che (S,G) join solo per il gruppo SSDP.
ip pim rp-address 192.168.10.1 group-list 224.0.0.0/4
ip pim register-policy all_groups
!
Route-map all_groups deny 5
match ip multicast group 239.255.255.250/32
Route-map all_groups deny 10
match ip multicast group 239.255.255.253/32
Route-map all_groups permit 20
match ip multicast group 224.0.0.0/4
!
Interface Ethernet/Y
ip pim sparse-mode
ip pim jp-policy all_groups
|
Verifica:
Nexus9K_OR_N7K # show ip mroute 239.255.255.253
IP Multicast Routing Table for VRF "default"
Group not found
!
F241.01.13-C93180YC-EX-1# show ip pim internal event-history join-prune
2021 Jan 08 03:53:41.643419: E_DEBUG pim [1359]: Join disallowed by inbound JP policy
|
Questo output conferma (*,G) che l'unione PIM è bloccata da RP.
Configura Conserva voci hardware per multicast
Sebbene tutte le opzioni descritte nelle sezioni A, B o C; impedire a FHR, LHR o FHR/LHR di registrare il flusso all'RP o di inviare rispettivamente l'unione PIM (*,G) all'RP; è comunque possibile creare una voce mroute o snooping che utilizza voci hardware multicast.
Nota: È possibile utilizzare RACL o PACL su interfacce SVI o Layer 2 in entrata/canali porte/canali porte VPC se VPC è configurato. Se si spruzza SRC/REC su diverse interfacce VLAN o L2, significa anche che RACL o PACL deve essere applicato su tutte queste interfacce. Tuttavia, i risultati possono variare a seconda dell'hardware e del software (principalmente a causa di limitazioni dell'hardware).
PACL
Configurare PACL sulla porta Layer2 in entrata o sul canale della porta VPC o sul canale della porta VPC per bloccare il traffico SSDP o la creazione di una voce (S, G) in FHR.
Nota: A seconda dell'hardware utilizzato (ad esempio, Nexus N9000), per applicare il PACL è possibile che TCAM debba essere scolpito prima (operazione che richiede il ricaricamento).
Ad esempio:
ip access-list BlockAllSSDP
Statistics per-entry
10 deny ip any 239.255.255.250/32
20 deny ip any 239.255.255.253/32
30 permit ip any any
!
Interface Ethernet X/Y
Or
Interface port-channel XX
ip port-access group BlockAllSSDP in
|
Verifica:
F241.01.13-C93180YC-EX-1# sh ip mroute 239.255.255.250
IP Multicast Routing Table for VRF "default"
Group not found
!
show ip access-lists BlockAllSSDP
IP access list BlockAllSSDP
statistics per-entry
10 deny ip any 239.255.255.250/32 [match=3] -> Drop counters
20 deny ip any 239.255.255.253/32 [match=0]
30 permit ip any any [match=0]
|
Poiché entrambe le porte di appartenenza IGMP/traffico multicast sono bloccate tramite PACL, non viene visualizzata alcuna voce snooping, mroute. Essenzialmente il PACL li sta eliminando entrambi.
RACL
È possibile configurare RACL su SVI in entrata dove SRC esiste, ma a seconda del software/hardware utilizzato; È comunque possibile creare una voce (S, G) o inoltrare il traffico ad altre VLAN locali.
ip access-list BlockAllSSDP
Statistics per-entry
10 deny ip any 239.255.255.250/32
20 deny ip any 239.255.255.253/32
30 permit ip any any
!
Interface VlanXX
ip port-access group BlockAllSSDP in
|
Verifica:
È più o meno uguale a PACL, ma l'opzione RACL non può fornire gli stessi risultati di PACL; soprattutto, la sua limitazione di HW è menzionata anche in precedenza.
COPP
È inoltre possibile bloccare SSDP in COPP. Di seguito viene riportata una configurazione di esempio:
class-map type control-plane match-any nossdp
match access-group name nossdp
policy-map type control-plane nossdp
class nossdp
police cir 0 bps bc 0 bytes conform transmit violate drop control-plane dynamic
service-policy-dyn input nossdp
!
ip access-list nossdp
statistics per-entry
10 permit ip any 239.255.255.250/32
20 permit igmp any 239.255.255.250/32
30 permit pim any 239.255.255.250/32
|
Limite multicast globale
A partire da Cisco NX-OS versione 10.2(1), è supportata la configurazione di multicast basata sul limite globale.
È necessario configurare il {ip | ipv6} comando multicast group-range prefix-list <prefix-list-name> in modalità di configurazione VRF per definire un intervallo globale di gruppi e canali multicast IP da consentire o negare per il limite multicast globale. Questo comando è usato per disabilitare le azioni del protocollo multicast e l'inoltro del traffico per i gruppi o i canali non autorizzati per tutte le interfacce su un router. L'elenco dei prefissi configura il limite. Di seguito è riportata una configurazione di esempio:
vrf context enterprise
ip multicast group-range prefix-list test
|
https://www.cisco.com/c/en/us/td/docs/dcn/nx-os/nexus9000/102x/configuration/multicast-routing/cisco-nexus-9000-series-nx-os-multicast-routing-configuration-guide-release-102x/m-overview.html#concept_29A33F30E7F84F7AA20C8D7D1A22ED98