尝试将15个无类路由添加到选项121,但是我可以添加多少(或者可以限制数据包大小?)。我正在复制的Windows服务器没有问题分发那么多,客户端能够毫无问题地接收信息。
在我的全局配置中,我有选项声明
option rfc3442 code 121 = array of unsigned integer 8;
然后在子网配置下我有路由
option rfc3442 24, XXX, 138, 247, 10, 110, 201, 3, 24, XXX, 138, 248, 10, 110, 201, 3, 24, XXX, 138, 249, 10, 110, 201, 3, 24, XXX, 138, 254, 10, 110, 201, 3, 23, XXX, 138, 250, 10, 110, 201, 3, 20, XXX, 111, 208, 10, 110, 201, 3, 24, XXX, 200, 136, 10, 110, 201, 3;
但除此之外的任何补充和我的测试Windows客户端都会给我以下错误
The data is invalid.
我的思科家伙已经提到选项121存在限制,并且一直在尝试将阵列压缩到9路以下,以便路由器可以处理它。我正在研究ISC DHCP作为另一种选择。
EDIT2:Windows客户端出错的原因(参见下面的编辑)是因为列表中有重复项。在我的情况下,我正在复制当前的配置,而没有真正仔细看看。
编辑: 我能够使用数据包捕获来解决问题。 Windows正在正确解析信息,因此我开始在最后一个八位字节中添加0(RFC3442表示不需要这样)。通过最后一个子网,但到目前为止我比以前有更多。
答案 0 :(得分:0)
tl; dr版本-给定的八位位组必须匹配给定的CIDR表示法。
我使用isc-dhcp遇到选项121的问题,这是Google中排名最高的链接之一。既然没有答案,我想我会分享。
我的问题是Mac,Linux,ChromeOS,Android等客户端都可以运行,但是Windows客户端在尝试获取地址时给出了0x79错误(无效数据)。
使用tcpdump
时,您可以看到客户端正在广播,接收和确认租约,但Windows dhcp客户端从未使用该地址,而是将重新启动整个过程。
问题出在我在isc-dhcp的配置文件中的选项121参数中输入的八位字节数。
例如,通过网关192.168.23.0/24
到10.0.0.1
的路由将是
24, 192, 168, 23, 10, 0, 0, 1
上面是一个有据可查的示例,其中我出错了,使用了少于或多于/24
。
例如,通过网关10.0.0.0/8
到10.10.80.2
的路由是
8, 10, 10, 10, 80, 2
即八位位组的数量必须对应于给定的CIDR。
对于少于/24
的情况-例如:通过网关192.168.23.128/25
的{{1}}将
10.10.80.2
我本想指定一个25, 192, 168, 23, 128, 10, 10, 80, 2
,但是像这样添加了太多的八位字节:
/8
这导致DCHP进程在Windows客户端上失败。