ER-6PのPPPoEスループット
ER-Xと比べて大幅にパワーアップしたER-6Pですが、PPPoEのスループットも理論上の最大値が出るのか念のためテストしてみました。
計測環境
CentOS7 Aをiperf3のクライアント、CentOS7 Bをiperf3のサーバーにし、スループットの測定を行います。テストに使うPPPoEサーバーはMikrotik社のソフトウェアアプライアンス CHR(Cloud Hosted Router)のv6.44.3を使いました。フレッツ環境を意識し、PPPoEサーバーのMTUは1454に設定しています。基本Basic Setupのものですが、MSS clampingを入れるため、以下の設定を追加で入れています。
set firewall modify MSS_CLAMPING_PPPoE rule 10 action modify set firewall modify MSS_CLAMPING_PPPoE rule 10 modify tcp-mss 1414 set firewall modify MSS_CLAMPING_PPPoE rule 10 protocol tcp set firewall modify MSS_CLAMPING_PPPoE rule 10 tcp flags SYN set interfaces ethernet eth0 pppoe 0 firewall in modify MSS_CLAMPING_PPPoE set interfaces ethernet eth0 pppoe 0 firewall out modify MSS_CLAMPING_PPPoE
検証に使うER-6Pのファームウェアはv1.10.9となります。
計測結果
CentOS7 Aでのiperf3の実行結果が以下となります。-Mオプションを使ってMSSを変えてテストを行っています。消費電力はTAP-TST10での目測値で無負荷時は7.4Wとなります。offloadなしでテストします。
forwaring=disable pppoe=disable |
receiver | sender | ||||
MSS | Mbps | CPU | 消費電力 | Mbps | CPU | 消費電力 |
1414(指定なし) | 439 | 57% | 8.2W | 507 | 60% | 8.3W |
1200 | 380 | 54% | 8.3W | 432 | 60% | 8.3W |
800 | 261 | 54% | 8.3W | 285 | 59% | 8.3W |
400 | 133 | 57% | 8.3W | 143 | 62% | 8.3W |
単純ルーティングやNAT+firewallで高パフォーマンスを見せていたER-6Pですが、PPPoEだと見る影もありません。以前CentOSでPPPoEを試したと、CPU負荷がかなり高くなり、あり得ないくらいスピードが出なかったことがありましたが、それと同じ現象でしょうか?pppoeがカーネルモードで動いておらず、スピードが出ないといった事象でした。本件については後日時間があれば調べてみようかと思います。まあ、offloadありが本命なので、pppoe=enableを有効にして再度計測してみます。
forwaring=disable pppoe=enable |
receiver | sender | ||||
MSS | Mbps | CPU | 消費電力 | Mbps | CPU | 消費電力 |
1414(指定なし) | 929 | 16% | 7.7W | 935 | 18% | 7.9W |
1200 | 924 | 16% | 7.7W | 924 | 18% | 7.9W |
800 | 862 | 24% | 7.7W | 890 | 25% | 8.0W |
400 | 768 | 25% | 7.7W | 798 | 28% | 7.9W |
めちゃくちゃ改善しました!
ER-Xのときもそうでしたが、ER-6Pでpppoe=enableは必須ですね。offloadの影響もあり消費電力も若干ですが改善しています。最後にforwardingもenableにして計測してみます。
forwaring=enable pppoe=enable |
receiver | sender | ||||
MSS | Mbps | CPU | 消費電力 | Mbps | CPU | 消費電力 |
1414(指定なし) | 935 | 16% | 7.7W | 935 | 18% | 7.9W |
1200 | 924 | 17% | 7.7W | 924 | 19% | 7.9W |
800 | 887 | 23% | 7.7W | 890 | 25% | 8.1W |
400 | 770 | 25% | 7.7W | 798 | 27% | 7.9W |
ほぼ変化がないですね。forwaring(NAT) offloadの効果は、iperf3のテストということもありあまりありません。
ER-6PのConfig
テストに使ったconfigは、基本Basic Setupで設定したものに、先に説明のMSS Clampingとoffloadを追加設定をしたものとなります。
set firewall modify MSS_CLAMPING_PPPoE rule 10 action modify set firewall modify MSS_CLAMPING_PPPoE rule 10 modify tcp-mss 1414 set firewall modify MSS_CLAMPING_PPPoE rule 10 protocol tcp set firewall modify MSS_CLAMPING_PPPoE rule 10 tcp flags SYN set firewall name WAN_IN default-action drop set firewall name WAN_IN description 'WAN to internal' set firewall name WAN_IN rule 10 action accept set firewall name WAN_IN rule 10 description 'Allow established/related' set firewall name WAN_IN rule 10 state established enable set firewall name WAN_IN rule 10 state related enable set firewall name WAN_IN rule 20 action drop set firewall name WAN_IN rule 20 description 'Drop invalid state' set firewall name WAN_IN rule 20 state invalid enable set firewall name WAN_LOCAL default-action drop set firewall name WAN_LOCAL description 'WAN to router' set firewall name WAN_LOCAL rule 10 action accept set firewall name WAN_LOCAL rule 10 description 'Allow established/related' set firewall name WAN_LOCAL rule 10 state established enable set firewall name WAN_LOCAL rule 10 state related enable set firewall name WAN_LOCAL rule 20 action drop set firewall name WAN_LOCAL rule 20 description 'Drop invalid state' set firewall name WAN_LOCAL rule 20 state invalid enable set interfaces ethernet eth0 description 'Internet (PPPoE)' set interfaces ethernet eth0 duplex auto set interfaces ethernet eth0 pppoe 0 default-route auto set interfaces ethernet eth0 pppoe 0 firewall in modify MSS_CLAMPING_PPPoE set interfaces ethernet eth0 pppoe 0 firewall in name WAN_IN set interfaces ethernet eth0 pppoe 0 firewall local name WAN_LOCAL set interfaces ethernet eth0 pppoe 0 firewall out modify MSS_CLAMPING_PPPoE set interfaces ethernet eth0 pppoe 0 mtu 1454 set interfaces ethernet eth0 pppoe 0 name-server auto set interfaces ethernet eth0 pppoe 0 password test set interfaces ethernet eth0 pppoe 0 user-id ppp1 set interfaces ethernet eth1 address 192.168.100.1/24 set service nat rule 5010 description 'masquerade for WAN' set service nat rule 5010 outbound-interface pppoe0 set service nat rule 5010 type masquerade set system offload ipv4 forwarding enable set system offload ipv4 pppoe enable