Wie kann ich eine IP nach MAC-Adresse in dhcpd zuweisen?


9

Wie kann ich mit dhcpd eine IP-Adresse für eine Mac-Adresse zuweisen?

Bisher habe ich es versucht

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

in meiner dhcpd.conf. Aber nach dem Neustart von dhcpd und dem Computer mit der fraglichen Mac-Adresse erhalte ich einfach wieder eine zufällige IP.

Antworten:


7

Das ist ein vollkommen feines Format - ich benutze genau das gleiche. Nur ich füge einen Kommentar am Ende der Zeile hinzu (zusätzlich). Dies ist ein Auszug aus der Arbeit dhcpd.conf:

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

Wie @Christoph erwähnt, ist möglicherweise eine globale Option deklariert (oder es werden Dienststandards verwendet), die sich auf die Art und Weise auswirken können, wie IPs zugewiesen werden oder diese überschreiben.

Während der Migration von dhcp3-server (v3) zu isc-dhcp-server (v4) musste ich einige obligatorische Optionen hinzufügen und einige Deklarationen neu schreiben. Die Struktur der Konfigurationsdatei blieb jedoch einfach:

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

Dort habe ich keine pool, keine rangeErklärungen verwendet. Es gibt nur zwei Subnetzdeklarationen (eine gefolgt von einer anderen).

Dort wurden meinen Hosts keine zufälligen IPs zugewiesen, die hier deklariert sind (an MACs gebunden).


Kann ich einen Host ohne Subnetz verwenden? Ich muss die Übertragung so einstellen, dass sie mit der IP selbst übereinstimmt. Außerdem muss ich die Netzmaske so einstellen, dass sie stimmt 255.255.255.255. Ich muss noch etwas post-up route addund pre-down route delarbeiten. Kann oder soll ich das alles hier machen?
Qian Chen

@ElgsQianChen: Ich denke, das hat nichts mit dem Thema zu tun.
Saulius2

2

Es gibt keine explizite Erwähnung in der dhcpd.confManpage (und ich kann es jetzt nicht versuchen), aber ich habe immer angenommen, dass nur eine Anweisung pro Zeile zulässig ist.

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

2

Ich kenne Ihre dhcpd.conf nicht, aber wenn Sie eine allow unknown-clientsAnweisung haben, sollten Sie hinzufügen allow known-clients.

Wenn ich mich richtig erinnere, sollte die feste IP nicht innerhalb des Bereichs liegen, den Ihr DHCP-Server an Clients verteilt.

Wenn der Host eine alte Adresse vom selben DHCP-Server hat, kann der Server die alte Lease ausgeben, solange sie gültig ist, dh die Lease-Zeit nicht abgelaufen ist.

Es wäre hilfreich, wenn Sie mehr von Ihrer Konfiguration bereitstellen könnten.


Eigentlich halte ich es für richtig, Sie erstellen Gruppen oder Unterklassen benannter Clients auf Hardware-IDs und geben ihnen dann einen verweigerten unbekannten Adresspool (und einen separaten Adresspool, um unbekannt zuzulassen, falls gewünscht.
quadruplebucky

-3

Sie haben zu viele Doppelpunkte:

Von der manc-Seite dhcpd.conf:

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

2
Dadurch wird auch diese feste IP-Deklaration abgeschnitten, sodass die Frage des OP nicht beantwortet wird.
Magellan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.