Есть у меня сервачок с доступом по VPN–PPTP. На сервере NFS-шара с очень большими файлами, которые иногда нужно туда-сюда гонять через этот VPN. Туда файлы кое-как ползут, а вот при попытке скачать что-то с сервера происходит разрыв соединения. И не понятно, то-ли это NFS шалит, то-ли PPTP…
Недолгая медитация в Гугле натолкнула на решение. Оказывается, в настройках PPTP нужно было указать правильный MTU. Делов–то! Однако, во–первых — размер правильного MTU не известен, а интерфейс VPN–подключения в Kubuntu 14.10 (KDE 4.14.2) не имеет никаких средств для тонкой настройки MTU.
Короче, к делу! Узнать правильный MTU можно командой:
- ping -s 1400 -M do 192.168.0.1
Здесь, 1400 — предполагаемая величина MTU (на самом деле нет), а 192.168.0.1 — адрес VPN–сервера.
После запуска, команда может сообщить следующее:
- gva@betelgeuse:~$ ping -s 1400 -M do 192.168.0.1
- PING 192.168.0.1 (192.168.0.1) 1400(1428) bytes of data.
- ping: local error: Message too long, mtu=1400
- ping: local error: Message too long, mtu=1400
- ping: local error: Message too long, mtu=1400
- ^C
- --- 192.168.0.1 ping statistics ---
- 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 1999ms
Это значит, что предполагаемый размер MTU нужно снизить (в данном случае на 28) и снижать его до тех пор, пока не получится такой вывод:
- gva@betelgeuse:~$ ping -s 1372 -M do 192.168.0.1
- PING 192.168.0.1 (192.168.0.1) 1372(1400) bytes of data.
- 1380 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=18.8 ms
- 1380 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=14.5 ms
- ^C
- --- 192.168.0.1 ping statistics ---
- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms
- rtt min/avg/max/mdev = 14.555/16.718/18.882/2.167 ms
Таким образом найдена искомая величина MTU, которую и нужно записать в файл /etc/ppp/options.pptp следующим образом:
- mtu 1372
Да, вот так просто: в любом месте файла в пустой строке.
Далее реконнект и вот оно — счастье: файлы копируются без лишних вопросов и каких–либо обрывов соединения.