In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
In diesem Dokument werden Best Practices für das Löschen oder Einschränken von SSDP-Paketen (Simple Service Discovery Protocol) auf Switches der Catalyst Serie 9000 beschrieben.
Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:
Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Im Allgemeinen kündigen Endbenutzergeräte wie Laptops und Mobiltelefone ihre UPnP-Funktionen (Universal Plug-and-Play), die das SSDP-Protokoll verwenden, automatisch an. Clients senden ein Multicast-Ankündigungspaket an die IP-Adresse 239.255.255.250. Diese Werbung wird häufig mit einer Time to Live (TTL) von 1 gesendet und geht nicht über das lokale Subnetz der Hosts hinaus, die das Multicast-Paket generiert haben. Um Werbung für andere Geräte im Netzwerk zu empfangen, senden die Endpunkte außerdem einen IGMP-Mitgliedschaftsbericht an die Adresse 239.255.255.250. Dieser weist das Netzwerk darauf hin, dass Multicast-Datenverkehr, der von einer anderen Multicast-Quelle an diese IP-Adresse gesendet wird, ebenfalls an diesen Client weitergeleitet werden muss.
In Unternehmensumgebungen, die Hunderte oder Tausende von Endpunkten enthalten, die alle als Quelle und als interessierter Empfänger dieser Gruppe fungieren, kann diese Client-Aktivität Netzwerkgeräte leicht überlasten, wenn sie nicht geprüft wird, und Ausfälle verursachen, sobald die Netzwerkressourcen erschöpft sind.
Diese Erschöpfung geschieht in erster Linie auf zwei Arten:
Obwohl in diesem Dokument nicht im Detail beschrieben, muss darauf hingewiesen werden, dass es aufgrund der Offenheit von SSDP möglich ist, dass ein Angreifer ein Paket mit einem Handwerk an eine Gruppe von Clients mit aktiviertem Service sendet, um eine große Antwort an einen oder eine Gruppe von Ziel-Hosts auszulösen. Die große Menge an ausgehendem Schnittstellenstatus, die erzeugt wird, bedeutet auch, dass die Switch-Leistungskapazität durch eine geringe Menge an Multicast-Verkehr erheblich beeinträchtigt werden kann, da der Switch eine Kopie jedes Frames für jede ausgehende Schnittstelle innerhalb des ASIC (Application Specific Integrated Circuit) erstellen muss. In der Liste der ausgehenden Schnittstellen ist angegeben, dass mindestens 20 Schnittstellen ein höheres Risiko für Kapazitätsprobleme und Paketverluste aufweisen.
Catalyst Switches der Serie 9000 drucken Syslogs mit dem Vermerk "fman_fp_image" oder "FMFP", wenn die Ressourcen erschöpft sind. Einige oder alle dieser Fehler können ausgegeben werden, wenn der Switch eine Ressourcenauslastung festgestellt hat und weiter untersucht werden muss.
Dies sind nur einige der häufigsten Fehler, die bei der Ressourcenauslastung auftreten, aber es handelt sich nicht um eine umfassende Liste.
Abbildung 1: Beispiel für die häufigsten Fehler in Druckbuchstaben, die eine erschöpfte Ressource auf einem Switch belegen
%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>
Alle Catalyst Switches der Serie 9000 verwenden spezielle ASICs, um den Großteil der Paketweiterleitung bei hohem Durchsatz durchzuführen. Diese ASICs nutzen verschiedene Tabellen und interne Ressourcen, die in ihrer Kapazität begrenzt sind. Da SSDP-Clients sowohl als Quelle als auch als Empfänger für eine gemeinsame Multicast-Gruppe fungieren, muss die Hardware diese beschränkten Ressourcen nutzen, um einen Pfad in der Hardware zu programmieren, dem Pakete folgen, selbst wenn diese Pakete aus anderen Gründen nie kommen oder verworfen werden (TTL 1). Sobald die Hardwareressourcen erschöpft sind, können für keine Gruppe mehr Updates oder Ergänzungen installiert werden, unabhängig von der Beziehung zum SSDP. Eine große Anzahl nicht installierter SSDP-Updates (Statusänderung) kann ebenfalls in der Software in eine Warteschlange gestellt werden. Dies kann auch dazu führen, dass Hardware-Updates für Nicht-Multicast-Datenverkehr unterbrochen werden oder fehlschlagen, was sich auf den Benutzerdatenverkehr auswirkt und Netzwerkausfälle verursacht.
Dieses Dokument ist nur relevant, wenn Ihr Netzwerk mit PIM konfiguriert ist und über einen Layer-3-Multicast-Status für die bekannte SSDP-Gruppenadresse verfügt. Führen Sie zum Überprüfen dieser Kriterien den Befehl "show ip mroute 239.255.255.250"
(fügen Sie ggf. VRF-Anweisungen hinzu). Die Gruppe 239.255.255.250 ist spezifisch für das SSDP-Protokoll.
Wenn die Befehlsausgabe eine große Anzahl ausgehender Schnittstellen enthält und/oder über eine große Anzahl eindeutiger Quellen für diese spezifische Gruppe verfügt, bedeutet dies, dass das System und das Netzwerk anfällig für Ausfälle sind, die durch SSDP verursacht werden. Je höher die Anzahl ausgehender Schnittstellen und eindeutiger Quellen ist, desto höher ist die Wahrscheinlichkeit, dass sich dies auf den Service auswirkt.
Abbildung 2: Beispielausgabe von "show ip mroute 239.255.255.250"
-Befehls, wobei SSDP im Netzwerk aktiv ist.
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
Wenn SSDP nicht für einen bestimmten Zweck verwendet wird, ist zu erwarten, dass diese Ausgabe leer ist, eine geringe Anzahl ausgehender Schnittstellen aufweist und/oder eine geringe Anzahl eindeutiger Quellen aufweist, um Ressourcenauslastung und mögliche Auswirkungen auf den Service zu vermeiden.
Wenn eine große Anzahl von Multicast-Gruppen erkannt wird, kann der Befehl "show platform software object-manager fp active statistics" oder "show platform software object-manager fp switch active statistics" verwendet werden, um festzustellen, ob eine Hardwareressource erschöpft ist.
Hinweis: Dieser Befehl ist nicht spezifisch für die durch Multicast-Datenverkehr ausgelöste Ressourcenauslastung. Andere Probleme können dazu führen, dass diese Werte ungleich null sind.
Abbildung 3: Ausgabe von "show platform software object-manager fp active statistics"
im Problemzustand
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
Die Ausgabe von Abbildung 3 zeigt die Symptome eines Switches mit Erschöpfung der Ressourcen. Es gibt mehrere Befehlsausgabeleitungen, die während des normalen Betriebs nicht erwartet werden:
Beständig in einem Zustand, in dem eine große Anzahl von Zählern für ausstehende Probleme oder ausstehende Bestätigungen vorhanden ist, erhöht sich das Risiko, dass die Hardware falsch programmiert wird. Falsch programmierte Hardware ist eine häufige Ausfallquelle für Unicast- und Multicast-Datenverkehr.
Der Befehl "show platform hardware fed switch active fwd-asic resource utilization" or in some models "show platform hardware fed active fwd-asic resource utilization"
kann verwendet werden, um einige der begrenzten Ressourcen zu untersuchen, die auf den ASICs verwendet werden, und um festzustellen, ob eine interne Ressource ausgeschöpft wurde:
Abbildung 4: Beispielausgabe von"show platform hardware fed active fwd-asic resource utilization"
mit einer Ressource fast erschöpft.
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
In Abbildung 4 zeigt der Wert für "RSC_RIL_INDEX", dass 131065 Einträge verwendet werden und nur 7 frei sind. Diese Ressource wird von einer großen Anzahl eindeutiger SSDP-Gruppen genutzt. Ressourcen, die zwar nicht SSDP-spezifisch sind, aber eine geringe Anzahl freier Einträge und eine hohe Anzahl zugewiesener Einträge aufweisen, sind Anzeichen dafür, dass sich der Switch in der Nähe eines Kapazitätsproblems befindet, und müssen untersucht werden.
Der Befehl "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"
kann verwendet werden, um die Auslastung pro ASIC nach Ressource zu untersuchen. Eine weitere mögliche Signatur aus der SSDP-Erschöpfung ist die Spalte "Used Values" (Verwendete Werte) für "L3-Multicast-Einträge", um sich dem Bereich "Max Values" (Maximale Werte) oder diesem Bereich zu nähern.
Abbildung 5: Beispielausgabe von"show platform hardware fed active fwd-asic resource tcam utilization"
im Normalbetrieb
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
Um die Ressourcenauslastung zu beenden, muss der SSDP-Datenverkehr vor der Erstellung des ersten L3-Hop- und Multicast-Status gestoppt werden. Die schnellste Lösung ist die Verwendung einer IPv4-Zugriffskontrollliste (ACL) für den Eingang aller L3-Schnittstellen, die mit PIM konfiguriert sind und diesen Datenverkehr empfangen. Überprüfen Sie dies mit dem Befehl "show ip mroute 239.255.255.250", und sehen Sie sich die "Incoming Interface" (Eingehende Schnittstelle) für jede Gruppe an. Gibt an, von welcher L3-Schnittstelle die Quelle des Datenverkehrs stammt, und beachten Sie, dass es mehr als eine eindeutige Quellschnittstelle geben kann. In diesem Konfigurationsbeispiel kann SSDP auf Layer 2 ausgeführt werden, und L2-benachbarte Hosts können PNP-Services erkennen. Client-Advertisements können jedoch nicht über L3-Grenzen hinweg weitergeleitet werden, und die Erstellung von L3-Multicast-Status auf einem Multicast-Router oder -Switch wird verhindert.
Konfigurieren einer erweiterten Zugriffskontrollliste:
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
Konfigurieren Sie die ACL unter jeder L3-Schnittstelle in Eingangsrichtung:
Switch#configure terminal
Switch(config)#interface vlan100
Switch(config-if)#ip access-group BLOCK_SSDP in
Switch(config-if)#end
Es gibt noch andere Methoden, um die Erstellung eines Zustands aus dem SSDP-Datenverkehr zu begrenzen oder vollständig zu verhindern. Da jedes Netzwerk anders ist, sind nicht alle gleich effektiv und können mit spezifischen Vor- oder Nachteilen für die jeweilige Umgebung verbunden sein. Zum Zeitpunkt der Erstellung dieses Dokuments ist eine geroutete ACL, die den Datenverkehr an der SVI blockiert, weiterhin die am meisten empfohlene, effektivste und am wenigsten konfigurationsintensive Lösung, um den Status und das Volumen dieses Datenverkehrs zu reduzieren. Endbenutzer können dieses Protokoll weiterhin verwenden, um Dienste auf ihrem lokalen VLAN zu erkennen.
Verstehen Sie genau die Vor- und Nachteile der einzelnen Methoden, um festzustellen, ob eine für Ihre Umgebung besser geeignet ist.
Diese Methode eignet sich für Umgebungen mit einer statischen Rendezvous Point (RP)-Zuordnung, bei denen die Erstellung einer ACL über eine große Anzahl von SVIs oder L3-Schnittstellen hinweg konfigurationsintensiv sein kann.
Gehen Sie wie folgt vor, um diese Methode zu implementieren:
Konfigurieren Sie eine ACL, die unerwünschten SSDP-Datenverkehr ablehnt:
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
Konfigurieren der im Rahmen der statischen RP-Zuordnung erstellten ACL
Switch#configure terminal
Switch(config)#ip pim rp-address 192.168.1.1 10
Switch(config-if)#end
Diese Methode eignet sich für Umgebungen, in denen SSDP auf L2 oder L3 nicht benötigt wird, oder in Umgebungen, in denen das Volumen des SSDP-Verkehrs IGMP-Snooping oder andere L2-Multicast-Ressourcen des Switches erschöpft.
Konfigurieren Sie zwei ACLs. Einer davon darf nur mit SSDP-Datenverkehr übereinstimmen und ein anderer muss als "catch-all" (Alle) verwendet werden, um den gesamten normalen Netzwerkdatenverkehr zu identifizieren.
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
Konfigurieren Sie eine VLAN-Zugriffszuordnung mit zwei Sequenznummern. Einer verweigert SSDP, einer lässt den gesamten anderen Datenverkehr zu. Wenden Sie dies auf die gewünschten VLANs an.
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
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
01-Jul-2022 |
Erstveröffentlichung |