双网卡设备用255.255.255.255做SNMP广播发现如何覆盖全网段
255.255.255.255属于全局受限广播地址,操作系统默认只会将该地址的广播包发送到默认路由绑定的主网卡,不会主动遍历所有网卡分发。你当前环境的默认路由优先级WLAN高于LAN,因此只有WLAN网段的设备能收到SNMP广播请求并响应,LAN网段设备收不到请求自然无法被检测到。
方法1:分别绑定每张网卡发起广播请求(最稳妥,无系统层面修改)
不需要调整系统配置,只要在调用SNMP广播发现功能时,分别绑定WLAN、LAN网卡的IP地址各发起一次255.255.255.255广播请求,最后合并两次返回的设备列表即可。
不同环境的操作示例:Linux(net-snmp工具栈示例)
假设WLAN网卡IP为192.168.1.10、LAN网卡IP为192.168.3.20,分别执行:snmpwalk -a 192.168.1.10 -v 2c -c public 255.255.255.255snmpwalk -a 192.168.3.20 -v 2c -c public 255.255.255.255
Windows
常用的SNMP扫描工具均支持指定发送请求的网卡,在高级设置中分别选择WLAN、LAN对应的IP地址各执行一次扫描即可。方法2:系统路由层配置广播包多网卡分发(适合工具不支持绑定网卡的场景)
直接修改系统路由表,添加两条指向不同网卡的255.255.255.255路由规则,让系统自动将全局广播包同时分发到两张网卡:Linux操作命令
假设WLAN网卡名为wlan0、LAN网卡名为eth0:route add -host 255.255.255.255 dev wlan0route add -host 255.255.255.255 dev eth0
Windows操作命令(需管理员权限执行cmd)
假设WLAN网关为192.168.1.1、接口索引为3,LAN网关为192.168.3.1、接口索引为4:route add 255.255.255.255 mask 255.255.255.255 192.168.1.1 metric 1 if 3route add 255.255.255.255 mask 255.255.255.255 192.168.3.1 metric 1 if 4
注意:上述路由配置为临时生效,系统重启后会丢失,需要永久生效可参考对应操作系统的永久路由配置规则调整
内容的提问来源于stack exchange,提问作者Ayan

