본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 Catalyst 9000 Series 스위치에서 SSDP(Simple Service Discovery Protocol) 패킷을 삭제 또는 제한하도록 설계된 모범 사례 컨피그레이션에 대해 설명합니다.
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
일반적으로 랩톱 및 휴대폰과 같은 최종 사용자 디바이스는 SSDP 프로토콜을 사용하는 UPnP(Universal Plug-and-Play) 기능을 자동으로 광고합니다. 클라이언트는 IP 주소 239.255.255.250에 멀티캐스트 광고 패킷을 전송합니다. 이러한 광고는 TTL(Time to Live)이 1인 경우 전송되며 멀티캐스트 패킷을 생성한 호스트의 로컬 서브넷을 초과하지 않습니다. 네트워크에 있는 다른 디바이스의 광고를 수신하려면 엔드포인트는 239.255.255.250 주소로 IGMP 멤버십 보고서를 전송하여 다른 멀티캐스트 소스에서 이 IP 주소로 전송된 멀티캐스트 트래픽도 이 클라이언트로 전달해야 함을 네트워크에 알립니다.
수백 또는 수천 개의 엔드포인트가 모두 소스 역할을 하며 이 그룹의 관심 있는 수신자가 포함된 엔터프라이즈 환경에서 이 클라이언트 활동은 점검 안 되면 네트워크 장치를 쉽게 마비시킬 수 있으며 네트워크 리소스가 모두 소진되면 중단이 발생할 수 있습니다.
이러한 탈진은 주로 두 가지 방법 중 하나로 이루어집니다.
이 문서에서는 자세히 설명하지 않지만, SSDP의 개방적인 특성 때문에 공격자가 이 서비스가 활성화된 클라이언트 그룹으로 작성된 패킷을 전송하여 하나 또는 대상 호스트 그룹으로 큰 응답을 보낼 수 있다는 점에 유의해야 합니다. 또한 생성되는 많은 양의 발신 인터페이스 상태는 스위치가 ASIC(Application Specific Integrated Circuit) 내에서 각 발신 인터페이스에 대해 하나의 사본을 만들어야 하기 때문에 적은 양의 멀티캐스트 트래픽에서 스위치 성능 용량이 크게 강조될 수 있음을 의미합니다. 발신 인터페이스에는 20개 이상의 인터페이스에서 용량 문제 및 패킷 손실의 위험이 더 높은 것으로 표시됩니다.
Catalyst 9000 Series 스위치는 리소스가 다 소모되었을 때 "fman_fp_image" 또는 "FMFP"가 포함된 syslog를 인쇄합니다. 스위치에 리소스가 고갈되어 더 자세히 조사해야 하는 경우 이러한 오류의 일부 또는 전부를 인쇄할 수 있습니다.
이러한 오류는 리소스 소모 중에 나타나는 일반적인 오류 중 일부이지만 포괄적인 목록은 아닙니다.
그림 1: 스위치에서 리소스 소모가 발생했음을 나타내는 가장 일반적인 오류의 샘플
%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>
모든 Catalyst 9000 Series 스위치는 특수 ASIC를 활용하여 높은 처리량으로 대부분의 패킷 라우팅을 수행합니다. 이러한 ASIC는 용량이 한정된 서로 다른 테이블과 내부 리소스를 활용합니다. SSDP 클라이언트는 공통 멀티캐스트 그룹의 소스와 수신자 역할을 하므로, 하드웨어는 이러한 제한된 리소스를 사용하여 패킷이 따라야 할 하드웨어에서 경로를 프로그래밍해야 합니다. 이러한 패킷이 다른 이유로 오거나 삭제되지 않더라도(TTL 1). 하드웨어 리소스가 모두 소진되면 SSDP와 관련된 모든 그룹에 대해 새로운 업데이트나 추가 기능을 설치할 수 없습니다. 설치되지 않은 SSDP 업데이트(상태 변동)가 많이 소프트웨어에 대기열에 포함될 수 있으며, 이로 인해 비 멀티캐스트 트래픽에 대한 하드웨어 업데이트가 중단되거나 실패할 수 있으며, 이로 인해 사용자 트래픽에 영향을 미치고 네트워크 중단이 발생할 수 있습니다.
이 문서는 네트워크가 PIM으로 구성되어 있고 잘 알려진 SSDP 그룹 주소에 대한 레이어 3 멀티캐스트 상태가 있는 경우에만 관련됩니다. 이 기준을 확인하려면 명령을 실행합니다 "show ip mroute 239.255.255.250"
(필요한 경우 vrf 문을 추가합니다.) 그룹 239.255.255.250은 SSDP 프로토콜에 한정됩니다.
명령 출력에 많은 발신 인터페이스가 포함되어 있거나 이 특정 그룹에 고유한 소스가 많은 경우, 이는 시스템과 네트워크가 SSDP로 인한 중단에 취약함을 나타냅니다. 발신 인터페이스 및 고유 소스 수가 많을수록 서비스에 영향을 미칠 가능성이 높습니다.
그림 2: 샘플 출력 "show ip mroute 239.255.255.250"
명령을 실행할 수 있습니다.
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
SSDP를 특정 용도로 사용하지 않는 한 이 출력은 비어 있거나, 발신 인터페이스 수가 적거나, 리소스 소모 및 서비스 영향을 방지하기 위해 고유한 소스 수가 낮습니다.
많은 멀티캐스트 그룹이 확인되면 "show platform software object-manager fp active statistics" 또는 "show platform software object-manager fp switch active statistics" 명령을 사용하여 하드웨어 리소스가 소진되었는지 확인할 수 있습니다.
참고: 이 명령은 멀티캐스트 트래픽에 의해 트리거된 리소스 소진에만 한정되지 않으며, 다른 문제로 인해 이러한 값이 0이 아닐 수 있습니다.
그림 3: 출력 "show platform software object-manager fp active statistics"
문제 상태
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
그림 3의 출력은 리소스 소모가 있는 스위치의 증상을 보여줍니다. 정상 작업 중에는 예상되지 않는 여러 명령 출력 행이 있습니다.
"pending-issue" 또는 "pending-acknowledgement" 카운터가 많은 상태에서는 하드웨어가 잘못 프로그래밍될 위험이 커집니다. 잘못 프로그래밍된 하드웨어는 유니캐스트 및 멀티캐스트 트래픽에 대한 중단의 일반적인 원인입니다.
명령 "show platform hardware fed switch active fwd-asic resource utilization" or in some models "show platform hardware fed active fwd-asic resource utilization"
ASIC에서 사용 중인 일부 한정된 리소스를 살펴보고 내부 리소스가 소진되었는지 확인하는 데 사용할 수 있습니다.
그림 4: 샘플 출력"show platform hardware fed active fwd-asic resource utilization"
리소스가 거의 소진되지 않습니다.
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
그림 4에서 "RSC_RIL_INDEX"의 값은 131065개의 항목이 사용 중이며 7개만 사용 가능합니다. 이 리소스는 많은 고유 SSDP 그룹에서 사용됩니다. SSDP에 한정되지 않지만, 사용 가능한 항목 수가 적고 할당된 항목 수가 많은 리소스는 스위치가 용량 문제에 근접하고 있음을 나타내므로 반드시 조사해야 합니다.
명령 "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"
ASIC별 리소스 사용률 분석을 확인하는 데 사용할 수 있습니다. SSDP 소진에서 가능한 또 다른 시그니처는 "L3 멀티캐스트 항목"이 "Max Values"에 근접하거나 "L3 Multicast entries"에 사용되는 "Used Values" 열입니다.
그림 5: 샘플 출력"show platform hardware fed active fwd-asic resource tcam utilization"
정상 작동
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
리소스 소모를 중지하려면 첫 번째 L3 홉과 멀티캐스트 상태 생성 전에 SSDP 트래픽을 중지해야 합니다. 가장 빠른 솔루션은 인그레스(ingress)에 적용된 IPv4 ACL(Access Control List)을 이 트래픽을 확인하는 PIM으로 구성된 모든 L3 인터페이스에 사용하는 것입니다. "show ip mroute 239.255.255.250" 명령을 사용하여 확인하고 각 그룹에 대해 "Incoming Interface"를 확인합니다. 이는 트래픽의 소스가 되는 L3 인터페이스를 나타내며 둘 이상의 고유한 소스 인터페이스가 있을 수 있음을 나타냅니다. 이 컨피그레이션 예에서는 SSDP가 레이어 2에서 작동하고 L2 인접 호스트가 PNP 서비스를 검색할 수 있도록 허용하지만, 클라이언트 광고가 L3 경계를 통해 전달되지 않도록 하고, 멀티캐스트 라우터 또는 스위치에서 L3 멀티캐스트 상태 생성을 방지합니다.
확장 ACL을 구성합니다.
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
각 L3 인터페이스에서 ACL을 인그레스 방향으로 적용합니다.
Switch#configure terminal
Switch(config)#interface vlan100
Switch(config-if)#ip access-group BLOCK_SSDP in
Switch(config-if)#end
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
01-Jul-2022 |
최초 릴리스 |