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). Mar 17, 2021 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? Mar 18, 2021 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. Mar 18, 2021 at 4:18

2 Answers 2

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. Mar 16, 2021 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, 2021 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? Mar 18, 2021 at 2:25
  • Sure - IP generally requires a common subnet or proper routing.
    – Zac67
    Mar 18, 2021 at 6:42

Your Answer

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

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