[gelöst] systemd - mac ändern

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
frankw
Beiträge: 154
Registriert: 24.10.2018 11:34:33

[gelöst] systemd - mac ändern

Beitrag von frankw » 13.09.2021 11:10:49

Hallo,

ich versuche, mit systemd-networkd die mac-adresse zu ändern.

Grundconfig ist ein ethernet-link (eth0) mit DSA-Port (wan)

per default scheint der dsa-port schon eine andere mac als der ethernet-link zu bekommen

Code: Alles auswählen

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1504 qdisc pfifo_fast state UP group default qlen 1000                                                           
    link/ether 3a:69:cb:48:04:40 brd ff:ff:ff:ff:ff:ff                                                      
4: wan@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000                                                          
    link/ether 26:6e:71:d4:c2:71 brd ff:ff:ff:ff:ff:ff
in Debian Buster mit ifupdown hat wan die MAC von eth0 "geerbt", konnte aber auch für eth0 die mac nicht ändern.

den aufwand muss ich treiben, da (nun beide Schnittstellen) wan/eth0 keine feste mac-adresse haben, somit kann ich auch nicht auf MACAddress matchen.

in der syslog sehe ich bei wan keine Fehler:

Code: Alles auswählen

Sep 13 07:42:15 bpi-r2 systemd-networkd[214]: wan: Link UP                      
Sep 13 07:42:15 bpi-r2 systemd-networkd[214]: wan.110: netdev ready             
Sep 13 07:42:15 bpi-r2 systemd-networkd[214]: wan.140: netdev ready             
Sep 13 07:42:15 bpi-r2 kernel: [    7.335633] mt7530 mdio-bus:00 wan (uninitiali
zed): PHY [dsa-0.0:00] driver [Generic PHY] (irq=POLL)                          
Sep 13 07:42:15 bpi-r2 kernel: [   12.290420] mt7530 mdio-bus:00 wan: configurin
g for phy/gmii link mode                                                        
Sep 13 07:42:15 bpi-r2 kernel: [   12.297678] 8021q: adding VLAN 0 to HW filter 
on device wan                                                                   
Sep 13 07:42:16 bpi-r2 kernel: [   16.500754] mt7530 mdio-bus:00 wan: Link is Up
 - 1Gbps/Full - flow control rx/tx                                              
Sep 13 07:42:16 bpi-r2 kernel: [   16.508203] IPv6: ADDRCONF(NETDEV_CHANGE): wan
: link becomes ready                                                            
Sep 13 07:42:16 bpi-r2 systemd-networkd[214]: wan: Gained carrier               
Sep 13 07:42:17 bpi-r2 systemd-networkd[214]: wan: Gained IPv6LL                
Sep 13 07:42:20 bpi-r2 systemd-networkd[214]: wan: DHCPv4 address 192.168.0.143/
24 via 192.168.0.10
beim eth0-versuch kommt das:

Code: Alles auswählen

Sep 13 07:34:53 bpi-r2 systemd-networkd[216]: eth0: Could not set MAC address, i
gnoring: Cannot assign requested address                                        
Sep 13 07:34:53 bpi-r2 systemd-networkd[216]: eth0: Link UP                     
Sep 13 07:34:53 bpi-r2 systemd-networkd[216]: eth0: Gained carrier
scheinbar ist eth0 zu dem zeitpunkt (durch die eth0.network) schon up, da wan aber eh eine andere MAC bekommt, muss ich diese für wan ändern....und die wird scheinbar ignoriert
Zuletzt geändert von frankw am 16.09.2021 12:07:11, insgesamt 2-mal geändert.

mat6937
Beiträge: 2946
Registriert: 09.12.2014 10:44:00

Re: systemd - mac ändern

Beitrag von mat6937 » 13.09.2021 11:42:36

frankw hat geschrieben: ↑ zum Beitrag ↑
13.09.2021 11:10:49
ich versuche, mit systemd-networkd die mac-adresse zu ändern.
Wie versuchst Du es mit systemd-networkd?
Ich mache das mit einer *.link-Datei (in systemd-networkd).

frankw
Beiträge: 154
Registriert: 24.10.2018 11:34:33

Re: systemd - mac ändern

Beitrag von frankw » 13.09.2021 11:52:04

oh, den wichtigsten Teil vergessen, sorry:

/etc/systemd/network/wan.link

Code: Alles auswählen

[Match]
OriginalName=wan

[Link]
# Override MAC address (spoof MAC address)
MACAddress=08:22:33:44:55:66
habe aber mittlerweile herausgefunden, dass ich in die vorhandene wan.network die link-section hinzufügen kann...damit scheint es zu funktionieren

Code: Alles auswählen

[Match]
Name=wan

[Link]
# Override MAC address (spoof MAC address)
MACAddress=08:22:33:44:55:66

[Network]
BindCarrier=eth0

DHCP=ipv4

#static setup
#Address=192.168.0.18/24
#Gateway=192.168.0.10
#DNS=192.168.0.10

VLAN=wan.110
VLAN=wan.140

mat6937
Beiträge: 2946
Registriert: 09.12.2014 10:44:00

Re: systemd - mac ändern

Beitrag von mat6937 » 13.09.2021 12:01:36

frankw hat geschrieben: ↑ zum Beitrag ↑
13.09.2021 11:52:04
habe aber mittlerweile herausgefunden, dass ...
Meine *.link-Dateien (d. h. keine *.network-Datei) zum ändern der MAC-Adresse schauen z. B. so aus:

Code: Alles auswählen

:~ $ cat /etc/systemd/network/00-mylanif.link
[Match]
MACAddress=<orig.-MAC-Adresse>

[Link]
Name=<Name-Interface>
MACAddress=<neue-MAC-Adresse>

frankw
Beiträge: 154
Registriert: 24.10.2018 11:34:33

Re: systemd - mac ändern

Beitrag von frankw » 13.09.2021 15:59:08

so in etwa sind die Beispiele die ich auch gefunden habe...aber das Match auf MAC kann ich nicht machen, da die ursprüngliche MAC zufällig ist.

Und es sieht so aus, dass die Link-Datei nicht verwendet wird, wenn eine network-datei existiert.

mat6937
Beiträge: 2946
Registriert: 09.12.2014 10:44:00

Re: systemd - mac ändern

Beitrag von mat6937 » 13.09.2021 19:44:49

frankw hat geschrieben: ↑ zum Beitrag ↑
13.09.2021 15:59:08
Und es sieht so aus, dass die Link-Datei nicht verwendet wird, wenn eine network-datei existiert.
Das stimmt nicht, denn ich habe schon immer eine *.link-Datei (zum ändern der MAC-Adresse) und eine *.network-Datei (für das zuweisen der IP-Adresse & Co.) für das eth0-Interface. Dass die *.link-Datei auch verwendet wird, sehe ich an der geänderten MAC-Adresse.

frankw
Beiträge: 154
Registriert: 24.10.2018 11:34:33

Re: systemd - mac ändern

Beitrag von frankw » 13.09.2021 20:05:58

Dann liegt es vielleicht am dsa-port,evtl.fehlt da ein callback im Kernel weil es kein richtiger ethernet-nic ist (evtl.ist link an phy's gebunden) oder das match mit originalname funktioniert nicht. Es kam jedenfalls keinerlei Fehlermeldung und die mac war auch alt...erst mit der link section in der Network-datei hat es funktioniert

mat6937
Beiträge: 2946
Registriert: 09.12.2014 10:44:00

Re: systemd - mac ändern

Beitrag von mat6937 » 14.09.2021 09:27:42

frankw hat geschrieben: ↑ zum Beitrag ↑
13.09.2021 20:05:58
.. oder das match mit originalname funktioniert nicht. Es kam jedenfalls keinerlei Fehlermeldung und die mac war auch alt...
Was Du mit der *.link-Datei noch probieren könntest (... weil hier die "mac address policy" random ist), ist:

Code: Alles auswählen

[Match]
MACAddress=""
MACAddress=<neue-MAC-Adresse>

[Link]
Name=<Name-Interface>
MACAddress=<neue-MAC-Adresse>
Der leere String sollte die alte zufällige MAC Adresse löschen.

frankw
Beiträge: 154
Registriert: 24.10.2018 11:34:33

Re: systemd - mac ändern

Beitrag von frankw » 15.09.2021 12:45:22

funktioniert nicht, wundert mich auch, warum die neue MAC beim match mit drinstehen sollte

lt syslog mag er die lehre mac scheinbar nicht

Sep 15 10:42:53 bpi-r2 systemd-udevd[213]: /etc/systemd/network/wan.link:2: Not a valid MAC address, ignoring: ""

aber mit der link-section in der network-datei funktioniert es, daher solved ;)

mat6937
Beiträge: 2946
Registriert: 09.12.2014 10:44:00

Re: systemd - mac ändern

Beitrag von mat6937 » 15.09.2021 14:32:21

frankw hat geschrieben: ↑ zum Beitrag ↑
15.09.2021 12:45:22
lt syslog mag er die lehre mac scheinbar nicht
OK, dann ist das die falsche Syntax für einen "empty string", in dieser config-Datei. Da müsste man jetzt nachdenken/überlegen/suchen, welches die richtige Syntax ist. Evtl. kein Eintrag:

Code: Alles auswählen

MACAddress=
?

frankw
Beiträge: 154
Registriert: 24.10.2018 11:34:33

Re: systemd - mac ändern

Beitrag von frankw » 15.09.2021 14:50:49

/etc/systemd/network/wan.link: No valid settings found in the [Match] section, ignoring file. To
match all interfaces, add OriginalName=* in the [Match] section.

mich wundert, warum er

OriginalName=wan

einfach stillschweigend ignoriert (war gerade deaktiviert, aber hatte davor ja damit probiert)

mat6937
Beiträge: 2946
Registriert: 09.12.2014 10:44:00

Re: systemd - mac ändern

Beitrag von mat6937 » 15.09.2021 15:00:58

frankw hat geschrieben: ↑ zum Beitrag ↑
15.09.2021 14:50:49
/etc/systemd/network/wan.link: No valid settings found in the [Match] section, ignoring file. To
match all interfaces, add OriginalName=* in the [Match] section.

mich wundert, warum er
Versuch mal mit:

Code: Alles auswählen

[Match]
Name=w*

frankw
Beiträge: 154
Registriert: 24.10.2018 11:34:33

Re: systemd - mac ändern

Beitrag von frankw » 15.09.2021 15:09:34

lt. manpage ist es in der Match-Section aber OriginalName

https://www.freedesktop.org/software/sy ... .link.html

Code: Alles auswählen

root@bpi-r2:~# cat /sys/class/net/wan/uevent
DEVTYPE=dsa
OF_NAME=port
OF_FULLNAME=/ethernet@1b100000/mdio-bus/switch@0/ports/port@0
OF_COMPATIBLE_N=0
INTERFACE=wan
IFINDEX=4
so kommt auch kein Fehler, aber die mac ist halt weiterhin zufällig

Code: Alles auswählen

[Match]
#MACAddress=
Type=dsa
OriginalName=wan
#MACAddress=08:22:33:44:55:77

[Link]
#Name=wan
MACAddressPolicy=none
MACAddress=08:22:33:44:55:77
wenn ich es mit Name probiere, kommt das:

/etc/systemd/network/wan.link:5: Unknown key name 'Name' in section 'Match', ignoring.

aber mach dir nicht weiter Gedanken...ich habe einen funktionierenden Weg:

Code: Alles auswählen

root@bpi-r2:~# cat /etc/systemd/network/wan.network                                                                                        
[Match]
Name=wan

[Link]
# Override MAC address (spoof MAC address)
MACAddress=08:22:33:44:55:66

[Network]
BindCarrier=eth0
#ConfigureWithoutCarrier=true

#DHCP=ipv4 

#static setup
Address=192.168.0.18/24
Gateway=192.168.0.10
DNS=192.168.0.10

VLAN=wan.110
VLAN=wan.140

#IPForward=yes
#IPMasquerade=yes

Tunnel=he-ipv6
root@bpi-r2:~# ip a s wan
4: wan@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 08:22:33:44:55:66 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.18/24 brd 192.168.0.255 scope global wan
       valid_lft forever preferred_lft forever
    inet6 fe80::a22:33ff:fe44:5566/64 scope link 
       valid_lft forever preferred_lft forever

frankw
Beiträge: 154
Registriert: 24.10.2018 11:34:33

Re: [gelöst] systemd - mac ändern

Beitrag von frankw » 16.09.2021 12:23:06

ich habe herausgefunden, warum es nicht funktioniert...die Datei muss vor der

/usr/lib/systemd/network/99-default.link

kommen

ich habe also meine wan.link umbenannt und nun wird sie angewendet

Code: Alles auswählen

root@bpi-r2:~# cat /etc/systemd/network/10-wan.link                             
[Match]                                                                                                                                    
OriginalName=wan                                                                                                               
                                                                                
[Link]                                                        
MACAddress=08:22:33:44:55:77                                                    
root@bpi-r2:~# ip a s wan                                                       
4: wan@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP g
roup default qlen 1000                                                          
    link/ether 08:22:33:44:55:77 brd ff:ff:ff:ff:ff:ff                          
    inet 192.168.0.18/24 brd 192.168.0.255 scope global wan                     
       valid_lft forever preferred_lft forever                                  
    inet6 fe80::a22:33ff:fe44:5577/64 scope link                                
       valid_lft forever preferred_lft forever                                  
root@bpi-r2:~#

Antworten