ルータのDHCPサーバ性能

先日、ちょっとYAMAHAのルータを利用していて、DHCPサーバが死ぬということが起きました。

一斉にクライアントから再接続しに行ったところ、接続できなくなり、 確認してみたらDHCPでした、という感じです。

dhcpperfというDHCPの性能を測るツールを公開してくださっているので、 これを機会に調べてみたところです。

YAMAHAのルータ自体は、クリティカルなわけでもない箇所でDHCP/NAT箱として利用しているだけでしたので、 置き換えを検討しながら、いっそ仮想ルータに置き換えてしまっても問題ないのでは? ということで SEIL/x86VyOSDHCP性能も調べてみたところです。

仮想マシンは、AMD A10-7800 Windows10上のVMwareWorkstation上ですので、 もっと性能のいいサーバマシン上ではもう少し出るかもしれません。

結果だけ書いてしまうと

機器 性能 request/sec
RTX 3500 7, 8
SEIL/x86 96
VyOS 113

というところでした。 YAMAHAルータの圧倒的な性能のなさが見せつけられました。 CPU bound な処理だろうから、クロックの低いルータのCPUではつらいという感じでしょうか

計測には dhcpperf -v を用い、何も特殊なことはしていません。

DHCP pool は 172.16.0.0/16 を基準としています ただし、 SEIL/x86は pool の最大が 1021でしたので、 1021で計測しています。 計測中の状況を見るとに、SEIL/x86は clientのreleaseに応じてちゃんと解放しているようでしたので、 ちゃんと計測できているのではないかと思います。 VyOSの場合、clientのreleaseが来ても、どうも1日くらい(?)解放しないようで、poolサイズを小さくすると、 poolが尽きて応答が高速になるという現象に遭遇しました。

とりあえず3種比べてみましたが、手元に転がっているCisco Routerでも調べてみる予定です。

それはそうと、120秒間、100リクエストが来続けるとか、どんな環境でしょうね。 12000台のクライアントが2分の間に接続してくるような環境……