使用工业相机时因网络启动顺序触发的路由问题该如何解决
故障根因分析
该问题是典型的路由优先级冲突+IP段冲突导致的,故障触发逻辑如下:
- 先启动互联网时,你的网卡先连上调制解调器获取到公网默认路由,此时系统默认路由优先级高于工业相机所在的局域网段路由,程序发往相机IP的数据包被错误路由到公网出口,无法到达相机,触发报错
- 先启动相机访问程序时,程序会主动触发系统生成对应相机IP的临时高优先级路由,后续再启动互联网加载默认路由时,优先级低于已存在的相机路由,数据包可以正常转发到相机,因此功能正常
解决方案
1. 永久固定相机路由优先级(推荐)
- 先确认工业相机的固定IP段、你的电脑连接相机的网卡名称:
Windows下执行ipconfig,Linux/macOS下执行ip addr,找到和相机同网段的网卡对应信息。比如相机IP是192.168.2.10,对应网卡的子网掩码是255.255.255.0,则相机所在网段为192.168.2.0/24 - 添加永久静态路由,指定该网段的流量全部走相机对应的网卡,优先级设置为最高:
Windows端(管理员权限打开cmd执行):
route -p add 192.168.2.0 mask 255.255.255.0 0.0.0.0 metric 1 if [你的相机网卡序号]
其中网卡序号可以通过route print最上方的接口列表查询Linux端执行:
echo "any net 192.168.2.0/24 gw 0.0.0.0 dev [你的相机网卡名] metric 1" >> /etc/sysconfig/network-scripts/route-[你的相机网卡名]
执行后运行systemctl restart network即可生效macOS端执行:
networksetup -setadditionalroutes [你的相机网卡服务名] 192.168.2.0 255.255.255.0 0.0.0.0
网卡服务名可以通过networksetup -listallnetworkservices查询
2. 修改网卡跃点数实现优先级控制
- 打开你连接相机的网卡的属性,找到IPv4设置-高级,取消
自动跃点勾选,手动设置跃点数为10(数值越小优先级越高) - 打开你连接互联网的网卡的属性,同样找到IPv4设置-高级,手动设置跃点数为
20,保证相机网卡的路由优先级永远高于互联网网卡
3. 临时应急方案
如果不想修改系统配置,每次启动设备时先打开相机访问程序,等待30s左右再连接互联网即可正常使用。
验证方法
完成配置后,先后启动互联网和相机访问程序,执行tracert [相机IP](Windows)或者traceroute [相机IP](Linux/macOS),确认第一跳就是相机的IP/相机网卡的网关,没有走互联网出口即可。
内容的提问来源于stack exchange,提问作者F.Cheraghi
相关产品推荐
相关产品推荐

