J-COMの安いプランを使っているのですが、通常はほぼほぼ契約帯域が出ます。
これはWin7のFirefoxからWifi経由(ノーマルアクセスポイント)のFreeBSDのipfwだけのNAT(FW)を通してインターネットに出ています。
同じWin7のEther(100M)でも同じ結果でした。
FWで使用しているのはFreeBSD/12-Stable AR9341(SOC) + AR8316(SW)なモジュールです。
蟹さんのSWがパフォーマンスが悪いのでこのモジュールに変えた経緯があります。
FWとVPNは別にしているので追加でnatdとipfwを使ってIPSec/L2TPのポートフォワードを行うと、22Mくらいしか出なくなります。
ipfwのルールを消すと元に戻りますが、ちょっと不便です。
あまりFWはいじりたくないので、とりあえずVPNを使わない時はルールを消すことにします。
ipfwとnatdをつないでいるdivertが原因かな?CPUパワーは十分あると思うのですが。
ひょっとするとipfwだけでも出来るのかもしれないし、pfでも同じように出来るのかもしれませんが、実運用しているFWで実験するのはいろいろ不都合があるので、もうこのままだと思います。
カーネルパラメーターのチューニングで改善する可能性があるかもしれません。
NATだけだとどれくらいまでいけるのかちょっと試したいのでJ-COMさん帯域上げてください。