Home > freebsd | mikrotik > Объединение сетей через сеть с подобными адресами

Объединение сетей через сеть с подобными адресами

На заводе, где я работаю, есть склад готовой продукции который находится в другом городе и чтобы обеспечить им работу в 1С, обмен файлами и локальную связь естественно использовался VPN. Проблема в том что Энфорта (провайдер) обеспечивало очень паршивое качество радио-канала передачи данных, да еще и по диким ценам, почти как через спутник. Радиоканал использовался ввиду удаленности склада от жилых построек и нахождении на территории другого завода. В итоге удалось все таки договориться с другим заводом что мы получим связь через них. Админы другого завода конечно не хотели видеть нас в их сети, не дай бог еще какая вирусная атака ломанется к ним. Появилась основная проблема, сети строились давно и как обычно диапазоны адресов выбирались 192.168.0.х. Поэтому исходная схема принимала следующий вид:

Роутеры на складе и в офисе – дряхлые первые пенты с FreeBSD. Увидел в продаже легендарный Mikrotik по вполне вменяемой цене (последний раз сталкивался с ним лет пять назад и то это была тока ось на компе) и решил что пора бы заменить хотя бы на складе на ладан дышащее железо. Итак как настроить чтобы все работало. Конечно надо во первых создать VPN канал. Вариантов туннелей поддерживаемых Mikrotik и FreeBSD куча, из опробованных – pptp, l2tp и openvpn. Победил l2tp за свою неприхотливость в настройке, скорость работы и отсутствие зависимости в GRE трафике. Как же теперь победить накладывающиеся диапазоны сетей офиса и другого предприятия, ведь таблица маршрутов выглядит так:

mik1_screen1

На мой взгляд самое простое и менее затратное по ресурсам – маркировка пакетов. Мы берем все пакеты с локального интерфейса идущего на сеть 192.168.0.х/24 и маркируем перед их переадресацией и потом загоняем их в VPN туннель. Соответственно приходящий трафик из туннеля на диапазон локальной сети 192.168.1.х мы и загоняем ТОЛЬКО на локальный интерфейс, так как wan интерфейс у нас тоже имеет путь в такую же сеть. Перейдем к исполнению:

Конфиги FreeBSD роутера в офисе: настраиваем естественно mpd5, mpd.conf имеет следующий вид

startup:
set user foo bar admin
set user foo1 bar1
set console self 127.0.0.1 5005
set console open

default:

load l2tp_server
l2tp_server:
# Создаем диапазон присваиваемых IP адресов.
set ippool add pool1 192.168.8.5 192.168.8.10

create bundle template B
set iface enable proxy-arp
set iface idle 0
set iface enable tcpmssfix
set ipcp yes vjcomp
# при установке туннеля запустим скрипт для добавления нужного маршрута
set iface up-script /usr/local/etc/mpd5/if_up.sh
set ipcp ranges 192.168.8.1/24 ippool pool1
# добавим шифрование, но отключим компрессию иначе могут быть проблемы на больших объемах трафика

set bundle disable compression
set ccp yes mppc
set mppc yes e40
set mppc yes e128
set mppc yes stateless
create link template L l2tp
set link action bundle B
set link enable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
set link keep-alive 10 60
set link mtu 1460
# IP адрес нашего VPN сервера. (Собственно адрес машины с фряхой)
set l2tp self yyy.yyy.yyy.yyy
set link enable incoming

Скрипт для добавления маршрута if_up.sh:

#!/bin/sh

# делаем задержку, иначе mpd не успеет выдать ip и маршрут не занесется в таблицу
sleep 5
# 192.168.8.10 – фиксированный ip прописанный в mpd.secret для логина и пароля вбитого в микротик
route add 192.168.1.0/24 192.168.8.10

Теперь перейдем к нашей Циске для бедных (на втором скрине ошибочка, я в последствии переименовал маркер “office-connect” в “vpn_to_office”):
mik1_screen2mik1_screen3mik1_screen4Суть настройки, маркировка исходящих и входящих пакетов, и создание соотвествующих маршрутов для них. Тоже самое но подробнее через консольные команды:

Добавление клиента для VPN канала:
/ppp profile
set 0 change-tcp-mss=yes name=default only-one=default use-compression=default use-encryption=default use-mpls=default use-vj-compression=default
set 1 change-tcp-mss=yes name=default-encryption only-one=default use-compression=default use-encryption=yes use-mpls=default use-vj-compression=default
/interface l2tp-client
add add-default-route=no allow=pap,chap,mschap1,mschap2 connect-to=yyy.yyy.yyy.yyy dial-on-demand=no disabled=no max-mru=1460 max-mtu=1460 mrru=disabled name=VPN-to-Office password=pass_for_vpn profile=default-encryption user=user_of_vpn

/ip address
add address=192.168.1.1/24 comment=”default configuration” disabled=no interface=ether2-master-local network=192.168.1.0
add address=192.168.0.10/24 disabled=no interface=ether1-gateway network=192.168.0.0
Маркировка пакетов:
/ip firewall mangle
add action=mark-routing chain=prerouting comment=”Mark packets to 192.168.0.0/24″ disabled=no dst-address=192.168.0.0/24 in-interface=ether2-master-local new-routing-mark=vpn-to-office passthrough=yes
add action=mark-routing chain=prerouting disabled=no dst-address=192.168.1.0/24 in-interface=VPN-to-Office new-routing-mark=vpn-from-office passthrough=yes
/ip firewall nat
add action=masquerade chain=srcnat comment=”default configuration” disabled=no out-interface=ether1-gateway to-addresses=0.0.0.0
Маршруты для наших пакетов:
/ip route
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ether2-master-local routing-mark=vpn-from-office scope=30 target-scope=10
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=VPN-to-Office routing-mark=vpn-to-office scope=30 target-scope=10
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.0.1 scope=30 target-scope=10

После настройки все работает, стабильно и быстро:
mik1_screen5Начал я настраивать еще дома, домашняя сеть имеет организацию 192.168.100.х, поэтому пришлось эмулировать 192.168.0.х ставя еще один нат на виртуалке и все работало!

Tags: freebsd mikrotik router

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *