• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Wechselnde MAC-Adressen (CentOS 7.4)

gehrke

Administrator
Teammitglied
Moin *

Ich beobachte seit einiger Zeit sporadische Probleme mit DHCP bei statischer Adress-Zuweisung. Ursächlich scheint zu sein, dass ein CentOS-Client ab und zu mit wechselnden MAC-Adressen aufläuft.

Was steckt dahinter?
TNX

Glückauf, gehrke

EDIT:
Detailliertere Schilderung des Sachverhaltes: https://linux-club.de/forum/viewtopic.php?p=783484#p783484
 
OP
gehrke

gehrke

Administrator
Teammitglied
Nachtrag: Es handelt sich um ein LAN-Interface (nicht WLAN).
 

marce

Guru
wechselnde MAC kann ja eigentlich nicht "einfach so" sein - entweder Du spielst daran herum oder z.B. es handelt sich um eine VM?
 
gehrke schrieb:
Moin *

Ich beobachte seit einiger Zeit sporadische Probleme mit DHCP bei statischer Adress-Zuweisung. Ursächlich scheint zu sein, dass ein CentOS-Client ab und zu mit wechselnden MAC-Adressen aufläuft.

Was steckt dahinter?
TNX

Glückauf, gehrke

Bei RedHat gibt es ein file mit dem Namen /etc/sysconfig/network-scripts/ifcfg-eth0
(eth0 ist entsprechend)
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
Dort sollte die Variable HWADDR definiert sein.
Beispiel für GigaByte:
HWADDR=1C:6F:65:10:C1:2D
Damit wird die mac statisch gesetzt

Ob das bei CentOS auch so ist, mußt du selbst prüfen

Gruß
Gräfin Klara
 

/dev/null

Moderator
Teammitglied
Ich frage nur mal ganz leise: IPv4 oder IPv6

@Klara:
> Damit wird die mac statisch gesetzt
Wirklich gesetzt oder "nur" die "eingebrannte" mac dauerhaft nach Willen des Users geändert?
(Ich benutze openSUSE, und habe diese Datei auch. Und weil ich die "mitgelieferte" mac nutze, steht da keine drin - und will es auch nicht ändern.)

Und noch ein edit:
Der Networkmanager bietet im Zusammenhang mit der frei wählbaren MAC einen Button mit der Aufschrift: "Zufällig". Könnte es vlt. sein ... .


MfG Peter
 
OP
gehrke

gehrke

Administrator
Teammitglied
/dev/null schrieb:
Ich frage nur mal ganz leise: IPv4 oder IPv6
Mein LAN verwendet IPv4. Aber es geht ja um die MAC-Adresse, auf deren Basis der DHCP-Server eine IPv4 zuordnet.
 

marce

Guru
Gräfin Klara schrieb:
Bei RedHat gibt es ein file mit dem Namen /etc/sysconfig/network-scripts/ifcfg-eth0
(eth0 ist entsprechend)
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
Dort sollte die Variable HWADDR definiert sein.
Beispiel für GigaByte:
HWADDR=1C:6F:65:10:C1:2D
Damit wird die mac statisch gesetzt
sorry, aber gesetzt wird da gar nichts:
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/s1-networkscripts-interfaces

das dient nur dazu, daß die eth0 auch immer der richtigen Karte zugewiesen wird.
 

Sauerland

Ultimate Guru
Gesetzt wird das in:
/etc/udev/rules.d/

Bei mir in 70-persistent-net.rules:
Code:
cat /etc/udev/rules.d/70-persistent-net.rules 
# This file was automatically generated by the /usr/lib/udev/write_net_rules
# program,run by the persistent-net-generator.rules rules file.
#
# You can modify it,as long as you keep each rule on a single
# line,and change only the value of the NAME= key.
# PCI device 0x10ec:0x8168 (r8169)
# PCI device 0x14e4:0x43b1 (wl)
# PCI device 0x14e4:0x43b1 (wl)
# PCI device 0x10ec:0x8168 (r8169)
# PCI device 0x14e4:0x43b1 (wl)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="70:8b:cd:2e:5b:2b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="10:7b:44:4a:5a:16", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Ich hatte da mit einem alten Laptop und Wlan auch schon mal Probleme, da wurde bei jedem Start des Laptops das wlan um eines hochgezählt: wlan0, wlan1, wlan2 usw.
 
OP
gehrke

gehrke

Administrator
Teammitglied
Gräfin Klara schrieb:
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
Dort sollte die Variable HWADDR definiert sein.
Ich habe auf 5 CentOS-Systemen nachgeschaut. Nur auf einem davon ist diese Variable gesetzt, aber dieses System ist auch speziell, weil es 3 NICs hat. Das angesprochene Verhalten beobachte ich lediglich auf einem einzigen Notebook seit ca. einem halben Jahr.
 
/dev/null schrieb:
@Klara:
> Damit wird die mac statisch gesetzt
Wirklich gesetzt oder "nur" die "eingebrannte" mac dauerhaft nach Willen des Users geändert?
(Ich benutze openSUSE, und habe diese Datei auch. Und weil ich die "mitgelieferte" mac nutze, steht da keine drin - und will es auch nicht ändern.)

MfG Peter

Die Hardwareadresse einer eth wird vom kernel über den driver nur einmal gelesen und dann im kernel eingetragen.
Nur dieser Kerneleintrag wird im ethernet_traffic verwendet und dieser Eintrag kann mit HWADDR oder anderen Programmen über die NETLINK Schnittstelle im Kernel geändert werden.
Eine permanente Änderung der mac im eeprom oder controller auf der Hardware ist natürlich auch möglich, ergibt aber unter Linux keinen Sinn, weil sowieso nur der Kernel die mac liefert.
>> Und weil ich die "mitgelieferte" mac nutze, steht da keine drin - und will es auch nicht ändern.)
Wer auf Sicherheit wert legt, sollte die mac in Richtung router wenigstens bei jedem boot ändern. (random)

Gruß
Gräfin Klara
 
OP
gehrke

gehrke

Administrator
Teammitglied
Sauerland schrieb:
Gesetzt wird das in:
/etc/udev/rules.d/
Das Verzeichnis ist leer, bis auf ein Sample, worin aber alles auskommentiert ist.

BTW: Bei WLAN habe ich schon mal gehört, dass es zum Schutz der Privatsphäre (Tracking) ein Randomizing der MAC-Adressen gibt. Aber hier geht es um einen LAN-Port.
 
OP
gehrke

gehrke

Administrator
Teammitglied
/dev/null schrieb:
Und noch ein edit:
Der Networkmanager bietet im Zusammenhang mit der frei wählbaren MAC einen Button mit der Aufschrift: "Zufällig". Könnte es vlt. sein ... .
Edit erst jetzt gesehen:
Eine solche Einstellung sehe ich nicht beim LAN.

Lediglich beim WLAN ist unter
Code:
Duplizierte Adresse: permanent
gesetzt.
 
OP
gehrke

gehrke

Administrator
Teammitglied
marce schrieb:
Gräfin Klara schrieb:
Wer auf Sicherheit wert legt, sollte die mac in Richtung router wenigstens bei jedem boot ändern. (random)
Sorry, aber: Bullshit.
Wie schon geschrieben macht dieses Feature IMHO bei WLAN Sinn. Mittlerweile wird sogar versucht, Menschen aufgrund der Karten-Signaturen im öffentlichen Bereich zu identifizieren und global zu tracken. Ist aber mehr Schutz der Privatsphäre und weniger Security.

Aber wie gesagt: Hier geht es um das gute alte kabelgebundene Netz.
 

josef-wien

Ultimate Guru
Sauerland schrieb:
Gesetzt wird das in:
/etc/udev/rules.d/
Bei mir in 70-persistent-net.rules
Das einzige, was mit den udev-Regeln gesetzt wird, ist der Name, der für die Karte mit der angegebenen MAC-Adresse vom Kernel verwendet wird.
_______

Hast Du unter /etc/systemd/network/ etwas definiert (siehe https://www.freedesktop.org/software/systemd/man/systemd.link.html)? (Für die Beantwortung von Fragen dazu bin ich als systemd-freie Zone nicht zuständig.)

Liefert
Code:
grep . /sys/class/net/*/address
beim Auftreten des Problems einen anderen Wert als sonst?
 
gehrke schrieb:
Gräfin Klara schrieb:
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
Dort sollte die Variable HWADDR definiert sein.
Ich habe auf 5 CentOS-Systemen nachgeschaut. Nur auf einem davon ist diese Variable gesetzt, aber dieses System ist auch speziell, weil es 3 NICs hat. Das angesprochene Verhalten beobachte ich lediglich auf einem einzigen Notebook seit ca. einem halben Jahr.

Dann setze auf diesem Notebook die HWADDR
 
OP
gehrke

gehrke

Administrator
Teammitglied
josef-wien schrieb:
Hast Du unter /etc/systemd/network/ etwas definiert (siehe https://www.freedesktop.org/software/systemd/man/systemd.link.html)?
Nein.
josef-wien schrieb:
Liefert
Code:
grep . /sys/class/net/*/address
beim Auftreten des Problems einen anderen Wert als sonst?
Kann ich jetzt nicht beantworten, derzeit steht dort die aktuelle Adresse. Beim nächsten Auftreten (in vielleicht 3 Wochen) kann ich nachsehen...
 
OP
gehrke

gehrke

Administrator
Teammitglied
Habe zwecks besserem Debugging mal ein Logging hierfür angelegt:
Code:
[root@j3 .config]# cat /etc/cron.hourly/log-mac.sh 
#!/bin/sh
# collect mac adress
now=`date +%Y.%m.%d:%H:%M` && mac_enp2s0=`ifconfig enp2s0 | grep ether | awk '{ print $2 }'` && mac_wlan=`ifconfig wlp0s29f7u3 | grep ether | awk '{ print $2 }'` && echo "$now $mac_enp2s0 $mac_wlan" >> /var/log/mac.log
Vielleicht kann man mit diesen Details mehr erkennen und genauer in den Logs forschen.
 
Oben