pfSense 防火墙阻止一些出站 Web 数据包,大型 HTTP 下载就此“停止”

pfSense 防火墙阻止一些出站 Web 数据包,大型 HTTP 下载就此“停止”

我刚刚设置了 pfSense 路由器,正在尝试找出一些奇怪的行为。这是一个相当简单的设置:我有一个来自 ISP 的静态 IP 和一个 PPPoE WAN 接口和一个 LAN 接口。我允许 DNS 通过防火墙,浏览互联网通常可以正常工作。我2.1-BETA1 (i386)从 3 月 19 日起使用 pfSense。

问题(这些可能相关):

  1. 大型 HTTP 下载会在某个时刻“停止”,并且永远无法完成。我现在正在尝试下载 ISO,下载到 650MB 中的 103MB 左右时就停止了。尽管多次重试,但大于 50MB 的下载始终无法完成。

  2. 我在防火墙日志中看到一些关于阻止端口 443 上的出站流量的奇怪内容:

日志条目:

Mar 22 18:25:22 192.168.0.1 pf: 00:00:00.818527 rule 4/0(match): block out on pppoe0: (tos 0x0, ttl 63, id 3535, offset 0, flags [DF], proto TCP (6), length 893)
Mar 22 18:25:22 192.168.0.1 pf:     <publicip>.44395 > 173.194.78.103.443: Flags [FP.], seq 2278533959:2278534812, ack 270462703, win 262, length 853

Mar 22 18:32:10 192.168.0.1 pf: 00:00:22.972286 rule 3/0(match): block in on pppoe0: (tos 0x0, ttl 57, id 39991, offset 0, flags [DF], proto TCP (6), length 84)
Mar 22 18:32:10 192.168.0.1 pf:     173.194.78.103.443 > <publicip>.3684: Flags [FP.], cksum 0x8cdd (correct), seq 1848167695:1848167739, ack 810363008, win 501, length 44

第一个数据包似乎是我发往 Google IP 地址的数据包,该地址绑定到端口 443。第二个数据包似乎是来自同一 IP 的数据包,可能是对请求的响应。为什么会阻止这个数据包?在典型的 NAT 场景中,我希望允许出站数据包,并允许已建立/相关的流量返回。

如果这种类型的流量被阻止,为什么我还能浏览网页?为什么没有到处都出现问题?

(编辑:我开始怀疑这可能是 MTU 问题......)

答案1

这不是直接的答案,但我在较新的 OpenBSD 系统(5.3 候选版本)上看到了几乎完全相同的情况。许多出站数据包被阻止;许多数据包的目的地是 Google 和/或端口 443;许多数据包的选项中设置了 F(fin) 和 P(push)。这些都来自基于 Windows 和 OS X 的系统,因此这不仅仅是客户端中的操作系统级错误。

与您的情况不同,据我所知,客户端与整个网络的通信都很好 - 而且,据我所知,只有我通过仔细阅读 pflog 看到了潜在的故障。

我会很想知道任何答案,甚至猜测这些可能是什么。

附言:我使用 PPPoE 链路,将 max-mss 限制为 1448,以使这一切正常工作;不确定这是否与您的设置类似,但正如您提到的 MTU 问题......

********编辑:********* 参见:http://doc.pfsense.org/index.php/Logs_show_%22blocked%22_for_traffic_from_a_legitimate_connection,_why%3F 或者 http://doc.m0n0.ch/handbook/faq-legit-traffic-dropped.html

显然,这是涉及重复 FIN 数据包的完全正常行为。我只需添加一条规则来捕获这些数据包,这样它们就不会使日志变得混乱。

相关内容