Bug 1573009

Summary: dhcpd raw socket not listening on local-address
Product: [Fedora] Fedora Reporter: Eric Lajoie <elajoie>
Component: dhcpcdAssignee: Pavel Šimerda <code>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 27CC: code, ralloway
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-11-30 23:37:53 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Eric Lajoie 2018-04-29 17:42:43 UTC
Description of problem:
local-address 10.0.0.1; setting in /etc/dhcp/dhcpd.conf makes the dhcpd service listen on 10.0.0.1:67 but the raw socket still listens on all interfaces.

Version-Release number of selected component (if applicable):
isc-dhcpd-4.3.6

How reproducible:
Install F27
Install dhcpd
Use this config file:
option domain-name     "lajoie.org";
local-address 10.0.0.1;
option domain-name-servers     10.0.0.1;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 10.0.0.0 netmask 255.255.255.0 {
    range dynamic-bootp 10.0.0.100 10.0.0.254;
    option broadcast-address 10.0.0.255;
    option routers 10.0.0.1;
    option interface-mtu 1452;
}



Steps to Reproduce:
1. systemctl enable dhcpd.service
2. systemctl start dhcpd.service
3. ss -4lnp | grep dhcpd

Actual results:
raw        UNCONN       0            0                         0.0.0.0:1
udp        UNCONN       12183        0                        10.0.0.1:67

Expected results:
raw        UNCONN       0            0                         10.0.0.1:1
udp        UNCONN       12183        0                        10.0.0.1:67

Additional info:
The raw socket should only listen off the interface which DHCPD is serving.

Comment 1 Richard D Alloway 2018-11-02 18:55:25 UTC
Hi Eric!

This is not actually a problem.

DHCPd *should* be listening to the "all balls" address because the daemon needs direct, unrestricted access to the packets on the network.  If the raw socket is bound to a particular IP, the kernel may (or may not) limit which packets are presented to the daemon.

DHCPd very quickly examines and discards any packets that it does not need to process when packets are received.

Without listening on 0.0.0.0, packets from unconfigured or partially configured clients may not be exposed to DHCPd, breaking the functionality of the service.  

If you need to prevent DHCPd from listening to 0.0.0.0, you can compile the software to no use raw sockets, but you will need a DHCP relay that does use raw sockets to proxy the packets to/from the clients.

See also :
https://kb.isc.org/docs/aa-00379

-Rich Alloway (Rogue Wave)

Comment 2 Ben Cotton 2018-11-27 13:41:04 UTC
This message is a reminder that Fedora 27 is nearing its end of life.
On 2018-Nov-30  Fedora will stop maintaining and issuing updates for
Fedora 27. It is Fedora's policy to close all bug reports from releases
that are no longer maintained. At that time this bug will be closed as
EOL if it remains open with a Fedora  'version' of '27'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 27 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 3 Ben Cotton 2018-11-30 23:37:53 UTC
Fedora 27 changed to end-of-life (EOL) status on 2018-11-30. Fedora 27 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.