Назад | Перейти на главную страницу

Как я могу назначить IP по MAC-адресу в dhcpd

Как мне назначить IP-адрес, специфичный для MAC-адреса, с помощью dhcpd?

Пока я пробовал

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

в моем dhcpd.conf. Но после перезапуска dhcpd и машины с рассматриваемым MAC-адресом я снова получаю случайный IP-адрес.

Это идеальный формат - я использую точно такой же. Только я добавляю комментарий в конце строки (дополнительно). Это отрывок из работы dhcpd.conf:

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

Как упоминает @Christoph, может быть объявлен глобальный параметр (или используются настройки службы по умолчанию), которые могут повлиять на способ назначения IP-адресов / могут переопределить его.

При переходе с dhcp3-сервер (v3) в isc-dhcp-сервер (v4) Мне нужно было добавить несколько обязательных опций и переписать некоторые объявления. Но структура конфигурационного файла осталась простой:

#
# 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
  }
 }
}

Там я не использовал pool, нет range декларации. Есть только два объявления подсети (одно за другим).

Там я не получил случайных IP-адресов, назначенных моим хостам, которые здесь объявлены (привязаны к MAC).

Нигде в dhcpd.conf man-страницу (и сейчас я не могу ее попробовать), но я всегда предполагал, что в каждой строке допускается только один оператор.

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

Я не знаю ваш dhcpd.conf, но если у вас allow unknown-clients заявление, вы должны добавить allow known-clients.

Если я правильно помню, фиксированный IP-адрес не должен входить в диапазон, который DHCP-сервер передает клиентам.

Когда у хоста есть старый адрес от того же DHCP-сервера, сервер может выдать старую аренду, пока она действительна, то есть время аренды не истекло.

Было бы полезно, если бы вы могли предоставить больше своего config.

У вас слишком много двоеточий:

На странице руководства dhcpd.conf:

         host ncd1 { hardware ethernet 0:c0:c3:49:2b:57; }