Настройка L2TP в Debian/Ubuntu

Vladimir
Опубликовано в: Linux

Увеличиваем производительность VPN-тоннеля путем использования L2TP вместо PPTP

Так сложилось, что очень многие провайдеры (как в Украине, так и в России) предоставляют подключение к интернет через VPN-соединение; в Linux оно реализуется через протокол PPTP (стоит отметить, что в дитстрибутивах Linux полная поддержка PPTP отсутствовала из-за опасения патентных претензий по поводу протокола MPPE; официально поддержка PPTP была начата с версии ядра Linux 2.6.14).

Некоторые провайдеры предоставляют возможность подключения по протоколу L2TP. Не вдаваясь в технические подробности, L2TP — протокол туннелирования, гораздо примитивнее PPTP, и, соответственно, требует намного меньше накладных расходов (хотя и менее защищен). Прирост производительности связан с уменьшением коллизий пакетов (по сравнению с PPTP) и сжатии данных на уровне протокола (L2TP).

Лично мне использование L2TP привело к увеличению скорости примерно в 10 раз.

Техническое отступление:

L2TP — сетевой протокол туннелирования канального уровня, сочетающий в себе протокол L2F, разработанный компанией Cisco, и протокол PPTP корпорации Microsoft. Является стандартом IETF (RFC 2661).

Переходим к настройке L2TP в Ubuntu Linux. Сказанное должно быть справедливым и для Debian.

Очень рекомендую убрать пакет NetworkManager:

[-]
View Code Bash
sudo aptitude remove network-manager

Нам понадобится пакет xl2tpd:

[-]
View Code Bash
sudo aptitude install xl2tpd

После чего переходим к редактированию конфигурационных файлов. Сразу отмечу, что приводимые мной настройки относятся к моему провайдеру (SevStar); для других провайдеров, возможно, потребуются некоторые изменения.

  1. Редактируем файл /etc/xl2tpd/xl2tpd.conf (sudo nano /etc/xl2tpd/xl2tpd.conf):
    [-]
    View Code Text
    [global]
    access control = yes

    [lac sevstar]
    # Хост или IP-адрес L2TP-сервера провайдера
    lns = l2tp.sevstar.net
    autodial = yes
    redial = yes
    redial timeout = 3
    require authentication = no
    ppp debug = no
    pppoptfile = /etc/ppp/options.xl2tpd
  2. Редактируем /etc/ppp/options.xl2tpd (sudo nano /etc/ppp/options.xl2tpd) — если файл не существует, его нужно создать:
    [-]
    View Code Text
    lock
    noauth

    nobsdcomp
    nodeflate
    noaccomp

    refuse-eap
    refuse-pap
    refuse-chap
    nomppe

    mru 1500
    mtu 1500

    nopersist
    maxfail 0
    defaultroute

    name your_username_for_l2tp
    password your_password_for_l2tp

Важное замечание: к моменту запуска xl2tpd в системе должны быть прописаны маршруты к L2TP-серверу провайдера (и DNS-серверам, если в lns указано имя хоста, а не IP-адрес). Практически это реализуется через /etc/network/interfaces:

[-]
View Code Text
auto eth1
iface eth1 inet dhcp
    pre-up /etc/network/firewall.sh
    post-up /sbin/route add -net 10.10.0.0/16 gw 10.10.72.1
    post-up /sbin/route add -net 192.168.0.0/16 gw 10.10.72.1

Разумеется, что нужно прописывать свои маршруты :-)

VPN через PPTP:

VPN через L2TP:

Добавить в закладки

Связанные записи

5
Авг
2008

Комментарии к статье «Настройка L2TP в Debian/Ubuntu» (3)  »

  1. SaltyDog says:

    Тут разве что добавить немного. Севсрань пользует L2TP в сочетании с IPSec, поэтому недостатка в безопасности особо не наблюдается.
    Единственной проблемой для сисадминов встанет время, ведь на настройку такого сервера и каждого клиента надо потратить намного больше времени, чем на элементарный pptpd :)

  2. Vladimir says:

    Мне казалось, что СевСтар использует шифрование только для аутентификации, сам же канал передачи данных не шифруется?

  3. Vladimir says:

    Такая вот фигня: в Ubuntu почему-то при загрузке системы в syslog вылазит такая ошибка:

    open_controlfd: Unable to open /var/run/xl2tpd/l2tp-control for reading.
    

    Если создать каталог /var/run/xl2tpd и перезапустить xl2tpd, то Интернет появляется. Я так и не понял, кто убивает этот каталог.

    Решение следующее: в файл /etc/init.d/xl2tpd добавляем строки

    [-]
    View Code Bash
    case "$1" in
      start)
    ###################################################
        if !([ -f /var/run/xl2tpd/l2tp-control ]); then
            mkdir -p /var/run/xl2tpd
            touch /var/run/xl2tpd/l2tp-control
        fi
    ###################################################
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
            --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;

Подписаться на RSS-ленту комментариев к статье «Настройка L2TP в Debian/Ubuntu» Trackback URL: http://blog.sjinks.org.ua/linux/294-set-up-l2tp-in-debian-ubuntu/trackback/

Оставить комментарий к записи «Настройка L2TP в Debian/Ubuntu»

Вы можете использовать данные тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, Вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя