如何在 Centos 7 上的 dhcpd 中忽略未使用的网络接口

如何在 Centos 7 上的 dhcpd 中忽略未使用的网络接口

我有一台运行 Centos 7 的机器,有 8 个网络接口。我配置并运行了其中三个接口。

我已经配置了 dhcpd 来处理本地 LAN 接口。

我在系统日志中收到未配置接口的以下警告:

No subnet declaration for enp6s0 (no IPv4 addresses).
** Ignoring requests on enp6s0.  If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface enp6s0 is attached. **

过去,我会编辑 /etc/syslog/dhcpd 来指示要监听哪些接口。但是该文件现在表示不要这样做,而是为接口指定一个子网。

这些未使用的接口没有地址,所以我不知道如何为它们编写子网配置。

有没有其他方法可以让 dhcpd 忽略这些接口?

第一次编辑 -

对现有的子网声明执行此操作会使警告消失:

subnet xx.xx.xx.xx mask yy.yy.yy.yy {

    interface zzzzzz;

    .... subnet declaration

}

但是,我找不到任何显示子网接口选项的文档。我认为这很奇怪。

答案1

我相信/etc/sysconfig/dhcpd这表明如何限制在 ${RHELish}7 系统上 systemd 上监听的接口:

cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system
sed -i '/^ExecStart/s/$/ blah0 blah1 .../' /etc/systemd/system/dhcpd.service
systemctl --system daemon-reload
systemctl restart dhcpd.service

答案2

如果位于不同的子网上,则无需添加接口行。Slackware 14.2 Linux 发行版提供了以下示例:

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

subnet 192.168.2.0 netmask 255.255.255.0 {
}

当将其添加到时dhcpd.conf,您将看到类似以下记录的消息:

Listening on LPF/wlan0/a0:2b:6a:b5:24:d0/192.168.2.0/24
Sending on   LPF/wlan0/a0:2b:6a:b5:24:d0/192.168.2.0/24

但不会向该子网提供服务。

或者,如果您仅通过单个接口提供 DHCP,则可以在启动时在命令行上指定该接口dhcpd

dhcpd eth0

第二种方法不需要您在中指定任何其他子网dhcpd.conf,并且如果您为物理隔离的网络提供 DHCP,则特别方便。

答案3

在 CentOS 7.2 上的 /etc/sysconfig/dhcpd 中找到以下注释:

# WARNING: This file is NOT used anymore.

# If you are here to restrict what interfaces should dhcpd listen on,
# be aware that dhcpd listens *only* on interfaces for which it finds subnet
# declaration in dhcpd.conf. It means that explicitly enumerating interfaces
# also on command line should not be required in most cases.

答案4

RHEL6

在 /etc/sysconfig/dhcpd 中设置 DHCPDARGS 以仅包含您希望守护进程侦听的那些接口(例如 eth0 eth1 忽略 eth3):

DHCPDARGS="eth0 eth1"

将 DHCPDARGS 功能恢复到 RHEL7

# cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/
# vi /etc/systemd/system/dhcpd.service
# ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS
# systemctl --system daemon-reload
# systemctl restart dhcpd.service

相关内容