La MTU "muy alta" (¿probablemente?) se configura automáticamente en la interfaz Wireguard

La MTU "muy alta" (¿probablemente?) se configura automáticamente en la interfaz Wireguard

Entonces, tengo un VPS ejecutándose en Amazon Lightsail e instalé Wireguard en él; Configuré una interfaz de esta manera:

[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 = ********************************************

Entonces sucedió algo muy extraño: abro el iface y lo ejecuto sudo ip addr, luego obtengo este resultado

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

¿Lo raro? Mira elmtu 8921

Luego voy al archivo conf y, para mi sorpresa, el valor que configuré para mtu se sobrescribe con 8921.

sudo systemctl status [email protected]da esta salida:

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.

¿Que está pasando aqui?

Respuesta1

SaveConfig = truedirigewg-rápidopara sobrescribir el archivo de configuración de una interfaz WireGuard con la configuración actual de la interfaz cuando la interfaz se apaga (o reinicia). Este es un comportamiento indeseable para muchos usos de WireGuard, razón por la cual no está activado de forma predeterminada. La razón más común por la que querrías activarlo es si realizas cambios frecuentes en una interfaz WireGuard activa mientras está activa y no quieres tener que duplicar esos cambios manualmente en el archivo de configuración.

Si usa SaveConfig = truey desea realizar un cambio en la interfaz WireGuard, normalmente lo hará a través delwgcomando (para configuraciones específicas de WireGuard), o (en Linux) elIPcomando (para la configuración general de la interfaz de red).

Por ejemplo, para configurar la MTU de una interfaz WireGuard activa denominada wg0, 1420ejecute el siguiente comando (como root):

ip link set wg0 mtu 1420

Alternativamente, cierre la interfaz WireGuard con el wg-quick down wg0comando (o systemctl stop wg-quick@wg0si la está ejecutando como un servicio systemd), realice el cambio en el archivo de configuración WireGuard y luego inicie la interfaz nuevamente con el wg-quick up wg0comando (o systemctl start wg-quick@wg0).


Si no configura explícitamente una MTU para una interfaz WireGuard, wg-quick es lo suficientemente inteligente como para hacer una buena suposición, basándose en la MTU de la interfaz de red (física) que espera que use el túnel. La interfaz de red de la mayoría de las instancias EC2 utilizamarcos gigantes(MTU de 9001). Entonces, en esas instancias EC2, wg-quick adivinará que la interfaz WireGuard debe usar una MTU de 8921 (80 bytes más pequeños que 9001, para permitir que cada paquete se empaquete con encabezados UDP/IP y WireGuard).

Entonces, lo que probablemente sucedió es que originalmente configuró la interfaz WireGuard con SaveConfig = true, pero sin una MTU. Cuando inició la interfaz con wg-quick, configuró una MTU de 8921 para la interfaz. Luego, mientras la interfaz estaba activa, editó el archivo de configuración de WireGuard para agregar MTU = 1420. Cuando reinició la interfaz, su cambio fue sobrescrito por la MTU existente para la interfaz.

información relacionada