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

10

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

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

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

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

adampolar
источник

Ответы:

8

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

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

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

При переходе с dhcp3-server (v3) на isc-dhcp-server (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).

saulius2
источник
Могу ли я использовать хост без подсети? Мне нужно настроить трансляцию так же, как сам IP, также мне нужно установить маску сети 255.255.255.255. Мне еще нужно немного post-up route addи pre-down route delпоработать. Могу ли я или я должен сделать все это здесь?
Цянь Чен
@ElgsQianChen: я думаю, что это не относится к теме.
saulius2
@QianChen, вам удалось назначить IP с подсетью = 255.255.255.255?
saulius2
2

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

host blah { 
    hardware ethernet <mac address>; 
    fixed-address <ip address>;
}
Свен
источник
2

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

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

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

Это помогло бы, если бы вы могли предоставить больше вашей конфигурации.

Christoph
источник
На самом деле, я думаю, что это правильно, вы создаете группы или подклассы именованных клиентов по аппаратным идентификаторам, а затем даете им запрещающий неизвестный пул адресов (и отдельный адресный пул для разрешения неизвестно, если это необходимо.
quadruplebucky
-3

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

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

         host ncd1 { hardware ethernet 0:c0:c3:49:2b:57; }
quadruplebucky
источник
2
Это также усекает эту фиксированную декларацию IP, так что это фактически не отвечает на вопрос OP.
Магеллан