Thanks, that makes it a bit clearer, I'll definately have to learn more about it though
You're welcome.
I see I made a few typos. I hope they didn't make it too confusing.
Just on the last bit you mentioned, is it possible to go from 255.255.255.0 to 255.255.0.0 in the same way as 255.255.254.0 - basically without doing any extra config?
You can go from /24 to /16, just as easily as you go from /24 to /23.
However, it does require configuration.
As others have pointed out earlier in this thread, you need to make sure that all devices on a network agree on the exact same prefix-length/subnet-mask. If that's not the case, things get a lot more complex. An experienced guy can probably make something work with a bunch of kludges. But to keep things simple, just do the right thing: and make sure they all have the new subnet-mask.
There are 2 types of IP addresses.
Dynamic addresses, handed out by a DHCP server, via the DHCP protocol. Most of the time, a router functions as the DHCP server.
And then there are static addresses. Those are configured by hand. Nowadays, it's mostly the interfaces of the routers that need to be manually configured.
So one thing you need to do is:
reconfigure the subnet-mask/prefix-length on the internal interfaces on your routers. I believe you have only one router, so that's easy: keep the IP address the same, just change the subnetmask to 255.255.0.0, (or the prefix-length from /24 to /16. It's the same thing).
If you're lucky, that would automatically cause the router to hand more IP addresses via DHCP. And tell all the DHCP-clients that the subnet-mask has changed.
You probably need to reboot all machines on the network. Or unplug the ethernetcable for 10-20 seconds (so the machines notice they are disconnected), and then reconnect the ethernetcable. I believe there's also a dos-commando to do it.
You might have more devices on the network, that need static address configuring. If that is the case, you need to change the subnetmask on those too. (Although I doubt you got more devices with static addresses, because if you are not aware of what you are doing, the static and dynamic addresses would have been likely to collide).