在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 -t
bash
systemctl restart isc-dhcp-server
ipconfig
(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.0
subnet
参数设置。通过以上步骤,可确保DHCP正确分配子网掩码。遇到问题时,建议检查网络拓扑一致性及DHCP日志(/var/log/syslog
)。