隨機 IP/連接埠 UDP DDoS 中 CPU 使用率高

隨機 IP/連接埠 UDP DDoS 中 CPU 使用率高

我已經UDP通過隨機 IP 和端口收到了這些洪水。

randomip:randomport -> myip:randomport

0 位元組有效負載

由於某種原因,它使用了大量的 CPU。這是 的結果perf top -e cycles:k

有什麼辦法可以優化核心嗎?

10.42%  [kernel]        [k] inet_getpeer
 7.59%  [kernel]        [k] inet_getpeer.part.4
 6.15%  [kernel]        [k] peer_avl_rebalance.isra.2
 3.38%  [kernel]        [k] fib_table_lookup
 2.77%  [ip_tables]     [k] ipt_do_table
 1.98%  [e1000e]        [k] e1000_clean_rx_irq
 1.82%  [kernel]        [k] md5_transform
 1.69%  [kernel]        [k] __ip_route_output_key
 1.36%  [kernel]        [k] check_leaf.isra.7
 1.34%  [kernel]        [k] __udp4_lib_lookup
 1.31%  [kernel]        [k] kmem_cache_free
 1.09%  [kernel]        [k] __netif_receive_skb_core
 1.01%  [kernel]        [k] __slab_free
 1.00%  [kernel]        [k] __ip_append_data.isra.38
 0.99%  [kernel]        [k] memcpy
 0.98%  [kernel]        [k] kmem_cache_alloc
 0.91%  [kernel]        [k] icmp_send
 0.89%  [xt_multiport]  [k] multiport_mt
 0.83%  [kernel]        [k] update_blocked_averages
 0.79%  [kernel]        [k] kfree
 0.79%  [kernel]        [k] __switch_to
 0.78%  [kernel]        [k] skb_release_data
 0.72%  [kernel]        [k] csum_partial_copy_generic
 0.71%  [kernel]        [k] _raw_spin_lock_irqsave
 0.67%  [kernel]        [k] ip_route_input_noref
 0.63%  [kernel]        [k] __udp4_lib_rcv
 0.61%  [kernel]        [k] dev_gro_receive
 0.59%  [kernel]        [k] __schedule
 0.59%  [kernel]        [k] __ip_make_skb
 0.57%  [kernel]        [k] __copy_skb_header
 0.56%  [kernel]        [k] sock_alloc_send_pskb
 0.55%  [kernel]        [k] nf_iterate

答案1

perf根據您的輸出來判斷,提高net.ipv4.inet_peer_threshold和降低兩者net.ipv4.inet_peer_minttl可能net.ipv4.inet_peer_maxttl會略有幫助。我假設您使用的是最近的內核,例如3.2。您可以inet_getpeer在這裡查看 的源代碼:http://lxr.linux.no/#linux+v3.2.51/net/ipv4/inetpeer.c#L395

  • 如果 DDoS 受 CPU 限制,那麼您可能應該透過netfilter以下方式禁止零大小的 UDP 封包:

    $ iptables -I INPUT -p udp -m length --length NN -j DROP
    

    透過替換NN為實際的 L3 有效負載,在您的情況下可能8(UDP 標頭的大小)。

  • 如果 DDoS 受到中斷限制,您可以調整您的e1000e,請參閱:

    $ modinfo e1000e | grep ^parm: 
    

    另請查看 Intel 的文檔以取得參數說明:http://downloadmirror.intel.com/9180/eng/README.txt

  • 如果 DDoS 是網路綁定的,那麼您應該向您的 ISP(資料中心營運商)尋求協助。

答案2

您可以將 ipset 與 iptables 結合使用,因為它在處理大量參數(例如 IP 位址或連接埠)方面非常有效率。

這是 ipset 的使用範例,其中 P2P 違規者被放入一個集合中並分配一個超時時間P2P超時解決方案

或建立即時黑名單使用 ipset 進行即時黑名單

Ipset 對於大量 IP 位址和連接埠來說非常高效,因為它將值儲存在 RAM 中。

祝你好運。

答案3

您認為可以優化哪些面向?您正在遭遇 DDoS 攻擊,該攻擊試圖使伺服器過載。如果伺服器前面沒有網路元件(對伺服器進行零路由),那麼這通常會成功。

您無法直接在伺服器上防禦 DDoS,只能透過良好的網路基礎架構和防禦系統來防禦。

相關內容