菊花链组网下嵌入式Linux级联设备如何检测路由器切换
关于/sys/class/net/br0目录的状态变化说明
Device2与上游Device1之间的物理以太网链路始终处于连接状态,没有出现插拔断开的情况,因此/sys/class/net/br0下的链路状态类文件(比如carrier、operstate)不会发生变化,无法像Device1那样通过物理链路状态变动感知上游网络切换。
Device2检测路由器切换的可行方案
- 监控ARP邻居表状态
你通过ip monitor获取到的原网关10.0.0.1的ARP条目从STALE→PROBE→FAILED的状态变化,就是最直接的网络变更信号。你可以通过ip monitor neigh命令专门监控邻居表变动,一旦捕获到当前默认网关的ARP状态变为FAILED,即可判定上游网络发生切换,触发IP释放、重新发起DHCP请求的流程。 - 主动探测默认网关可用性
后台运行轻量定时任务,每隔2~5秒向当前配置的默认网关发送ARP请求或ICMP ping包,连续3~5次探测无响应时,即可判定上游路由器已切换,主动触发网络配置更新流程。 - DHCP配置校验
可以适当缩短DHCP客户端的续约周期,每次续约时校验返回的网关地址、子网网段是否和本地当前生效的配置一致,如出现配置差异,即可判定发生了路由器切换,更新本地网络配置。
内容的提问来源于stack exchange,提问作者user1556331
相关产品推荐
相关产品推荐

