我有两个虚拟机在同一主机上运行,它们都在同一个 NAT 网络中。我使用实用脚本 volttron/scripts/scalability-testing/virtual-drivers/bacnet.py 在一个虚拟机(比如 VM1)上启动了一个假的 bacnet 设备。设备启动良好。现在,我从同一主机和同一 NAT 网络上的另一个 VM(例如 VM2)运行了 scan_bacnet.py,但我在 VM1 上的假设备未列出。
我验证了 BACpypes.ini 文件上的 ip 地址具有运行 scan_bacnet.py 脚本的主机的正确地址。我还更改了 BACpypes.ini 中的地址以包含子网掩码 (10.0.2.15/24) 仍然没有运气。
以下是我在 VM2 上的 BACpypes.ini 文件的内容
[BACpypes]
objectName: Betelgeuse
address: 10.0.2.15/24
objectIdentifier: 599
maxApduLengthAccepted: 1024
segmentationSupported: segmentedBoth
vendorIdentifier: 15
这是我在 VM1 中运行的用于启动假 bacnet 设备的命令
python bacnet.py bacnet_registry.csv 10.0.2.5
我能够从一个 VM ping 到另一个 VM 并在源 VM 上运行 tcpdump 表明 scan_bacnet.py 正在将 whois 请求发送到另一个 VM。在目标 VM 上运行 tcpdump 表明机器正在接收 whois 请求,但假 bacnet 设备没有接收到 whois 请求。我究竟做错了什么?