首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dhclient在引导时不工作

dhclient在引导时不工作
EN

Server Fault用户
提问于 2013-05-29 17:13:54
回答 2查看 22.6K关注 0票数 4

问题是:

代码语言:javascript
复制
root@home:~# ping 8.8.8.8
connect: Network is unreachable

root@home:~# dhclient eth0
RTNETLINK answers: File exists

root@home:~# ping 8.8.8.8 
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=51 time=16.8 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=51 time=16.6 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 16.654/16.737/16.820/0.083 ms
root@home:~#

只有在我手动调用dhclient之后,网络才能正常工作。我没有NetworkManager (移除)。下面是来自/etc/network/interfaces的相关行:

代码语言:javascript
复制
auto eth0
iface eth0 inet dhcp

下面是启动日志:

代码语言:javascript
复制
root@home:~# cat /var/log/syslog | grep dhclient
May 28 21:39:44 home kernel: [    7.237076] type=1400 audit(1369762781.497:2): apparmor="STATUS" operation="profile_load" name="/sbin/dhclient" pid=405 comm="apparmor_parser"
May 28 21:39:44 home kernel: [    7.238298] type=1400 audit(1369762781.497:4): apparmor="STATUS" operation="profile_load" name="/usr/lib/connman/scripts/dhclient-script" pid=405 comm="apparmor_parser"
May 28 21:39:45 home dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0x79607e29)
May 28 21:39:45 home dhclient: DHCPREQUEST of 192.168.0.103 on eth0 to 255.255.255.255 port 67 (xid=0x79607e29)
May 28 21:39:45 home dhclient: DHCPOFFER of 192.168.0.103 from 192.168.0.1
May 28 21:39:45 home dhclient: DHCPACK of 192.168.0.103 from 192.168.0.1
May 28 21:39:45 home dhclient: bound to 192.168.0.103 -- renewal in 234779 seconds.
May 28 21:39:45 home kernel: [   11.695666] type=1400 audit(1369762785.953:10): apparmor="STATUS" operation="profile_replace" name="/sbin/dhclient" pid=1154 comm="apparmor_parser"
May 28 21:40:11 home dhclient: DHCPREQUEST of 192.168.0.103 on eth0 to 255.255.255.255 port 67 (xid=0x2aa61c47)
May 28 21:40:11 home dhclient: DHCPACK of 192.168.0.103 from 192.168.0.1
May 28 21:40:11 home dhclient: bound to 192.168.0.103 -- renewal in 243414 seconds.

有什么想法会导致这样的问题吗?

更新:我发现默认网关不是在引导时添加的,而是在重新启动networking服务或手动运行dhclient时添加的。但我还没找到导致这种行为的原因。

EN

回答 2

Server Fault用户

发布于 2013-08-02 21:46:05

在我的例子中,在CentOS 6/Fedora下,这与/etc/sysconfig/network/ifcfg-eth0和/etc/udev/rues.d/70-持久性-net.ules之间的不一致有关。

在这两个文件中,都声明了与eth0接口相关联的MAC。在VM克隆上,分配了一个新的MAC,但在这里没有反映出来(管理员应该这样做)。

启动时,您可以在dmesg中看到真正的eth0被重命名为eth1 (与ifcfg-eth0冲突),然后在70-持久性-net.ules下自动创建一个新条目,该规则将查找的MAC与eth1关联。

dhclient没有启动(或者启动,中止)--结果是系统没有从DHCP服务器获得IP。

值得注意的是,运行dhclient手动强制为假eth1获取IP,网络在此之后正常工作。直到下一次重启。

手动编辑上面引用的文件,这样MAC和eth*名称是一致的,解决了这个问题-- dhclient现在在启动时启动&获得自己的IP。

票数 2
EN

Server Fault用户

发布于 2013-05-29 17:43:48

编辑:

一般来说,您应该通过备选方案003从DHCP服务器获得默认网关。最好的方法是将您的DHCP服务器配置为正确地向客户端提供此信息。如果您由于任何原因不能这样做,我相信您可以使用/etc/network/interfaces指令在您的gateway文件中手动指定它(参见命令页)。我从来没有这样做过,但我认为它应该适用于没有静态配置的接口。

如果没有,可以使用init脚本手动添加它。

看起来您正在正确地使用dhclient接收DHCP租约。我怀疑NetworkManager没有被完全删除,或者您有另一个网络自动配置实用程序正在启动(可能绑定到您的桌面环境)并试图重新配置您的网络设置。

首先,通过运行网络init脚本确认您的/etc/network/interfaces配置正确:

代码语言:javascript
复制
sudo /etc/init.d/networking restart

或者只使用ifupifdown

代码语言:javascript
复制
sudo ifdown eth0 && ifup eth0

然后确保您没有任何挥之不去的网络管理器痕迹:

代码语言:javascript
复制
sudo apt-get purge network-manager
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/511737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档