DHCP not registering hostnames in DNS
-
Again it works JUST fine - you can create reservation for mac and let it pull from the pool.. Just again seems to be stupid... You don't need to create reservation if all you want it to do is pull from the pool.
The only time this makes sense if your wanting to lock down your dhcp to not hand out IPs unless there is a reservation.
Where are you seeing hundreds of devices in the dhcp lease table? Maybe that is your problem your trying to solve with some nonsense?? If your device is pulling multiple leases then you have something wrong!! A device will either get a lease, renew the lease.. Why would it get multiple leases? Unless its mac changed or it changed to a different network?
Lets see these multiple leases for the same mac, etc. with different names on them..
You would have to look to the rfc and the actual details of the dhcpd on how you can tell it to ignore the name of the device when it hands out the lease, and use the name you put in the reservation for dns, etc.
Maybe the option
Ignore client identifiers
If a client includes a unique identifier in its DHCP request, that UID will not be recorded in its lease. This option may be useful when a client can dual boot using different client identifiers but the same hardware (MAC) address. Note that the resulting server behavior violates the official DHCP specification.Will do what you want? But I am still not understand your use case for this feature.. If you have multiple lease by the same device with multiple names and IPs then you have something wrong.. The correct thing to do is not try and override the problem with some sort of odd setup... But to understand why the issue is happening in the first place and correct it.
-
I think I still was not able to explain it - I try to name a device with a known MAC - without being forced to reserve a fix IP for it.
When I don't put an IP beside a MAC in the reservations, I see this MAC-item/row twice in the current DHCP leases/status: once as I've set it in the reservations and once as it got the IP with the device's internal host-name.
This is a very basic elementary use-case, which works even in products like ddwrt/Tomato etc. - you assign a host-name to a MAC-address, that's it.
.thank you for being patient with me ;-)!
-
@hova said in DHCP not registering hostnames in DNS:
I think I still was not able to explain it - I try to name a device with a known MAC - without being forced to reserve a fix IP for it.
Which is rather pointless.
This is a very basic elementary use-case, which works even in products like ddwrt/Tomato etc. - you assign a host-name to a MAC-address, that's it.
Those two use dnsmasq for both DNS and DHCP, in that case dnsmasq is doing this internally.
In pfSense dhcp and dns are handled by individual daemons, so you would need an additional communication layer between them. This adds more complexity, may require upstream code changes and might introduce additional bugs.
Even the currently implemented option to register dynamic leases in the Resolver has the drawback that every time a lease is created/updated unbound has to restart, which empties the DNS cache and can in combination with pfBlockerNG and big DNSBL lists cause DNS outages for a few seconds.
IMO any further discussion of that topic here is rather pointless, you have the following options:
- Create a feature request on redmine. Then you'll see if, and with what priority, the developers are interested in such an option.
- Add IPs to your static leases and be done with it.
- Don't use pfSense for DNS and DHCP, instead use an additional host for that. Pi-Hole for example uses dnsmasq so check whether it can also be used as an DHCP server.
- Don't use pfSense at all and go back to dd-wrt or tomato.
-
You might be able to do this with this statement
The use-host-decl-names statement use-host-decl-names flag; If the use-host-decl-names parameter is true in a given scope, then for every host declaration within that scope, the name provided for the host declaration will be supplied to the client as its hostname. So, for example, group { use-host-decl-names on; host joe { hardware ethernet 08:00:2b:4c:29:32; fixed-address joe.example.com; } } is equivalent to host joe { hardware ethernet 08:00:2b:4c:29:32; fixed-address joe.example.com; option host-name "joe"; } Additionally, enabling use-host-decl-names instructs the server to use the host declaration name in the the forward DNS name, if no other values are available. This value selection process is discussed in more detail under DNS updates. An option host-name statement within a host declaration will override the use of the name in the host declaration. It should be noted here that most DHCP clients completely ignore the host-name option sent by the DHCP server, and there is no way to configure them not to do this. So you generally have a choice of either not having any hostname to client IP address mapping that the client will recognize, or doing DNS updates. It is beyond the scope of this document to describe how to make this determination.
But this is not able to do currently without major hack to the dhcpd.conf file.. Its possible to do some custom options in this file... But pfsense creates the files from info in the xml, etc. So I its not just click click.
And I understand what your saying - I just don't get the actual use case... I just don't If your going to go to the trouble of creating a reservation.. Just freaking put in an IP and all of your problems go away!! you get exactly what your asking
deviceABC4762X will resolve via customname.yourdomain.xyz...
Its like your causing your own pain because for some odd reason you can not take .2 seconds to put in IP address 1.2.3.X when you create the reservation.
-
Thank you, I'll check your script. At least somebody is answering to the topic, cool!
Everyone has different needs; when refactorying the net, you have 2secs-times-n, where n can be around 100 also on a small home LAN. When somebody doesn't need the IP, only the name, it's a valid need, regardless if some folks think it's useless or stupid.
To have a name without an IP makes perfect sense for me and many others, as there are other routers doing exactly this. pfSense is much better than most of them, that's why I was expecting such an elementar use-case to be supported.
I wouldn't have written so much here, but could not believe it's not supported. Maybe this helps somebody else one day, as it helped me.
Thank you ;-)!
-
Yeah unless you write this code yourself or place a bounty for it to happen... I don't think this is ever going to happen.. There are a bajillion better things the dev's could be doing - like changing ui to a cooler looking font... Which would fine 10000X more interest from their user base then like the 2 people that might want such a feature ;)
You have the time to create a reservation for client and put in the NAM and the mac but not the IP? I don't care if you have a 1000's freaking clients..
You know you could just load this in from a file right? You don't have to do it all by hand in the gui.
I can load 1000's reservations via an xml restore in couple of seconds... Vs all this nonsense of just put in reservation without the IP.And then on the other end - if you have 1000 freaking clients if they get an IP who freaking cares if their name is deviceXZY or YourName, etc.
-
Not expecting any replies here since the topic is quite old. But the @hova request/question is far from being "stupid". I'm sure there're lots of folks who would like to just change the device name w/o worrying about the IP, me including. The fact that this feature functions properly in many other routers also proves that it's not "stupid" and there are legit use cases for it.
Now, saying "it works JUST fine" is not being completely honest. What is the expected behavior when adding static lease record without an IP in the UI? Any sane person would expect this MAC<->NAME mapping to just work, and if it doesn't work this way then you should always force the user to provide a static IP address and not allow adding static mappings without it, period! It's better than seeing two records in the leases - what's the meaning of this:
It's clear that there's a "freaking" problem that needs addressing.
-
Use case:
I want to setup rules in the firewall by using aliases like groups. I setup dhcp statics with MAC and hostnames, without IP cause i don't care about IP number. I use those hostnames in the aliases and not the real hostname cause that way i don't need to be worried about the hostname in case of OS re-installation -for example-. That should work, and doesn't. -
Totally agree with @mimino and @hova. I think there are plenty of people who would want to use static mappings to override the hostname and maybe add a Description. As mimino said, the IP is OPTIONAL in the static mapping UI and in the docs it says "The IP address field may be left blank to have the client pull its address from a pool." Why? If static mappings are useless without the IP , why not make the field required?
My home network has tons of IOT devices with absolutely useless hostnames or no name at all in some cases. Use Case: When I look at the Status > DHCP Leases page, hostnames that actually help me identify the device would be helpful. At the same time I do not care what IP the DHCP server gives to that client. Isn't not worrying about IPs why we all love DHCP?
If I have to provide an IP to make this work, fine. But it's certainly not an unreasonable or baffling request, especially considering the static mapping UI.
-
Adding my voice to this request. I’m in a lab where we test hundreds of consumer networked devices. Having the ability to access the devices by name via MAC to Hostname mapping without having to worry about static IP allocation was apparently something I took for granted before switching to PFSense. Loving everything else about the switch to PFS, but this is a big deal for us.
-
@jjiburg said in DHCP not registering hostnames in DNS:
Having the ability to access the devices by name via MAC to Hostname mapping without having to worry about static IP allocation
I still don't get this - put in an IP.. Your already put in the name and mac - so put in an IP.. just put them in order when you load the xml
hostA aa:bb:cc 192.168.1.10
hostb dd:ee:ff 192.168.1.11
etc. etc..You stated your self you don't care what the IP is, so don't care just put fill it out in sequence...
-
@johnpoz Who said anything about creating and loading XML?
-
The first part of this thread! How else you going to load in the hostnames you want to put in.
You can for sure put in rules based upon name, but they need to be able to resolve.. So they have to register their names, etc. etc.. So you need to know what the name is, ie a reservation..
edit: lay out exactly the scenario you want... So there are 100's or 1000's of devices your testing.. And you want to access them by name.. So have them register their names.. If you don't like their names they register and you want to give them names like hostA, hostB, hostC, etc. etc.. To do that you need to have a way to know which device to give hostA.. so you know that by mac? So then just give it an IP as well..
I am really having a problem understanding the use case here.. You can load in 1000's of reservations in a like 10 seconds with xml load.. If you explain exactly what you want we can discuss ways to accomplish that... To be honest, maybe the best way to accomplish that is run your dhcp and dns on something other than your edge firewall/router.. When you need to do fancy shit with dhcp and dns - it moves away from just something you run on this device because you have it there.. Pfsense can not be all things to all people that does everything in every possible use case.. That is not what its meant to be ;) Nothing can be that to be honest..
That is why there are multiple dns options, multiple dhcpd options, etc.. Running dns and dhcp on pfsense is really just hey if you have these basic requirements (which really are not all that basic - the implementations are very robust).. You can do that sure.. But when you need something else you might need to run a different system to do that.
-
@hova said in DHCP not registering hostnames in DNS:
could not believe it's not supported. Maybe this helps somebody else one day, as it helped me.
Could not agree with you more. I am baffled by the hostility of the expert responses above. It's exactly the kind of attitude that makes otherwise great FOSS products fail in the long run, because someone else will create an equivalent product and be delighted that people want to use it and respond positively to requests for help and features!
-
Prob poor form resurrecting a zombie thread, but I wanted to say thanks, this thread helped me - I have the exact same desire, address machines by name without having to care about the IP Address.
I too read the docs as IP being optional while still being able to get mac to hostname mapping.
The thing that was having me scratch my head was it "looked" like it was working in some cases and not in others. I now understand what was occurring, and how to fix it thanks to this thread.
@johnpoz me not caring about what IP a device is allocated, is not the same as me wanting to take on the manual management of allocating IPs, managing for clashes, performing updates as my networks evolve. I take your point about probably not using your edge router for your DNS/DHCP server, I for one didn't think about that aspect too much when I switched to pfsense - thank you for reminding me to think about separation of concerns / single responsibility principle(s).
-
Just adding an example of why I want this feature; most certainly it adds complexity to the code base. Is it necessary complexity? I dunno. I don't see the big picture :-)
I have a new energy monitor for my house and I want to use a REST interface it exposes to graph energy usage over time.
- To do this, I intend to have telegraf sample this REST interface and put data into an Influx database.
- To do this, I need to know the hostname or IP address of the energy monitor.
- Unfortunately the energy monitor does not set a client host name and so just gets an IP.
- So, I am forced to allocate it an IP address and ensure it doesn't overlap with something else in my home.
It's no big deal, it's just one more thing to do and can cause mistakes. I'll give two examples
-
If I had two energy monitors (or say security cameras) giving them unique names without caring about their IP addresses is a nice to have. No need to manage the IP address. Extra work I don't need to do. Not a lot.
-
I made a mistake when adding multiple security cameras and gave them the same IP. I eventually worked it out, it was just something I didn't need to do.
Thanks for listening,
Scott
-
Jeeezzz I've read through this entire painful thread and applaud the patience and humility of nova, explaining again and again something so basic - any other decent firewall already does. Like nova, I could not believe PFSense doesn't support this either!
It gets even more ridiculous as you start crossing VLANs - PFSense loses an originally defined static IP/hostname as soon as host shows up on another VLAN and gets a new IP assigned via DHCP... So now you have to register yet another Static IP+MAC+Hostname for the same host on another VLAN! And I've got 3 of those...
How did you guys end up with such a perfect logically substantiated mess? This is not the only thread where users point out obvious flaws in product usability for years. A lot of things are done "logically backwards", and yet all same smart people are reaffirming a perfectly logical case making everyone jump through the extra hoops for the sake of "being correct".
-
@pooperman said in DHCP not registering hostnames in DNS:
ridiculous as you start crossing VLANs - PFSense loses an originally defined static IP/hostname as soon as host shows up on another VLAN and gets a new IP assigned via DHCP..
Another VLAN is another LAN ..... for me. That's another network (range).
Thus another IP picked out of another network (pool).
Should the setup of a static lease include a possible IP for every local (V)LAN ? (a GUI modification)@pooperman said in DHCP not registering hostnames in DNS:
How did .......... sake of "being correct".
Yep, design choices are made.Its a free world.
pfSense picked the DHP server from ISC. They didn't write their own one.@pooperman said in DHCP not registering hostnames in DNS:
egister yet another Static IP+MAC+Hostname for the same host on another VLAN! And I've got 3 of those...
For me, I use these "Static IP+MAC+Hostname" when users from local network need to connect to some server type device. Other devices can keep dynamic i.e. I don't care what their host name or IP is.
Server type devices do not move across local networks. Their L3 location is very .... static.@pooperman said in DHCP not registering hostnames in DNS:
any other decent firewall already does
Love to see it - as seeing helps understanding. Names ?
Btw : I'm just another pfSEnse user.
-
So as nova said, I need to do something very basic - map MAC to a Hostname. Regardless DHCP or not. PFSense tells me - go register an IP and manage it on your own then, because RFC... Fine - DHCP is pointless from that point on. And now, all registered hosts show up on another VLANs get new DHCP addresses and lose their hostnames! Of course it is a new address space - really, PFSense is not going to pick up the name I've just provided? Networks theses days are filled with mobile users/workstations. Are you expecting admins to chase them all over the infrastructure or resort to pen and paper to get visibility into who is logged in where?
And yes, any other decent firewall does it - make your pick. Unifi allows to map globally recognized name to a MAC. My basic home router does it. OpenSense guys looked at it in 2019 - they thought this is a bug. Who in the right mind would think this is a feature? lol
https://forum.opnsense.org/index.php?topic=12369.0
-
We've just passed the 2 years mark since this was first reported here. If they don't even admit this being an issue we can't expect it to be addressed any time soon. Besides, they now have other priorities, like sorting out the Wireguard mess... To quote the mod himself: "There are a bajillion better things the dev's could be doing..."