我有 3 个子网
192.168.10.0/24
192.168.103.0/24
192.168.2.0/24
它们中的大多数都可以通过各自默认网关中定义的静态路由相互路由。但是由于一些有趣的...硬件,无法在 192.168.2.0/24 的默认网关上配置路由
作为解决方案,我决定在 debian 机器上配置 isc-dhcpd,为其客户端提供 DHCP 选项 121,并告诉他们将其他两个子网的路由添加到他们的路由表中。
配置基本如下:
option classless-routes 24, 192, 168, 103, 192, 168, 2, 202, 24, 192, 168, 10, 192, 168, 2, 202, 0, 192, 168, 2, 1;
到目前为止,我只能使用 Windows 客户端进行测试,但由于它们正在使用中,因此它也必须与它们兼容:D
这个配置工作得很好。
但是,多亏了科技的奇迹,我们拥有了便携式设备,我可以从子网 192.168.2.0/24 更改为 192.168.103.0/24,而无需重新启动,只需切换 Wifi 网络并走几步即可;)
我原本以为这些路由会随着 DHCP 租约的停止使用而断开 wifi 连接而被删除。然而,它们仍然存在,而且一旦我的客户端实际成为 192.168.103.0/24 子网的一部分,它们当然就会对我的客户端造成影响。
作为一个想法,我尝试在 192.168.103.0/24 子网中发送选项 121,希望它能替换已经存在的选项。然而,它们只是被添加到表中,最终我得到了每个子网(包括我的本地子网)的两个不同的下一跳,这显然是非常错误的。
有没有办法告诉客户端清除选项 121 设置的路由?2002 年设计此 RFC 时,难道没有人考虑过客户端动态更改子网的可能性吗?
还有其他解决方案可以使路由在没有可配置默认网关的情况下正常工作吗?