問題現象描述
部署了組播業務的交換機CPU占用率高,同時發現交換機上存在大量239.255.255.250的組播組的轉發表項,占用了較多的轉發表項資源,而實際組播業務中并沒有規劃該組播組地址。
例如:某局點的一個用戶子網啟用IPTV業務后,交換機CPU占用率高,同時發現交換機上出現大量源IP地址為某品牌機頂盒的IP地址,組IP地址為239.255.255.250的組播路由表項,并且這些組播表項擴散到其他用戶子網絡,設備上都可以查看到大量該組播組地址的轉發表項。
問題根因說明
239.255.255.250地址屬于SSDP(Simple Service Discovery Protocol)簡單服務發現協議使用的組播地址,因此當網絡中存在服務器或者終端PC默認啟用SSDP服務時,便會發送對應組播報文到交換機上。
由于239.255.255.250地址不屬于組播地址的永久組地址(永久組地址也稱為保留組地址,用于標識一組特定的網絡設備,供路由協議、拓撲查找等使用,不用于組播轉發)224.0.0.X范圍之內,交換機將該組播組地址作為一個正常普通的組播組來處理,因此會生成對應的組播轉發表項。
本案例中,初步分析是這種品牌的機頂盒默認啟用了SSDP服務,會發送對應“ssdp:discover”消息報文到源DR交換機觸發組播轉發表項,同時向RP注冊成功后,其他用戶子網中的終端設備發送該組播組的Report報文,導致各子網交換機均出現大量不同源IP,相同組IP的組播轉發表項。
問題判斷方法
1.執行display cpu-usage命令,查看交換機CPU占用率,發現CPU占用率在80%以上,并且查看CPU占用率較高的任務,發現收包任務“bcmRx/FTS/VPR/SOCK”占用率最高。
2.使用display cpu-defend statistics命令查看上送CPU報文的統計信息,判斷是否存在過多IGMP協議報文。
a.執行reset cpu-defend statistics命令,清除上送CPU報文的統計信息。
b.執行display cpu-defend statistics packet-type igmp all命令,查看上送CPU的IGMP報文統計信息。
3.找出組播攻擊源。
可以通過以下三種方式來找出組播攻擊源:
−端口鏡像獲取報文信息
端口鏡像獲取報文信息是最直接的獲取報文詳細特征的方式,且對設備的CPU不會造成任何影響,建議在上送CPU的報文的入方向端口進行鏡像。交換機端口鏡像配置方式請參考產品文檔的“配置指南-網絡管理與監控配置-鏡像配置”章節。
−查看組播表項
n如果配置的二層組播,執行display igmp-snooping port-info命令,會發現有不同主機端口都收到了239.255.255.250組播組的Report請求。
如果配置的三層組播,執行display multicast forwarding-table命令,會發現存在較多不同源地址、相同組播地址239.255.255.250的組播轉發表項。
−配置基于攻擊溯源的本機防攻擊策略
執行display auto-defend attack-source和display auto-defend attack-source slot slot-id命令,查看主控板和接口板的攻擊源信息。
4.通過以上方法,同時結合實際組播業務部署中沒有規劃239.255.255.250的組播組地址,確定設備受到239.255.255.250組播組報文攻擊。
解決方案
有兩種解法方法,一種是在交換機上過濾該組播組報文(推薦使用該方法),一種是在存在攻擊源的服務器或終端PC上關閉SSDP服務。
l在交換機上過濾該組播組報文。
a.過濾239.255.255.250的IGMP協議報文。
b.過濾239.255.255.250數據報文。
l在服務器或終端PC上關閉SSDP服務。
a.進入“控制面板”,選擇“管理工具”,進入后再選擇“服務”。
b.在列表中找到“SSDP Discovery Service”服務,選擇并停止該項服務。
經驗總結
239.255.255.250組地址屬SSDP服務所有,一般windows服務器默認會開啟該服務,因此網絡中出現該組地址的表項是較為常見的。
對于交換機而言,這只是一個普通的組播組,如果發現CPU占用率高,并且判斷是受到未在業務規劃內的239.255.255.250的報文攻擊,可以在交換機上進行相關的過濾配置或者在服務器或終端設備上關閉該服務,避免交換機上大量生成該組播組的轉發表項。
相關介紹
簡單服務發現協議SSDP(Simple Service Discovery Protocol)是一種應用層協議,其構成UPnP(通用即插即用)技術的核心協議之一。它為網絡客戶端(network client)提供了一種發現網絡服務(network services)的機制,采用基于通知和發現路由的組播方式實現。
SSDP協議一般使用組播地址239.255.255.250:1900(IPv4),FF0x::C(IPv6)來傳送相關消息。
按照協議的規定,當一個控制點(客戶端)接入網絡的時候,它可以向一個特定的組播地址的SSDP端口使用M-SEARCH方法發送“ssdp:discover”消息。當設備監聽到這個保留的組播地址上由控制點發送的消息的時候,設備會分析控制點請求的服務,如果自身提供了控制點請求的服務,設備將通過單播的方式直接響應控制點的請求。
SSDP的UDP數據報文和IGMP Report報文分別如圖6-1和圖6-2所示。
圖6-1 SSDP的UDP數據報文
圖6-2 SSDP的IGMP Report報文
6.2 交換機受到ARP報文攻擊
問題現象描述
如圖6-3所示,Switch為網關,Switch_1(框式交換機)經常脫管,且Switch_1下用戶存在上網掉線,Ping網關存在時延、不通等現象,而Switch_2下聯業務正常,Ping網關正常。
圖6-3 故障組網圖
問題根因說明
Switch_1上存在源mac固定的ARP攻擊導致用戶無法進行正常ARP交互。
問題判斷方法
在Switch_1上執行以下操作:
步驟 1查看設備CPU占用率,判斷CPU占用率較高。
發現CPU占用率達到82%。
步驟 2查看存在臨時ARP表項,初步判斷設備的ARP表項學習存在問題。
發現有兩條ARP表項的“MAC ADDRESS”字段為“Incomplete”即為臨時表項,表示有ARP表項學習不到。
步驟 3判斷設備正遭受ARP攻擊。
1.由于有未學習到的ARP表項,查看上送CPU的ARP-Request報文統計信息。
發現交換機的4號單板上存在大量ARP-Request報文丟包。
2.配置攻擊溯源識別攻擊源。
3.查看攻擊源信息。
發現攻擊源的MAC地址為0000-0000-00db,位于GigabitEthernet2/0/22端口。
如果該MAC有對應ARP,還可以執行命令display arp | include 0000-0000-00db查詢對應的IP。
----結束
解決方案
l配置黑名單。
l配置攻擊溯源的懲罰功能。
6.3 STP震蕩引起CPU占用率高
問題現象描述
一臺盒式交換機的CPU占用率過高,交換機輸出大量的ARP報文超過CPCAR后丟棄的日志,同時采集端口信息時,發現所有使能STP的端口接收的TC報文計數均在增長。
問題根因說明
端口收到大量的TC報文引起STP震蕩,觸發大量MAC表項刪除、ARP表項刷新,使交換機需要處理大量ARP-Miss、ARP-Request和ARP-Reply報文,導致CPU占用率升高。
問題判斷方法
1.查看日志,設備上出現CPU占用率過高的日志信息。
2.查看日志,設備上還有大量的ARP報文超過CPCAR后丟棄的日志記錄。
3.采集端口TC(Topology Change)報文收***況。
隔幾秒執行一次display stp tc-bpdu statistics命令,查看端口TC/TCN報文收發計數,發現所有使能STP的端口,接收的TC報文計數均在增長。
解決方案
1.系統視圖下執行stp tc-protection命令,打開TC保護的告警開關。
打開TC保護告警開關后,可以保證設備頻繁收到TC報文時,每2秒周期內最多只處理1次表項刷新,從而減少MAC、ARP表項頻繁刷新對設備造成的CPU處理任務過多。
同時設備會觸發MSTP_1.3.6.1.4.1.2011.5.25.42.4.2.15 hwMstpiTcGuarded和MSTP_1.3.6.1.4.1.2011.5.25.42.4.2.16 hwMstpProTcGuarded兩個告警。
2.系統視圖下執行arp topology-change disable命令,去使能設備響應TC報文的功能。
當設備收到TC報文后,默認會對ARP表項進行老化。執行該命令后,當設備收到TC報文時,不對ARP表項進行老化或刪除,避免網絡拓撲變化頻繁時,設備重新的學習ARP表項造成網絡中ARP報文過多,導致設備的CPU占用率過高。
3.系統視圖下執行mac-address update arp命令,使能MAC刷新ARP功能。
當設備收到TC報文后,默認會清除MAC表項。執行該命令后,在MAC地址表項出接口刷新時,設備將直接刷新ARP表項的出接口,可以減少大量不必要的ARP表項刷新。
經驗總結
在處理CPU高的問題時,需要多關注CPCAR丟包情況。
在部署STP時,建議配置TC保護功能,并將所有連接終端的接口配置成邊緣端口,這樣可以避免某些端口的狀態變化引起整個STP網絡震蕩而重新收斂。
6.4 OSPF震蕩引起CPU占用率高
問題現象描述
如圖6-4所示,Switch_1、Switch_2、Switch_3和Switch_4配置了OSPF協議,發現Switch_1設備的CPU占用率高,ROUT任務占用率明顯高于其他任務并且產生路由震蕩。
圖6-4 故障組網圖
問題根因說明
網絡中IP地址沖突導致路由震蕩。
問題判斷方法
步驟 1在各交換機上每隔一秒執行一次display ospf lsdb命令,查看每臺交換機的OSPF的LSDB鏈路狀態數據庫信息。
步驟 2根據各交換機的回顯信息,判斷故障點。
l如果同時出現以下情況,說明LSA老化異常。
−一臺交換機上發現網段LSA的老化時間(Age)為3600或者沒有這條LSA,且Sequence字段增加很快。
−其他交換機的相同網段LSA的Age不斷在3600和其他較小值之間切換,而且Sequence字段增加很快。
a.在各交換機上每隔一秒執行一次display ospf routing,如果看到有路由振蕩且沒有鄰居振蕩,則可以判斷為IP地址沖突或Router ID沖突。結合display ospf lsdb的回顯信息,可以判斷為DR和非DR的IP地址沖突。
b.根據AdvRouter字段找到其中的一臺設備進而定位出是哪個接口,與其沖突的設備只能夠通過網絡IP地址規劃找到,很難通過OSPF自身攜帶的信息找到沖突設備。
如本例中,可以首先判斷出沖突的IP地址為112.1.1.2,其中一臺沖突設備的Router ID為1.1.1.1,與其沖突的另外一臺設備(3.3.3.3)無法通過OSPF自身攜帶的信息找到。
l如果任一臺交換機上出現兩個LinkState ID為112.1.1.2的Network LSA,并且這兩個LSA的Age字段一直都很小,Sequence字段增加比較快。說明IP地址沖突發生在DR和BDR上。
----結束
解決方案
根據規劃修改沖突一方的IP地址。
經驗總結
l網絡中時常會出現由于接口IP地址配置沖突而導致的路由問題。出現此問題時,設備通常伴隨下面兩個現象:
−設備CPU占用率高,執行命令display cpu-usage查看CPU使用狀態時,ROUT任務占用率明顯高于其他任務。
−發生路由振蕩。
l在OSPF網絡中,接口IP地址配置沖突時可能導致OSPF的LSA頻繁的老化和產生,進而導致網絡不穩定,引起路由振蕩,消耗CPU處理資源。
因此,網絡中接口IP地址需要根據規劃配置,不要隨意改動網絡規劃參數。
6.5 交換機出現環路引起大量組播報文上送,導致CPU占用率高
問題現象描述
一臺框式交換機為下掛用戶提供HSI(High Seed Internet)業務、VOIP業務和IPTV業務,其中HSI和VOIP均為PPPoE業務,IPTV業務為IGMP Snooping二層組播業務。
管理用戶發現交換機入方向流量帶寬超過90%,同時主控板和接口板的CPU占用率達到80%以上。
問題根因說明
交換機下掛新增的接入設備未使能STP,從而出現環路,大量IGMP協議報文上送交換機CPU,引起CPU占用率過高,使EFM報文交互延時,從而出現交換機與其他交換機之間出現互聯端口EFM(Ethernet in the First Mile)閃斷,導致端口的MSTP重新計算,影響了正常業務。
問題判斷方法
在框式交換機上執行以下操作:
1.執行命令display cpu-usage命令,查看CPU占用率,發現主、備設備的主控板的CPU占用率達到87%,接口板CPU占用率達到93%。
2.查看設備輸出告警。
a.設備出現端口超過帶寬閾值的告警。
b.設備出現EFM震蕩,根橋丟失。
3.執行命令display interface,發現端口處理組播報文過多。
4.執行命令display cpu-defend statistics all,發現“Packet Type”為“igmp”的報文過多,說明大量IGMP組播協議報文上送交換機CPU。
5.在處理組播報文較多的端口進行鏡像報文獲取,定位發現是某地址的組播報文上送。
解決方案
1.在交換機上配置基于黑名單的本機防攻擊策略,過濾IGMP協議報文,減少下面網絡出現環路后組播協議報文對CPU的沖擊。
排查現網網絡部署,對構成環路的線路進行破環處理