[Bug 1110787] Re: VPN tunnel connections are not properly setting MTU values

Richard Merren 1110787 at bugs.launchpad.net
Mon Dec 8 16:46:06 UTC 2014


I am still seeing this problem in 14.10, even installed fresh on a new
laptop. I have found a workaround that takes care of the problem
automatically, though. There is a 1412 mtu hardcoded in /etc/vpnc/vpnc-
script, but that may not be relevant to network manager so I didn't mess
with that script. The NetworkManager man page notes that any scripts
placed in /etc/NetworkManager/dispatcher.d will run when network
connections go up and down, and that they will receive the name of the
interface and the action as parameters to the script. So I placed the
following script in that directory under the name "70vpnMtuCorrection"
(the scripts run in alpha order, and there was already one more there so
I wanted this one to run later...but you can call it anything else you
like and it should still work). The script needs to be owned by root and
executable by all (so use sudo to save it and execute a "chmod a+x" on
the file"). The script determines if the tun0 interface is coming up, if
we have a wlan0 connection, calculates the necessary mtu value, and
resets it if the MTU value needs to be decreased. This seems to be
handling my issue, but I would still prefer to see that it is handled
properly by network manager in the first place. But if you are having
the same problem, this should remove a pesky annoyance like it is doing
for me:

/etc/vpnc/vpnc-script/70vpnMtuCorrection:

#!/bin/bash
TUN0_INTERFACE_NAME="tun0"
WLAN0_INTERFACE_NAME="wlan0"
VPN_UP_ACTION_NAME="vpn-up"
MTU_DIFFERENCE=78

INTERFACE_NAME=${1}
ACTION=${2}

if [ "${INTERFACE_NAME}" != "${TUN0_INTERFACE_NAME}" ]
then
    exit 0
fi

if [ "${ACTION}" != "${VPN_UP_ACTION_NAME}"]
then
    exit 0
fi

#Make sure we have a current TUN0 entry before we continue.
CURRENT_TUN0_MTU=`sudo ip link list | grep "${TUN0_INTERFACE_NAME}:" | sed -r "s/.*mtu ([0-9]+).*/\1/"`
if [ "${WLAN_MTU}" == "" }
then
    exit 0
fi

#Also make sure we have a current WLAN0 entry
WLAN_MTU=`sudo ip link list | grep "${WLAN0_INTERFACE_NAME}:" | sed -r "s/.*mtu ([0-9]+).*/\1/"`
if [ "${WLAN_MTU}" == "" }
then
    exit 0
fi

NEW_TUN0_MTU=$((${WLAN_MTU} - ${MTU_DIFFERENCE}))

if [ ${NEW_TUN0_MTU} >= ${CURRENT_TUN0_MTU} ]
then
    exit 0
fi

ip link set ${TUN0_INTERFACE_NAME} mtu ${NEW_TUN0_MTU}

-- 
You received this bug notification because you are a member of Network-
manager, which is subscribed to NetworkManager.
https://bugs.launchpad.net/bugs/1110787

Title:
  VPN tunnel connections are not properly setting MTU values

To manage notifications about this bug go to:
https://bugs.launchpad.net/network-manager/+bug/1110787/+subscriptions



More information about the Ubuntu-reviews mailing list