web-dev-qa-db-ja.com

pfはトラフィックを極端に遅くします

FreeBSD9.1でWebサーバーとメールサーバーを実行しています。システムはKVM vServerにインストールされています。pf(4)を有効にするまではすべて正常に動作します。私のブログは非常に遅くなります。他のすべてのトラフィックも同様ですが、それほど迷惑ではありません。

ですから、誰かが問題がどこにあるのか教えてくれたら素晴らしいと思います。

前もって感謝します!

ベンチマーク/ iperfを使用したテストでは、次の結果が返されます。

無効なpf:

Client connecting to 109.193.XXX.XXX, TCP port 5001
TCP window size: 32.5 KByte (default)
------------------------------------------------------------
[  3] local 46.38.XXX.XXX port 31302 connected with 109.193.XXX.XXX port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  15.1 MBytes  12.6 Mbits/sec

有効なpf:

------------------------------------------------------------
Client connecting to 109.193.XXX.XXX, TCP port 5001
TCP window size: 32.5 KByte (default)
------------------------------------------------------------
[  3] local 46.38.XXX.XXX port 61377 connected with 109.193.XXX.XXX port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-18.1 sec   128 KBytes  58.1 Kbits/sec

これは私のpf.confです:

### INTERFACES ###
if = "{ em0 }"

### SETTINGS ###
set block-policy drop

### PORTS ###
tcp_pass = "{ 25 80 465 993}"
udp_pass = "{ 25 80 465 993}"
icmp_types = "echoreq"

### NORMALISATION ###
scrub in all
antispoof for $if

### RULES ###
block all
pass in on $if proto tcp from any to any port $tcp_pass flags S/SA keep state
pass in on $if proto udp to any port $udp_pass keep state
pass out quick all keep state

# PING #
pass in on $if inet proto icmp all icmp-type $icmp_types keep state

# TRACEROUTE #
pass in on $if inet proto udp from any to any port 33433 >< 33626 keep state

これはrc.confです:... pf_enable = "YES" pf_rules = "/ etc/pf.conf" pflog_enable = "YES" pflog_logfile = "/ var/log/pflog" .. ..

6
Steffen

9.0ブランチは、TCPセグメンテーションオフロードが関係する奇妙な構成に特に敏感であるようです。これは、TSOを無効にすることで「修正」できます。

ifconfig em0 -tso
5
Chris S