DDOS攻撃中に、ブロックしたいIPを見つけた場合、iptablesではなくnullルートを使用した方がパフォーマンスが向上しますか?
ヌルルーティングは次のようになります。
ip route add blackhole <ip or range>
Iptablesの場合:
/sbin/iptables -A INPUT -s <ip or range> -j DR
違いはありませんか? route
の方がうまくいくと思いますが、確かではありません。
宛先ではなくsourceアドレスに基づいてブロックしていると仮定すると、raw/PREROUTINGでDROPを実行すると、ルーティングの決定が行われる前に基本的にパケットをドロップできるため、うまく機能します。
ただし、iptablesルールは基本的にリンクリストであり、多数のアドレスをブロックするときに最適なパフォーマンスを得るには、ipsetを使用する必要があることに注意してください。
一方、宛先でブロックする場合、ソースIPがスプーフィングされている場合を除いて、ルーティングテーブルとiptablesでのブロックにほとんど違いはありません。スプーフィングされた場合、ブラックホール化されたエントリはルーティングキャッシュリソースを消費する可能性があります。この場合、raw/PREROUTINGが引き続き推奨されます。
攻撃者にパケットを送り返そうとするまで、発信ルートは重要ではありません。その時までに、ソケットセットアップのコストのほとんどがすでに発生しており、カーネルがホストへのルートがないと結論付けるのを待っているスレッドブロッキングが発生している可能性があります。さらに、ネットワークの問題があると結論付けたときにサーバープロセスが実行するエラーもあります。 。
iptablesまたは別のファイアウォールを使用すると、着信トラフィックをブロックして、サーバー上のデーモンプロセスに到達する前に破棄できます。このユースケースでは明らかに優れているようです。
iptablesは、ddos攻撃をブロックするための標準ツールです。私はたまたま非常に激しいddos攻撃の下で巨大なiptablesリストを持っていて、それは非常にうまく機能します。私はiptablesを好みます。