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

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

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

ifconfig eth0 down 

离开它约10分钟,并重新启用它

 ifconfig eth0 up 

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

udhcpc应用程序正如我所见,正确启动。 我也使用tcpdump来查看包交易。 我使用的命令如下:

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

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

由于我不是networking专家,你能提出什么问题吗? 难道是我有一个10 / 100Mb适配器到1000Mb的局域网吗? 或者可能是别的东西?

PS:我也用一个10 / 100Mb交换机连接到局域网,但我得到同样的问题。

更新1:作为dhcp客户端使用udhcpc后,我想尝试其他的东西。 所以我安装了一个networkingpipe理员ConnMan ,并拥有自己的DHCP客户端。 不幸的是,我有一个类似的结果,而不是没有获得IP,我得到的APIPA地址是类似的没有得到一个IP。 我开始想,也许这个sorting有些事情要做

更新2:对于延迟抱歉,我已经testing了一些家庭路由器,如Cisco-Linksys E1500的机顶盒,并没有问题。 我也有关于局域网的更多信息。 DHCP服务器和机顶盒之间有一个交换机,带有硬件版本00.00.01的Netgear GS724TS,引导版本1.0.0.07和软件版本V3.1.0.1。 正如我在交换机的Web界面的监视器部分所见,即使我select了日志filter中的debugging,也没有太多的信息。

我最初的想法是,接口上的'up'脚本不是调用dhcp客户端,而是在启动过程中的某个运行级别中的某处调用dhcp客户端。

在做了ifconfig eth0之后,你是否尝试过运行dhclient? 我不熟悉Linux-MIPSEL,但这将是我的调查线。 如果有效,find你的eth0-up scipt或类似的东西,并检查出来。

我非常怀疑这与1Gb交换机上的100Mb网卡有什么关系。 交换机和网卡将协商100Mb,那就是,你的问题是在不同的层面。

ifconfig eth0 up不会做任何事情,只是把以太网设备,即使其激活。 你需要分配一个静态IP地址(例如ifconfig eth0 192.168.0.2 ),或者运行一个DHCP客户端来获得一个IP地址(在你的情况下, udhcpc )。

你有没有检查电缆? 我曾经使用交叉电缆,而不是一个直线,并有类似的问题。