"sehr hohe" (wahrscheinlich?) MTU wird automatisch auf der Wireguard-Schnittstelle eingestellt

"sehr hohe" (wahrscheinlich?) MTU wird automatisch auf der Wireguard-Schnittstelle eingestellt

Ich habe also einen VPS, der auf Amazon Lightsail läuft, und habe Wireguard darauf installiert. Ich habe eine Schnittstelle folgendermaßen eingerichtet:

[Interface]
Address = 10.255.128.1/24
MTU = 1420
SaveConfig = true
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = ********************************************

Dann passierte etwas sehr Seltsames: Ich öffne das iface und führe aus sudo ip addr, dann bekomme ich diese Ausgabe

3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 8921 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none
    inet 10.255.128.1/24 scope global wg0
       valid_lft forever preferred_lft forever

Das Seltsame? Schauen Sie sich diemtu 8921

Dann gehe ich zur Konfigurationsdatei und zu meiner Überraschung wird der von mir für MTU festgelegte Wert durch 8921 überschrieben.

sudo systemctl status [email protected]gibt diese Ausgabe aus:

Nov 18 16:04:08 ip-172-26-0-77 systemd[1]: Starting WireGuard via wg-quick(8) for wg0...
Nov 18 16:04:08 ip-172-26-0-77 wg-quick[583]: [#] ip link add wg0 type wireguard
Nov 18 16:04:09 ip-172-26-0-77 wg-quick[583]: [#] wg setconf wg0 /dev/fd/63
Nov 18 16:04:09 ip-172-26-0-77 wg-quick[583]: [#] ip -4 address add 10.255.128.1/24 dev wg0
Nov 18 16:04:09 ip-172-26-0-77 wg-quick[583]: [#] ip link set mtu 8921 up dev wg0
Nov 18 16:04:09 ip-172-26-0-77 wg-quick[583]: [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING >
Nov 18 16:04:09 ip-172-26-0-77 systemd[1]: Finished WireGuard via wg-quick(8) for wg0.

Was ist denn hier los?

Antwort1

SaveConfig = trueleitetwg-schnellum die Konfigurationsdatei einer WireGuard-Schnittstelle mit den aktuellen Einstellungen der Schnittstelle zu überschreiben, wenn die Schnittstelle heruntergefahren (oder neu gestartet) wird. Dies ist für viele Anwendungen von WireGuard ein unerwünschtes Verhalten, weshalb es standardmäßig nicht aktiviert ist. Der häufigste Grund, warum Sie es aktivieren möchten, ist, wenn Sie häufige Änderungen an einer aktiven WireGuard-Schnittstelle vornehmen, während diese aktiv ist, und diese Änderungen nicht manuell in der Konfigurationsdatei duplizieren möchten.

Wenn Sie verwenden SaveConfig = trueund eine Änderung an der WireGuard-Schnittstelle vornehmen möchten, tun Sie dies normalerweise über daswgBefehl (für WireGuard-spezifische Einstellungen) oder (unter Linux) denIP-AdresseBefehl (für allgemeine Netzwerkschnittstelleneinstellungen).

Um beispielsweise die MTU einer aktiven WireGuard-Schnittstelle mit dem Namen festzulegen wg0, 1420führen Sie den folgenden Befehl aus (als Root):

ip link set wg0 mtu 1420

Alternativ können Sie die WireGuard-Schnittstelle mit dem Befehl herunterfahren wg-quick down wg0(oder wenn Sie sie als systemd-Dienst ausführen), die Änderung an der WireGuard-Konfigurationsdatei vornehmen und die Schnittstelle dann mit dem Befehl (oder ) systemctl stop wg-quick@wg0erneut starten .wg-quick up wg0systemctl start wg-quick@wg0


Wenn Sie eine MTU für eine WireGuard-Schnittstelle nicht explizit konfigurieren, ist wg-quick intelligent genug, um eine gute Schätzung für Sie vorzunehmen, basierend auf der MTU der (physischen) Netzwerkschnittstelle, die der Tunnel voraussichtlich verwenden wird. Die Netzwerkschnittstelle der meisten EC2-Instanzen verwendetJumbo-Rahmen(MTU von 9001). Auf diesen EC2-Instanzen schätzt wg-quick daher, dass die WireGuard-Schnittstelle eine MTU von 8921 verwenden sollte (80 Bytes kleiner als 9001, damit jedes Paket mit UDP/IP- und WireGuard-Headern umschlossen werden kann).

Wahrscheinlich ist Folgendes passiert: Sie haben die WireGuard-Schnittstelle ursprünglich mit SaveConfig = true, aber ohne MTU konfiguriert. Als Sie die Schnittstelle mit wg-quick gestartet haben, wurde eine MTU von 8921 für die Schnittstelle festgelegt. Anschließend haben Sie, während die Schnittstelle aktiv war, die WireGuard-Konfigurationsdatei bearbeitet, um hinzuzufügen MTU = 1420. Als Sie die Schnittstelle neu gestartet haben, wurde Ihre Änderung durch die vorhandene MTU für die Schnittstelle überschrieben.

verwandte Informationen