在Linux DHCP服务器(如ISC DHCP Server)中配置子网掩码时,需通过subnet-mask参数在子网声明中指定。以下是详细步骤和注意事项:
在/etc/dhcp/dhcpd.conf配置文件中,子网掩码通过以下方式定义:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option subnet-mask 255.255.255.0; # 显式声明子网掩码
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
}
netmask:定义子网本身的掩码(必须与subnet声明匹配)。option subnet-mask:分配给客户端的子网掩码(通常与netmask一致)。netmask必须与网络接口的实际掩码一致。例如,若物理网络是255.255.255.0,则subnet必须匹配。255.255.255.0),而非CIDR(如/24)。bash
subnet 192.168.1.0 netmask 255.255.255.0 { ... }
subnet 10.0.0.0 netmask 255.255.0.0 { ... }bash
dhcpd -tbash
systemctl restart isc-dhcp-serveripconfig(Windows)或ifconfig(Linux)确认获取的掩码是否正确。host声明中覆盖:
bash
host special-client {
hardware ethernet 00:1a:2b:3c:4d:5e;
fixed-address 192.168.1.50;
option subnet-mask 255.255.255.128; # 覆盖默认掩码
}bash
dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0subnet参数设置。通过以上步骤,可确保DHCP正确分配子网掩码。遇到问题时,建议检查网络拓扑一致性及DHCP日志(/var/log/syslog)。