Bug 554742

Summary: Using other dhcp client than ISC dhclient
Product: [Fedora] Fedora Reporter: Aurélien Cedeyn <aurelien.cedeyn>
Component: dhcpAssignee: Jiri Popelka <jpopelka>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: low    
Version: 11CC: iarlyy, jonathan, jpopelka, notting, plautrba
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-06-28 11:37:03 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Attachments:
Description Flags
Src rpm with ifup-eth/ifdown-eth patches
none
configuration with other dhcp client (dhcpcd)
none
configuration with dhclient (no changes) none

Description Aurélien Cedeyn 2010-01-12 09:40:37 EST
Created attachment 383249 [details]
Src rpm with ifup-eth/ifdown-eth patches

Description of problem:
Hi,
dhclient-4.1.0 does not support infiniband hardware so I wanted to switch to another dhcp client. In fact, dhcpcd supports this hardware.
I started to build a package for dhcpcd. But here is the issue :
 It seems that /etc/sysconfig/network-scripts/{ifup,ifdown}-eth doesn't manage any other client than dhclient.

Version-Release number of selected component (if applicable):
initscripts-8.95.1-1.x84_64

How reproducible:
Trying to use another dhcp client.

Steps to Reproduce:
1. Install another dhcp client
2. Try to use it with ifup/ifdown
  
Actual results:
Doesn't work until rewriting all /etc/sysconfig/network-scripts/{ifup,down}-eth, so this file will conflict with any other package providing a dhcp client.

Expected results:
Only provide a script which will manage the installed client.

Additional info:
I send you patches to be able to use any other dhcp client inside the startup scripts ifup-eth.

What provides thoses patches :
- Split ifup-eth in ifup-eth and ifup-dhclient
- New option in ifcfg-${DEVICE}
  * DHCP_CLIENT : name of the dhcp client

How it works :
- if DHCP_CLIENT is specified, and /etc/sysconfig/network-scripts/ifup-${DHCLIENT} is runnable, launch it with ${DEVICE} as parameter
- else run etc/sysconfig/network-scripts/ifup-dhclient ${DEVICE}

I don't know if this is the good way to report this issue, if I'm wrong, let me know.

Regards,

Aurelien
Comment 1 Bill Nottingham 2010-01-12 11:42:14 EST
The far far simpler solution would be to make dhclient work on infiniband hardware. Assigning there.
Comment 2 Aurélien Cedeyn 2010-01-13 05:05:33 EST
Yes, you're right, but patching dhclient is not so easy.
I used dhclient but the patching method provided by ofed is not working anymore for dhclient-4.1.0. That's why I wanted to use a infiniband compliant client.
Comment 3 Aurélien Cedeyn 2010-01-14 04:20:10 EST
I don't know if isc dhcp wants to support infiniband devices, so I think that what I proposed the src.rpm attached before does not change the default behaviour of the current initscripts and could help if the redhat community wants one day offer multiple dhcp client.
So please just look what changes in the patch that I sent and give me feedback.
The initscripts modification is not so hard and could give a new functionality.
Comment 4 Bill Nottingham 2010-01-14 11:07:45 EST
Supporting random different clients with disparate features is a good way to cause weird bugs that only happen with one or the other, and it's done in such a way that you're asking the users often for information that they don't necessarily know. Then you get in the question of do you install all clients just so it's there in case someone hits the one usage case that's only supported by one client, etc.
Comment 5 Aurélien Cedeyn 2010-01-15 05:04:52 EST
I do not ask to support random dhcp client, I just say that with a few changes in the initscripts, advanced users, by changing their /etc/sysconfig/network-scripts/ifcfg-${DEVICE} by hand and by installing a new dhcp client (of course), will be able to change the default dhcp client.

For a standard user which didn't change anything by hand, nothing will change.

My changes did not modify the default behaviour :
If there is no specified option, the default behaviour is kept (using dhclient) even if another dhcp client is installed.

With this, you just have to support dhclient and you will provide a clean way to manage the dynamic IP allocation.
Comment 6 Aurélien Cedeyn 2010-01-15 05:07:21 EST
Created attachment 384554 [details]
configuration with other dhcp client (dhcpcd)
Comment 7 Aurélien Cedeyn 2010-01-15 05:08:21 EST
Created attachment 384556 [details]
configuration with dhclient (no changes)
Comment 8 Bill Nottingham 2010-01-15 13:36:18 EST
This can be accomplished with no initscripts changes (AFAICT) by writing your own 'ifup-dhcpcd' and adding DEVICETYPE=dhcpcd to your ifcfg file.
Comment 9 Aurélien Cedeyn 2010-01-18 03:55:41 EST
Indeed, but DEVICETYPE=dhcpcd goes against the global meaning of this variable.
That's why I think that it would be better to split the dhcp management inside the ifup-eth script into two scripts.

Maybe if{up,down}-dhclient are not a good filenames, {start,stop}-dhclient would be better to respect the meaning of ifup-* scripts.

Another point is that if I copy/paste the ifup-eth in ifup-dhcpcd and modify what I need to manage dhcpcd, when ifup-eth will change, I will need to follow these changes and merge it inside this script (ifup-eth doesn't only dhcp requests, it also manages bridges and more)... The work will be done twice.
Comment 10 Bill Nottingham 2010-01-18 12:35:14 EST
The point is... supporting multiple DHCP clients in the main scripts is a fool's errand - you then have to manage the complexities of all of them, for a much higher engineering cost than just fixing the deficiencies of one. For example, what happens when you want to do DHCPv6 over IB?

(See https://www.redhat.com/archives/fedora-devel-list/2008-January/msg00861.html for more discussion of this.)

The DEVICETYPE=dhcpcd is meant as a band-aid that you can use while dhclient is getting fixed.
Comment 11 Aurélien Cedeyn 2010-01-19 06:00:31 EST
> The point is... supporting multiple DHCP clients in the main scripts is a
> fool's errand

Again : I do not ask to support multiple dhcp client in the initscripts. I just ask to split the big ifup-eth into ifup-eth (containing what depends on all eth setup except the dhcp allocation) and {ifup/start}-dhclient (containing what manages the dhcp part). There is no other cost but to package 2 more file...

> what happens when you want to do DHCPv6 over IB?
I don't get this point... On your side, nothing has to be done.
On the current script, dhclient AND dhcp6c will be launched. I don't know if dhcp6c supports IB hardware, but if I want to use dhcpcd and dhcp6c, it will be possible without any modification in the ifup-eth script.

If dhcp6c doesn't support IB but another one does, with this patch I will be able to switch to another dhcp6 client without modifying ifup-eth... And without bothering you...
Comment 12 Bug Zapper 2010-04-28 07:42:10 EDT
This message is a reminder that Fedora 11 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 11.  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 WONTFIX if it remains open with a Fedora 
'version' of '11'.

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 prior to Fedora 11's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 11 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 please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

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.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping
Comment 13 Bug Zapper 2010-06-28 11:37:03 EDT
Fedora 11 changed to end-of-life (EOL) status on 2010-06-25. Fedora 11 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.

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