Подключение филиалов по VPN

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Selin
проходил мимо
Сообщения: 5
Зарегистрирован: 2016-09-02 7:59:11

Подключение филиалов по VPN

Непрочитанное сообщение Selin » 2016-09-02 9:08:43

Добрый день

Возникла задача: подключить несколько филиалов и мобильных пользователей к сети центрального офиса.
То есть нужно настроить несколько LAN to LAN подключений + VPN DialIn сервер.
На филиалах стоят маршрутизаторы, которые умеют VPN LAN to LAN (Draytek Vigor 2910).
В офисе стоит FreeBSD сервер, посредством которого стараюсь решить задачу.
Ньюанс: многие филиалы и мобильные пользователи имеют серый/динамический внешний IP.

Сперва попробовал настроить всё на mpd. Прописал в конфиге lan2lan интерфейсы для каждого филиала + pptp сервер для мобильных пользователей.
Но столкнулся с проблемой:
Если вручную поднимать VPN из филиалов в порядке согласно загрузке lan2lan интерфейсов в mpd - всё работает.
То есть:
- в конфиге имеем:
load vpn_f1
load vpn_f2
load vpn_f3
- подключаемся вручную
филиал 1 -> vpn_f1
филиал 2 -> vpn_f2
филиал 3 -> vpn_f3
- видим на консоли mpd красивую картинку - каждый филиал подключен к своему интерфейсу и всё работает как нужно.
Но если порядок подключения нарушен (а так и получается в 99.999% при авто-подключении) - то филиалы подключаются к первому свободному lan2lan интерфейсу mpd и, как следствие, связь с этим филиалом не работает (ибо разные подсети у каждого филиала и, соотв., маршрутизация для каждого своя).
То есть при автоматическом подключении получаем что-то такое:
филиал 1 -> vpn_f3
филиал 2 -> vpn_f1
филиал 3 -> vpn_f2
и ничего не работает :(

Может, есть способ привязать lan2lan интерфейс в конфиге mpd к конкретному логину?

Или вовсе искать другие решения (не mpd)?
Но тот же GIF, как я понял, требует статичиские белые IP на каждой стороне...
OpenVPN не подходит, ибо маршрутизаторы в филиалах его не поддерживают...

Помогите, пожалуйста, с решением.

Файл конфига mpd прилагаю (на всякий случай):

Код: Выделить всё

startup:
        log +auth* +ecp* +iface* +phys* +link*
        set user admin password admin
        set console self 127.0.0.1 5005
        set console open
        set web self 0.0.0.0 5006
        set web open

default:
        load vpn_f1
        load vpn_f2
        load vpn_f3
        load vpn_dialin

vn_f1:
#
        create bundle static B_vpn_f1
        set ipcp ranges 172.17.0.1/32 172.17.1.1/32
        set iface route 172.17.1.0/24
        set bundle enable compression
        set ccp yes mppc
        set mppc yes e40
        set mppc yes e128
        set bundle enable crypt-reqd
        set mppc yes stateless
#
        create link static L_vpn_f1 pptp
        set link action bundle B_vpn_f1
        set link no pap
        set link yes chap
        set link mtu 1460
        set link keep-alive 10 75
        set link max-redial -1
        set link enable incoming

vn_f2:
#
        create bundle static B_vpn_f2
        set ipcp ranges 172.17.0.1/32 172.17.2.1/32
        set iface route 172.17.2.0/24
        set bundle enable compression
        set ccp yes mppc
        set mppc yes e40
        set mppc yes e128
        set bundle enable crypt-reqd
        set mppc yes stateless
#
        create link static L_vpn_f2 pptp
        set link action bundle B_vpn_f2
        set link no pap
        set link yes chap
        set link mtu 1460
        set link keep-alive 10 75
        set link max-redial -1
        set link enable incoming

vn_f3:
#
        create bundle static B_vpn_f3
        set ipcp ranges 172.17.0.1/32 172.17.3.1/32
        set iface route 172.17.3.0/24
        set bundle enable compression
        set ccp yes mppc
        set mppc yes e40
        set mppc yes e128
        set bundle enable crypt-reqd
        set mppc yes stateless
#
        create link static L_vpn_f3 pptp
        set link action bundle B_vpn_f3
        set link no pap
        set link yes chap
        set link mtu 1460
        set link keep-alive 10 75
        set link max-redial -1
        set link enable incoming

vpn_dialin:
        set ippool add pool_dialin 172.17.0.200 172.17.0.250
        create bundle template B_dialin
        set iface enable proxy-arp
        set iface idle 1800
        set iface enable tcpmssfix
        set ipcp yes vjcomp
        set ipcp ranges 172.17.0.1/32 ippool pool_dialin
        set bundle enable compression
        set ccp yes mppc
        set mppc yes e40
        set mppc yes e128
        set mppc yes stateless
#
        create link template L_dialin pptp
        set link action bundle B_dialin
        set link enable multilink
        set link yes acfcomp protocomp
        set link no pap chap eap
        set link enable chap
        set link keep-alive 10 60
        set link mtu 1460
        set link enable incoming

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Подключение филиалов по VPN

Непрочитанное сообщение snorlov » 2016-09-02 9:37:05

Mpd позволяет выполнять скрипты на up/down подключений, попробуйте задействовать их, т.е. ими менять маршрутизацию, там воз и переменыые из подключений можно использовать

Гост
проходил мимо

Подключение филиалов по VPN

Непрочитанное сообщение Гост » 2016-09-02 12:00:44

На сервере принимающем соединения вынесите создание линков в отдельную секцию. Соединение по конкретному логину прикрепить к конкретному bundle можно командой set link action примерно так:

Код: Выделить всё

pptp_server:
        set ippool add pool1 192.168.2.86 192.168.2.99
        create bundle template B
        load pptp_standart
        set ipcp ranges 192.168.1.5/32 ippool pool1
        create link template L pptp
        load pptp_link_standart
        set link action bundle vpn_1 vpn_login1
        set link action bundle vpn_2 vpn_login2
        set link action bundle B
        set link enable incoming

Selin
проходил мимо
Сообщения: 5
Зарегистрирован: 2016-09-02 7:59:11

Подключение филиалов по VPN

Непрочитанное сообщение Selin » 2016-09-02 12:05:47

Спасибо большое - вечером попробую :)

Selin
проходил мимо
Сообщения: 5
Зарегистрирован: 2016-09-02 7:59:11

Подключение филиалов по VPN

Непрочитанное сообщение Selin » 2016-09-02 17:18:40

Обратил внимание, что при вставке конфига в первом сообщении названия интерфейсов побились: вместо vn_f# должно быть vpn_f#

Selin
проходил мимо
Сообщения: 5
Зарегистрирован: 2016-09-02 7:59:11

Подключение филиалов по VPN

Непрочитанное сообщение Selin » 2016-09-02 21:29:46

Спасибо большое - всё получилось :)