小编use*_*281的帖子

为什么 dhclient 每约 15 秒而不是 T1/T2 计时器发出单播 DHCPREQUEST?

我运行 CentOS 6.2 服务器作为我的网关和防火墙,同时还提供一些内部服务。这是我多年来使用各种硬件和发行版(基于红帽)的设置。最近我遇到了一个互联网连接问题,我相信这是由于我的 ISP(Roadrunner,纽约州北部)存在缺陷,或者是我的 dhclient 配置(默认)存在缺陷。

我没有在这台服务器上使用 NetworkManager,因为网络配置是静态的,并且服务器作为网关 24/7 全天候运行。我的 sysconfig 网络脚本接口配置如下:

它已通过 dhclient 实用程序在启动时配置了接口并使用 DHCP。我有一个有效的 iptables 防火墙脚本,多年来我一直致力于提供路由/NAT 功能,但这与我的问题无关。

在过去的一两周里(至少,我已经看到这些日志条目断断续续有一段时间了)我看到一旦我的 ISP 提供的 DHCP 租约到达中点,触发续订,dhclient 进入一个循环,其中每个15 秒后,它向 /var/lib/dh​​client/dhclient-eth1.leases 文件(见下文)中指定的 DHCP 服务器条目发出单播 DHCPREQUEST。这会持续数小时,直到网络连接中断或最终尝试广播发现并正确接收新租约。

dhclient 请求循环始终是单播的,始终使用它尝试更新的租约中指定的 DHCP 服务器地址,并且始终为这些请求中的每一个使用相同的 xid 值。我想知道,有没有办法强制 dhclient 总是发出广播 DHCPDISCOVER 而不是单播 REQUEST 数据包进行更新?是否存在可能的配置问题,或者这只是时代华纳的脆弱 DHCP 服务?在过去的 5 年里,我一直使用 TWC 作为我的 ISP,并且在使用 Linux 作为网关时从未遇到过这个问题。

这是我的接口配置脚本:

/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
NAME=Internet
HWADDR=00:D0:B7:**:**:**
MTU=1500
BOOTPROTO=dhcp
PEERDNS=no
IPV6INIT=no
ONBOOT=yes
Run Code Online (Sandbox Code Playgroud)

这是一个示例 dhclient-eth1.leases 文件(当前,但将在 ~6-8 小时内开始循环)

lease {
interface "eth1";
fixed-address 74.***.***.***;
option subnet-mask 255.255.240.0;
option routers 74.***.***.***; …
Run Code Online (Sandbox Code Playgroud)

dhcp centos dhclient centos6

5
推荐指数
2
解决办法
3万
查看次数

标签 统计

centos ×1

centos6 ×1

dhclient ×1

dhcp ×1