ER-XのNATスループット(Firewallありのケース)
ER-Xはstatefulなfirewallを搭載しています。これはコネクションのトラッキングが入るので処理としては比較的重いものになりますが、ER-XでNATとstateful firewallをonにするとどの程度スループットが出るのでしょうか。計測してみました。
計測環境
スイッチとして構成されているeth1にCentOS7 Aをクライアント、eth0にCentOS7 Bをサーバーとして配置し、iperf3を実行しスループットの測定を行います。NATとfirewallはBasic Setupでセットアップされる標準的なもののみ設定しています。ER-Xのファームウェアはv1.10.9となります。
計測結果
CentOS7 Aでのiperf3の実行結果が以下となります。-Mオプションを使ってMSSを変えてテストを行っています。消費電力はTAP-TST10での目測値で無負荷時は2.6Wとなります。先ずはoffloadなしで。
offloadなしの場合 | receiver | sender | ||||
MSS | Mbps | CPU | 消費電力 | Mbps | CPU | 消費電力 |
1460(指定なし) | 214 | 34% | 3.3W | 253 | 50% | 3.4W |
1200 | 207 | 51% | 3.5W | 207 | 52% | 3.5W |
800 | 117 | 35% | 3.2W | 116 | 30% | 3.2W |
400 | 45.4 | 35% | 3.2W | 58.3 | 30% | 3.2W |
やはりoffloadないと結構厳しい結果です。次はhwnat=enableで計測します。
offloadありの場合 | receiver | sender | ||||
MSS | Mbps | CPU | 消費電力 | Mbps | CPU | 消費電力 |
1460(指定なし) | 933 | 0% | 2.7W | 934 | 0% | 2.7W |
1200 | 921 | 0% | 2.7W | 920 | 1% | 2.7W |
800 | 886 | 1% | 2.7W | 885 | 1% | 2.7W |
400 | 795 | 0% | 2.7W | 794 | 0% | 2.6W |
NATやstateful firewallを入れても単純routingの結果と全く変わりません。
改めて惚れるぜER-X
ハードウェア支援が効きまくっていてCPU負荷も全くあがりませんし、消費電力もほぼ増えません。スペック表によればER-Xのパケット処理能力は1.4Mppsなので、計算上のスループットである1.4M/s×400byte = 560Mbpsを上回っているのはやや不思議ですが。
ER-XのConfig
基本Basic Setupで設定したものとなります。hwnatだけ別途enableにする追加設定を入れています。
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 address dhcp set interfaces ethernet eth0 description Internet set interfaces ethernet eth0 firewall in name WAN_IN set interfaces ethernet eth0 firewall local name WAN_LOCAL set interfaces switch switch0 address 192.168.100.1/24 set interfaces switch switch0 description Local set interfaces switch switch0 mtu 1500 set interfaces switch switch0 switch-port interface eth1 set interfaces switch switch0 switch-port interface eth2 set interfaces switch switch0 switch-port interface eth3 set interfaces switch switch0 switch-port interface eth4 set interfaces switch switch0 switch-port vlan-aware disable set service nat rule 5010 description 'masquerade for WAN' set service nat rule 5010 outbound-interface eth0 set service nat rule 5010 type masquerade set system offload hwnat enable