Объединяем две локальные сети через интернет. Vpn lan to lan. Asus wl520gu+dd-wrt и FreeBSD+mpd5

    Введение.
    Мне повезло работать в организации которая развивается, и время от времени возникают новые задачи, позволяющие и мне расти. На этот раз мне было необходимо объединить головной офис и второй филиал. Задача для меня не новая, но к её решению я решил подойти иначе нежели раньше.
    На текущий момент в головном офисе установлена FreeBSD + mpd5 в качестве PPTP сервера. В первом филиале аналогично(за исключением того что используется как vpn клиент). Так же есть 8 точек где установлено по одному компьютеру с ОС Windows XP «цепляющихся» к головному стандартным клиентом этой ОС.
    Мне необходимо создать еще один туннель между двумя сетями, но любимую ОС FreeBSD я использовать не могу, в силу ограниченного места для установки роутера во втором филиале(это магазин розничной торговли, все оборудование приютилось на узеньком стелаже). К тому же хотелось попробовать прошивку dd-wrt, о которой так много слышал, в деле.

    Начало.
    Итак мы имеем:
    VPN сервер: FreeBSD 7.3(Release i386) + mpd5(Version 5.3)
    VPN клиент: Asus wl520gu + dd-wrt(DD-WRT v24-sp2 (10/10/09) vpn)
    *таки прошивка пока что стандартная, а dd-wrt еще только предстоит «навернуть», чем и займемся.

    Прошивка роутера.
    Во многих статьях, найденных мною, авторы почему-то опускали описание процесса прошивки маршрутизатора, ссылаясь на простоту этого действа. Я потратил около получаса на чтение документации на официальном сайте, написано весьма доходчиво. Но я все таки опишу, по шагам, то что я делал.

    1.Необходимо выполнить аппаратный сброс, так называемый 30/30/30. Это необходимо для того чтобы попасть в инженерный режим. Получить возможность «залить» прошивку.
    При включенном питании роутера нажимаем кнопку reset, держим 30 секунд, не отпуская кнопку отключаем питание и держим еще 30 секунд, не отпуская кнопки включаем питание и вновь удерживаем кнопку reset 30 секунд.
    Хинт: по умолчанию ip роутера 192.168.1.1. Если «пингануть» его до аппаратного сброса 30/30/30 то ttl будет равен 64, после сброса ttl становится равным 100.

    2.Качаем прошивку dd-wrt.v24_mini_asus.trx
    *другие прошивки/прошивки для других моделей роутеров доступны на dd-wrt.com/site/support/router-database

    3.Следующим шагом у нас идет заливка скачанной прошивки. Для этого нам понадобится утилита tftp(tftp — trivial file transfer program). Поскольку у меня на нетбуке установлена Ubuntu, то установка сводится к одной команде
    sudo aptitude install tftp
    переходим в папку с файлом прошивки
    cd Загрузки
    подключимся к роутеру
    tftp 192.168.1.1
    выбираем бинарный режим
    mode binary
    отправляем файл с прошивкой
    put dd-wrt.v24_mini_asus.trx

    Теперь ВНИМАНИЕ, после того как программа проинформирует вас о окончании процесса передачи файла, включите секундомер и ЖДИТЕ РОВНО ПЯТЬ ЗЕМНЫХ МИНУТ.

    4.По прошествии 5 минут, отключаем железяку от питания, и ждем 30-40 секунд. Включаем, проверяем, если при «пинговании» видим ttl=64, то можно уже чуть-чуть радоваться =)

    5.Идем на 192.168.1.1, нас попросят изменить имя пользователя и пароль. Меняем и вновь перезагружаем маршрутизатор(этот шаг я выполнил больше из-за перестраховки).

    Теперь можно полазить по web интерфейсу, поверьте он весьма и весьма приятен и интересен
    image
    image
    image
    image

    Далее можно залить какую-то другую прошивку от dd-wrt используя уже web интерфейс. В моем случаем это dd-wrt.v24_vpn_generic.bin. Тут уже точно ничего сложного, но не забывайте про ПЯТЬ ЗЕМНЫХ МИНУТ =)))
    *здесь заботливые создатели покажут нам таймер отсчитывающий секунды с 300

    После чего настраиваем под себя. Повторюсь, web интерфейс весьма хорош. На каждой страничке есть подсказка, не примените воспользоваться!

    Настройка VPN
    В результате экспериментов конфиг mpd5 принял следующий вид
    pptp_vpn_filial2:
    create bundle static pptp1
    set ipcp ranges 10.255.255.11/32 10.255.255.12/32
    set ipcp dns 192.168.0.5
    set iface route 192.168.4.0/24
    set iface enable proxy-arp
    set iface enable on-demand
    set bundle enable compression
    set ccp yes mppc
    set mppc yes e128
    set mppc enable compress
    set bundle enable crypt-reqd
    set mppc yes stateless
    create link static lpptp1 pptp
    set link action bundle pptp1
    set link no pap
    set link yes chap
    set auth authname "onotole"
    set auth password "ololololo"
    set link mtu 1460
    set link keep-alive 0 0
    set link max-redial -1
    set pptp peer 172.17.59.12
    set link enable incoming


    настройки ASUS'а на скрине
    image
    Вот пожалуй и все. Трафик из сети в сеть бегает и шифруется.

    — НЕБОЛЬШОЙ АПДЕЙТ---
    После установления соединения dd-wrt'овый pppd(в соответствии со соим конфигом /tmp/pptpd_client/options.vpn) шлет каждые две секунды lcp эхо реквесты(подробнее смотрите в rfc 1661 ppp) и после того как сервер ему не ответит в третий раз пресылает Terminate-Request в итоге соединение рвется. За такое поведение отвечают параметры lcp-echo-interval и lcp-echo-failure в конфиге. Их нам и нужно убрать к чертям исключить, для этого идем на веб интерфейс Administration --> Commands и вбиваем такой скрипт:
    (while [ ! -f /tmp/pptpd_client/options.vpn ]; do sleep 10; done
    sed /lcp/d /tmp/pptpd_client/options.vpn > /tmp/pptpd_client/temp.vpn
    cp /tmp/pptpd_client/temp.vpn /tmp/pptpd_client/options.vpn )&

    Жмем Save startup, после чего ребутим роутер.
    Поделиться публикацией

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

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

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

      +2
      хех, бюджетно. Это вам не на сиськах/чекпойнтах строить филиальные vpn-сети.
      Какую нагрузку выдержит (pps, bps), не тестировали?
        +1
        Слабенький он, чего его тестировать. У меня загибается очень быстро на потоке торрентов через впн, упирается тупо в процессор. больше 3мбайт/с с впн не удалось ни разу прогнать.
          0
          А загибается быстро на торрентах потому характер сетевой загрузки совершенно другой. Много одновременных коннектов, что не свойственно для офисных задач.
            +1
            смотря какие задачи. ftp, например может нагенерить добрую сотню-другую одновременных коннектов, если передавать папки с большим количеством файлов. Работа через какой-нибудь сквид — тоже, т.к. сквид не поддерживает http1.1 и, соответственно, keepalive, открытие сайта с 30 картинками — десятки коннектов одновременных.
              0
              какой это клиент делает больше одного коннекта к фтп, если только не файлокачалка?

              про squid:
              1. его ставят в локальном сегменте чтобы невелировать задержки сигнала и огрниченность канала.
              2. сквид в принципе не сделает больше коннектов, что если бы браузер работал на прямую с сайтом. а в подавляющем количестве случаев количество коннектов будет меньше, чем если работать напрямую с интернетом.
                +1
                какой это клиент делает больше одного коннекта к фтп, если только не файлокачалка?
                Виндовый эксплорер, например. Берем папку со вложенными папками и файлами, и копируем ее по фтп — получаем много коннектов, едва ли не по штуке на каждый файл.
                его ставят в локальном сегменте чтобы невелировать задержки сигнала и огрниченность канала.
                Прямо только так и ставят? В man squid так написано?
                сквид в принципе не сделает больше коннектов, что если бы браузер работал на прямую с сайтом
                Внимательно изучаем спецификации http1.0 VS http1.1, особое внимание уделите keepalive. Сквид до сих пор не поддерживает http1.1
              +1
              Коннекты — оперативная память, pps — ядро.
                –1
                Коннекты это так же cpu — поиск по хеш-таблицам и их изменение.
                  +1
                  При существующем коннекте, вроде бы, передача пакетов по нему нагружает проц. Ибо шифрование впн. При создании нового должна заниматься оператива — где же хеши искать.

              0
              На работе филиал подключен через D-link DIR-300, трафик шифруется, скорость до 4-5 Мбайт/сек
                0
                Не поделитесь описанием настройки?
                  0
                  В центральном офисе стоит freebsd сервер с выходом в интернет (100 Мбит локалка, 100 Мбит UA-IX, 20 Мбит мир) на сетевой карте — реальный интернет-IP от провайдера.

                  Филиал коннектится через DIR-300 посредством VPN + MPPE128 + дополнительная проверка IP+MAC. Скажу честно — D-Link не лучший вариант, проявляет нестабильность соединения, иногда при «отваливании» помогает только хард-ребут (power-off).
              +1
              Разве что iperf'ом погонял внутри канала. Скорость порядка 1 Мегабит/с (как и в тарифе)
              Подскажите чем еще можно потестировать?
                +2
                тем же айпёрфом можно, но без ограничений канальных.
                –1
                Для pptp с шифрованием и компрессией 256kB
                Если перевести в синхронный режим и убрать шифрование и компрессию то до 800Kb
                Устройство весьма слабенькая.
                +1
                На мой взгляд Asus wl520gu -> «морально устаревшая железка», на рынке полно гораздо более интересных и производительных сохо-роутеров…
                  0
                  Бюджет, здесь это слово решало все =)
                  Да и потом, её возможностей для тех задач которые стоят перед ней в моей сети, вполне хватает.
                    0
                    А не приведёте пример с ценой менее 2400 р?
                      0
                      Можно взять D-Link DIR-320, но у меня отношение к D-Link негативное, поэтому взял Asus.
                      На оф сайте есть мануал для этой модели D-Link на русском языке.
                        0
                        Если вы на железо смотрите с позиции финансов, то тогда уж стоит и вправду брать Dlink DIR-320 и перешивать его в Асус…

                        Новые модельки у Нетгира,LinkSysa выглядят по характеристикам явно «мощнее»…
                        Да у самого Асуса rt16 — тоже явно — «небюджетная» модель…
                      0
                      Хорошее решение, я думаю надежность на уровне у такого решения(сам использую Asus WL-520gp, пока еще ни разу не было отказов из-за нее), в осноном все упираеться в провайдеров на обоих концах!
                        0
                        Выходные прошли гладко, канал не падал. Буду наблюдать за полетом, если что отпишусь.
                        0
                        Всё-таки интересно, если такой канал поднять на двух FreeBSD — от чего будет зависеть пропускная способность и какие пределы?
                          0
                          Во введении я писал, что уже имеется канал lan to lan,
                          FreeBSD(mpd5) <-> FreeBSD(mpd5)
                          За FreeBSD во первом филиале «сидят» 8 машин, канал юзается очень активно. По скорости утыкается лишь в тариф провайдера.
                          0
                          Вот вопрос к Вам к специалисту — смогу ли я навредничать зная mac-адреса Ваших железок?
                            0
                            Железка находится во внутренней сети провайдера, так что, думаю нет.
                            –1
                            Очень оригинальное решение! Но если бюджет бы не был ограничен, я бы реализовал на atom miniITX. Да и с нагрузкой, если оная была бы справился бы.:) и в концепцию нехватки места вписалось бы)))
                              0
                              если бы не бюджет я бы купил cisco =)
                              0
                              я пошел немного другим путем — использую маршрутизаторы Draytek — при довольно бюджетной цене (dual-wan ~200долл) у них из коробки очень много всяких фич, в т.ч. lan-to-lan vpn, причем нормально реализованый на уровне маршрутизации — через vpn гоняет не весь траффик, а только траффик на удаленную подсеть, интернет бегает через локальный wan.
                              вообще, за свои деньги — оч.крутые железки — рекоммендую.
                                0
                                Коль получится такая оказия, обязательно вспомню ваш комментарий :)
                                0
                                Может стоит попробовать OpenVPN c сертификатами под паролем? И фряха и DD-WRT это умеют. ИМХО, в плане безопасности это гораздо устойчивее. Да и производительность, ЕМНИП, при тех же методах шифрования каким-то чудесным, неизвестным мне способом, получается выше…
                                  0
                                  быть может и попробую, прошивку VPN не зря же заливал
                                  *с mpd5 уже как то сдружился =)
                                    +1
                                    Это то, чего я не смог добиться от своего коллеги в филиале=) Он, в итоге, поднял клиента на виндовом серваке(сервер VPN у меня висит на Убунте) и прописал маршруты, вместо того, чтобы шить железку и избавить рабочий сервер от дополнительных служб и себя от геморроя лишнего)

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

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