問題は netfilter によるものではなく、カーネルが割り込みを管理する方法です。
デフォルトでは、古いバージョンの APIC はすべての割り込みを CPU0 に配信します。
これが問題かどうかを確認するには:
cat /proc/interrupts
NIC の割り込み (および netfilter フックが RX または TX SoftIRQ で実行されることを思い出してください) が単一のコアによって処理されるかどうかを確認できます。
カーネルの新しいバージョンには、コンパイル オプション (CONFIG_HOTPLUG_CPU) があり、既存のコアに対して IRQ のバランスをとります。
または、バージョンを更新したり、カーネルを再コンパイルしたりできない場合は、SMP アフィニティを (CPUid よりも多くを処理するマスクを使用して) 更新して、異なるコア間のバランスを取ることができます。または、ACPI と適切な構成に進みます (ここではこれ以上お手伝いできません)。
ここでは、このことに関するすべてを見つけることができます (SMP アフィニティと適切な IRQ 処理)
問題は、NIC の割り込みが 1 つしかないことです。一部の新しい NIC には複数の割り込み (いわゆるマルチキュー NIC) があり、多くのスレッド間で負荷を分散できます。
単一キュー NIC の場合、新しいカーネルで使用できるいくつかのソフトウェア機能があり、負荷を分散するように構成できます。例を参照してください。利用可能なものの概要については、http://www.spinics.net/lists/linux-doc/msg02975.html を参照してください。