将 10/100Mb 适配器连接到 1000Mb LAN

将 10/100Mb 适配器连接到 1000Mb LAN

我遇到了以下问题。我无法使用 DHCP 获取 IP 地址。我的机顶盒上有一个 10/100Mb 适配器,连接到 1000Mb LAN。

当我启动机顶盒时,它会从 DHCP 服务器获取 IP。但是当我使用以下方法禁用以太网接口时

ifconfig eth0 down

让它停留大约 10 分钟,然后重新启用它

ifconfig eth0 up

它没有获取 IP。机顶盒的操作系统是 Linux-MIPSEL,内核为 2.6.22.19,udhcpc 应用程序用于从 DHCP 获取 IP。

我看到 udhcpc 应用程序正在正确启动。我还使用了 tcpdump 来查看包事务。我使用的命令如下:

tcpdump -lenx -i eth0 -l -vvv port bootps or port bootpc

tcpdump 的日志显示它发送了一个 Discover 包,但我没有收到来自 DHCP 服务器的任何响应。来自服务器的日志文件显示服务器发送了一个 Offer,但我没有收到这个包。

由于我不是网络专家,您能告诉我问题可能出在哪里吗?可能是因为我的 10/100Mb 适配器连接到了 1000Mb LAN?或者可能是其他原因?

附言:我也使用 10/100Mb 交换机连接到 LAN,但遇到了同样的问题。

更新 1: 在使用 udhcpc 作为 dhcp 客户端后,我想尝试其他方法。所以我安装了康曼这是一个网络管理器,有自己的 dhcp 客户端。不幸的是,我得到了类似的结果,我得到的不是完全没有 IP,而是APIPA 地址这与无法获取 IP 类似。我开始想也许字节序与此有关...

更新 2: 抱歉回复晚了,我已经测试了机顶盒与 Cisco-Linksys E1500 等家用路由器之间的连接,没有任何问题。我还有更多关于 LAN 的信息。DHCP 服务器和机顶盒之间有一个交换机,是 Netgear GS724TS,硬件版本为 00.00.01,启动版本为 1.0.0.07,软件版本为 V3.1.0.1。正如我在交换机 Web 界面的“监控”部分中看到的那样,即使我在日志过滤器中选择了调试,也没有太多信息。

答案1

我最初的想法是,界面上的“up”脚本并没有调用 dhcp 客户端,但是 dhcp 客户端在启动过程中的某个运行级别中被调用。

执行 ifconfig eth0 up 后,您是否尝试过运行 dhclient?我不熟悉 Linux-MIPSEL,但这是我的研究方向。如果可行,请找到您的 eth0-up 脚本或类似脚本并检查一下。

我非常怀疑这与 1Gb 交换机上的 100Mb NIC 有什么关系。交换机和 NIC 将协商 100Mb,也就是说,您的问题出现在不同的层上。

答案2

ifconfig eth0 up不执行任何操作,只是启动以太网设备,即使其处于活动状态。您需要分配静态 IP 地址(ifconfig eth0 192.168.0.2例如,使用)或运行 dhcp 客户端来获取 IP 地址(在您的情况下为udhcpc)。

答案3

你检查过电缆吗?我曾经使用交叉电缆代替直通电缆,也遇到了类似的问题。

相关内容