Manjaro Image - Netzwerkkonfiguration


  • Ja, Manjaro mach einige Sachen anders, als ich das von Debian usw. gewohnt bin. Beim Testen einer PCIe Netzwerkkarte brauchte ich das jetzt. Kurz Dan gefragt, was die dafür benutzen.

    Minimal edition uses systemd-networkd.

    Ok, das wird vermutlich auch in Zukunft bei Debian passieren, wenn man da auch voll auf systemd setzt. Dann lohnt sich das, da jetzt schon mal reinzuschauen. Da Manjaro auf Arch Linux basiert, stößt man oft auf das Wiki von Arch. Das ist übrigens exzellent und man kann da auch immer wieder für andere Dinge reinschauen.

    Hardware

    Ich habe eine Intel-Karte mit zwei Schnittstellen hier rumliegen gehabt. Die letzte Änderung von Dan am Manjaro Image war das hier. Schnell mal danach gegoogelt und raus gefunden, das es um Intel Netzwerkkarten ging. Nun habe ich die Karte mal reingesteckt und festgestellt, ja das ist genau so eine Karte wie sie jetzt zum Manjaro Image hinzugefügt wurde 😉

    [root@quartz64 network]# lspci
    00:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3568 Remote Signal Processor (rev 01)
    01:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev ff)
    01:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev ff)
    

    Das sieht dann so aus

    [root@quartz64 network]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1000
        link/tunnel6 :: brd :: permaddr 2a04:d793:5b94::
    3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether e6:0a:32:f1:db:b2 brd ff:ff:ff:ff:ff:ff
        inet 192.168.3.212/24 brd 192.168.3.255 scope global dynamic noprefixroute eth0
           valid_lft 41413sec preferred_lft 36013sec
        inet6 fd8a:6ff:2880:0:f1c2:2296:7639:4394/64 scope global mngtmpaddr noprefixroute 
           valid_lft forever preferred_lft forever
        inet6 2a02:908:1260:13bc:8b5f:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr noprefixroute 
           valid_lft 6391sec preferred_lft 2791sec
        inet6 fe80::c076:15ed:1479:4e90/64 scope link 
           valid_lft forever preferred_lft forever
    4: enp1s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
        link/ether 6c:b3:11:1c:18:28 brd ff:ff:ff:ff:ff:ff
    5: enp1s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
        link/ether 6c:b3:11:1c:18:29 brd ff:ff:ff:ff:ff:ff
    

    Software

    [root@quartz64 network]# uname -a
    Linux quartz64 5.15.0-rc1-0.3-MANJARO-ARM #1 SMP PREEMPT Thu Oct 7 06:08:24 UTC 2021 aarch64 GNU/Linux
    

    systemd

    Der Dienst hört auf den Namen

    systemd-networkd.service
    

    Hier mal der Status

    [root@quartz64 network]# systemctl status systemd-networkd.service
    ● systemd-networkd.service - Network Configuration
         Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
         Active: active (running) since Sun 2021-10-10 12:15:54 CEST; 16min ago
    TriggeredBy: ● systemd-networkd.socket
           Docs: man:systemd-networkd.service(8)
       Main PID: 346 (systemd-network)
         Status: "Processing requests..."
          Tasks: 1 (limit: 4216)
         Memory: 3.2M
            CPU: 205ms
         CGroup: /system.slice/systemd-networkd.service
                 └─346 /usr/lib/systemd/systemd-networkd
    
    Okt 10 12:16:01 quartz64 systemd-networkd[346]: enp1s0f1: Gained IPv6LL
    Okt 10 12:20:11 quartz64 systemd-networkd[346]: enp1s0f1: Lost carrier
    Okt 10 12:20:15 quartz64 systemd-networkd[346]: enp1s0f0: Gained carrier
    Okt 10 12:20:17 quartz64 systemd-networkd[346]: enp1s0f0: Gained IPv6LL
    Okt 10 12:20:17 quartz64 systemd-networkd[346]: enp1s0f0: Could not acquire DHCPv6 lease on NDisc request: Address already in use
    Okt 10 12:20:17 quartz64 systemd-networkd[346]: enp1s0f0: Failed
    Okt 10 12:31:59 quartz64 systemd-networkd[346]: enp1s0f0: Lost carrier
    Okt 10 12:32:03 quartz64 systemd-networkd[346]: enp1s0f1: Gained carrier
    Okt 10 12:32:05 quartz64 systemd-networkd[346]: enp1s0f1: Gained IPv6LL
    Okt 10 12:32:28 quartz64 systemd-networkd[346]: enp1s0f1: Lost carrier
    

    Ok, eine ganze Stunde später und viel Testerei, stelle ich fest das der Dienst dhcpcd abgeschaltet werden muss. Der Dienst ist der DHCP Client, und der bezieht die ganze Zeit IPv4 und IPv6 Adressen, egal was ich mit systemd.network konfiguriere.

    systemctl disable dhcpcd
    

    Erst danach hatte ich mittels systemd-network die volle Kontrolle.

    Konfiguration systemd.network

    In /etc/systemd/network/ kommen die Konfigurationsdateien. Für mein Beispiel, sieht das so aus.

    [root@quartz64 ~]# ls -lha /etc/systemd/network/
    insgesamt 20K
    drwxr-xr-x 2 root root 4,0K 10. Okt 13:08 .
    drwxr-xr-x 5 root root 4,0K  9. Okt 11:02 ..
    -rw-r--r-- 1 root root   49 10. Okt 14:21 10-wired.network
    -rw-r--r-- 1 root root  115 10. Okt 14:18 20-wired.network
    -rw-r--r-- 1 root root   72 10. Okt 14:31 30-wired.network
    

    10-wired.network

    [Match]
    Name=eth0
    
    [Network]
    DHCP=both
    Metric=10
    

    20-wired.network

    [Match]
    Name=enp1s0f0
    
    [Network]
    IPv6AcceptRA=false
    Address=10.1.10.9/24
    Gateway=10.1.10.1
    DNS=10.1.10.1
    Metric=20
    

    30-wired.network

    [Match]
    Name=enp1s0f1
    
    [Network]
    IPv6AcceptRA=false
    DHCP=ipv4
    Metric=30
    

    Ergebnis

    [root@quartz64 network]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1000
        link/tunnel6 :: brd :: permaddr 637:3065:f3e2::
    3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether e6:0a:32:f1:db:b2 brd ff:ff:ff:ff:ff:ff
        inet 192.168.3.214/24 metric 1024 brd 192.168.3.255 scope global dynamic eth0
           valid_lft 41555sec preferred_lft 41555sec
        inet6 fd8a:6ff:2880:0:e40a:32ff:fef1:dbb2/64 scope global mngtmpaddr noprefixroute 
           valid_lft forever preferred_lft forever
        inet6 2a02:908:1260:13bc:e40a:32ff:fef1:dbb2/64 scope global dynamic mngtmpaddr noprefixroute 
           valid_lft 5543sec preferred_lft 1943sec
        inet6 fe80::e40a:32ff:fef1:dbb2/64 scope link 
           valid_lft forever preferred_lft forever
    4: enp1s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 6c:b3:11:1c:18:28 brd ff:ff:ff:ff:ff:ff
        inet 10.1.10.9/24 brd 10.1.10.255 scope global enp1s0f0
           valid_lft forever preferred_lft forever
        inet6 fe80::6eb3:11ff:fe1c:1828/64 scope link 
           valid_lft forever preferred_lft forever
    5: enp1s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 6c:b3:11:1c:18:29 brd ff:ff:ff:ff:ff:ff
        inet 192.168.3.208/24 metric 1024 brd 192.168.3.255 scope global dynamic enp1s0f1
           valid_lft 43194sec preferred_lft 43194sec
        inet6 fe80::6eb3:11ff:fe1c:1829/64 scope link 
           valid_lft forever preferred_lft forever
    

  • Da fehlt doch was? Richtig - WLAN!

    Treiber usw. -> https://forum.frank-mankel.org/topic/1035/wlan-auf-der-konsole-einrichten

    systemd

    /etc/systemd/network/40-wireless.network

    [Match]
    Name=wlan0
    
    [Network]
    DHCP=both
    

    Ok, das war einfach 🙂 Aber, wie übergebe ich jetzt die Konfiguration, also wpa_supplicant.conf ?

    Das geht so

    systemctl enable wpa_supplicant@wlan0.service
    

    Zum Neustarten der Services

    systemctl restart systemd-networkd.service
    systemctl restart wpa_supplicant@wlan0.service
    

    Hmm, danach ging es bei mir nicht. Schauen wir nach.

    [root@quartz64 ~]# systemctl status wpa_supplicant@wlan0
    × wpa_supplicant@wlan0.service - WPA supplicant daemon (interface-specific version)
         Loaded: loaded (/usr/lib/systemd/system/wpa_supplicant@.service; enabled; vendor preset: disabled)
         Active: failed (Result: exit-code) since Sun 2021-10-10 18:34:59 CEST; 1min 20s ago
        Process: 518 ExecStart=/usr/bin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -iwlan0 (code=exited, status=255/EXCEPTION)
       Main PID: 518 (code=exited, status=255/EXCEPTION)
            CPU: 17ms
    
    Okt 10 18:34:58 quartz64 systemd[1]: Started WPA supplicant daemon (interface-specific version).
    Okt 10 18:34:59 quartz64 wpa_supplicant[518]: Successfully initialized wpa_supplicant
    Okt 10 18:34:59 quartz64 wpa_supplicant[518]: Failed to open config file '/etc/wpa_supplicant/wpa_supplicant-wlan0.conf', error: No such file o>
    Okt 10 18:34:59 quartz64 wpa_supplicant[518]: Failed to read or parse configuration '/etc/wpa_supplicant/wpa_supplicant-wlan0.conf'.
    Okt 10 18:34:59 quartz64 systemd[1]: wpa_supplicant@wlan0.service: Main process exited, code=exited, status=255/EXCEPTION
    Okt 10 18:34:59 quartz64 systemd[1]: wpa_supplicant@wlan0.service: Failed with result 'exit-code'.
    

    Ok, das ist einfach.

    cd /etc/wpa_supplicant
    mv wpa_supplicant.conf wpa_supplicant-wlan0.conf
    

    Neustarten - Fertig!

    Kontrolle

    6: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether ac:83:f3:e6:1f:b2 brd ff:ff:ff:ff:ff:ff
        inet 192.168.178.24/24 metric 1024 brd 192.168.178.255 scope global dynamic wlan0
           valid_lft 863966sec preferred_lft 863966sec
        inet6 2a02:908:1260:13a0:ae83:f3ff:fee6:1fb2/64 scope global dynamic mngtmpaddr noprefixroute 
           valid_lft 7169sec preferred_lft 3569sec
        inet6 fe80::ae83:f3ff:fee6:1fb2/64 scope link 
           valid_lft forever preferred_lft forever