Skip to content

dhclient – Comando Linux / Unix

16 de abril de 2021

Neste artigo

O cliente DHCP do Internet Software Consortium, dhclient, fornece um meio para configurar uma ou mais interfaces de rede usando o protocolo de configuração dinâmica de hosts, protocolo BOOTP ou, se esses protocolos falharem, atribuindo um endereço estaticamente.

Hispanolistic / Getty Images

Operação

O protocolo DHCP permite que um host entre em contato com um servidor central que mantém uma lista de endereços IP que podem ser atribuídos em uma ou mais sub-redes. Um cliente DHCP pode solicitar um endereço desse pool e, em seguida, usá-lo temporariamente para comunicação em uma rede. O protocolo DHCP também fornece um mecanismo pelo qual um cliente pode aprender detalhes importantes sobre a rede à qual está conectado, como a localização de um roteador padrão, a localização de um servidor de nomes e assim por diante. Na inicialização, o dhclient lê o dhclient.conf para obter instruções de configuração. Em seguida, obtém uma lista de todas as interfaces de rede configuradas no sistema atual. Para cada interface, ele tenta configurar a interface usando o protocolo DHCP. Para controlar as concessões durante as reinicializações do sistema e reinicializações do servidor, o dhclient mantém uma lista das concessões atribuídas no arquivo dhclient.leases. Na inicialização, depois de ler o arquivo dhclient.conf, o dhclient lê o arquivo dhclient.leases para atualizar sua memória sobre quais concessões foram atribuídas. Quando uma nova concessão é adquirida, ela é anexada ao final do arquivo dhclient.leases. Para evitar que o arquivo se torne arbitrariamente grande, de vez em quando o dhclient cria um novo arquivo dhclient.leases a partir de seu banco de dados de aluguel interno. A versão antiga do arquivo dhclient.leases é mantida com o nome dhclient.leases ~ até a próxima vez que o dhclient regravar o banco de dados. Concessões antigas são mantidas caso o servidor DHCP não esteja disponível quando dhclient é chamado pela primeira vez (geralmente durante o processo inicial de inicialização do sistema). Nesse caso, concessões antigas do arquivo dhclient.leases que ainda não expiraram são testadas e, se forem consideradas válidas, serão usadas até que expirem ou que o servidor DHCP se torne disponível. Um host móvel que às vezes pode precisar acessar uma rede na qual não existe um servidor DHCP pode ser pré-carregado com uma concessão de um endereço fixo nessa rede. Quando todas as tentativas de contatar um servidor DHCP falharem, o dhclient tentará validar a concessão estática e, se tiver êxito, usará essa concessão até que seja reiniciada. Um host móvel também pode viajar para algumas redes nas quais o DHCP não está disponível, mas o BOOTP está. Nesse caso, pode ser vantajoso combinar com o administrador da rede uma entrada no banco de dados BOOTP, para que o host possa inicializar rapidamente nessa rede, em vez de percorrer a lista de concessões antigas.

Sinopse

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 ] ]

Linha de comando

Os nomes das interfaces de rede que o dhclient deve tentar configurar podem ser especificados na linha de comando. Se nenhum nome de interface for especificado na linha de comando, o dhclient normalmente identificará todas as interfaces de rede, eliminando as interfaces de não transmissão se possível, e tentará configurar cada interface. Também é possível especificar interfaces por nome no dhclient.conf Arquivo. Se as interfaces forem especificadas dessa maneira, o cliente configurará apenas as interfaces especificadas no arquivo de configuração ou na linha de comando e ignorará todas as outras interfaces. Se o cliente DHCP deve ouvir e transmitir em uma porta diferente do padrão (porta 68), o -pbandeira pode ser usada. Deve ser seguido pelo número da porta udp que o dhclient deve usar. Isso é útil principalmente para fins de depuração. Se uma porta diferente for especificada para o cliente escutar e transmitir, o cliente também usará uma porta de destino diferente – uma maior do que a porta de destino especificada. O cliente DHCP normalmente transmite quaisquer mensagens de protocolo que ele envia antes de adquirir um endereço IP para 255.255.255.255, o endereço de transmissão limitado de IP. Para fins de depuração, pode ser útil fazer com que o servidor transmita essas mensagens para algum outro endereço. Isso pode ser especificado com o -s sinalizador, seguido pelo endereço IP ou nome de domínio do destino. Para fins de teste, o campo giaddr de todos os pacotes que o cliente envia pode ser definido usando o -g sinalizador, seguido pelo endereço IP a ser enviado. Isso só é útil para teste e não deve funcionar de maneira consistente ou útil. O cliente DHCP normalmente será executado em primeiro plano até configurar uma interface e, em seguida, voltará a ser executado em segundo plano. Para forçar o dhclient a sempre ser executado como um processo em primeiro plano, o -d sinalizador deve ser especificado. Isso é útil ao executar o cliente em um depurador ou ao executá-lo fora do inittab em sistemas System V. O cliente normalmente imprime uma mensagem de inicialização e exibe a sequência do protocolo para o descritor de erro padrão até adquirir um endereço, e então apenas registra as mensagens usando o syslog instalação. O -q sinalizador evita que quaisquer mensagens diferentes de erros sejam impressas no descritor de erro padrão. O cliente normalmente não libera o aluguel atual, pois não é exigido pelo protocolo DHCP. Alguns ISPs a cabo exigem que seus clientes notifiquem o servidor se desejam liberar um endereço IP atribuído. O -r sinalizar explicitamente libera o aluguel atual e, uma vez que o aluguel foi liberado, o cliente sai. O -1 sinalizador faz com que dhclient tente uma vez obter um aluguel. Se falhar, o dhclient sai com o código de saída dois. O cliente DHCP normalmente obtém suas informações de configuração de /etc/dhclient.conf, seu banco de dados de aluguel de /var/lib/dhcp/dhclient.leases, armazena seu ID de processo em um arquivo chamado/var/run/dhclient.pid, e configura a interface de rede usando / sbin / dhclient-script Para especificar nomes e / ou locais diferentes para esses arquivos, use o -cf, -se, -pf e -sf sinalizadores, respectivamente, seguidos do nome do arquivo. Isso pode ser particularmente útil se, por exemplo,/ var / lib / dhcp ou / var / run ainda não foi montado quando o cliente DHCP é iniciado. O cliente DHCP normalmente sai se não for capaz de identificar nenhuma interface de rede para configurar. Em laptops e outros computadores com barramentos de E / S hot-swap, é possível que uma interface de transmissão seja adicionada após a inicialização do sistema. O -C O sinalizador pode ser usado para fazer com que o cliente não saia quando não encontrar nenhuma dessas interfaces. O omshell (8) O programa pode então ser usado para notificar o cliente quando uma interface de rede foi adicionada ou removida para que o cliente possa tentar configurar um endereço IP nessa interface. O cliente DHCP pode ser direcionado para não tentar configurar nenhuma interface usando o -n bandeira. É mais provável que seja útil em combinação com o -C bandeira. O cliente também pode ser instruído a se tornar um daemon imediatamente, em vez de esperar até adquirir um endereço IP. Isso pode ser feito fornecendo o -nw bandeira.

Configuração

A sintaxe do arquivo dhclient.conf (8) é discutida separadamente.

OMAPI

O cliente DHCP fornece alguma capacidade de controlá-lo durante a execução, sem interrompê-lo. Esse recurso é fornecido usando OMAPI, uma API para manipular objetos remotos. Os clientes OMAPI se conectam ao cliente usando TCP / IP, autenticam e podem então examinar o status atual do cliente e fazer alterações nele. Em vez de implementar o protocolo OMAPI subjacente diretamente, os programas do usuário devem usar a API dhcpctl ou a própria OMAPI. Dhcpctl é um wrapper que lida com algumas das tarefas de manutenção que o OMAPI não realiza automaticamente. Dhcpctl e OMAPI são documentados em dhcpctl eOmapi. A maioria das coisas que você deseja fazer com o cliente pode ser feita diretamente usando oomshell comando, em vez de ter que escrever um programa especial.

O objeto de controle

O objeto de controle permite desligar o cliente, liberando todas as concessões que ele mantém e excluindo quaisquer registros DNS que possa ter adicionado. Também permite pausar o cliente – desconfigura todas as interfaces que o cliente está usando. Você pode então reiniciá-lo, o que faz com que ele reconfigure essas interfaces. Você normalmente faria uma pausa no cliente antes de entrar em hibernação ou suspensão em um laptop. Você então o retomará depois que a energia voltar. Isso permite que as placas de PC sejam desligadas enquanto o computador está hibernando ou hibernando e, em seguida, reinicializado ao estado anterior assim que o computador sai da hibernação ou hibernação. O objeto de controle tem um atributo – o atributo de estado. Para desligar o cliente, defina seu atributo de estado para 2. Ele fará um DHCPRELEASE automaticamente. Para pausá-lo, defina seu atributo de estado como 3. Para retomá-lo, defina seu atributo de estado como 4. Use o homem comando (% homem) para ver como um comando é usado em seu computador específico.