ISC DHCP 将池/子网分配给某些 MAC 地址

ISC DHCP 将池/子网分配给某些 MAC 地址

嘿,这里很绝望!

我在这里运行 isc-dhcp-server 4.1(使用 webmin,但这是另一个主题)并想为可以通过 MAC 地址和供应商字符串识别的网络组件提供一些选项(tftp-server 和 bootfile)。

但是,我到了配置与 MAC 地址匹配的地步,但仍然说它是一个未知客户端,在 DHCPDISCOVER 之后不会继续。我确实使用了拒绝未知客户端,但针对的是不同的共享网络和子网。

我在这里遗漏了什么?为什么我只在日志中看到这个?

dhcpd: found a board
dhcpd: DHCPDISCOVER from b8:27:eb:ab:cd:ef via eth0: unknown client

这是当前配置:

shared-network COMPUTERS {
    subnet 10.0.106.0 netmask 255.255.254.0 {
        option subnet-mask 255.255.254.0;
        default-lease-time 3600;
        authoritative;
        ignore client-updates;
        deny unknown-clients;
        ddns-updates off;
        pool {
            range 10.0.106.170 10.0.106.200;
            }
        pool {
            range 10.0.107.170 10.0.107.200;
            }
        }
    }

class "board" {
    match if substring (hardware, 1, 3) = b8:27:eb;
    log(info, "found a board");
    }

shared-network hardware {
    # network for TFTP stuff
    subnet 192.168.120.0 netmask 255.255.255.0 {
        pool {
                allow unknown-clients;
                allow dynamic bootp clients;
                allow members of "board";
                next-server 192.168.120.254;
                filename "uboot.scr";
                range 192.168.120.10 192.168.120.50;
                log(info , "allocated to a board" );
            }
        }
    }

因为它是 CentOS 6,所以我使用 eth0 和 eth0:1 配置文件,并将发布 ifconfig 以及 ip add 输出:

> ifconfig:
eth0      Link encap:Ethernet  HWaddr 00:26:AB:12:34:56
          inet addr:10.0.106.3  Bcast:10.0.107.255  Mask:255.255.254.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:356698 errors:0 dropped:0 overruns:0 frame:0
          TX packets:224426 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:59600895 (56.8 MiB)  TX bytes:32866187 (31.3 MiB)
          Interrupt:17

eth0:1    Link encap:Ethernet  HWaddr 00:26:AB:12:34:56
          inet addr:192.168.120.254  Bcast:192.168.120.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:17


> ip add:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:26:ab:12:34:56 brd ff:ff:ff:ff:ff:ff
    inet 10.0.106.3/23 brd 10.0.107.255 scope global eth0
    inet 192.168.120.254/24 brd 192.168.120.255 scope global eth0:1
        valid_lft forever preferred_lft forever

任何帮助将不胜感激。

干杯

答案1

鉴于您的接口设置,您必须将两个子网(10.0.106.0/255.255.254.0 和 192.168.120.0/255.255.255.0)放在同一个共享网络声明中。

来自 dhcpd.conf 手册页:

shared-network 语句用于通知 DHCP 服务器一些 IP 子网实际上共享同一个物理网络。共享网络中的任何子网都应在共享网络语句中声明。在启动这些子网上的客户端时将使用共享网络语句中指定的参数,除非子网或主机级别提供的参数覆盖这些参数。如果共享网络中的任何子网有可用于动态分配的地址,则这些地址将被收集到该共享网络的公共池中,并根据需要分配给客户端。无法区分客户端应该在共享网络的哪个子网上启动。

您可能可以通过正确使用允许、拒绝和主机声明来解决最后一句中的限制,而且您似乎正朝着正确的方向前进。

您可能还想看看allow/deny members of "class"。但我不确定它是否在您的 DHCP 服务器上可用。它记录在 CentOS 7 上的 ISC dhcpd 4.2.5 手册页中。

相关内容