I have a network set up something like the following:

Device A <---> Router A <---> Router B <---> Device B

where Router A is a tp-link Archer AX73, and Router B is a tp-link Archer C7. Router B is flashed with OpenWRT, and Router A is using stock firmware. Router B is set up to be a wireless bridge between Router A’s network, and its own (it was set up using this guide).

What I am wondering is if Device A can find, say, Device B.local, using Avahi (assuming Device A, and Device B both have Avahi installed, and running), over this bridged network. So far, I haven’t been able to get it to work, so I’m wondering if it is possible at all. I have read that Avahi only works on a local network, but I was wondering if it could be bridged.

UPDATE (2024-01-16T01:28Z):

The issues that I mentioned in this post have since been solved. The majority of the issues stemmed from the fact that the relay software that I was using, relayd, doesn’t support ipv6. All the tests that I was conducting were defaulting to ipv6, so it was appearing like the bridge was failing unpredictably. Since that realization was made, and countermeasures were enacted, the problem was solved.

  • theit8514@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    6 months ago

    Avahi uses mDNS which is a multicast protocol. Multicast is designed to be link-local only: it ends at the edge of a broadcast domain. Router A would also need to bridge in order for that to work (i.e. Device A and B would need to have the same broadcast ip).

    On the other hand, there are ways of setting up Multicast Forwarding if the router supports it, or you could have a device in both networks that does Avahi/mDNS Reflection.

    https://www.cisco.com/assets/sol/sb/Switches_Emulators_v2_3_5_xx/help/250/index.html#page/tesla_250_olh/multi_forwarding.html https://serverfault.com/questions/121032/forward-mdns-from-one-subnet-to-another

    • Kalcifer@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      1
      ·
      6 months ago

      Router A would also need to bridge in order for that to work

      Why would Router A also need to be a bridge? Router B is configured to bridge its devices to Router A’s network, so, from what I understand, its devices are treated as if they are on Router A’s network – bridging is layer 2, and mDNS is layer 3 (afaik), so Avahi should be able to resolve across the bridge.

      On the other hand, there are ways of setting up Multicast Forwarding if the router supports it, or you could have a device in both networks that does Avahi/mDNS Reflection.

      Wouldn’t this only matter if Device A, and Device B were on two separate vlan’s?

  • eutampieri@feddit.it
    link
    fedilink
    arrow-up
    2
    ·
    6 months ago

    These are routed networks, and you need avahi reflector set up to mirror between A and PtP and between B and PtP

    • Kalcifer@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      1
      ·
      6 months ago

      Router B is bridging Device B to Router A’s network, so they aren’t on separate vlans; thus, it shouldn’t require an mDNS reflector as that repeats mDNS between separate subnets.

      • eutampieri@feddit.it
        link
        fedilink
        arrow-up
        1
        ·
        6 months ago

        Then I don’t understand your topology. However, I still think you need the reflector on both routers

        • Kalcifer@sh.itjust.worksOP
          link
          fedilink
          arrow-up
          1
          ·
          6 months ago

          Afaik, an mDNS reflector is only needed to cross subnets – both subnets and mDNS function on layer 3. Bridging occurs on layer 2, and since mDNS functions in layer 3 (ipv4 multicast is layer 3), the bridge itself is invisible to it.

          • eutampieri@feddit.it
            link
            fedilink
            arrow-up
            1
            ·
            6 months ago

            This works if B has an interface that is connected to the A subnet, but not if you have a PtP between the two routers

            • Kalcifer@sh.itjust.worksOP
              link
              fedilink
              arrow-up
              1
              ·
              6 months ago

              This works if B has an interface that is connected to the A subnet

              I’m not sure I understand exactly what you mean. Is it not given that if two routers are connected to each other then an interface from either of them will be connected to the other?

              but not if you have a PtP between the two routers

              What do you mean by PtP? Are you referring to something like WDS, or, in my case, relayd?

  • 2xsaiko@discuss.tchncs.de
    link
    fedilink
    arrow-up
    1
    ·
    6 months ago

    The majority of the issues stemmed from the fact that the relay software that I was using, relayd, doesn’t support ipv6. All the tests that I was conducting were defaulting to ipv6, so it was appearing like the bridge was failing unpredictably. Since that realization was made, and countermeasures were enacted, the problem was solved.

    I hope this means you changed or fixed the software and not that you disabled IPv6.

  • SheeEttin@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    6 months ago

    I’m not familiar with how Avahi works, but I assume it uses broadcast packets. Do you actually have routing between two networks, or is it just a wireless bridge? Do broadcast packets transit the bridge? Have you taken a packet capture from both sides?

    • Kalcifer@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      1
      ·
      6 months ago

      I’m not familiar with how Avahi works, but I assume it uses broadcast packets.

      It does, yeah; multicast DNS uses multicast packets e.g. 224.0.0.251 (ipv4).

      Do you actually have routing between two networks, or is it just a wireless bridge?

      It’s just a wireless bridge.

      Do broadcast packets transit the bridge?

      They do.

  • MangoPenguin@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    1
    ·
    6 months ago

    This sounds more like running double NAT with 2 routed networks? Are your clients all on the same subnet, or does router B have its own subnet?

    Make sure you’re actually doing a bridge and not adding a second router, then everything will work including avahi.

    • Kalcifer@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      1
      ·
      6 months ago

      Are your clients all on the same subnet

      Router A (192.168.0.1) is a different subnet than router B (192.168.2.1).

      Make sure you’re actually doing a bridge

      Bridge was added using the linked guide (it uses relayd).