Итак, картина маслом по хлебу: при смене провайдера перестал работать VPN (securityKISS, kebrum) в Ubuntu. Соединения настроены через Network Manager. Однако, обнаружилось, что если подключить кабель к ноутбуку напрямую, а не через роутер, то всё работает.
Схема такая: Интернет → Провайдер → PPPoE → Роутер (Zyxel Keenetic Lite) → Компьютеры с Ubuntu (12.04.4 64 бита).
До этого провайдер не использовал PPPoE и всё работало.
Итак, тут есть сразу две проблемы. Во-первых, нужно проверить, включен ли проброс пакетов в ядре:
Ответом должно быть "1". Если ответ "0", то нужно включить проброс пакетов на постоянной основе (будет действовать после перезагрузки):cat /proc/sys/net/ipv4/ip_forward
Но перезагружаться не обязательно, можно включить проброс пакетов в текущей сессии:echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
Но это только полбеды. Если у вас заработал VPN - поздравляю. Если нет - читаем дальше. Проблема тут в том, что провайдер использует PPPoE. А это значит, MTU (максимальный размер пакета) уменьшается. Роутер его тоже уменьшит. Проверяем:echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
Ответом будет что-то вроде:$ traceroute --mtu 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 65000 byte packets 1 192.168.1.1 (192.168.1.1) 0.868 ms F=1400 0.740 ms 0.669 ms 2 x.x.x.x (x.x.x.x) 1.722 ms 1.684 ms 1.582 ms
Вот там есть F=1400 это и есть наш MTU. Заходим в свойства соединения с роутером в Network Manager и меняем MTU на это число.
Собственно, всё, после этого VPN должен работать.
Собственно, всё, после этого VPN должен работать.