我有一个家庭路由器,可以为我的台式机和笔记本电脑提供互联网访问。两台计算机都运行 Ubuntu GNU/Linux 版本 12.04,并且在安装时已配置为使用 DHCP。因此这两台计算机的路由器和 DHCP 工作正常。
我还有一台装有 Ubuntu 10.04 的旧台式计算机。此较旧的桌面通常未连接到网络,并且未配置为使用 DHCP。
我现在已将网络电缆连接到它,并且我想使用 DHCP 激活网络连接。从命令行,我使用
sudo dhclient eth0
结果打印出以下内容:
Listening on LPF/eth0/...
Sending on LPF/eth0/...
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
DHCPOFFER of 192.168.2.106 from 192.168.2.1
DHCPREQUEST of 192.168.2.106 on eth0 to 255.255.255.255 port 67
DHCPNAK from 192.168.2.1
DHCPREQUEST of 192.168.2.106 on eth0 to 255.255.255.255 port 67
DHCPNAK from 192.168.2.1
DHCPREQUEST of 192.168.2.106 on eth0 to 255.255.255.255 port 67
DHCPNAK from 192.168.2.1
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 6
DHCPOFFER of 192.168.2.106 from 192.168.2.1
DHCPREQUEST of 192.168.2.106 on eth0 to 255.255.255.255 port 67
DHCPNAK from 192.168.2.1
DHCPREQUEST of 192.168.2.106 on eth0 to 255.255.255.255 port 67
DHCPNAK from 192.168.2.1
DHCPREQUEST of 192.168.2.106 on eth0 to 255.255.255.255 port 67
DHCPNAK from 192.168.2.1
我对 DHCP 不太了解,但在我看来,路由器 (192.168.2.1) 不断提供地址 192.168.2.106,然后拒绝承认它。至少,这是我从中了解到的RFC2131。
我是否必须更改路由器或桌面或两者的配置?
编辑
根据评论的指示,我将以下块添加到文件中/etc/dhcp3/dhclient.conf
:
interface "eth0"
{
request subnet-mask;
}
但我仍然有与上面相同的错误。特别是,我仍然看到
DHCPREQUEST of 192.168.2.106 on eth0 to 255.255.255.255 port 67
这意味着subnet-mask
我的配置文件中的 被忽略。
编辑2
问题已解决:显然dhclient
没有读取默认文件/etc/dhcp3/dhclient.conf
。我通过以下方式解决了这个问题:
dhclient
使用选项调用-cf
(显式指定配置文件)。- 指定选项
require subnet-mask
而不是request
: 这样我确信(AFAIU)客户端正在使用从路由器获得的子网掩码。
非常感谢您的提示,为我指明了正确的方向。