同じホスト上で実行されている 2 つの仮想マシンがあり、それらは両方とも同じ NAT ネットワークにあります。ユーティリティ スクリプト volttron/scripts/scalability-testing/virtual-drivers/bacnet.py を使用して、1 つの VM (たとえば 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
これは、偽の bacnet デバイスを起動するために VM1 で実行したコマンドです。
python bacnet.py bacnet_registry.csv 10.0.2.5
ある VM から別の VM に ping を実行でき、ソース VM で tcpdump を実行すると、scan_bacnet.py が whois 要求を他の VM に送信していることがわかります。宛先 VM で tcpdump を実行すると、マシンが whois 要求を受信しているにもかかわらず、偽の bacnet デバイスが whois 要求を受信していないことがわかります。私は何を間違っていますか?