Asking for clarification as what I’ve read suggests yes, but is also sometimes coupled with advice to (still?) set a static IP outside of the DHCP address range as well.
Thanks in advance!
Good question, and I’m curious what the experts say. Surely it depends on the software that handles DHCP.
I’ve always set static addresses in the DHCP address range and it has always been reserved and never assigned to other devices. I’ve used ASUS and MikroTik for what it’s worth.
If you’re the type to set static addresses on the devices themselves, then that would certainly increase the risk of a conflict if it’s inside the address range.
dhcp is the only service that would allocate the address. if you use an address outside of a dhcp scope, youre fine in that it wont be automatically used.
now, this is kinda different per manufacturer… but in some routers generally setting/assigning a static to an mac address is just forcing a little mini 1-to-1 dhcp scope your incoming mac to the ip you set.
So it depends. For example some legacy apple stuff had a bad DHCP implementation where it would try to hold onto an IP address it had before.
When there’s one DHCP server with a reserved ip it won’t assign that ip to the wrong device. (Unless you’re running some buggy software that takes your configuration as suggestions)
Where the advice to set it anyways comes from scenarios where that DHCP server goes down for long enough that everyone starts self assigning addresses. It’s a real hassle to find the correct system when that happens.
the best practice is to keep your dhcp pool and reservations from overlapping, but on a home network its usually easier to let a device acquire an ip via dhcp and then create the reservation for that address.
Yes it does. Only the MAC address you assigned to that IP will get it.
I usually move static assignments outside the DHCP range, but in general, most routers will avoid re-allocating it even if it’s within the DHCP range.
Probably. It depends on the device, because there’s no standard dictating this, but I would guess most routers reserve reserved IPs.
I would suggest not to rely on that. Give the DHCP a range, use manual IPs outside of that range
Someone who might be more familiar with MacOs and iOS please correct me if I’m wrong but i think if certain settings are turned on they will periodically randomize their MAC addresses for security/privacy.
I’m running pihole in a docker container and set the IP to be static on the router. After either a reboot or the update to Sequoia (or both?) The IP address chsnged due to a new MAC address and broke my pihole settings until i updated it.
Apple will randomize your MAC when connecting to networks to maintain privacy. It’s a per-network setting that can be toggled off for your own private network if you want to.
Android too.
Ah okay, i remember that setting in iOS. Will check the network setting on my Mac Mini to see if thats an option.
Love the network name lol.
Did I age myself there?
TL;DR: it depends entirely on the DHCP server software.
Generally the safe/reliable policy is to assign a smaller DHCP range (or ranges) and allocate static assignments outside of the DHCP range(s).
Assume your network is 192.168.1.0/24.
Specify 192.168.1.128/25 for DHCP, which means all DHCP addresses will be above 192.168.1.128.
This leaves you everything below 192.168.1.127 for static assignments.
I’d agree with this recommendation. I believe there were multiple occasions where my router assigned a dynamic IP the same as some other reserved IP. Hard as hell to diagnose. Key indicator was that roughly half the packets were being lost.
Appreciate the example! It’s when handling a DHCP range and the related CIDR notation that I tend to get especially muddled in this area. It certainly doesn’t help that each router’s interface and terminology tends to vary just enough to add uncertainty.
Regardless, the comments here and more focus on this have helped clear some of this up for me.
I still double-check my CIDR’s/netmasks and expected ranges with a tool (some online one or other). Easier to avoid silly mistakes or typo’s
I use Technitium DNS as both my DHCP and DNS Server on my network. I then have my ISP Router’s DHCP turned off, and point the primary DNS IP To Technitium’s on my network. I have roughly 66-67 network devices at a given time on my network, mostly wireless. (Think wiFi locks, Lights, Outlets etc) then I have my phones and gaming systems an any given thing.
To manage my IP’s I use an Airtable type of database via BaseRow, also self hosted. Through my router’s records, I copied/pasted every single MAC address I found, into a column in my BaseRow table there, and then added the device name or friendly name to another with an assigned IP I want to use. I have a more organized system of ranges 192.168.1.1-10 is mobile devices, 192.168.1.11-30 is IoT etc…
By having my network setup in this fashion, I accomplish a few things, all new devices which power on or connect to the router to get their IP assignment fail to get it since it’s turned off there, and they search the network for an available DHCP Server which lands squarely on the TechnitiumDNS server and are assigned it through there. I also have adblocking enabled through the same server so I have a more home wide adblock which works. (You’d be amazed at how much Telemetry a TV Sends out for every single remote keypress!) I have been able to block those with the adblock enabled. With the DNS server, you can also assign DHCP ranges address, it is really an overly complex server and probably overkill for a home network. I’ve only scratched the surface of what it can do.
If you don’t want to fuss with TechnitiumDNS, there’s AdguardHome, or even PiHole you can use if you want to block Ads (or you can simply disable that function) and those also act as a DHCP Server.
Or, if you are wanting to spend a few hours configuring it, you could run your own DHCP Server in a VM or dedicated device such as a Raspberry Pi.
With all of these settings, it’s important to set your DHCP lease offer long enough that if you have to reboot the DHCP Server for kernel update, or it crashes, you won’t have any devices fail as some do regular polling to check for connectivity (My Linux computer does this a lot). I don’t remember if it’s KDE or Arch. Anyway, running the DNS Server also allows you to custom build your own “domain” system if you will. So could assign maybe your self hosted Calendar for example to http://calendar.local or http://calendar.internal.
By setting up a dedicated DHCP Server, using the manual method or one of the different AdBlock systems, you can also turn off DHCP registration for ‘foreign’ devices or those which aren’t in your DHCP table. This offers a small element of extra security for your WiFi, but it’s not 100% secure if someone knows your IP ranges and Subnet Mask. Also, this will make it easier in the future for you if you upgrade your router or replace it as there’s just two settings to change. (DCHP Server off and the optional self hosted DNS).
You should put fixed IP addresses outside the DHCP allocation range. While a DHCP server might be smart enough to exclude a fixed address automatically, this is not a must. So better safe than sorry.
DHCP, when set up properly, makes for less work. Reservations will have the DHCP server hand out the same IP to the same hardware (MAC address) when it asks. If you have a device that is from the dinosaur age that doesn’t play nice with DHCP, then make sure you give it an address that is outside the DHCP range on the same subnet. ex: Some home routers use 192.168.1.100 to 192.168.1.200 as the dhcp range. Setting anything from 192.168.1.1 (or 2 if the router is on 1) to 192.168.1.99 is fine, as is 192.168.1.201-192.168.1.254 (or 253 if the router is on 254). However, by setting static ips, you have to remember those ips specifically to interconnect devices on the lan, whereas reserving via dhcp allows you to use local dns resolution to connect to devices via their hostname instead. In additon, you run the risk of ip conflicts from forgetting which device has what ip in an increasingly complex system, and if you change internet providers or routers, you have a lot of extra work to do to fix the network settings to get those static ips to connect.
Alternately, just use the link-local ipv6 address to interconnect on the lan. That doesn’t change on most devices, as it is based on the MAC address, and is always reachable on the lan.
Nope!
Just wasted 3 days debugging an IP assigned to two devices… Not fun, don’t do it…
Only reserve IPs that are outside of the DHCP range you’ve configured.