IPFire 利用時のスループットを計測してみました

火あぶりペンギンのイラストが印象的なファイアーウォール向けのリナックスディストリビューションIPFireを検証してみました。

IPFireは、2GB程度のコンパクトフラッシュメモリにインストール出来るほどの小さなリナックスディストリビューションです。オープンソースのため、無償で利用出来ます。

ファイアーフォール/プロキシーサーバ/VPN Gatewayなどの機能の他に、アドオン追加すればファイルサーバやメールサーバなどとしても動作させることが出来ます。また、コマンドではなく、Webブラウザを利用して管理や設定を行います。

検証内容は、PC2台の間にファイヤーウォールIPFireを設置した場合のスループット計測です。(下図)

◎ 検証で利用した環境

ipfire 2.13 core update 75

http://www.ipfire.org/

iperf 2.0.2

http://sourceforge.jp/projects/sfnet_iperf/releases/

Power Master Appliance B6301

http://www.systemworks.co.jp/pma_b630x.php

◎ ファイアーウォール(ipfire)の設定

IPFireではファイアーウォールの外側にあるPC1(ipアドレス 192.168.20.100)からPC2(ipアドレス 192.168.30.100)からアクセス出きるように、Port forwardの設定を行いました。

iperf ではtcpプロトコル、ポート5001を利用するので、以下のように設定しました。

確認のために、iptables コマンドに-Lオプションをつけて実行すると、以下の様に表示(抜粋)されました。

# iptables -L

Chain PORTFWACCESS (1 references)
target prot opt source destination
ACCEPT tcp -- 192.168.20.220 192.168.30.100 tcp dpt:commplex-link

◎ 計測結果

PC1をサーバとして動作させます。

PC1 # iperf -s

PC2をクライアントとして動作させます。-rオプションも追加して実行させました。

PC2 # iperf -c 192.168.20.220 -r
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
Client connecting to 192.168.20.220, TCP port 5001
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[5] local 192.168.30.100 port 49051 connected with 192.168.20.220 port 5001
[5] 0.0-10.0 sec 1.09 GBytes 935 Mbits/sec
[4] local 192.168.30.100 port 5001 connected with 192.168.20.220 port 52759
[4] 0.0-10.0 sec 1.09 GBytes 936 Mbits/sec

サーバークライアント間で 935 Mbits/sec程度でしたので、実効速度が出ている結果となりました。ただし、もっとも単純なハードウェア構成とファイアーウォールの設定で計測を行ったので、構成や設定が複雑になれば、結果が変わってくるかもしれません。