Настраиваем два одновременных 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

    И теперь инет настроен, маршруты прописаны. Конечная цель достигнута.
    Надеюсь ничего не забыл.
    Поделиться публикацией
    Никаких подозрительных скриптов, только релевантные баннеры. Не релевантные? Пиши на: adv@tmtm.ru с темой «Полундра»

    Зачем оно вам?
    Реклама
    Комментарии 18
    • 0
      ничего необычного обычный пптп, обычный роутинг…
      • 0
        я бы сказал обычный копи-паст опеннета
        • 0
          Ну-ну=) пруф-линк в студию с такими же задачами и удаляю топик))
        • +1
          Согласен, просто фак, который надеюсь облегчит кому-то жизнь=) Я недавно пересел на линь и обнаружил что как раз такого рода факов в сети очень проблематично найти. Думаю лишним точно не будет)
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            Что-то не так? Это я пример привёл маршрута.
            • НЛО прилетело и опубликовало эту надпись здесь
              • +1
                совершенно верно, при проблемах со связью скорее всего поменяются имена интерфейсов, а то и друг с другом :)
                это можно обойти, указывая в конфигах параметры вида «unit 0» для ppp0, например.
                • 0
                  2 Babl & drunken:
                  Спасиб за замечание, скилла ещё маловато в линях=) Сам сталкивался с такой проблемой, но не знал как с рандомом бороться. Сейчас повникаю в это и поправлю фак.
                  • 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

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