我对BACnet协议非常陌生,但我在网络上找到设备时会遇到一些麻烦。
基本上,我在网络128.10.100.XXX/24上安装了多个设备,如nmap扫描所示
root@xxx:/home/xxx# nmap -sP 128.10.100.120/24
Starting Nmap 7.80 ( https://nmap.org ) at 2022-11-02 05:11 UTC
Nmap scan report for 128.10.100.1
Host is up (0.00076s latency).
MAC Address: 00:50:06:XX:XX:XX (TAC AB)
Nmap scan report for 128.10.100.150
Host is up (0.00059s latency).
MAC Address: 00:80:4F:XX:XX:XX (Daikin Industries)
Nmap scan report for 128.10.100.160
Host is up (0.00024s latency).
MAC Address: 00:50:06:XX:XX:XX (TAC AB)
Nmap scan report for xxx (128.10.100.120)
Host is up.当我对BACnet运行特定的扫描时,所有设备都有一个开放的47808端口:
Starting Nmap 7.80 ( https://nmap.org ) at 2022-11-02 13:08 UTC
Nmap scan report for 128.10.100.150
Host is up (0.0093s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
47808/udp open|filtered bacnet
MAC Address: 00:80:4F:XX:XX:XX (Daikin Industries)但是,当我尝试使用BACnet实用程序(BACpypes在python中或bacnet-堆栈在node.js中)时,没有找到任何设备。我尝试了多个库和各种设置(修改广播地址等)百无所成。
我很难理解原因..。
提前感谢你的帮助,A。
发布于 2022-11-02 14:27:22
您是否使用第三方工具(如YABE )验证了您的设置?
发布于 2022-11-04 10:25:56
启动wireshark的捕获过滤器“端口47808",然后看看谁-是从你的应用程序和谁-是从亚贝。
同时检查两个设备上的网络掩码.这将影响广播消息。
说到这一点,试着从你的应用程序中向控制器发送直接的“谁是谁”的信息,看看控制器是否响应。
发布于 2022-11-14 13:07:46
值得考虑的事情:-
YABE、VTS和Wireshark等工具--从成功的案例/成功的沟通实例中学习。
您的工具和/或库使用/选择发送(“服务”请求)消息的网卡(NIC) --例如,绝对不要将可路由地址与不可路由的“私有”地址(在BACnet 'client‘IP和’服务器‘IP之间)混在一起。
(仅限于UDPv4 4)‘广播’将只在本地网络上工作(如果没有BBMD (如果设置正确),以便将广播转发到"internetwork"/connected网络的另一部分/跳上)。
如果您运气不好--对于某个特定的设备,您的客户端端口可能必须是47808/0xBAC 0;也可能是用于广播。
也尝试定向/‘单播’流量/‘服务’请求--例如,尝试读取目标设备的设备对象实例# ( DOIN );检查您已经/正在指定对设备的目标/触发请求时的正确DOIN。
目标设备前面是否有BACnet路由器或BACnet网关(因此也需要包含DNET & DADR配对值作为寻址的一部分)?
如果是这样的话,您说的是BACnet的同一个变体吗?例如,在(BACnet) 'client‘和’server‘/服务设备之间的BACnet/IP中的IP?
如果它是一个商业/企业设备,它是否有一个IP白名单-允许处理传入的请求?
https://stackoverflow.com/questions/74289815
复制相似问题