我有一个networking,我的广域网(一个CableModem)进入一个(可疑configuration)的Ubuntu盒子,作为整个公司的路由器。
我们最近转换了我们的ISP,我们得到一个非常奇怪的行为。 在Vista / Server 2008机器上,有些网站不工作。 这来了一下,但有一个,www.dilbert.com从来没有工作。
过去几个星期我们一直在做这个实验,这些是我们迄今为止发现的东西…
现在,我最好的猜测是,这是Vista的networking层(据我所知,是从XP改写的,不一样)和Ubuntu的一些奇怪的互动。
这就是我得到的。 除此之外,我完全傻眼了,开始相信我的build筑有一个诅咒。
你们能想出任何可能的想法吗?我可以做些什么来解决/诊断?
注:我知道没有关于Linux,虽然我可以运行命令,如果你能想到的东西,会给我一些有用的信息。
谢谢!
丹尼尔
感觉像我的MTU问题。 不过,我不知道Vista的MTUalgorithm是什么。
作为一个简单的testing, 将你的Vista机器的MTU人为地设置为 500,看看是否能解决这个问题。 如果是这样,我们可以说MTU是原因,并回头看看如何解决这个问题。
什么是MTU?
MTU ==最大传输单位。 实际上,这是您计算机发送的最大的以太网数据包。 IP规范说,如果一个路由器收到的数据包太大而无法发送其他(其他)接口,它可以将数据包分段或发回一个ICMP消息“This is too big”。 尽pipe如此,片段化对于性能还是不利的,因此许多路由器从来不会同意片段化。 此外,现代操作系统使用一个技巧来确定特定path的最佳MTU,方法是发送大小递减的数据包,直到它们不再听到有关数据包太大的响应。 这是pathMTU发现,或PMTUD。
发生在你身上的是某个路由器拒绝分割一个包,但是你的Vista机器从来不会听到拒绝通知。 当你设置你的MTU真的很小的时候,你告诉操作系统总是发送比任何现代电路都小的数据包,因此你的数据包永远不会被分割。
更新
现在我们知道这是一个MTU问题,只涉及到你的Ubuntu路由器,这意味着你的Ubuntu路由器正在破坏分组碎片。
它运行防火墙吗? 它阻止ICMP? 如果是这样,请尝试禁用该function。 (显然,回到1500的标准MTU,否则你将会debugging一个不存在的问题。)
如果可以的话,我会切换到实际devise用作路由器的东西。
我个人推荐pfSense。pfSense的常见部署之一是作为外围防火墙 。