LINUX.ORG.RU

История изменений

Исправление Aber, (текущая версия) :

На клиенте systemd-resolved? Уже не помню всех деталей, но на клиенте у меня в файле /etc/NetworkManager/dispatcher.d/flush-dns-cache

#!/usr/bin/bash

/usr/bin/echo "NM-SCRIPT-DEBUG: DEVICE_IFACE=$DEVICE_IFACE NM_DISPATCHER_ACTION=$NM_DISPATCHER_ACTION" | /usr/bin/systemd-cat

case $NM_DISPATCHER_ACTION in
    up)
        [[ $DEVICE_IFACE =~ ^tun[0-9]+$ ]] && {
            /usr/bin/resolvectl default-route $DEVICE_IFACE true
            /usr/bin/resolvectl domain $DEVICE_IFACE '~.'
            /usr/bin/resolvectl dns $DEVICE_IFACE 8.8.8.8
    ;;
    vpn-up)
            /usr/bin/resolvectl default-route $DEVICE_IFACE false
            /usr/bin/resolvectl domain $DEVICE_IFACE 'skip.'
            /usr/bin/resolvectl flush-caches
    ;;
    vpn-down)
            /usr/bin/resolvectl flush-caches
            /usr/bin/resolvectl default-route $DEVICE_IFACE true
            /usr/bin/resolvectl domain $DEVICE_IFACE '~.'
            /usr/bin/resolvectl dns $DEVICE_IFACE 77.88.8.8
    ;;
esac
exit 0

# Send signal USR1 to systemd-resolve, it should print DNS cache into syslog:
#     sudo killall -SIGUSR1 systemd-resolve 
# Check syslogs for results:
#     journalctl -b-0 -u systemd-resolved -f | grep -iE "google|yandex|ya|cache|flush"

И наверное весь смысл этого скрипта был в том чтоб заставить systemd-resolved поменять default-route:

sudo resolvectl default-route wlp4s0 false
sudo resolvectl default-route tun0 true 

Ну и чтоб сбросить DNS кеш после включения/выключения тоннеля.

Исходная версия Aber, :

На клиенте systemd-resolved? Уже не помню всех деталей, но на клиенте у меня в файле /etc/NetworkManager/dispatcher.d/flush-dns-cache

#!/usr/bin/bash

/usr/bin/echo "NM-SCRIPT-DEBUG: DEVICE_IFACE=$DEVICE_IFACE NM_DISPATCHER_ACTION=$NM_DISPATCHER_ACTION" | /usr/bin/systemd-cat

case $NM_DISPATCHER_ACTION in
    up)
        [[ $DEVICE_IFACE =~ ^tun[0-9]+$ ]] && {
            /usr/bin/resolvectl default-route $DEVICE_IFACE true
            /usr/bin/resolvectl domain $DEVICE_IFACE '~.'
            /usr/bin/resolvectl dns $DEVICE_IFACE 8.8.8.8
    ;;
    vpn-up)
            /usr/bin/resolvectl default-route $DEVICE_IFACE false
            /usr/bin/resolvectl domain $DEVICE_IFACE 'skip.'
            /usr/bin/resolvectl flush-caches
    ;;
    vpn-down)
            /usr/bin/resolvectl flush-caches
            /usr/bin/resolvectl default-route $DEVICE_IFACE true
            /usr/bin/resolvectl domain $DEVICE_IFACE '~.'
            /usr/bin/resolvectl dns $DEVICE_IFACE 77.88.8.8
    ;;
esac
exit 0

# Send signal USR1 to systemd-resolve, it should print DNS cache into syslog:
#     sudo killall -SIGUSR1 systemd-resolve 
# Check syslogs for results:
#     journalctl -b-0 -u systemd-resolved -f | grep -iE "google|yandex|ya|cache|flush"

И наверное весь смысл этого скрипта был в том чтоб заставить systemd-resolved поменять default-route:

sudo resolvectl default-route wlp4s0 false
sudo resolvectl default-route tun0 true