So, ich habe noch ein wenig bezüglich dhclient geforscht.
Der dhclient scheint folgendes zu tun (was im Grunde auch logisch ist):
1. IP-Adresse per DHCP vom Server / Router holen
2. IP-Adresse per ifconfig an das Interface übergeben (hier eth1)
3. Bleibe aktiv auf Port 68 und erneuere in regelmässigen Abständen
Für das Öffnen des LIstening-Ports braucht es wohl root-rechte, den Problem mit ifconfig (braucht auch root-Rechte) könnte man per S-Bit lösen.
root@debian6:/sbin# dhclient -4 -p 50021 -v eth1
binding to user-specified port 50021
Internet Systems Consortium DHCP Client 4.1.1-P1
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit
https://www.isc.org/software/dhcp/
Listening on LPF/eth1/d0:50:99:47:43:e4
Sending on LPF/eth1/d0:50:99:47:43:e4
Sending on Socket/fallback
DHCPREQUEST on eth1 to 255.255.255.255 port 50020
DHCPREQUEST on eth1 to 255.255.255.255 port 50020
DHCPDISCOVER on eth1 to 255.255.255.255 port 50020 interval 7
DHCPDISCOVER on eth1 to 255.255.255.255 port 50020 interval 7
DHCPDISCOVER on eth1 to 255.255.255.255 port 50020 interval 21
Dazu meine Meinung:
1. Für einen reinen Client-Betrieb müsste dhclient nicht ständig auf einem Port "lauschen". Das ist leider nicht konfigurierbar. Der dhclient könnte auch ohne "Listening-Port" in regelmässigen Abständen die IPs erneuern bzw. der/die/das "Lease" erneuern.
2. Streng genommen müsste in einem kleinen privaten Netzwerk überhaupt keine Erneuerung der DHCP-Adressen / Leases stattfinden, das könnte bei Desktop-Rechnern von Zeit-zu-Zeit per Reboot geschehen. Das Programm dhclient müsste also gar nicht dauerhaft aktiv sein.
3. Verfolgt man Punkt 2 weiter und beendet dhclient per "kill", so beendet sich dhclient normal und löscht dabei leider die IP-Adressen auf der Netzwerkkarte
4. Abhilfe für Punkt 3 schafft ein "kill -9" - dhclient wird "hart" beendet und die IP-Adresse bleibt auf der Netzwerkkarte stehen.
Kritik an Debian bzw. den Entwicklern von dhclient:
- dhclient öffnet einen Listening-Port, obwohl das technisch in den meisten Szenarien nicht notwendig ist. Kein Parameter dokumentiert / vorhanden
- dhclient benötigt zum Öffnen des Listening-Ports anscheinend zwangsweise root-rechte. Das kann ein Sicherheitsproblem darstellen (Problem gab es bereits in der Vergangenheit)
- dhclient bleibt aktiv und läuft im Hintergrund, obwohl dies meist nicht erforderlich ist.
Lösungsansatz:
Script suchen / entwickeln, dass die PID von dhclient ermittelt, dann nach boot per Aufruf in rc.local per "kill -9" beenden.