dhcp-client send dhcp-client-identifier

Hallo, ich suche eine Lösung für “Eindeutige Identifikation von opensuse / SLES Clients an einem Windows DHCP-Server mittels MAC-Adresse”. SLES identifiziert sich mittels einer sehr langen ID, z.B. 737573657365727665723031. Windows DHCP-Server akzeptiert für manuell anzulegende Reservierungen nur MAC-Adressen (aabbccddeeff) und ich versuche SLES beizubringen, die MAC-Adresse als Identifier zu senden. Das funktioniert z.B. bei Debian oder Ubuntu mittels /etc/dhcp/dhclient.conf und send dhcp-client-identifier aa:bb:cc:dd:ee:ff; bzw. /etc/netplan/00-installer-config.yaml und dhcp-identifier: mac einwandfrei. Die Einstellung von /etc/sysconfig/network/ifcfg-eth0
LLaddr=‘00:15:5d:02:1c:06’ und / oder HWaddr=‘00:15:5d:02:1c:06’ greifen bisher nicht. Wo und wie kann bei SLES die Einstellung aktiviert werden? Danke für alle Tipps.

Ist das jetzt eine SLES oder eine openSUSE Frage?
(Für das Zweite bist du hier richtig).

Aktuell ist es openSuse LEAP 15.3. Ich bin am Lernen und werde auch noch SLES bzw. andere Derivate kennenlernen

Dann bitte mal beschreiben was du bei openSUSE (übrigens die einzige richtige Schreibweise) siehst, nicht findest, haben möchtest, usw., so das Leute nicht von SLES Verweisungen verwirrt werden.

Bedenke bitte dabei das die Meisten hier nicht nur nie etwas mit SLES/SLED zu tun hatten, sondern oft auch nicht mit andere Linux Arten, um von Windows nur zu schweigen. :wink:

Ich bin Linux-Wiedereinsteiger (so ca. 16 Jahre ist es her) und habe mit folgender Eigenart zu kämpfen.

Umgebung

  •   Windows Server 2019 AD / DNS- / DHCP- / Hyper-V-Server 
    
  •   3x VM openSUSE LEAP 15.3
    
  •   3x VM Debian 11.x
    
  •   3x VM Ubuntu 20.x
    

Gegebenheiten

  •   alle openSUSE VMs sind Domain-Mitglied
    
  •   alle openSUSE NICs sind auf DHCP eingestellt
    
  •   bei einer openSUSE VM ist IPv6 deaktiviert, ansonsten ist IPv6 aktiv
    
  •   Der DHCP-Server gibt nur mittels DHCP IPv4 Adressen raus (nicht BOOTP)
    
  •   AD, Namensauflösung (DNS), DHCP, Zeitsynchronisation (NTP) etc. funktionieren einwandfrei.
    

Problem

  •   Alle bisher von mir eingesetzten Linux Derivate / DHCP-Clients melden sich anfangs am DHCP-Server (Windows) mit einer sehr langen Identifikationsnummer (ID), z.B. 73757365736572766572303, an und bekommen eine IPv4-Adresse zugewiesen. Soweit okay. Ich möchte aber DHCP-Server-seitig Reservierungen (IPv4-Adressen) einrichten, die nur über eine MAC-Adresse einzurichten gehen.
    

Ziel

  •   openSUSE DHCP-Clients sollen sich mittels MAC-Adresse „aa:bb:cc:dd:ee:ff“ bei dem DHCP-Server identifizieren (wobei für „aa:bb:cc:dd:ee:ff“ die gültige MAC-Adresse einzusetzen ist).
    

Was habe ich bisher gemacht

Das Debian und Ubuntu die MAC-Adresse als Identifier verwenden (senden), konnte ich mittels folgenden Einstellungen umsetzen. Bei Debian mittels /etc/dhcp/dhclient.conf und „send dhcp-client-identifier aa:bb:cc:dd:ee:ff“, bei Ubuntu mittels /etc/netplan/00-installer-config.yaml und „dhcp-identifier: mac“. Bei openSUSE finden sich diese Dateien nicht bzw. sind (wohl) die meisten Netzwerk-Einstellungen unter /etc/sysconfig/network zu finden.

Bei openSUSE habe ich das auch probiert, bisher ohne Erfolg. In der Datei /etc/sysconfig/network/ifcfg-eth habe ich LLaddr=’ aa:bb:cc:dd:ee:ff ’ bzw. HWaddr='aa:bb:cc:dd:ee:ff ’ eingetragen und in der Datei /etc/sysconfig/config die Einträge „MANDATORY_DEVICES=‘eth-id-aa:bb:cc:dd:ee:ff’“ und „LLADDR=‘aa:bb:cc:dd:ee:ff’“ ausprobiert. Jetzt frage ich mich, in welcher Datei ich welche Einstellung vornehmen muss, um openSUSE dazu zu bringen die MAC-Adresse als Identifier fest zu verwenden / zu senden. In YAST sehe ich dazu keinen Schalter.

Hast du mal in /etc/sysconfig/network/dhcp geschaut?

Oder Yast—System—sysconfig-Editor?

Hi Holzie,

in /etc/sysconfig/network/dhcp finde ich folgenden Eintrag:

## Type:    string
## Default:    ""
#
# specify a client ID
#
# Specifies a client identifier string. By default an id derived from the
# hardware address of the network interface is sent as client identifier.
#
DHCLIENT_CLIENT_ID=""

Es wäre hilfreich zu wissen, wie/womit Du das Netzwerk konfiguriert. Wenn Du auf YaST eingehst, scheinst Du wicked zu nutzen? Ich bin da nicht der Spezialist, aber die o.a. Datei scheint für die DHCP-Einstellungen bei wicked verwendet zu werden. Was passiert, wenn Du da die MAC-Adresse einträgst?

kasi

Danke Kasi. Also, ich muss noch viel kennenlernen. Ich verwende bei openSUSE bisher Yast und es wird wicked sein, der im Hintergrund werkelt. Jedenfalls ist Dein Tipp die richtige Spur, hat Auswirkungen. In der Datei stand unter DHCLIENT_CLIENT_ID= der hostname. Diesen habe ich durch die MAC-Adresse ersetzt, was dazu führte, dass über DHCP keine IPv4 mehr gezogen wurde. Dann habe ich den String leer gelassen (also =““, also hostname = leer), damit erhält der Client wieder eine IP, aber der Identifier ist nun noch länger geworden.

Naja, viel mehr kann ich da wohl nicht beitragen. In der Datei sind ja einige weitere Einstellungen zu finden und Verweise auf wicked-config. Daher könnten die man-pages hilfreich sein:

man wicked
man wicked-config

Hier gibt es aber etliche User und Moderatoren, die deutlich besser Bescheid wissen als ich. Da kommt bestimmt noch Hilfe.
:wink:

Kasi, es klappt. Ich muss mich korrigieren. Habe nun unter DHCLIENT_CLIENT_ID= die MAC-Aderesse in einfachen " ’ " eingestellt und es funktioniert (bei allen 3 Clients). Prima & Dank.

Super, freut mich!
Have a lot of fun!
:slight_smile:

Sehr sportlich, deine Aktivitäten! Mir sind diese Netzwerkgeschichten viel zu umständlich gewesen. Die einfachste Lösung ist systemd-networkd und systemd-resolved. DNS und DHCP macht die Fritz!Box. Da ist “Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen.” angekreuzt. Wenn der Linux Client seinen Hostnamen und seine MAC-Adresse sendet kriegt er immer dieselbe ipv4 Adresse: Network Management With Systemd - openSUSE Wiki

Diese Lösung ist nicht ganz so ehrgeizig wie wicked oder NetworkManager. Sie funktioniert zuverlässig und hat minimale Latenzen. Sie ist wartungsarm und unabhängig von der Distribution. Kämpfe gibt es keine auszutragen. Die Konfiguration ist übersichtlich:

**i3-4130:~ #** cat /etc/systemd/network/wlan.network                  
[Match] 
Name=w* 

[Network] 
DHCP=yes 
Domains=fritz.box 
**i3-4130:~ #**