
Ich habe einen VPN-Server, der unter Windows 2019 gehostet und auf IKEv2 konfiguriert ist. Von allen Clients aus funktioniert alles sehr gut. Auf Linux-Clients muss ich jedoch noch einen letzten Punkt anpassen. Zur Verdeutlichung verwende ich daher das folgende im Dispatcher positionierte Skript, um die MTU anzupassen und die erforderlichen Routen hinzuzufügen (was bei der L2TP-Verbindung nicht erforderlich war):
#!/bin/bash
set -xv
DEFAULT_MTU=1500
MTU=1400
INTERFACE=$(ip route | grep -v linkdown | awk '$1 == "default" {if (!min || $5 < min) {min=$5; iface=$5}} END {print iface}')
if [[ ! "$1" =~ ^nm-xfrm-.* ]] && [[ ! "$1" =~ tun.* ]]; then
echo "$1 is not a vpn interface. Exit script"
exit 0
fi
if [ ! -d /sys/class/net/tun0 ]; then
for itf in $(ls /sys/class/net/ | grep -E -v '^(lo|ppp0)$' ); do
sudo ip link set dev "$itf" mtu "$DEFAULT_MTU"
done
fi
case "$2" in
up|vpn-up)
ip link set dev "$INTERFACE" mtu "$MTU"
ip link set dev $1 mtu "$MTU"
ip route add to default dev $1 proto static scope link metric 50
ip route add to XX.XX.XX.XX/XX dev $1 proto static scope link metric 50 table 220
;;
down|vpn-down)
for itf in $(ls /sys/class/net/ | grep -E -v '^(lo|ppp0)$' ); do
ip link set dev "$itf" mtu "$DEFAULT_MTU"
done
;;
*)
exit 0
;;
esac
Ich verwende die Routing-Tabelle 220 für die Docker-Maschine.
Und es stellt sich heraus, dass alles einwandfrei funktioniert, wenn ich eine Verbindung über WLAN herstelle. Der Zugriff auf Websites über den Browser und über Curl funktioniert problemlos. Sobald ich jedoch einen USB-C-Adapter mit einem Ethernet-Anschluss anschließe, reagieren einige Websites nicht mehr.
Ich dachte zunächst, es handele sich um ein MTU-Problem, frage mich jedoch, ob das Problem nicht durch eine andere Ursache verursacht wird oder ob es vielleicht nicht möglich ist.
Ich gebe an, dass ich das Strongswan-Paket mit NetworkManager verwende.