一个接口上未建立链路

一个接口上未建立链路

我正在使用一台旧电脑作为家庭服务器/防火墙,使用的是基于 Linux 的发行版 (Mandriva)。最初,它有两个 NIC,eth0一个是主板适配器,另一个eth1是 10/100 PCI 网卡。 eth0连接到其他设备所连接的内部交换机,并eth1连接到互联网机顶盒路由器。

随着时间的推移和新用途的出现,我添加了两个千兆 PCI 网卡(DLink DGE-528T),因此它们变成了eth2eth3,其功能与它们所替换的卡相同。也就是说,eth2连接到内部交换机并eth3连接到路由器。

一切都运行良好,直到几周前,我注意到我失去了连接eth3,查看卡本身,电缆插入插头时不再发出“咔嗒”声。事实证明,电缆受到了一些滥用,导致 RJ45 连接器弯曲,使其变得不可靠。

因此,我决定更换eth3一张新的千兆卡(TP-LINK TG-3269),该卡似乎没有如此脆弱的连接器。这张卡因此被命名为“千兆卡”,eth4eth3已从服务器上完全移除。

但是,我似乎无法让新卡与路由器配合使用,插入路由器后,背面的 LED 灯从不亮。果然,ifplugdethtool都表明未建立链接。作为临时解决方法,我重新使用,eth1以便服务器仍能继续发挥作用,尽管处于降级模式。

我以为这张卡已经“完蛋了”,但我尝试了一些东西,得到了一些奇怪的结果,总结如下:

  • 连接eth4到内部交换机:LED 亮起,以 1000Mb 建立连接
  • 连接eth4eth0:LED 亮起,连接以 100Mb 建立
  • 连接eth2到路由器:LED 亮起,以 1000Mb 建立连接

因此,看起来路由器不想与我的eth4卡对话,原因我也说不清。

查看了与我的问题有些相似的各种帖子,我发现了这个mii-diag工具,并首先在没有电缆的情况下运行它,然后在插入路由器电缆的情况下运行它。结果如下:

[obones@server ~]$ sudo mii-diag eth4
Basic registers of MII PHY #32:  1000 7949 001c c913 0de1 0000 0004 2001.
 Basic mode control register 0x1000: Auto-negotiation enabled.
 Basic mode status register 0x7949 ... 7949.
   Link status: not established.
   End of basic transceiver information.

[obones@server ~]$ sudo mii-diag eth4
Basic registers of MII PHY #32:  1000 7949 001c c913 0de1 c5e1 000f 2001.
 The autonegotiated capability is 01e0.
The autonegotiated media type is 100baseTx-FD.
 Basic mode control register 0x1000: Auto-negotiation enabled.
 Basic mode status register 0x7949 ... 7949.
   Link status: not established.
 Your link partner advertised c5e1: Flow-control 100baseTx-FD 100baseTx 10baseT-FD 10baseT, w/ 802.3X flow control.
   End of basic transceiver information.

我知道这mii-diag不是千兆位感知的,但我发现有趣的是,在第二种情况下,它检测到存在链接伙伴,但链接尚未建立。

这可能是什么原因?我下一步该尝试什么?


根据要求,这里还有一些额外的细节。

路由器确实支持千兆,在eth3连接器出现故障之前,它以该速度运行良好。连接到时eth2,它以千兆速度运行良好。

dmesg -T | grep eth4没有输出任何内容

以下是 lspci 的输出:

00:0a.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet [10ec:8169] (rev 10)
    Subsystem: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet [10ec:8169]
00:0b.0 Ethernet controller [0200]: D-Link System Inc DGE-528T Gigabit Ethernet Adapter [1186:4300] (rev 10)
    Subsystem: D-Link System Inc DGE-528T Gigabit Ethernet Adapter [1186:4300]
00:0d.0 Ethernet controller [0200]: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 [8086:1229] (rev 08)
00:13.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ [10ec:8139] (rev 10)

还有来自 lshw 的:

  *-network:0
       description: Ethernet interface
       product: RTL-8169 Gigabit Ethernet
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: a
       bus info: pci@0000:00:0a.0
       logical name: eth4
       version: 10
       serial: 14:cc:20:05:38:22
       size: 10MB/s
       capacity: 1GB/s
       width: 32 bits
       clock: 66MHz
       capabilities: pm bus_master cap_list rom ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half latency=64 link=no maxlatency=64 mingnt=32 multicast=yes port=MII speed=10MB/s
       resources: irq:18 ioport:a000(size=256) memory:f7109000-f71090ff memory:c0180000-c019ffff(prefetchable)
  *-network:1
       description: Ethernet interface
       product: DGE-528T Gigabit Ethernet Adapter
       vendor: D-Link System Inc
       physical id: b
       bus info: pci@0000:00:0b.0
       logical name: eth2
       version: 10
       serial: 1c:7e:e5:26:54:a0
       size: 1GB/s
       capacity: 1GB/s
       width: 32 bits
       clock: 66MHz
       capabilities: pm bus_master cap_list rom ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full ip=10.10.10.254 latency=64 link=yes maxlatency=64 mingnt=32 multicast=yes port=MII speed=1GB/s
       resources: irq:19 ioport:a400(size=256) memory:f710b000-f710b0ff memory:c01a0000-c01bffff(prefetchable)
  *-network:2
       description: Ethernet interface
       product: 82557/8/9/0/1 Ethernet Pro 100
       vendor: Intel Corporation
       physical id: d
       bus info: pci@0000:00:0d.0
       logical name: eth1
       version: 08
       serial: 00:90:27:ca:ba:e8
       size: 100MB/s
       capacity: 100MB/s
       width: 32 bits
       clock: 33MHz
       capabilities: pm bus_master cap_list rom ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=e100 driverversion=3.5.24-k2-NAPI duplex=full firmware=N/A ip=192.168.1.253 latency=64 link=yes maxlatency=56 mingnt=8 multicast=yes port=MII speed=100MB/s
       resources: irq:17 memory:f710a000-f710afff ioport:ac00(size=64) memory:f7000000-f70fffff memory:c0000000-c00fffff(prefetchable)
  *-network:3
       description: Ethernet interface
       product: RTL-8139/8139C/8139C+
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 13
       bus info: pci@0000:00:13.0
       logical name: eth0
       version: 10
       serial: 00:14:85:c0:ea:2b
       size: 10MB/s
       capacity: 100MB/s
       width: 32 bits
       clock: 33MHz
       capabilities: pm bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=8139too driverversion=0.9.28 duplex=half ip=10.10.10.250 latency=64 link=no maxlatency=64 mingnt=32 multicast=yes port=MII speed=10MB/s
       resources: irq:18 ioport:e000(size=256) memory:f710d000-f710d0ff

您认为强制将eth4卡设置为千兆位而不进行自动协商可以解决这个问题吗?如果我没记错的话,命令应该是这样的:

ethtool -s eth4 duplex full speed 1000 autoneg off

我今晚会尝试一下,但是为什么一开始就不起作用呢?

答案1

好吧,我现在知道为什么eth4无法建立链接,在摆弄了一会儿电缆后我才明白过来。应该知道的是,即使是在家里,我也使用配线架来分派各种连接。这意味着服务器通过这种布置连接到路由器:

server <--> cable <--> plug <--> wall <--> plug <--> patch bay <--> plug <--> router

在我最初的消息中,我说eth2将以 1G 的速度连接到路由器,当时这是正确的。

但我本周再次尝试,这种情况再也没有发生,这让我立即意识到我遇到的最初问题eth3是电缆滥用造成的。果然,使用墙上的另一个插头连接到接线板后,可以以eth41G 的速度正确连接到路由器。

所以,最终,它与硬件有关,只是不是我期望的那种硬件。

非常感谢所有对我的问题发表评论的人,我从你们身上学到了不少技巧,很抱歉浪费了你们的时间,我应该更彻底地检查电缆。

相关内容