イーサネットポートにLiDARが接続されたRaspberry Piを使用しています。問題は、mdns4_minimalが$(hosname).localを2つのIPとして解釈することです。一方のIPはイーサネットポート(Lidarから)から取得され、もう一方のIPはWiFiから取得されます。これにより、ROS で一部のノードが WiFi IP アドレスの代わりに LiDAR IP アドレスを取得し、ノード間通信が正しくないという問題が発生します。
解決策はホスト名解決の優先順位を変更してWi-Fi接続の優先順位を指定することだと思いましたが、インターネットでこれを行う方法についての指示が見つかりませんでした。
それともこの問題を解決するより良い方法はありますか?
ベストアンサー1
まず、名前解決の優先順位を指定できます(またはむしろ注文する)存在する/etc/nsswitch.conf
。
たとえば、Raspbian 11(Bulls Eye)Piの関連部分/etc/nsswitch.conf
は次のとおりです。
hosts: files mdns4_minimal [NOTFOUND=return] dns
たとえば、これを mdns4_minimal の前に置くと、dns
ホスト名解決は mdns より dns を優先します。
hosts: files dns mdns4_minimal [NOTFOUND=return]
バラよりマンページソリューションの順序を詳しく説明する素晴らしい投稿もあります。ここ。
あなたのコメントを読んだ後にmDNSの解像度を維持したいことを理解していますが、どの解像度を指定するか相互作用誰もがこのプロセスに参加しました。
deny-interfaces
のリストにインターフェイスを追加して、Avahiデーモン(mDNS担当)にインターフェイスを無視するように指示できます/etc/avahi/avahi-daemon.conf
。 ~からマンページ:
deny-interfaces= Set a comma separated list of network interfaces that should be ignored by avahi-daemon. Other not specified interfaces will be used, unless allow-interfaces= is set.
This option takes precedence over allow-interfaces=.
その後、再起動デーモンを使用してくださいsystemctl restart avahi-daemon
。