2

I have some questions. First off my understanding on networks is minimal.

I'm trying to understand how zeroconfig works in a situation where not all devices are on a single network, but they are all connected to a centralized PC. Its essentially embedded arm devices running linux with g_ether. So the central device is a host Windows desktop.

I imagine that each device connected to the PC will have it's own network interface, and broadcasting from one, will not reach a second device. Will the host PC properly negotiate a new IP address for a device on the second network if it requests an IP address used by a device?

Secondly, we are using avahi on the device. Windows uses... w/e windows uses. Is zeroconf a standard protocol or do all of them have separate implementations.

And if this isn't going to work, is there some other standard we should use? The requirement for us is to be able to connect 40 to a single pc... which is a ridiculous amount of usb hubs but that's what they want.

1 more question considering the answer I got. If its not possible to gurantee each device gets their own IP address, Does that mean the routing won't work? Consider a PC connected to two Networks with a device that has the same IP address. Would it be possible to talk to a single device using that IP address. I imagine at least in C++ we might have to specify a network adapter?

Are there any other solutions other than bridging all of the devices. This will be used in manufacturing, so automation is more important than ease to set up.

Maybe my understanding of the RNDIS usb driver works is wrong as well. Each device gets its own network interface. I'm assuming like all other network interfaces that they are independent networks. Is it possible to tell RNDIS to load a single network interface for multiple devices?

1
  • Did any answer help you? if so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you could provide and accept your own answer.
    – Ron Maupin
    Commented Aug 9, 2017 at 15:27

1 Answer 1

4

I'm trying to understand how zeroconfig works in a situation where not all devices are on a single network, but they are all connected to a centralized PC.

Zeroconf is not designed to work in this situation, so don't expect things to work out of the box.

Zeroconf has three component: IPv4LL, mDNS and DNS-SD.

  • IPv4LL allows a device to configure an address that does not conflict with another device on the same link, without relying on any kind of server. If you have one link per device, then each device will choose an IP address independently. There is no guarantee that all devices have a different IP address.

  • mDNS uses Link-Local multicast, so it will typically only work on one link. Your central machine will see all devices, but devices will not see each other.

  • DNS-SD is network independent since it relies on a higher-level protocol: DNS.

If you want Zeroconf to work across your devices, the simplest thing to do is to have your central host bridge all its network interfaces.

Is zeroconf a standard protocol or do all of them have separate implementations.

This question does not make sense. Being a standard protocol and having different implementation are two completely orthogonal things. Yes, Zeroconf (or rather, each of its components) is specified in RFCs. Yes, there are several implementation of it.

However, Windows does not completely implement Zeroconf natively. It only implements IPv4LL. Apple has an implementation of mDNS and DNS-SD for windows. But Windows mainly rely on a competing technology, called UPnP, which is not designed for the same purpose.

1
  • Thank you, this is probably why its difficult to find information on how to set up devices like this. And just to clarify, why I asked if there was a standard protocol or different implementations. Because I didn't think avahi worked with anything but avahi, so avahi negotiating an IP address wouldn't consider the host IP address when the host did not have avahi.
    – Kevin
    Commented Apr 25, 2014 at 22:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.