访问 LaserJet Web 界面时出现神秘的 TCP/HTTP 问题

访问 LaserJet Web 界面时出现神秘的 TCP/HTTP 问题

我正在尝试诊断我的 LaserJet M551dn (lj500) 和 FreeBSD 系统 (hal9k) 之间的连接问题。问题是我无法再浏览 LaserJet 的 Web 界面(30 秒左右后超时)或打印。两者通过 LAN 和中间 Netgear 8 端口交换机直接连接到 192.168.0/24。

有效的方法:

  • 我可以ping lj500从 hal9k 顺利获得。
  • 我与互联网的任何其他部分的连接都没有问题。
  • 我可以从同一局域网上的 Windows 笔记本电脑访问 Web 界面。
  • 我可以从 Windows 笔记本进行打印。所以打印机看起来没问题。

我最近做了一些事情(可能会把事情搞糟):

  • 将 LaserJet 的固件更新至最新版本 (2309046_000288)。
  • 将 FreeBSD 更新到最新版本 (14.0-CURRENT #0 main-n246296-77651151f3ca)。

我尝试过但没有成功:

  • 禁用防火墙。
  • 将 LAN 电缆重新分配到 Netgear 交换机上的不同端口。
  • 直接连接 FreeBSD 和打印机(无需开关)。
  • 使用不同的浏览器(Firefox、lynx、netcat)。
  • 访问端口 80 (HTTP) 和 433 (HTTPS)。

作为最后的手段,我查看了线路上的流量。我发现系统会产生虚假流量(重新传输和 ACK)。有人能诊断出发生了什么以及为什么吗?这是使用 Wireshark 和过滤器捕获的流量host lj500 and not arp(ARP 工作正常,只是噪音)。看起来黑色背景的数据包不应该存在(是虚假的)。

HTTPS:

在此处输入图片描述

HTTP:

在此处输入图片描述

答案1

事实证明,LaserJet 在握手中宣传支持 TCP 时间戳选项,但实际上并未使用它。FreeBSD 随后丢弃数据包。FreeBSD 端可以通过以下方式修改此问题:放宽对 TCP 时间戳的检查

sysctl net.inet.tcp.tolerate_missing_ts=1      # Drops packets when 0.

更好的解决方法是让 LaserJet 正确实现 TCP 时间戳。HP,如果你在听的话...

相关内容