插件窝 干货文章 Linux DHCP配置中子网掩码怎么设置

Linux DHCP配置中子网掩码怎么设置

子网 subnet 678    来源:    2025-05-04

在Linux DHCP服务器(如ISC DHCP Server)中配置子网掩码时,需通过subnet-mask参数在子网声明中指定。以下是详细步骤和注意事项:


1. 关键配置参数

/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一致)。

2. 注意事项

  • 一致性:子网声明中的netmask必须与网络接口的实际掩码一致。例如,若物理网络是255.255.255.0,则subnet必须匹配。
  • CIDR表示法:配置文件中通常使用点分十进制格式(如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 { ... }

3. 验证与排错

  • 检查语法bash dhcpd -t
  • 重启服务bash systemctl restart isc-dhcp-server
  • 客户端验证:在客户端执行ipconfig(Windows)或ifconfig(Linux)确认获取的掩码是否正确。

4. 高级场景

  • 不同掩码分配:若需为特定主机分配不同掩码(罕见),可在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; # 覆盖默认掩码 }

5. 其他DHCP实现

  • dnsmasq:在配置文件中直接指定掩码: bash dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0
  • Kea DHCP:使用JSON配置,掩码通过subnet参数设置。

通过以上步骤,可确保DHCP正确分配子网掩码。遇到问题时,建议检查网络拓扑一致性及DHCP日志(/var/log/syslog)。