net: Use resolved for DNS resolution
- Use resolved no matter what manages the network (networkd or NetworkManager) - Use resolved.conf.d/ directory to set DNS as recommended by resolved itself - In armbian-firstrun, remove config specific to mvebu64|mt7623 since this is now done by default
This commit is contained in:
parent
97c29bd124
commit
9afabe23b2
@ -19,7 +19,14 @@ function add_host_dependencies__install_network_manager() {
|
|||||||
function pre_install_kernel_debs__configure_network_manager() {
|
function pre_install_kernel_debs__configure_network_manager() {
|
||||||
display_alert "Extension: ${EXTENSION}: Enabling Network-Manager" "" "info"
|
display_alert "Extension: ${EXTENSION}: Enabling Network-Manager" "" "info"
|
||||||
|
|
||||||
|
# Enable resolved
|
||||||
|
# Very likely not needed to enable manually since resolved is enabled by default
|
||||||
|
# NetworkManager can use systemd-resolved as a DNS resolver and cache.
|
||||||
|
# systemd-resolved will be used automatically if /etc/resolv.conf is a symlink to /run/systemd/resolve/stub-resolv.conf (source: https://wiki.archlinux.org/title/NetworkManager)
|
||||||
|
chroot_sdcard systemctl enable systemd-resolved.service || display_alert "Failed to enable systemd-resolved.service" "" "wrn"
|
||||||
|
|
||||||
# We can't disable/mask systemd-networkd.service since it is required by Netplan
|
# We can't disable/mask systemd-networkd.service since it is required by Netplan
|
||||||
|
# There shouldn't be any conflicts since Netplan is configured in such a way that NetworkManager manages all network devices
|
||||||
|
|
||||||
# Most likely we don't need to wait for nm to get online
|
# Most likely we don't need to wait for nm to get online
|
||||||
chroot_sdcard systemctl disable NetworkManager-wait-online.service
|
chroot_sdcard systemctl disable NetworkManager-wait-online.service
|
||||||
|
|||||||
@ -10,10 +10,9 @@ function pre_install_kernel_debs__configure_systemd_networkd()
|
|||||||
{
|
{
|
||||||
display_alert "Extension: ${EXTENSION}: Enabling systemd-networkd" "" "info"
|
display_alert "Extension: ${EXTENSION}: Enabling systemd-networkd" "" "info"
|
||||||
|
|
||||||
# Enable networkd
|
# Enable networkd and resolved
|
||||||
|
# Very likely not needed to enable manually since these services are enabled by default
|
||||||
chroot_sdcard systemctl enable systemd-networkd.service || display_alert "Failed to enable systemd-networkd.service" "" "wrn"
|
chroot_sdcard systemctl enable systemd-networkd.service || display_alert "Failed to enable systemd-networkd.service" "" "wrn"
|
||||||
|
|
||||||
# Enable resolved too
|
|
||||||
chroot_sdcard systemctl enable systemd-resolved.service || display_alert "Failed to enable systemd-resolved.service" "" "wrn"
|
chroot_sdcard systemctl enable systemd-resolved.service || display_alert "Failed to enable systemd-resolved.service" "" "wrn"
|
||||||
|
|
||||||
# Copy network config files into the appropriate folders
|
# Copy network config files into the appropriate folders
|
||||||
|
|||||||
@ -43,8 +43,19 @@ function install_distribution_specific() {
|
|||||||
|
|
||||||
# Set DNS server if systemd-resolved is in use
|
# Set DNS server if systemd-resolved is in use
|
||||||
if [[ -n "$NAMESERVER" && -f "${SDCARD}"/etc/systemd/resolved.conf ]]; then
|
if [[ -n "$NAMESERVER" && -f "${SDCARD}"/etc/systemd/resolved.conf ]]; then
|
||||||
sed -i "s/#DNS=.*/DNS=$NAMESERVER/g" "${SDCARD}"/etc/systemd/resolved.conf
|
|
||||||
display_alert "Setup DNS server for systemd-resolved" "${NAMESERVER}" "info"
|
display_alert "Setup DNS server for systemd-resolved" "${NAMESERVER}" "info"
|
||||||
|
|
||||||
|
# Use resolved.conf.d/ directory as recommended by resolved itself
|
||||||
|
mkdir -p "${SDCARD}"/etc/systemd/resolved.conf.d/
|
||||||
|
|
||||||
|
cat <<- EOF > "${SDCARD}"/etc/systemd/resolved.conf.d/00-armbian-default-dns.conf
|
||||||
|
# Added by Armbian
|
||||||
|
#
|
||||||
|
# See resolved.conf(5) for details
|
||||||
|
|
||||||
|
[Resolve]
|
||||||
|
DNS=${NAMESERVER}
|
||||||
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# cleanup motd services and related files
|
# cleanup motd services and related files
|
||||||
|
|||||||
@ -13,15 +13,11 @@ function post_debootstrap_tweaks() {
|
|||||||
# adjust tzselect to improve political correctness
|
# adjust tzselect to improve political correctness
|
||||||
sed -i "s/Please select a country/Please select a country or a region/g" "${SDCARD}"/usr/bin/tzselect
|
sed -i "s/Please select a country/Please select a country or a region/g" "${SDCARD}"/usr/bin/tzselect
|
||||||
|
|
||||||
# activate systemd-resolved, if not using NetworkManager
|
# activate systemd-resolved
|
||||||
if [[ ! -f "${SDCARD}"/etc/NetworkManager/NetworkManager.conf ]]; then
|
display_alert "Activating systemd-resolved" "Symlinking /etc/resolv.conf to /run/systemd/resolve/stub-resolv.conf" "debug"
|
||||||
if [[ -d "${SDCARD}"/etc/systemd/network ]]; then
|
run_host_command_logged rm -fv "${SDCARD}"/etc/resolv.conf
|
||||||
display_alert "Activating systemd-resolved" "Symlink resolv.conf to systemd-resolved's" "debug"
|
# The method of symlinking to /run/systemd/resolve/stub-resolv.conf is recommended, see https://www.man7.org/linux/man-pages/man8/systemd-resolved.service.8.html
|
||||||
run_host_command_logged rm -fv "${SDCARD}"/etc/resolv.conf
|
run_host_command_logged ln -s /run/systemd/resolve/stub-resolv.conf "${SDCARD}"/etc/resolv.conf
|
||||||
# The method of symlinking to /run/systemd/resolve/stub-resolv.conf is recommended, see https://www.man7.org/linux/man-pages/man8/systemd-resolved.service.8.html
|
|
||||||
run_host_command_logged ln -s /run/systemd/resolve/stub-resolv.conf "${SDCARD}"/etc/resolv.conf
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# remove service start blockers
|
# remove service start blockers
|
||||||
run_host_command_logged rm -fv "${SDCARD}"/sbin/initctl "${SDCARD}"/sbin/start-stop-daemon
|
run_host_command_logged rm -fv "${SDCARD}"/sbin/initctl "${SDCARD}"/sbin/start-stop-daemon
|
||||||
@ -37,5 +33,4 @@ function post_debootstrap_tweaks() {
|
|||||||
Last chance to touch the `${SDCARD}` filesystem before it is copied to the final media.
|
Last chance to touch the `${SDCARD}` filesystem before it is copied to the final media.
|
||||||
It is too late to run any chrooted commands, since the supporting filesystems are already unmounted.
|
It is too late to run any chrooted commands, since the supporting filesystems are already unmounted.
|
||||||
POST_POST_DEBOOTSTRAP_TWEAKS
|
POST_POST_DEBOOTSTRAP_TWEAKS
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -111,15 +111,6 @@ case "$1" in
|
|||||||
echo heartbeat >/sys/class/leds/*red*/trigger 2>/dev/null || echo heartbeat >/sys/class/leds/*blue*/trigger 2>/dev/null
|
echo heartbeat >/sys/class/leds/*red*/trigger 2>/dev/null || echo heartbeat >/sys/class/leds/*blue*/trigger 2>/dev/null
|
||||||
;;
|
;;
|
||||||
|
|
||||||
mvebu64|mt7623)
|
|
||||||
# configure/enable/start systemd-networkd
|
|
||||||
systemctl start systemd-networkd.service
|
|
||||||
systemctl start systemd-resolved.service
|
|
||||||
systemctl enable systemd-networkd.service
|
|
||||||
systemctl enable systemd-resolved.service
|
|
||||||
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
|
|
||||||
systemctl restart systemd-networkd
|
|
||||||
;;
|
|
||||||
x86|arm64)
|
x86|arm64)
|
||||||
[[ -n "$(dmesg | grep "No NVIDIA GPU found")" ]] && sudo apt-get -y -qq purge nvidia-dkms-510 nvidia-driver-510 nvidia-settings nvidia-common >> /dev/null
|
[[ -n "$(dmesg | grep "No NVIDIA GPU found")" ]] && sudo apt-get -y -qq purge nvidia-dkms-510 nvidia-driver-510 nvidia-settings nvidia-common >> /dev/null
|
||||||
;;
|
;;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user