I have roughly 20 devices connected to a switch and want to divide them up by their different functions. Some devices are sensors, some are motor controllers, there's a data-logger, and a PC to configure the devices.

From what I understand, (I know very little about networking) I can divide a network by sub-netting so that each type of device is "separated" from the others. For example, the sensors output data to all of the motorcontrollers, the data-logger, and PC but the motorcontrollers do not talk to each other. I think I want a /27 network due to the number of different types and quantities of devices.

If I statically configured the sensors to have host addresses between 196.128.10 - 196.128.30 and the motorcontrollers to have addresses between 196.128.10.33 - 196.128.10.62 is that considered two different subnets and thus they cannot communicate? Or is this still considered one subnet and they can communicate?

Or would I want to setup the sensors to broadcast using 196.128.10.63 so that all the motorcontrollers get this data? If I did that and wanted to configure one particular sensor using the PC would I have to temporarily change the sensor IP to a static address?

Would the datalogger need to have the broadcast address as to read in all sensor and motorcontroller data/commands?

Am I even on the rights track? Thoughts? Other suggestions?

Thanks

  • Devices on different subnets can communicate (you are doing it when your PC communicates with Stack Exchange, or any Internet site), if you have a router. What you are really doing with subnets and VLANs is breaking up a broadcast domain into smaller broadcast domains. Also, broadcast is a poor way to communicate; the modern way to communicate with a group of devices is to use multicast. IPv6 has eliminated broadcast, so if you depend on broadcast, then you move to IPv6, you have problems. – Ron Maupin Nov 15 at 19:28
  • 1
    Hello and welcome. You don't mention how much data there is; if it's small, the principal enemy is complexity. The downsides of "all-in-one-network" and "just-shamelessly-use-broadcasts" might not be serious in only 20 devices. Consider management too, and if you can make it so that you don't have to individually configure anything, and how much skill and knowledge a later maintainer is required to have. – jonathanjo Nov 15 at 19:56
  • I don't know an exact amount of data, but I would ballpark it as <10 Mbps. Sounds like I shouldn't broadcast, but instead multicast. One note I forgot to mention is that I am not using a router (don't know why, I am inheriting this project, I should learn why). – user51839 Nov 15 at 20:38
  • I am also hearing that I should really be using porting to solve this issue? So similar to how I use port 22 to SSH I should setup each device to be transmitting from a particular port and receiving from others. My question now is how to setup ports for these devices. – user51839 Nov 15 at 20:41
  • You should give us some more information about the information flow so we can best advise, there isn't a one-size-fits-all on this. I'd suggest a diagram and description and a new question. – jonathanjo Nov 15 at 22:20

Generally speaking, creating subnets or VLANs does not provide any security by themselves. So there may be no point in creating subnets, especially if this is an isolated network.

It seems that you are trying to assign addresses so that they "make sense" to you. In that case, you can simply chose a network block (192.168.0.0/24, for example) and assign addresses in any manner that you like. All the devices will have the same subnet mask: 255.255.255.0.

Your sensors can be 192.168.0.1 - 192.168.0.10, controllers can be 192.168.0.11 - .20, and so on. This is one example - you can use any numbering scheme that makes sense to you.

I will recommend that you use the address block 192.168.0.0/24 and not 196.128.10.0, as the former is allocated for private networks and the latter is already assigned to another organization.

  • Okay, that helps. Thanks! – user51839 Nov 19 at 14:50
  • Any recommendations on how to assign ports? The way I am understanding it now, is that I need to assign output/input ports on each of the devices. Do ouput ports have to be unique for each device or can all of my sensors have the same ports for example. The controllers, datalogger, and PC would then need to be configured to listen to these ports? – user51839 Nov 19 at 15:01
  • Are you talking about physical switch ports? I don't think it makes any difference. – Ron Trunk Nov 19 at 15:45

Trying to answer the question and bring in a few networking basics...

If I read between the lines correctly, you are concerned about performance and generally getting everything to work, but not about security. Let me prefix this by saying that you should probably not worry. If that's all you are concerned with, then forget about the details, pick one single network for all of your devices, and be done with it. Modern switches are good at only putting packets on ports where they are needed, broadcasts don't bother them either, and 20 is not a large number of devices.

From what I understand, (I know very little about networking) I can divide a network by sub-netting [...] If I statically configured the sensors to have host addresses between 196.128.10 - 196.128.30 and the motorcontrollers to have addresses between 196.128.10.33 - 196.128.10.62 is that considered two different subnets and thus they cannot communicate? Or is this still considered one subnet and they can communicate?

Check out this excellent answer on network masks.

On the MAC level (what we call layer 2, the regime of switches), all of these devices can still communicate; also, there is only one (global) broadcast region on that level.

On the IP level (layer 3, managed by routers), only devices on the same network can talk to each other, and broadcast to each other directly, and you need routing (sic) to talk between networks - which is a can of worms you most likely do not want to open in your specific case.

Or would I want to setup the sensors to broadcast using 196.128.10.63 so that all the motorcontrollers get this data?

This depends on your application and what your devices can do. If your sensors can send to multiple receivers, then you might configure them appropriately. Or you could put a PC inbetween, maybe with some specialized piece of software which "routes" this more at an application level. Or, as you said, use broadcasting.

If I did that and wanted to configure one particular sensor using the PC would I have to temporarily change the sensor IP to a static address? Would the datalogger need to have the broadcast address as to read in all sensor and motorcontroller data/commands?

Yes. A modern switch makes sure to only send packages to the port they need to go. You need to use broadcasting if you want to target multiple recipients. No device "has the broadcast address". It works the other way round: If a packet is sent to the broadcast address, every host on that network will receive it.

Am I even on the rights track? Thoughts? Other suggestions?

My thought is that you are way overthinking this. I would put all of the devices on one convenient subnet and be done with it. If you wish to broadcast, then do so globally if your devices are able to ignore packages not meant for them. Unless you are close to saturating whatever bandwidth you have available with your sensors and controllers, I would not suspect any problems to arise.

Also, be aware that a device (a "physical" MAC) can have multiple IP addresses, in different or the same networks. Simple devices may not be able to do that simply because their software is too simplistic, but any PC can be configured to be part of any amount of networks at the same time. So you could indeed place your devices in individual subnets, have your PC on all of them, and have your PC either do routing on the IP level, or have an application which handles all of this on a higher level.

You can have arbitrarily many subnets (like your 8 /27 subnets) on a single switch without VLANs. VLANs make all of this a bit more complicated and require a configurable switch (more expensive both in the hardware and in time/know-how investment). You would need them if you are in any way considering security. If you are in a trusted space and simply want to get things to work, and have no very special needs which you didn't mention yet, you will not need them.

And at the end of the day, it matters a lot what your devices expect, and are able to do. What has been said about broadcasts above is true on the network level, but any device would need to have the proper software to actually process broadcast packages which arrive at their doorstep in a meaningful way.

  • You have good advice AnoE, but might I suggest you edit out the section explaining netmasks and link to one of the many existing lengthy answers? – jonathanjo Nov 16 at 0:45
  • Sure, it's easy to get carried away, @jonathanjo, when in the heat of writing the answer. Do you have a favourite one? – AnoE Nov 16 at 7:09
  • I'd suggest Mr Pennington networkengineering.stackexchange.com/questions/7106/… – jonathanjo Nov 16 at 10:32
  • Done, @jonathanjo, thanks. – AnoE Nov 16 at 11:15
  • Thanks for the thorough response, this gives me a lot of confidence moving forward. I'm also hearing that I need to setup ports for each of the devices. XXX.XXX.XXX.XXX:20 for example. So the sensors would all have a unique output port and on the controllers, datalogger, and PC I'd need to have those same ports opened and configured to listen? Would have to make sure I don't use ports that are already in use. – user51839 Nov 19 at 14:57

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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