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 に依存している場合は、たとえば次のようにしてサイズがゼロの UDP パケットを禁止するだけでよいでしょう
netfilter
。$ iptables -I INPUT -p udp -m length --length NN -j DROP
実際の L3 ペイロードに置き換えることによって
NN
、おそらくあなたのケースでは8
(UDP ヘッダーのサイズ)。DDoS が割り込みバウンドである場合は、を調整できます
e1000e
。以下を参照してください。$ modinfo e1000e | grep ^parm:
パラメータの説明については、Intel のドキュメントも確認してください。http://downloadmirror.intel.com/9180/eng/README.txt
DDoS がネットワークに限定されている場合は、ISP (データセンターの運用者) に支援を依頼する必要があります。
答え2
ipset は、IP アドレスやポートなどの多数のパラメータの処理に非常に効率的であるため、iptables と組み合わせて使用できます。
これは、P2P違反者をセットに入れてタイムアウトを割り当てるipsetの使用例です。P2Pタイムアウトソリューション
またはライブブラックリストを作成するライブブラックリストにipsetを使用する
Ipset は、値を RAM に保存するため、多数の IP アドレスとポートに対して非常に効率的です。
幸運を。
答え3
何を最適化できると思いますか? サーバーに過負荷をかけようとする DDoS 攻撃が発生しています。サーバーへのゼロ ルーティングを実行するネットワーク コンポーネントがサーバーの前に存在しない場合、通常、この攻撃は成功します。
サーバー上の DDoS を直接防ぐことはできません。防ぐには、防御システムを備えた優れたネットワーク インフラストラクチャを介してのみ可能です。