0

I would like to design several devices that receive simple commands from a single controller device all residing on the same layer 2 switch. Is there a protocol that allows me to do this without assigning IP addresses to each one?

I can't use DHCP or link-local automatic addressing as my controller device WILL have a variable static IP assigned to it for communicating with other layer 3 devices.

Ideally I could use the controller device to discover all receiving devices on the layer 2 network and store a table of their physical addresses. Then I could just send generic packets directly to the MAC addresses somehow. This would allow the receiver devices to be added in a Plug-and-Play manner.

3
  • Why not use mDNS to discover the devices' IP addresses, then communicate over IP with those? It should work with any mix of static, DHCP, and/or APIPA addresses (as long as the non-APIPA ones are in the same subnet). – Gordon Davisson Mar 17 at 9:38
  • Unfortunately my controller is just software on a computer that must have a static IP address. Is there a way I can communicate with APIPA devices from the non-APIPA controller? – Adam Fontana Mar 18 at 2:33
  • As long as everything conforms to RFC 3927, they'll be able to communicate just fine. If they support IPv6, it's even easier because all IPv6 hosts should have link-local (fe80::/10) addresses in addition to any other addresses they may happen to have. – Gordon Davisson Mar 18 at 4:18
0

Practically speaking, Ethernet and WiFi are the only 2 L2 protocols in wide use and fully supported by all modern operating systems.

0

as my controller device WILL have a variable static IP assigned to it

Very, very bad design. You should enable DHCP and provide a reasonable fallback, preferrably to Zeroconf aka APIPA aka link-local addresses, using 169.254.0.0/16 addresses.

If you use IPv4, don't forget about IPv6.

Alternatively, you can run an application protocol directly on top of Ethernet but that prohibits routing (as does Zeroconf). Make sure you use a proper Ethertype (for a commercial protocol, it should be registered with IEEE). Node discovery should be done using multicast.

4
  • Unfortunately, the IP address of the controller is not in my control, nor is the DHCP server. The only think I can rely on is the receiver devices being on the same physical network. – Adam Fontana Mar 16 at 22:20
  • You design a device but cannot control its IP address? Then I'm afraid your question is off-topic here... devices on the same physical network is a clear pointer towards link-local addresses. – Zac67 Mar 17 at 6:53
  • I'm not designing the controller device. The controller is just software running on an existing computer, and unfortunately I have no control of the IP settings. If I use link-local addresses for the receivers, wouldn't the controller need to also have a link-local address? – Adam Fontana Mar 18 at 2:25
  • Sure - IP generally requires a common subnet or proper routing. – Zac67 Mar 18 at 6:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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