Nie*_*jes 8 dhcp networkmanager linux-networking centos6 centos7
我有几个 CentOS 6/7 系统(非生产、实验用途)已配置为使用 DHCP 作为其 IP 地址。上周发生了一次严重的网络中断,我发现这些系统丢失了 IP 地址并且 DHCP 客户端已终止。我想经过太多/太长时间的重试。
让它尝试永远恢复的正确方法是什么?是否有可以执行此操作的 dhcp 客户端设置?或者我应该添加一个 cron 条目,它每小时执行一次“ifup eth0”之类的操作?或者有没有更好的方法来做到这一点?
我知道 CentOS 6 和 CentOS 7 做这些事情的方式不同,我正在为这两种情况寻找答案。
更新:
现在我已经创建了这个脚本(我把它放在 /etc/cron.hourly/ 中),它似乎在 CentOS 6 的特定情况下工作。这可能不是最好的解决方案,但它“在我的机器上工作”。
#!/bin/bash
IF=eth0
ifconfig ${IF} | fgrep 'inet addr' > /dev/null
if [ $? -ne 0 ];
then
echo "Network is dead, trying restart"
ifup ${IF}
fi
Run Code Online (Sandbox Code Playgroud)
仍在寻找正确的方法来做到这一点,所以我认为这不是我问题的正确答案。
小智 5
CentOS 6 和 7 都应该接受 /etc/sysconfig/network-scripts/ifcfg* 文件中的 PERSISTENT_DHCLIENT 选项。例如
# /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp
PERSISTENT_DHCLIENT=yes
ONTBOOT=yes
DEVICE=eth0
Run Code Online (Sandbox Code Playgroud)
这会指示 ifup-eth 脚本在没有(默认)-1选项的情况下运行 dhclient
if is_true "${PERSISTENT_DHCLIENT}"; then
ONESHOT="";
else
ONESHOT="-1";
fi;
...
DHCLIENTARGS="${DHCLIENTARGS} ${ONESHOT} -q ${DHCLIENTCONF} -lf ${LEASEFILE} -pf /var/run/dhclient-${DEVICE}.pid"
Run Code Online (Sandbox Code Playgroud)
使用该选项 dhclient 将尝试一次。从手册页
-1 Try once to get a lease. One failure, exit with code 2.
Run Code Online (Sandbox Code Playgroud)
如果没有该选项,dhclient 应该偶尔从 dhclient.conf 手册页重试一次(默认情况下每 5 分钟一次)
retry time;
The retry statement determines the time that must pass after the client
has determined that there is no DHCP server present before it tries
again to contact a DHCP server. By default, this is five minutes.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1141 次 |
| 最近记录: |