Настраиваем два одновременных VPN соединения в Linux (для доступа в инет и для доступа к локальным ресурсам ISP)

    Подключившись к новому провайдеру, предоставляющему доступ в сеть по впн пришлось столкнуться с кучей манов и факов на тему поднятия двух одновременно работающих впн-соединений в линях. Поднимал в убунте 9.10 и решил как-то скомпилировать инфу в один надеюсь понятный фак.

    Данный FAQ будет полезен тем, кто хочет настроить два одновременных впн-соединения для локальной и внешней сети.


    Для начала нужно скачать пакет, который обеспечит поддержку нужного нам протокола соединения, для этого введём в терминале:

    sudo apt-get install pptp-linux

    После того как пакет установлен, идём писать конфиг соединения в папку /etc/ppp/peers, для этого нам понадобятся права админа (если их уже нет), для удобства напишу стандартный терминальный вход с нужными правами в терминальном редакторе nano в создаваемый файл конфигурации соединения:

    sudo nano /etc/ppp/peers/connection_name1

    Где connection_name1 — имя создаваемого подключения (можете назвать как вам удобно).
    Далее вводим в окно редактирования данные соединения:

    pty «pptp vpn.isp.ru --nolaunchpppd»
    user «ваш логин»
    password «ваш пароль»
    unit 0
    nodeflate
    nobsdcomp
    noauth
    replacedefaultroute
    defaultroute
    persist
    maxfail 0


    Где vpn.isp.ru — впн-сервер для доступа в интернет вашего провайдера, а логин и пароль для доступа к интернету.
    Жмём ctrl+x, потом подтверждаем сохранение клавишей Y.
    Итак, первый конфиг готов, далее пишем второй для локального соединения:

    sudo nano /etc/ppp/peers/connection_name2

    Где опять же имя соединения можете придумать своё=)
    Туда пишем:

    pty «pptp vpnx.isp.ru --nolaunchpppd»
    user «ваш логин»
    password «ваш пароль»
    unit 1
    lock
    nodeflate
    nobsdcomp
    noauth
    persist
    maxfail 0


    Где vpnx.isp.ru — впн-сервер для доступа в локальную среду вашего провайдера, а логин и пароль также для локального доступа.
    Сохраняем всё это дело ctrl+x, затем Y.

    Конфиги готовы.
    Теперь настроим автозапуск и маршрутизацию на локалку.
    Для этого редактируем /etc/network/interfaces:

    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet dhcp
    'up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.66.6.1

    auto connection_name1
    iface connection_name1 inet ppp
    provider connection_name1

    auto connection_name2
    iface connection_name2 inet ppp
    provider connection_name2


    Тут вы можете внести маршруты для доступа к ресурсам непосредственно через имеющееся соединение (без впн). Пример такого маршрута я закомментировал, поэтому при добавлении маршрута Вам придётся убрать символ " ' " из данного конфига.
    Где на месте 10.66.6.1 должен быть Ваш локальный шлюз.
    Далее идём писать скрипты маршрутов для connection_name2.
    Нам нужно создать /etc/ppp/ip-up.d/route
    Пишем в терминале:

    sudo nano /etc/ppp/ip-up.d/route

    Пишем в открывшемся редакторе маршруты вида:

    #!/bin/sh
    ip route add 10.200.0.0/16 dev ppp1


    Где ppp1 — ссылка на соединение connection_name2
    Жмём ctrl+x, потом подтверждаем сохранение клавишей Y.

    Затем делаем этот скрипт исполняемым, для этого пишем в терминале:

    sudo chmod +x /etc/ppp/ip-up.d/route

    Далее нужно создать скрипт на удаление маршрутов.
    Пишем в терминале:

    sudo nano /etc/ppp/ip-down.d/route

    Пишем в открывшемся редакторе:

    #!/bin/sh
    ip route add default gw dev eth0


    Жмём ctrl+x, потом подтверждаем сохранение клавишей Y.

    Затем делаем этот скрипт исполняемым, для этого пишем в терминале:

    sudo chmod +x /etc/ppp/ip-down.d/route

    Всё, теперь пишем в терминале команду перезапуска сети:

    sudo /etc/init.d/networking restart

    И теперь инет настроен, маршруты прописаны. Конечная цель достигнута.
    Надеюсь ничего не забыл.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 18

      0
      ничего необычного обычный пптп, обычный роутинг…
        0
        я бы сказал обычный копи-паст опеннета
          0
          Ну-ну=) пруф-линк в студию с такими же задачами и удаляю топик))
          +1
          Согласен, просто фак, который надеюсь облегчит кому-то жизнь=) Я недавно пересел на линь и обнаружил что как раз такого рода факов в сети очень проблематично найти. Думаю лишним точно не будет)
        • НЛО прилетело и опубликовало эту надпись здесь
            0
            Что-то не так? Это я пример привёл маршрута.
            • НЛО прилетело и опубликовало эту надпись здесь
                +1
                совершенно верно, при проблемах со связью скорее всего поменяются имена интерфейсов, а то и друг с другом :)
                это можно обойти, указывая в конфигах параметры вида «unit 0» для ppp0, например.
                  0
                  2 Babl & drunken:
                  Спасиб за замечание, скилла ещё маловато в линях=) Сам сталкивался с такой проблемой, но не знал как с рандомом бороться. Сейчас повникаю в это и поправлю фак.
                    0
                    сейчас мозг уже не варит, завтра вечером вникать буду)
                      0
                      Пофикшено)
              • НЛО прилетело и опубликовало эту надпись здесь
              +1
              … вот бы ещё скрипт для автоматического восстановления подключения после обрыва связи… =)
                0
                а зачем такой скрипт?
                maxfail 0 и persist отлично справляются со своей задачей :)
                0
                Cлушайте, что за ужасный провайдер?
                Обычно VPN(PPTP) нужно поднять для доступа в Интернет, а для доступа в локалку ничего подымать не надо…
                  0
                  Там просто двухуровневая локалка, первый уровень — локалка прова, второй — пиринговые сети=) Первая есть по дефолту, на вторую нужно впн поднимать.
                  0
                  Может конечно офтоп, кто-нибудь может сказать что в точности делает "--nolaunchpppd"?
                  Если, к примеру, у меня запущен VPN сервер на той же машине, этот параметр можно опустить?
                    0
                    В конфиге не хватает настроек MTU/MRU. Без их могут быть постоянные потери и отвалы соединения.
                    P.s. --clamp-mss-to-pmtu может не спасти. Разве что set-mss

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое