Linux 多个IP地址上的Avahi DNS-SD

Linux 多个IP地址上的Avahi DNS-SD,linux,ip,ip-camera,avahi,dns-sd,Linux,Ip,Ip Camera,Avahi,Dns Sd,背景: 我正在尝试在不需要DHCP服务器的情况下与IP摄像机通信。这是摄像机获取IP地址的方式: 基本DHCP过程(发现等) 如果上述操作失败,相机的回退地址为192.168.0.90 然后,摄像头启动avahi守护进程,并成功获取链接本地地址,以增强健壮性 IP别名现在已经完成,接口有两个IP 问题: 现在的问题是,当我通过avahi browse浏览网络上的服务时,摄像头会用两个IP地址(通过Wireshark检查)进行回复 avahi只显示一个地址,它可以是zeroconf:ed地址或回退

背景:

我正在尝试在不需要DHCP服务器的情况下与IP摄像机通信。这是摄像机获取IP地址的方式:

  • 基本DHCP过程(发现等)
  • 如果上述操作失败,相机的回退地址为192.168.0.90
  • 然后,摄像头启动avahi守护进程,并成功获取链接本地地址,以增强健壮性
  • IP别名现在已经完成,接口有两个IP 问题:

    现在的问题是,当我通过avahi browse浏览网络上的服务时,摄像头会用两个IP地址(通过Wireshark检查)进行回复

    avahi只显示一个地址,它可以是zeroconf:ed地址或回退地址


    我只想要链接本地地址,而不是回退地址。有什么可靠的方法可以得到它吗?

    老问题,但以防万一其他人也有同样的问题:

    • Avahi将只返回设备报告的一个IP地址。这似乎是一个(有争议的)设计决策,avahi邮件列表对此进行了解释。因此,如果您使用avahi browse,恐怕没有可靠的方法仅获取链接本地地址
    • 另一方面,特别建议不要为同一接口同时配置路由地址和链路本地地址。但我明白这是摄像机的行为,可能超出了你的控制范围
    是的,关键字是“不应该”,这意味着他们可能有理由以这种方式实施。无论哪种方式,都可能是Avahi应该支持它:/I我认为RFC在这里使用“不应该”,因为这样做的结果是不可取的(“导致应用程序的复杂性和用户的困惑”),但不会破坏任何东西(功能性、互操作性)。但我同意你的看法,Avahi最好只报告所有报告的IP地址,而不是一个。