以“55:a3”和“56:2a”结尾的 Mac 地址也最终出现在最后一个池中
123 match if binary-to-ascii(16,8,":",substring(hardware, 5, 6)) = "55:a3";
124 }
125
126 class "esx67" {
127 match if binary-to-ascii(16,8,":",substring(hardware, 5, 6)) = "56:2a";
128 }
129
130 shared-network 20-30 {
131 subnet 20.30.0.0 netmask 255.255.0.0 {
132 option domain-name "nsbucqesystem.test";
133 option domain-name-servers 20.30.0.1;
134 option routers 20.30.0.1;
135 default-lease-time 2592000;
136 max-lease-time 2592000;
137 ping-check true;
138 }
139 pool {
140 allow members of "esx65";
141 range 20.30.1.1 20.30.1.254;
142 }
143 pool {
144 allow members of "esx67";
145 range 20.30.2.1 20.30.2.254;
146 }
147 pool {
148 deny members of "esx67";
149 deny members of "esx65";
150 range 20.30.3.1 20.30.254.254;
151 }
152 }
有人能指出该配置中的错误吗
答案1
问题在于hardware
过滤器的使用。
文档指出:
硬件操作符返回一个数据字符串其第一个元素是所考虑的数据包中指示的网络接口类型,其后续元素是客户端的链路层地址。如果没有数据包,或者 RFC2131 hlen 字段无效,则结果为空。硬件类型包括以太网 (1)、令牌环 (6) 和 fddi (8)。硬件类型由 IETF 指定,有关如何定义类型编号的详细信息可在 RFC2131 中找到(在 ISC DHCP 分发中,这包含在 doc/ 子目录中)。
换句话说,hardware, 5, 6
不会像您预期的那样返回 MAC 地址的第 5 和第 6 个八位字节,而是返回第 4 和第 5 个八位字节,因为第一个元素将是类型(0x01,因为它是以太网)。