
私は、Windows 2019 でホストされ、IKEv2 で構成された VPN サーバーを所有しています。すべてのクライアントですべてがうまく機能しますが、Linux クライアントでは最後に 1 つ調整する必要がある点があります。そのため、明確にするために、ディスパッチャーに配置された次のスクリプトを使用して MTU を調整し、必要なルートを追加します (接続が L2TP の場合は必要ありません)。
#!/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
Docker マシンにはルーティング テーブル 220 を使用します。
そして、Wi-Fi 経由で接続するとすべて正常に動作し、ブラウザーや curl 経由での Web サイトへのアクセスも問題なく行われますが、USB-C アダプターをイーサネット ポートに接続するとすぐに、一部のサイトが応答しなくなります。
最初は MTU の問題だと思いましたが、他に何か問題の原因があるのではないか、あるいはそれが不可能なのではないかと思っています。
NetworkManager で strongswan パッケージを使用することを指定します。