插件窝 干货文章 Linux DHCP服务器如何限制IP分配

Linux DHCP服务器如何限制IP分配

租约 分配 限制 931    来源:    2025-05-06

Linux DHCP服务器限制IP分配的方法

在Linux DHCP服务器(dhcpd)中,有几种方法可以限制IP地址的分配。以下是主要的配置方法:

1. 使用静态IP分配

/etc/dhcp/dhcpd.conf中为特定MAC地址分配固定IP:

host client1 {
    hardware ethernet 00:1a:2b:3c:4d:5e;
    fixed-address 192.168.1.100;
}

2. 使用地址池限制

定义可分配的IP范围:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    option routers 192.168.1.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4;
}

3. 基于MAC地址的过滤

使用allowdeny指令:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;

    # 只允许特定MAC地址
    allow unknown-clients;
    deny unknown-clients;

    # 或针对特定MAC
    host allowed-client {
        hardware ethernet 00:1a:2b:3c:4d:5e;
    }
}

4. 限制租约数量

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    max-lease-time 3600; # 限制租约时间为1小时
    default-lease-time 1800; # 默认租约30分钟
}

5. 使用类(class)限制

class "allowed-clients" {
    match if substring (hardware, 1, 3) = 00:1a:2b;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
    pool {
        allow members of "allowed-clients";
        range 192.168.1.100 192.168.1.200;
    }
}

6. 使用租约数据库

DHCP服务器会记录已分配的IP在/var/lib/dhcp/dhcpd.leases文件中,可以定期检查和管理。

配置完成后

  1. 检查配置文件语法:

    dhcpd -t
    
  2. 重启DHCP服务:

    systemctl restart isc-dhcp-server  # 对于Debian/Ubuntu
    systemctl restart dhcpd           # 对于RHEL/CentOS
    
  3. 查看日志:

    tail -f /var/log/syslog           # Debian/Ubuntu
    tail -f /var/log/messages         # RHEL/CentOS
    

通过以上方法,您可以有效地控制DHCP服务器分配IP地址的范围和对象。