Возникла задача: подключить несколько филиалов и мобильных пользователей к сети центрального офиса.
То есть нужно настроить несколько 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