El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe las prácticas recomendadas para descartar o limitar los paquetes de protocolo simple de detección de servicios (SSDP) en los switches Catalyst de la serie 9000.
Cisco recomienda que tenga conocimiento sobre estos temas:
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
En general, los dispositivos de usuario final, como los ordenadores portátiles y los teléfonos móviles, anuncian automáticamente sus funciones Plug-and-Play universal (UPnP) que utilizan el protocolo SSDP. Los clientes envían un paquete de anuncio de multidifusión a la dirección IP 239.255.255.250. Estos anuncios se envían a menudo con un tiempo de vida (TTL) de 1 y no van más allá de la subred local de los hosts que generaron el paquete de multidifusión. Para recibir los anuncios de otros dispositivos en la red, los terminales también envían un informe de afiliación IGMP a la dirección 239.255.255.250, que indica a la red que el tráfico multidifusión enviado a esta dirección IP desde cualquier otro origen de multidifusión también debe reenviarse a este cliente.
En entornos empresariales que contienen cientos o miles de terminales que actúan como origen y como receptor interesado de este grupo, esta actividad del cliente puede saturar fácilmente los dispositivos de red si no se controla y puede provocar interrupciones una vez agotados los recursos de red.
Este agotamiento ocurre principalmente de una de dos maneras:
Aunque no se trata en detalle en este documento, debe tenerse en cuenta que debido a la naturaleza abierta de SSDP, es posible que un atacante envíe un paquete modificado a un grupo de clientes con este servicio habilitado para activar una respuesta de gran tamaño que se envíe a uno o un grupo de hosts de destino. La gran cantidad de estado de interfaz saliente que se crea también significa que la capacidad de rendimiento del switch puede verse significativamente afectada por una pequeña cantidad de tráfico de multidifusión, ya que el switch debe realizar una copia de cada trama para cada interfaz saliente dentro del circuito integrado específico de la aplicación (ASIC). Las listas de interfaces salientes que cuentan con 20 o más interfaces tienen un mayor riesgo de problemas de capacidad y pérdida de paquetes.
Los switches Catalyst de la serie 9000 imprimen registros del sistema que mencionan "fman_fp_image" o "FMFP" cuando se han agotado los recursos. Algunos o todos estos errores pueden imprimirse cuando el switch ha experimentado un agotamiento de recursos y debe investigarse más a fondo.
Estos son algunos de los errores más comunes observados durante el agotamiento de los recursos, pero no se trata de una lista exhaustiva.
Figura 1: Muestra de los errores más comunes impresos que son evidencia de agotamiento de recursos en un switch
%FMFP-3-OBJ_DWNLD_TO_DP_STUCK: R0/0: fman_fp_image: AOM download to Data Plane is stuck for more than 1800 seconds for <object details>
%FMFP-3-OBJ_DWNLD_TO_DP_RESUME: R0/0: fman_fp_image: AOM download of objects to Data Plane is back to normal
%FMFP_QOS-6-QOS_STATS_STALLED: R0/0: fman_fp_image: statistics stalled
%FMFP-3-OBJ_DWNLD_TO_DP_FAILED: R0/0: fman_fp_image: adj <hex>, Flags None download to DP failed
%FMFP-3-OBJ_DWNLD_TO_DP_FAILED: R0/0: fman_fp_image: adj <hex>, Flags Midchain download to DP failed
%FED_L3M_ERRMSG-3-RSRC_ERR: Switch <num> R0/0: fed: Failed to allocate hardware resource for group <address> - rc:<number or error>
%FED_L3_ERRMSG-3-RSRC_ERR: Chassis <num> R0/0: fed: Failed to allocate hardware resource for adj entry due to hardware resource exhaustion - rc:<number or error>
Todos los switches Catalyst de la serie 9000 utilizan ASIC especiales para realizar la mayor parte del routing de paquetes con un alto rendimiento. Estos ASIC aprovechan diferentes tablas y recursos internos que son finitos en su capacidad. Debido a que los clientes SSDP actúan como fuentes y receptores para un grupo multicast común, el hardware debe utilizar estos recursos limitados para programar una trayectoria en el hardware para que los paquetes sigan, incluso si esos paquetes nunca llegan o se descartan por otras razones (TTL 1). Una vez agotados los recursos de hardware, no se pueden instalar nuevas actualizaciones o adiciones para ningún grupo, independientemente de su relación con SSDP. Un gran número de actualizaciones de SSDP no instaladas (cambio de estado) también pueden ponerse en cola en el software, esto también puede hacer que las actualizaciones de hardware para el tráfico no multidifusión se interrumpan o fallen, lo que afecta el tráfico de los usuarios y provoca interrupciones en la red.
Este documento sólo es relevante si su red está configurada con PIM y tiene estado multicast de capa 3 para la dirección de grupo SSDP conocida. Para comprobar estos criterios, ejecute el comando "show ip mroute 239.255.255.250"
(agregue instrucciones vrf si es necesario). El grupo 239.255.255.250 es específico del protocolo SSDP.
Si el resultado del comando contiene un gran número de interfaces salientes y/o tiene un gran número de fuentes únicas para este grupo específico, eso indica que el sistema y la red son vulnerables a las interrupciones causadas por SSDP. Cuanto mayor sea el número de interfaces salientes y orígenes únicos, mayores serán las posibilidades de que esto pueda afectar al servicio.
Figura 2: Ejemplo de resultado de "show ip mroute 239.255.255.250"
con SSDP activo en la red.
Switch#show ip mroute 239.255.255.250 IP Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet, X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement, U - URD, I - Received Source Specific Host Report, Z - Multicast Tunnel, z - MDT-data group sender, Y - Joined MDT-data group, y - Sending to MDT-data group, G - Received BGP C-Mroute, g - Sent BGP C-Mroute, N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed, Q - Received BGP S-A Route, q - Sent BGP S-A Route, V - RD & Vector, v - Vector, p - PIM Joins on route, x - VxLAN group Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.255.255.250), 00:08:35/stopped, RP 10.0.0.1, flags: SJC Incoming interface: GigabitEthernet0/0/1.40, RPF nbr 10.0.0.1 Outgoing interface list: GigabitEthernet0/0/1.101, Forward/Sparse, 00:08:35/00:02:40 GigabitEthernet0/0/1.102, Forward/Sparse, 00:08:35/00:02:38 GigabitEthernet0/0/1.100, Forward/Sparse, 00:08:35/00:02:39 (10.1.1.2, 239.255.255.250), 00:01:40/00:01:19, flags: T Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet0/0/1.40, Forward/Sparse, 00:01:40/00:01:40, A GigabitEthernet0/0/1.100, Forward/Sparse, 00:01:40/00:02:39 GigabitEthernet0/0/1.102, Forward/Sparse, 00:01:40/00:02:38 GigabitEthernet0/0/1.101, Forward/Sparse, 00:01:40/00:02:40 (10.1.1.3, 239.255.255.250), 00:02:03/00:00:56, flags: JT Incoming interface: GigabitEthernet0/0/1.40, RPF nbr 10.1.1.1 Outgoing interface list: GigabitEthernet0/0/1.100, Forward/Sparse, 00:02:03/00:02:39 GigabitEthernet0/0/1.102, Forward/Sparse, 00:02:03/00:02:38 GigabitEthernet0/0/1.101, Forward/Sparse, 00:02:03/00:02:40 (10.1.1.4, 239.255.255.250), 00:08:35/00:02:32, flags: T Incoming interface: GigabitEthernet0/0/1.40, RPF nbr 10.1.1.1 Outgoing interface list: GigabitEthernet0/0/1.100, Forward/Sparse, 00:08:35/00:02:39 GigabitEthernet0/0/1.102, Forward/Sparse, 00:08:35/00:02:38 GigabitEthernet0/0/1.101, Forward/Sparse, 00:08:35/00:02:40, A
A menos que SSDP se utilice para un propósito específico, se espera que este resultado esté vacío, o tenga un número bajo de interfaces salientes y/o un número bajo de fuentes únicas para evitar el agotamiento de recursos y posibles impactos en el servicio.
Si se observa un gran número de grupos multicast, se puede utilizar el comando "show platform software object-manager fp active statistics" o "show platform software object-manager fp switch active statistics" para determinar si se ha agotado un recurso de hardware.
Nota: Este comando no es específico para el agotamiento de los recursos desencadenados por el tráfico de multidifusión; otros problemas pueden hacer que estos valores no sean cero.
Figura 3: Salida de "show platform software object-manager fp active statistics"
en estado problemático
Switch#show platform software object-manager fp active statistics Forwarding Manager Asynchronous Object Manager Statistics Object update: Pending-issue: 109058, Pending-acknowledgement: 76928 <-- Pending-issue is very high, this Batch begin: Pending-issue: 0, Pending-acknowledgement: 0 is not expected. Batch end: Pending-issue: 0, Pending-acknowledgement: 0 Command: Pending-acknowledgement: 0 Total-objects: 304085 Stale-objects: 0 Resolve-objects: 0 Childless-delete-objects: 530 Error-objects: 1098
Paused-types: 127
El resultado de la figura 3 muestra los síntomas de un switch con agotamiento de recursos. Hay varias líneas de salida de comandos que no se esperan durante el funcionamiento normal:
De forma coherente, en un estado en el que hay un gran número de contadores de "problemas pendientes" o "confirmaciones pendientes", aumenta el riesgo de que el hardware se programe incorrectamente. El hardware programado incorrectamente es una fuente común de interrupciones en el tráfico de unidifusión y multidifusión.
El comando "show platform hardware fed switch active fwd-asic resource utilization" or in some models "show platform hardware fed active fwd-asic resource utilization"
se puede utilizar para observar algunos de los recursos finitos en uso en los ASIC y determinar si un recurso interno se ha agotado:
Figura 4: Ejemplo de resultado de"show platform hardware fed active fwd-asic resource utilization"
con un recurso casi agotado.
Switch#show platform hardware fed active fwd-asic resource utilization
Resource Info for ASIC Instance: 0
Resource Name Allocated Free
------------------------------------------
RSC_DI 3822 38076
RSC_FAST_DI 0 192
RSC_RIET_0 1 1024
RSC_RIET_1 0 512
RSC_RIET_2 0 512
RSC_RIET_3 0 512
RSC_RIET_4 0 512
RSC_RIET_5 0 512
RSC_RIET_6 0 256
RSC_RIET_7 0 255
RSC_VLAN_LE 116 3976
RSC_L3IF_LE 116 3907
RIM_RSC_DGT 1 255
RSC_VPN_PREFIX_ID 1 32768
RSC_LABEL_STACK_ID 1 65536
RSC_RI 7358 82730
RSC_LI_RI 0 129
RSC_PORT_LE_RI 0 2048
RSC_PORT_LE 0 1827
RSC_RI_REP 10635 120437
RSC_SI 11842 119072
RSC_SI_IND 1 255
RSC_SI_STATS 3550 45602
RSC_RCP1_FID 1 1023
RSC_RCP2_FID 1 1023
RSC_RCP3_FID 1 1023
RSC_RCP4_FID 1 1023
RSC_LV1_ECR 1 63
RSC_LV2_ECR 3 253
RSC_ENH_ECR 1 0
RSC_RPF_MATCH 12 1012
RSC_PLC 1 2047
RSC_PLC_PF 1 255
RSC_MTU_INDEX 6 250
RSC_EGR_REDIRECT_INDEX 2 2046
RSC_RIL_INDEX 131065 7 <-- Free entries extremely low, this is not expected.
RSC_SIF 1 1023
RSC_GROUP_LE 1 1023
RSC_RI_REP_LOCAL 1 0
RSC_EXT_SI 512 65024
En la figura 4, el valor de "RSC_RIL_INDEX" muestra que hay 131065 entradas en uso y solo 7 son gratuitas. Este recurso es consumido por un gran número de grupos SSDP únicos. Aunque no son específicos de SSDP, los recursos que tienen un número bajo de entradas libres y un número alto de entradas asignadas son señales de que el switch está cerca de un problema de capacidad, y deben ser investigados.
El comando "show platform hardware fed switch active fwd-asic resource tcam utilization" or on some models "show platform hardware fed active fwd-asic resource tcam utilization"
se puede utilizar para observar un desglose por ASIC de la utilización por recurso. Otra posible firma del agotamiento de SSDP es la columna "Valores utilizados" para "entradas de multidifusión L3" para acercarse a o alcanzar los "Valores máximos".
Figura 5: Ejemplo de resultado de"show platform hardware fed active fwd-asic resource tcam utilization"
en funcionamiento normal
Switch#show platform hardware fed active fwd-asic resource tcam utilization
CAM Utilization for ASIC [0]
Table Max Values Used Values
--------------------------------------------------------------------------------
Unicast MAC addresses 32768/768 6160/21
L3 Multicast entries 32768/768 3544/8 <-- Normal Utilization, not near Max Values
L2 Multicast entries 2304 181 <-- Normal Utilization, not near Max Values
Directly or indirectly connected routes 212992/1536 11903/39
Input Ipv4 QoS Access Control Entries 5632 17
Input Non Ipv4 QoS Access Control Entries 2560 36
Output Ipv4 QoS Access Control Entries 6144 13
Output Non Ipv4 QoS Access Control Entries 2048 27
Input Ipv4 Security Access Control Entries 7168 12
Input Non Ipv4 Security Access Control Entries 5120 76
Output Ipv4 Security Access Control Entries 7168 11
Output Non Ipv4 Security Access Control Entries 8192 27
Ingress Netflow ACEs 1024 8
Policy Based Routing ACEs 3072 20
Egress Netflow ACEs 1024 8
Flow SPAN ACEs 512 5
Flow Egress SPAN ACEs 512 8
Control Plane Entries 1024 235
Tunnels 2816 26
Lisp Instance Mapping Entries 512 3
Input Security Associations 512 4
SGT_DGT 32768/768 0/1
CLIENT_LE 8192/512 0/0
INPUT_GROUP_LE 1024 0
OUTPUT_GROUP_LE 1024 0
Macsec SPD 256 2
Para detener el agotamiento de los recursos, el tráfico SSDP debe detenerse antes de la creación del primer salto L3 y del estado multicast. La solución más rápida consiste en utilizar una lista de control de acceso (ACL) IPv4 aplicada en la entrada a todas las interfaces L3 configuradas con PIM que ven este tráfico. Verifique con el comando "show ip mroute 239.255.255.250" y observe la "Interfaz de entrada" para cada grupo. Esto indica de qué interfaz L3 proviene el origen del tráfico y debe tener en cuenta que puede haber más de una interfaz de origen única. Este ejemplo de configuración permite que SSDP funcione en la capa 2 y permite que los hosts adyacentes a L2 descubran servicios PNP, pero evita que los anuncios de cliente se reenvíen a través de los límites de L3 e impide la creación del estado multicast de L3 en cualquier router o switch multicast.
Configure una ACL extendida:
ip access-list extended BLOCK_SSDP remark Block SSDP deny ip any host 239.255.255.250 <-- Deny SSDP
permit ip any any
<-- Permit any other group
Configure bajo cada interfaz L3, aplique la ACL en la dirección de ingreso:
Switch#configure terminal
Switch(config)#interface vlan100
Switch(config-if)#ip access-group BLOCK_SSDP in
Switch(config-if)#end
Existen otros métodos para limitar o evitar por completo la creación del estado a partir del tráfico SSDP. Como cada red es diferente, no todas son igual de eficaces y pueden presentar ciertas ventajas o desventajas exclusivas de cada entorno. En el momento de escribir esto, una ACL enrutada que bloquea el tráfico en la SVI sigue siendo la más recomendada, la más efectiva y la menos intensiva en configuración para lograr el objetivo de reducir el estado y el volumen de este tráfico, al tiempo que permite que los clientes finales utilicen este protocolo para detectar servicios en su vlan local.
Comprenda cuidadosamente las ventajas y desventajas de cada uno de los métodos para determinar si uno puede ser más adecuado para su entorno.
Este método es útil para entornos con una asignación estática de punto de encuentro (RP) donde la creación de una ACL a través de un gran número de interfaces SVI o L3 puede requerir mucha configuración.
Para implementar este método, siga estos pasos:
Configure una ACL que niegue el tráfico SSDP no deseado:
Switch(config)#ip access-list standard 10
Switch(config-std-nacl)#deny 239.255.255.250 <-- Deny SSDP from registering
Switch(config-std-nacl)#permit 224.0.0.0 15.255.255.255
<-- Permit any other group
Configure la ACL que creó como parte de la asignación estática RP
Switch#configure terminal
Switch(config)#ip pim rp-address 192.168.1.1 10
Switch(config-if)#end
Este método es útil para entornos donde no se necesita SSDP en L2 o L3, o en entornos donde el volumen de tráfico SSDP agota la indagación IGMP u otros recursos multicast L2 del switch.
Configure dos ACL. Uno debe coincidir sólo con el tráfico SSDP y debe ser un catch-all utilizado para identificar todo el tráfico de red normal.
Switch(config)#ip access-list extended match_ssdp
Switch(config-ext-nacl)#permit ip any host 239.255.255.250
Switch(config-ext-nacl)#exit
Switch(config)#ip access-list extended match_all
Switch(config-ext-nacl)#permit ip any any
Configure un mapa de acceso vlan con dos números de secuencia. Una para denegar SSDP y otra para permitir el resto del tráfico. Aplique esto a las vlan deseadas.
Switch#configure terminal
Switch(config)#vlan access-map block_ssdp 10
Switch(config-access-map)#match ip address match_ssdp
Switch(config-access-map)#action drop
Switch(config-access-map)#vlan access-map block_ssdp 20
Switch(config-access-map)#match ip address match_all
Switch(config-access-map)#action forward
Switch(config-access-map)#exit
Switch(config)#vlan filter block_ssdp vlan-list
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
01-Jul-2022 |
Versión inicial |