我有一台运行 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