dhcpd (via systemd) @boottime which does not wait for the interface..

Bill Shirley Bill at Henagar.PolymerIndustries.biz
Mon May 9 14:22:09 UTC 2016


Correct me if I'm wrong, but ISC dhcpd for IPv4 uses raw sockets.  I think starting as
root is required.  Thus the need for -user dhcpd and -group dhcpd on the command line.  It drops
privileges after initializing.

Bill


On 5/5/2016 10:33 AM, Pallissard, Matthew wrote:
> If you make the unit wait until network-online.target it /should/ wait until it gets a routable IP address.  If I understand 
> how network-online works correctly, I'd assume that it could be thrown off if you have multiple interfaces and some interfaces 
> come quickly while virbr0 isn't coming up in a timely manner.
>
> <2cents>
> I don't see -user and -group in the man page.  Maybe I didn't read it that carefully but it seems that the flag's you'd use 
> would be -G and -U.  Personally, I usually specify the user within the unit file.  Also you'll probably want to declare it as 
> a forking service with a pid file.
> </2cents>
>
>
> Try something similar to this and see if it works.
>
>
> [Unit]
> Description=DHCPv4 Server Daemon
> After=network-online.target
>
> [Service]
> Type=forking
> User=dhcpq
> PIDFile=/path/to/dhcpd/pid/file
> ExecStart=/usr/sbin/dhcpd -q -cf /etc/dhcp/dhcpd.conf -pf /path/to/dhcpd/pid/file interface
> [Install]
> WantedBy=multi-user.target
>
> Matt Pallissard
>
> On 05/05/2016 07:52 AM, lejeczek wrote:
>> On Wed, 2016-05-04 at 09:45 -0500, Pallissard, Matthew wrote:
>>> Can you share your unit file?
>>>
>> [Unit]
>> Description=DHCPv4 Server Daemon
>> Documentation=man:dhcpd(8) man:dhcpd.conf(5)
>> Wants=network-online.target
>> After=network-online.target
>> After=time-sync.target
>> After=libvirtd.service
>> Requisite=libvirtd.service
>>
>> [Service]
>> TimeoutStartSec=240s
>> Type=notify
>> ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid virbr0
>>
>> [Install]
>> WantedBy=multi-user.target
>>
>> I've got some feedback from systemd list - libvirtd folks should know what happens and when interface is created/initialized.
>> I wonder if this qualifies for bugzilla...
>>
>>> Matt Pallissard
>>>
>>> On 05/04/2016 06:46 AM, lejeczek wrote:
>>>> hi users I have my dhcpd to serve nothing but virbr0 (libvirt), OS is Centos 7.2 Dhcpd would not start, complaining like 
>>>> this: No subnet declaration for virbr0 (no IPv4 addresses). ** Ignoring requests on virbr0. If this is not what you want, 
>>>> please write a subnet declaration in your dhcpd.conf file for the network segment to which interface virbr0 is attached. ** 
>>>> and systemctl -l shows: ... systemd[1]: start request repeated too quickly for dhcpd.service ... but suffice to restart 
>>>> dhcpd and all works! I'v customized systemd's service conf, I've put: After=libvirtd.service Requisite=libvirtd.service but 
>>>> this did not help. Would you share your thoughts? many thanks. L. _______________________________________________ 
>>>> dhcp-users mailing list dhcp-users at lists.isc.org <mailto:dhcp-users at lists.isc.org> 
>>>> https://lists.isc.org/mailman/listinfo/dhcp-users
>>>
>>> _______________________________________________
>>> dhcp-users mailing list
>>> dhcp-users at lists.isc.org <mailto:dhcp-users at lists.isc.org>
>>> https://lists.isc.org/mailman/listinfo/dhcp-users
>>
>>
>> _______________________________________________
>> dhcp-users mailing list
>> dhcp-users at lists.isc.org
>> https://lists.isc.org/mailman/listinfo/dhcp-users
>>
> _______________________________________________
> dhcp-users mailing list
> dhcp-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/dhcp-users



More information about the dhcp-users mailing list