问题如下:
提供商为我们提供了一个公共 IP 地址空间 xyz0/28,其中 xyz1 是他们自己的网络设备上接口的地址,按照他们的说法,这应该是我们服务器的默认网关。提供商和服务器端的光纤转换器之间有光纤链路,转换器和服务器之间有电气链路。
我已经通过以下方式配置了服务器主网络接口:
ifconfig eth0 xyz2/28 启动
路由添加默认网关 xyz1 网络掩码 255.255.255.240 dev eth0
但是,当我尝试 ping xyz1 时,icmp 告诉我目标主机不可访问,虽然安装了 iptables,但是到处都是策略为“接受”。
有趣的是,NIC 上的 LED 二极管显示链接没有任何活动。我尝试了其他 NIC,情况相同。我甚至在装有 Windows 操作系统的笔记本电脑上也尝试了,但我没有收到任何合理的通知,而是收到网络电缆被拔掉的消息?!
但是当我将电缆插入另一台装有 Windows Server 2003 的服务器时,NIC 的 LED 显示活动。该服务器在重新启动后仅 10 分钟左右才允许访问互联网,之后它停止服务,可能是 NATing,原因我无法解释。我对 win 服务器一无所知,因为它在其他管理员的密码下,而该管理员不再可用,所以这就是从头开始构建 debian 服务器的原因,但一开始就有一个大问题摆在我面前。
那么,有人知道问题的原因是什么以及如何解决它吗?
答案1
我想到了几件事:
- MAC 地址学习。我的家用电缆调制解调器就是这样的,一旦它看到 MAC,它就不会响应任何其他 MAC。对电缆调制解调器进行电源循环会导致它忘记它看到的 MAC,这样我就可以将它用于另一个系统。
- 交叉电缆/直通电缆混淆。您使用了一个,而您应该使用另一个。我不确定这是否有效,但我知道 Mac OS X(至少 10.3)会识别这种情况并进行相应调整。听起来您使用的 Linux 机器没有这样做。它不应该那样工作,但 Apple 喜欢让最终用户轻松使用;如果 Microsoft 或 NIC OEM 也这样做,我不会感到惊讶。
答案2
添加到 Kevin 的列表:
- 检查以太网链接
- 检查 ARP,考虑使用 tcpdump 或 wireshark 检查是否存在任何交通
- 询问他们是否要求您手动设置链接速度/双工
答案3
首先,我检查了 Kevin 的第二个可能解决方案。它是直通电缆,因此这不是问题的原因。
之后,我决定进行电源循环。但是当我打开机架时,里面一片混乱,至少有 10 个网络设备,还有大量的电缆和电线。它没有任何标签(我不知道为什么),所以我得出结论,对我来说,在 Debian 和 Win 服务器之间更改 NIC 并找出会发生什么更容易。如果 MAC 学习是一个问题,这将解决它。但是在我更换服务器之间的 NIC 后,出现了意外问题:内核无法识别新 NIC。这个问题可能可以通过添加一些内核模块或类似方式解决,但由于没有有效的互联网连接,我找不到正确的方法。所以我决定重新安装 Debian,并在机箱中使用新的 NIC。之后,内核识别了 NIC,它的 LED 开始显示一些活动。最后,我可以 ping xyz1。所以,链接正常。
但是,当我尝试在提供商网络中 ping 名称服务器的 IP 时,我没有得到任何响应!我尝试跟踪名称服务器的 IP,在获得星号(* * * 和最后响应 * *)后,我得到了 4 个跳转,全部在提供商网络内。我尝试 ping 第二跳和第三跳,一切正常,但当我尝试 ping 第四跳时,我没有得到任何响应!
我应该设置哪些内核参数?我应该在 sysctl.conf 中设置一些参数吗?
无论如何,感谢您的回答。