Como atribuir um endereço IP por MAC no dhcpd

10

Como atribuir um endereço IP específico a um endereço mac usando dhcpd?

Até agora eu tentei

host blah { hardware ethernet <mac address>; fixed-address <ip address>;}

no meu dhcpd.conf. Mas depois de reiniciar o dhcpd e a máquina com o endereço mac em questão, recebo novamente um IP aleatório.

adampolar
fonte

Respostas:

8

Este é um formato perfeitamente fino - eu uso exatamente o mesmo. Apenas anexo um comentário no final da linha (além). Este é um trecho do trabalho dhcpd.conf:

host wrt45gl-etika  { hardware ethernet 00:21:29:a1:c3:a1; fixed-address ---.219.43.135; } # MSIE routeris WRT54GL

Como o @Christoph menciona, pode haver uma opção global declarada (ou padrões de serviço usados) que podem afetar a maneira como os IPs são atribuídos / podem substituí-los.

Ao migrar do dhcp3-server (v3) para o isc-dhcp-server (v4), precisei adicionar algumas opções obrigatórias e reescrever algumas declarações. Mas a estrutura do arquivo de configuração permaneceu simples:

#
# Sample configuration file for ISC dhcpd for Debian
#

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)

ddns-update-style none;

# option definitions common to all supported networks...

option domain-name "mf.vu.---";
option domain-name-servers ---.219.80.11, ---.219.80.2, ---.171.22.22;

default-lease-time 2678400;
max-lease-time 2678400;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.

authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).

log-facility local7;


# The subnet that shares this physical network

shared-network TOTAL_MF {
 server-name "letta.mf.vu.--";

 subnet ---.219.43.128 netmask 255.255.255.192 {
  option routers ---.219.43.190;
  option broadcast-address ---.219.43.191;

  group {
    host wrt45gl-etika  { hardware ethernet 00:21:29:a1:c3:a1; fixed-address ---.219.43.135; } # MSIE routeris WRT54GL
    # ...
    host saulute        { hardware ethernet 00:21:28:10:f4:16; fixed-address ---.219.43.189;  } # Virtual Qemu PC NIC
  }
 }

 subnet 172.16.43.128 netmask 255.255.255.192 {
  option routers 172.16.43.129;
  option broadcast-address 172.16.43.191;

  group{
    host ligo           { hardware ethernet 08:00:20:7A:E2:70; fixed-address 172.16.43.179;   } #a225 ligo
    # ...
    host vumfsa2        { hardware ethernet 00:80:48:8d:12:f0; fixed-address 172.16.43.140;   } # 118
  }
 }
}

Lá eu não usei pool, nenhuma rangedeclaração. Existem apenas duas declarações de sub-rede (uma seguida pela outra).

Não tenho IPs aleatórios atribuídos aos meus hosts que são declarados aqui (vinculados aos MACs).

saulius2
fonte
Posso usar host sem sub-rede? Eu preciso definir a transmissão para ser o mesmo que o próprio IP, também eu preciso definir a máscara de rede para ser 255.255.255.255. Eu ainda preciso de alguns post-up route adde pre-down route deltrabalho. Posso ou devo fazer tudo isso aqui?
Qian Chen
@ElgsQianChen: Eu acho que isso não está relacionado ao tópico.
Saulius2
2

Não há menção explícita em nenhum lugar da dhcpd.confpágina do manual (e não posso tentar agora), mas sempre presumi que apenas uma instrução é permitida por linha.

host blah { 
    hardware ethernet <mac address>; 
    fixed-address <ip address>;
}
Sven
fonte
2

Eu não conheço o seu dhcpd.conf, mas se você tiver uma allow unknown-clientsdeclaração, você deve adicionar allow known-clients.

Se bem me lembro, o IP fixo não deve estar dentro do intervalo que o servidor DHCP entrega aos clientes.

Quando o host possui um endereço antigo do mesmo servidor DHCP, o servidor pode distribuir a concessão antiga enquanto for válida, ou seja, o tempo de concessão não expirou.

Ajudaria, se você pudesse fornecer mais de sua configuração.

Christoph
fonte
Na verdade, eu acho que está correto, você cria grupos ou subclasses de clientes nomeados em identificadores de hardware e, em seguida, fornece a eles um pool de endereços negar desconhecido (e um pool de endereços separado para permitir desconhecido, se desejado.
quadruplebucky
-3

Você tem muitos dois pontos lá:

Na página do manual dhcpd.conf:

         host ncd1 { hardware ethernet 0:c0:c3:49:2b:57; }
quadruplebucky
fonte
2
Isso também trunca essa declaração IP fixa, portanto, na verdade, não responde à pergunta do OP.
Magellan