Por que o dhclient não usa o IP estático que estou solicitando?

4

Aqui está meu /etc/dhcp3/dhclient.conf:

request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        netbios-name-servers, netbios-scope, interface-mtu;
timeout 60;
alias {
  interface "eth0";
  fixed-address 192.168.1.222;
}
lease {
  interface "eth0";
  fixed-address 192.168.1.222;
  option subnet-mask 255.255.255.0;
  option broadcast-address 255.255.255.255;
  option routers 192.168.1.254;
  option domain-name-servers 192.168.1.254;
}

Quando eu executo "dhclient eth0", eu entendo isso:

There is already a pid file /var/run/dhclient.pid with pid 6511
killed old client process, removed PID file
Internet Systems Consortium DHCP Client V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

wmaster0: unknown hardware address type 801
wmaster0: unknown hardware address type 801
Listening on LPF/eth0/00:1c:25:97:82:20
Sending on   LPF/eth0/00:1c:25:97:82:20
Sending on   Socket/fallback
DHCPREQUEST of 192.168.1.27 on eth0 to 255.255.255.255 port 67
DHCPACK of 192.168.1.27 from 192.168.1.254
bound to 192.168.1.27 -- renewal in 1468 seconds.

Eu usei strace para ter certeza de que o dhclient realmente está lendo esse arquivo conf. Por que não está prestando atenção à minha linha "endereço fixo 192.168.1.222"? Por que isso está fazendo um DHCPREQUEST para 192.168.1.27?

    
por mike 29.03.2010 / 18:52

3 respostas

7

Como Zoredache apontou corretamente: a configuração de endereço fixo é apenas para definições de concessão que são efetivas somente se o servidor DHCP não responder. Consulte o link na seção "Declarações de concessão".

O que você quer é

interface "eth0" {
    send dhcp-requested-address 192.168.1.222;
}

Isto está documentado no manpage das opções do dhcp: link e está de acordo com o RFC de Opções do DHCP disponível em link

Tome nota: Recentemente eu corri para o dhclient3 não obtendo um IP com esta configuração, pois o endereço solicitado já havia sido obtido. O servidor responde com DHCPNAK à solicitação e o cliente desistirá após algum tempo. Eu esperava que o cliente DHCP terminasse com outro endereço se o solicitado não estivesse disponível.

Eu usei essa abordagem na tentativa de ter certeza de que sempre sei o endereço do meu servidor sem recorrer a coisas como o dyndns.com e acabei sem conectividade.

    
por 19.04.2012 / 16:11
6

Rejeitar é rejeitar ofertas de servidores com um endereço específico. Não está lá para rejeitar os endereços que o servidor oferece.

The reject statement causes the DHCP client to reject offers from servers whose server identifier matches any of the specified hosts or subnets. This can be used to avoid being configured by rogue or mis‐ configured dhcp servers,

Uma concessão definida é usada apenas se o servidor DHCP não responder.

lease { lease-declaration [ ... lease-declaration ] }

The DHCP client may decide after some period of time (see PROTOCOL TIMING) that it is not going to succeed in contacting a server.

Se você quiser um endereço específico, provavelmente deverá configurar uma reserva no servidor.

    
por 29.03.2010 / 19:03
0

Você realmente verificou se está acessível através do seu ip especificado (em 2010, eu sei ...)?

Eu cometi esse erro agora mesmo.

Sua saída do dhclient é esperada mesmo que você tenha

alias{
  fixed-address

Isso é porque isso é um alias , como em um endereço IP adicional dessa interface; a interface também recebe o ip do dhcp.

Em relação ao lease os outros estão corretos, basicamente ele é ignorado, a menos que o dhcp falhe.

    
por 06.09.2016 / 18:16

Tags