= Setup TIP: Tested on a Raspberry Pi with "Buster" == Intro networkd is a small and lean service to configure network interfaces, designed mostly for server use cases in a world with hotplugged and virtualized networking. Its configuration is similar in spirit and abstraction level to ifupdown, but you don't need any extra packages to configure bridges, bonds, vlan etc. It is not very suitable for managing WLANs yet; NetworkManager is still much more appropriate for such Desktop use cases. There are mainly three setups to have a peer to peer network: * unprotected ad-hoc interface by configuring the WiFi device * unprotected ad-hoc interface using wpa_supplicant (Recommended) * Only with suitable (RSN-IBSS capable) USB dongle: * protected ad-hoc interface using wpa_supplicant and WPA encryption (best solution if possible) * ad-hoc interface with additional USB/WiFi dongle for uplink to internet router == Install systemd-networkd === deinstall classic networking and install it! * *sudo su* # if not already done *deinstall* [source,sh] ---- systemctl daemon-reload systemctl disable --now ifupdown dhcpcd dhcpcd5 isc-dhcp-client isc-dhcp-common rsyslog apt --autoremove purge -f ifupdown dhcpcd dhcpcd5 isc-dhcp-client isc-dhcp-common rsyslog rm -r /etc/network /etc/dhcp # setup/enable systemd-resolved and systemd-networkd systemctl disable --now avahi-daemon libnss-mdns apt --autoremove -f purge avahi-daemon apt install -f libnss-resolve ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf apt-mark hold avahi-daemon dhcpcd dhcpcd5 ifupdown isc-dhcp-client isc-dhcp-common libnss-mdns openresolv raspberrypi-net-mods rsyslog systemctl enable systemd-networkd.service systemd-resolved.service ---- == Install optional [source,sh] ---- apt-get install raspberrypi-kernel-headers -y ---- === setup wired connection *wired connection* [source,sh] ---- cat > /etc/systemd/network/04-wired.network < Gateway=192.168.1.1 // <2> DNS=8.8.8.8 1.1.1.1 // <3> MulticastDNS=yes EOF ---- <1> use your settings <2> use your settings <2> use your settings === Reboot NOTE: reboot == Config === NSS *config nss* [source,sh] ---- apt --autoremove purge avahi-daemon apt-mark hold avahi-daemon apt install -f libnss-resolve echo "" echo "For troubleshooting you may have a look at /etc/nsswitch.conf. It should contain a line like this:" echo "" echo "hosts: files resolve [!UNAVAIL=return] dns" echo "" echo "" echo "" echo "" ---- === DNS *config dns* [source,sh] ---- echo "" echo "Configure DNS stub listener interface" echo "" echo "Here we have to symlink /etc/resolv.conf to the stub listener:" echo "" echo " exec4you ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf" ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf echo "" echo "Check name resolution" resolvectl status ---- === Problem with DNSSEC systemctl status systemd-resolved.service [source,sh] ---- DNSSEC validation failed for question google.com IN A: no-signature ---- You can workaround this with adding option [source,sh] ---- DNSSEC=no # to /etc/systemd/resolved.conf ---- and *reboot* to disable DNS record signing. == unprotected ad-hoc interface using wpa_supplicant Follow *Install systemd-networkd* Then come back here. TIP: unprotected * *sudo su* # if not already done [source,sh] ---- cat > /etc/wpa_supplicant/wpa_supplicant-wlan0.conf < /etc/wpa_supplicant/wpa_supplicant-wlan1.conf <