DHCP does not recognise mac address of interface

I wont bother typing out details because it seems like speaking into the abyss.

I have an issue where dhcpd does not recognise the mac address of my NIC when configured in dhcpd.conf.

Without details you’ll hardly promt anyone to help. Detailing issues can give you at least some chance of getting the answer:

  • no post, no help
  • angry post without details, very small chance of help
  • post with details, more chance for help

Unfortunately not all folks know answers to everything, this is far from paid support center. Answers you’ll get here are mostly from enthusiasts that want to participate in the community.

If nobody knows the answer, we’ll at least try to provide suggestions for next steps…

1 Like

Well, from my experiences, also paid support is often unable to offer prompt solutions, or even to offer solutions at all. :smile:

1 Like
  1. Do you have to configure it manually?
  2. Are you sure that you’re using the correct syntax?
  3. How did you edit the file? If it was transferred in, it might have the wrong security context and selinux will therefore block dhcpd from reading the config file.
  4. Did you restart the service? Without this, dhcpd will still be using its old config.
  5. Can you do this in networkmanager? Besides for networkmanager possibly reverting your changes if it’s set to handle that functionality, staying away from ‘lower level’ tools and allowing higher level ones to handle things seems like it would make the system more flexible.

As others have already said, providing details is more helpful than not and disparaging the forum’s abilities is not particularly constructive.

Hi,
By the way, this is regarding Fedora Server.

I wanted to be sure someone looked at my post before I typed out acres of details, my last post didn’t get a single answer even though it was about what seems to be a serious bug with systemd and selinux.

@alciregi I believe you looked at it.

About this DHCP issue, I will post details later this evening.

However there is an incredible amount of conflicting information about this, including from authorities fedora, red hat and centos. It’s like having 3 different service manuals for the same car, all of which tell you to do something different, and none of the instructions are correct.

They’re three different cars. So, if you’re using Fedora, you use the manual for Fedora. If the instructions there are incorrect, we’ll speak to the “manufacturer” (continuing the idiom) which would be the maintainer and the developers and see how they can be corrected/improved.

Hi Fransisco

You are correct, however, also not correct. Due the fact that there is a lot of out of date info about fedora around, even hosted by fedora. For example, adding entries to config files, whereupon opening that file there is a header explicitly stating that the file is no longer used.

Which means resorting to seeking better documentation, and, afterall, we would hope RHEL is the daddy of what we are doing here!

Give me a bit and I will post the relevant files and error messages in case anyone can shed some light.

Here we go:

option domain-name “server.home”;

host server {
hardware ethernet XX:XX:XX:XX:XX:XX;
fixed-address 192.168.15.1;
}

subnet 192.168.15.0 netmask 255.255.255.0 {

authoritative;

range 192.168.15.5 192.168.15.100;

default-lease-time 86400;
max-lease-time 86400;

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.15.255;
#option routers 192.168.15.1;
}

Where XX.XX.XX… is the correct mac address of one of the NICs, enp8s0f1, currently connected to main network, but, previously connected to a network switch, ready to test.

Produces this result:

Internet Systems Consortium DHCP Server 4.3.6
Copyright 2004-2017 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
ldap_gssapi_principal is not set,GSSAPI Authentication for LDAP will not be used
Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
Config file: /etc/dhcp/dhcpd.conf
Database file: /var/lib/dhcpd/dhcpd.leases
PID file: /var/run/dhcpd.pid
Source compiled to use binary-leases
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 0 leases to leases file.

No subnet declaration for wls6 (192.168.0.99).
** Ignoring requests on wls6. If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface wls6 is attached. **

No subnet declaration for enp8s0f1 (192.168.0.100).
**** Ignoring requests on enp8s0f1. If this is not what**
** you want, please write a subnet declaration**
** in your dhcpd.conf file for the network segment**
** to which interface enp8s0f1 is attached. ****

No subnet declaration for enp8s0f0 (192.168.0.94).
** Ignoring requests on enp8s0f0. If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface enp8s0f0 is attached. **

Not configured to listen on any interfaces!

This version of ISC DHCP is based on the release available
on ftp.isc.org. Features have been added and other changes
have been made to the base software release in order to make
it work better with this distribution.

Please report issues with this software via:
https://bugzilla.redhat.com/

exiting.

Please provide the result of the following command.
ip a

In addition, what are you trying to do? It could be obvious, but I did not understood (English is not my native language).
Are you configuring a DHCP serever?

Some Google searches mentioned adding the interface to the file /etc/default/isc-dhcp-server. Also, while I’m assuming that your new lines and lack of indenting within the block isn’t an issue, you could try changing it.

Is “option domain-name “server.home”;” allowed to be outside of a block?

(While writing the above, I noticed that your quotation marks don’t look like mine. Are they perhaps the wrong ones? ASCII vs Unicode, or the other way around)

Hi Fansisco

About conflicting information. Fedora Documentation, turns up on web search:

https://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/sect-Configuring_a_Multihomed_DHCP_Server.html

mentions: /etc/sysconfig/dhcpd

Which does not exist

1 Like

Hi Benjamind

I can try indenting, but it doesn’t seem like it’s likely to be the issue, otherwise more problems would appear other than the server not relating the mac address to the interface.

The quote marks may look different because I copied from SSH terminal, to mousepad, and then to here.

Again, it seems like the script is not in error itself, otherwise there would be a stream of errors. For example, a missing ; or } will cause a failure, and the error is correctly reported.

Since, looking at the errors, it seems that you are trying to configure a DHCP server for a subnet you are not connected to.

In addition, from the man page

The host statement

 host hostname {
  [ parameters ]
  [ declarations ]

}

The host declaration provides a way for the DHCP server to identify a DHCP or BOOTP client. This allows the server to provide configuration information including fixed addresses

Usually such declaration goes inside the subnet statement.
As far as I can understand (but I could be wrong), you are thinking that

host server {
   hardware ethernet XX:XX:XX:XX:XX:XX;
   fixed-address 192.168.15.1;
}

will assign the IP address 192.168.15.1 to the enp8s0f1 interface of the host acting as DHCP server. This is a wrong assumption. The DHCP server will assign IPs to the clients in the same subnet, and not to itself.

Hi alciregi

Thanks, this is my first time experimenting with DHCP, so I am trying to work out how it works!

Now I reread it according to your explanation it makes a different kind of sense. This is to set a fixed address of a client.

So, how to do what I want?

The mention of what seems to be the logical course of action in Fedora docs relates to a nonexistent directory and file, and the entry is regarding Fedora 14!

Well… :face_with_monocle: what are you trying to achieve?

That’s unfortunate. Instructions for older releases will almost never work for a current release, especially if the instructions are from years ago. (Even if we set aside the relatively fast pace of Fedora, 5 years is a long time for software to change in).

Given that this is available from search engines, I’ve filed a ticket with docs now to either:

  • remove outdated docs
  • or to put a big banner on each page making it very clear that this is outdated documentation

You can follow the ticket and provide your views here:
https://pagure.io/fedora-docs/docs-fp-o/issue/116

Hi Fransisco

Thanks! :slight_smile:

There are many more instances I have experienced in the past.

For someone like me, who has some experience, but has to research and learn about something new to them, it can become a grim and frustrating experience.

It seems some ‘distros’ (Arch, FreeBSD) are more thorough and precise about documentation. I guess here there could be a reason to, lets say, not allow documentation to become so useful that paid for support is less of a requirement.

Still, I like Fedora and have used it for some years, so I would prefer to stick around.

1 Like

@valve order and nesting is important in dhcpd.conf.
Check the dhcpd.conf manpage. It’s a long read but it has all the info.
man dhcpd.conf

Example dhcpd.conf (untested):

option domain-name "server.home";

# timers
default-lease-time 32200;
max-lease-time 86400;

authoritative;

subnet 192.168.15.0 netmask 255.255.255.0 {
  option routers              192.168.15.1;
  option subnet-mask          255.255.255.0;
  option broadcast-address    192.168.15.255;
  option domain-name          "server.home";
  option domain-name-servers  yourdnsserver.server.home;
  # option time-offset        3600;   # adjust for your situation
  option ntp-servers          yourntpserver.server.home;

  allow unknown-clients;

  # .5 to .100 are used for dynamic clients
  range 192.168.15.5 192.168.15.100;

  # while .1 to .4 can be used for static clients
  host server {
    hardware ethernet XX:XX:XX:XX:XX:XX;
    fixed-address 192.168.15.1;
  }
} # end of subnet declaration
1 Like

Hi alciregi

Let’s say this is as much about me experimenting and learning as it is about achieving an end result (which I have not firmly decided about).

So, I will describe what I would like to achieve today is the elimination of this specific problem: No subnet declaration for enp8s0f1 (192.168.0.100).

If I could find an explicit instruction as to how to do it, I would. I can easily find such for Ubuntu, but not Fedora, and, a deeper search starts to show up conflicting and wrong information about nonexistent directories and files, as I described.