Skip to content

dhclient – Linux / Unix-opdracht

23 de juni de 2021
GettyImages 1161410949 41cc4b7c975f456ab94341997a875a81

De Internet Software Consortium DHCP Client, dhclient, biedt een middel voor het configureren van een of meer netwerkinterfaces met behulp van het Dynamic Host Configuration Protocol, het BOOTP-protocol, of, als deze protocollen falen, door statisch een adres toe te wijzen.

Operatie

Met het DHCP-protocol kan een host contact opnemen met een centrale server die een lijst bijhoudt van IP-adressen die aan een of meer subnetten kunnen worden toegewezen. Een DHCP-client kan een adres opvragen bij deze pool en dit vervolgens tijdelijk gebruiken voor communicatie op een netwerk. Het DHCP-protocol biedt ook een mechanisme waarmee een client belangrijke details kan leren over het netwerk waarop het is aangesloten, zoals de locatie van een standaardrouter, de locatie van een naamserver, enzovoort. Bij het opstarten leest dhclient de dhclient.conf voor configuratie-instructies. Vervolgens krijgt het een lijst met alle netwerkinterfaces die in het huidige systeem zijn geconfigureerd. Voor elke interface probeert het de interface te configureren met behulp van het DHCP-protocol. Om leases bij te houden tijdens het opnieuw opstarten van het systeem en het opnieuw opstarten van de server, houdt dhclient een lijst bij van leases die zijn toegewezen in het bestand dhclient.leases. Bij het opstarten, na het lezen van het bestand dhclient.conf, leest dhclient het bestand dhclient.leases om zijn geheugen te vernieuwen over de leases die eraan zijn toegewezen. Wanneer een nieuwe lease wordt verkregen, wordt deze toegevoegd aan het einde van het bestand dhclient.leases. Om te voorkomen dat het bestand willekeurig groot wordt, maakt dhclient van tijd tot tijd een nieuw dhclient.lease-bestand aan vanuit zijn in-core leasedatabase. De oude versie van het bestand dhclient.leases blijft behouden onder de naam dhclient.leases~ tot de volgende keer dat dhclient de database herschrijft. Oude leases worden bewaard voor het geval de DHCP-server niet beschikbaar is wanneer dhclient voor het eerst wordt aangeroepen (meestal tijdens het initiële opstartproces van het systeem). In dat geval worden oude leases uit het bestand dhclient.leases die nog niet zijn verlopen getest, en als wordt vastgesteld dat ze geldig zijn, worden ze gebruikt totdat ze verlopen of de DHCP-server beschikbaar komt. Een mobiele host die soms toegang nodig heeft tot een netwerk waarop geen DHCP-server bestaat, kan vooraf zijn geladen met een lease voor een vast adres op dat netwerk. Wanneer alle pogingen om contact te maken met een DHCP-server zijn mislukt, zal dhclient proberen de statische lease te valideren, en als het lukt, zal dhclient die lease gebruiken totdat deze opnieuw wordt opgestart. Een mobiele host kan ook naar sommige netwerken reizen waarop DHCP niet beschikbaar is, maar BOOTP wel. In dat geval kan het voordelig zijn om met de netwerkbeheerder een vermelding in de BOOTP-database te regelen, zodat de host snel kan opstarten op dat netwerk in plaats van door de lijst met oude leases te bladeren.

Korte inhoud

dhclient-p port ] [ -d ] [ -q ] [ -1 ] [ -r ] [ -lf lease-file ] [ -pf pid-file ] [ -cf config-file ] [ -sfscript-file ] [ -s server ] [ -g relay ] [ -n ] [ -nw ] [ -w ] [ if0 [ …ifN ] ]

Opdrachtregel

De namen van de netwerkinterfaces die dhclient moet proberen te configureren, kunnen op de opdrachtregel worden opgegeven. Als er geen interfacenamen zijn opgegeven op de opdrachtregel, identificeert dhclient normaal alle netwerkinterfaces, waarbij niet-uitgezonden interfaces indien mogelijk worden geëlimineerd, en probeert elke interface te configureren. Het is ook mogelijk om interfaces op naam te specificeren in de dhclient.conf het dossier. Als interfaces op deze manier zijn gespecificeerd, zal de client alleen interfaces configureren die ofwel zijn gespecificeerd in het configuratiebestand of op de opdrachtregel, en alle andere interfaces negeren. Als de DHCP-client zou moeten luisteren en verzenden op een andere poort dan de standaard (poort 68), zal de -pvlag mag worden gebruikt. Het moet worden gevolgd door het udp-poortnummer dat dhclient moet gebruiken. Dit is vooral handig voor foutopsporingsdoeleinden. Als er een andere poort is gespecificeerd voor de client om op te luisteren en door te zenden, zal de client ook een andere bestemmingspoort gebruiken – één groter dan de gespecificeerde bestemmingspoort. De DHCP-client verzendt normaal gesproken alle protocolberichten die hij verzendt voordat hij een IP-adres verkrijgt naar, 255.255.255.255, het IP-beperkte broadcast-adres. Voor het opsporen van fouten kan het handig zijn om de server deze berichten naar een ander adres te laten verzenden. Dit kan worden gespecificeerd met de -s vlag, gevolgd door het IP-adres of de domeinnaam van de bestemming. Voor testdoeleinden kan het giaddr-veld van alle pakketten die de client verzendt, worden ingesteld met behulp van de -g vlag, gevolgd door het te verzenden IP-adres. Dit is alleen nuttig om te testen en er mag niet worden verwacht dat het op een consistente of nuttige manier werkt. De DHCP-client wordt normaal gesproken op de voorgrond uitgevoerd totdat deze een interface heeft geconfigureerd en keert vervolgens terug naar de achtergrond. Om dhclient te forceren om altijd als een voorgrondproces te draaien, is de -d vlag moet worden opgegeven. Dit is handig bij het uitvoeren van de client onder een debugger, of bij het uitvoeren van inittab op System V-systemen. De client drukt normaal gesproken een opstartbericht af en geeft de protocolvolgorde weer aan de standaardfoutdescriptor totdat het een adres heeft gekregen, en logt vervolgens alleen berichten met behulp van de syslog faciliteit. De -q flag voorkomt dat andere berichten dan fouten worden afgedrukt naar de standaardfoutdescriptor. De client geeft normaal gesproken de huidige lease niet vrij omdat dit niet vereist is door het DHCP-protocol. Sommige kabel-ISP’s eisen van hun klanten dat ze de server op de hoogte stellen als ze een toegewezen IP-adres willen vrijgeven. De -r flag geeft expliciet de huidige lease vrij en zodra de lease is vrijgegeven, verlaat de klant. De -1 vlag veroorzaken dat dhclient één keer probeert om een ​​lease te krijgen. Als het mislukt, sluit dhclient af met afsluitcode twee. De DHCP-client krijgt normaal gesproken zijn configuratie-informatie van: /etc/dhclient.conf, zijn lease-database van /var/lib/dhcp/dhclient.leases, slaat zijn proces-ID op in een bestand met de naam/var/run/dhclient.pid, en configureert de netwerkinterface met behulp van /sbin/dhclient-script Om verschillende namen en/of locaties voor deze bestanden op te geven, gebruikt u de – zie, -Als, -pf en -sf vlaggen, respectievelijk gevolgd door de naam van het bestand. Dit kan met name handig zijn als bijv./var/lib/dhcp of /var/run is nog niet gemount wanneer de DHCP-client wordt gestart. De DHCP-client wordt normaal gesproken afgesloten als hij geen netwerkinterfaces kan identificeren om te configureren. Op laptops en andere computers met hot-swappable I/O-bussen is het mogelijk dat er een broadcast-interface wordt toegevoegd na het opstarten van het systeem. De -w flag kan worden gebruikt om ervoor te zorgen dat de client niet afsluit wanneer hij dergelijke interfaces niet vindt. De omshell (8) programma kan vervolgens worden gebruikt om de client op de hoogte te stellen wanneer een netwerkinterface is toegevoegd of verwijderd, zodat de client kan proberen een IP-adres op die interface te configureren. De DHCP-client kan worden gevraagd om geen interfaces te configureren met behulp van de -n vlag. Dit is waarschijnlijk nuttig in combinatie met de -w vlag. De client kan ook worden geïnstrueerd om onmiddellijk een daemon te worden, in plaats van te wachten tot hij een IP-adres heeft verkregen. Dit kan door het aanleveren van -nw vlag.

Configuratie

De syntaxis van het bestand dhclient.conf(8) wordt apart besproken.

OMAP

De DHCP-client biedt enige mogelijkheid om het te besturen terwijl het wordt uitgevoerd, zonder het te stoppen. Deze mogelijkheid wordt geboden met behulp van OMAPI, een API voor het manipuleren van objecten op afstand. OMAPI-clients maken verbinding met de client via TCP/IP, verifiëren en kunnen vervolgens de huidige status van de client onderzoeken en wijzigingen aanbrengen. In plaats van het onderliggende OMAPI-protocol rechtstreeks te implementeren, moeten gebruikersprogramma’s de dhcpctl-API of OMAPI zelf gebruiken. Dhcpctl is een wikkel die een aantal huishoudelijke taken afhandelt die MAPI niet automatisch doet. Dhcpctl en OMAPI zijn gedocumenteerd in dhcpctl enomapi. De meeste dingen die u met de klant wilt doen, kunnen rechtstreeks worden gedaan met deomshell commando, in plaats van een speciaal programma te moeten schrijven.

Het besturingsobject

Met het control-object kunt u de client afsluiten, alle leases vrijgeven die deze bevat en eventuele toegevoegde DNS-records verwijderen. Het stelt u ook in staat om de client te pauzeren – hierdoor worden alle interfaces die de client gebruikt ongedaan gemaakt. U kunt het dan opnieuw opstarten, waardoor het die interfaces opnieuw configureert. Normaal gesproken pauzeert u de client voordat u in de slaapstand gaat of op een laptop gaat slapen. Je zou het dan hervatten nadat de stroom terug is. Hierdoor kunnen pc-kaarten worden afgesloten terwijl de computer in de slaap- of slaapstand staat en vervolgens opnieuw worden geïnitialiseerd naar hun vorige status zodra de computer uit de slaapstand of de slaapstand komt. Het besturingsobject heeft één attribuut: het state-attribuut. Om de client af te sluiten, stelt u het state-attribuut in op 2. Het zal automatisch een DHCPRELEASE uitvoeren. Om het te pauzeren, stelt u het state-attribuut in op 3. Om het te hervatten, stelt u het state-attribuut in op 4. Gebruik de Mens commando (% Mens) om te zien hoe een opdracht op uw specifieke computer wordt gebruikt.