Рано или поздно у админа возникает необходимость объединения офисов компании в единую сеть, причем офисы могут быть разбросаны по всей стране. Методов много. В этой статье я остановлюсь на одном из них: создадим туннель EoIP (Ethernet over IP) и зашифруем трафик с помощью IPsec. В качестве подопытных будут использоваться два Mikrotik’а RB493G.
Начальная настройка стендовых MikroTik
Конечно, для большей наглядности мне надо было взять три устройства, но считаю, что без этого можно и обойтись. В конце статьи опишу процесс масштабирования, который на самом деле довольно прост при понимании принципа работы такой схемы. Как было сказано выше, в качестве подопытных два Mikrotik RB493G, которые перед экспериментами были обновлены до последней (на момент написания статьи) прошивки 6.37.1 (как обновиться, читайте здесь). Подразумевается, что оба роутера находятся в пределах видимости друг друга — будь то реальные IP при подключении через интернет, либо это какая-то общественная локальная сеть (например, у вас несколько торговых точек и офис в торговом центре).
Роутеры будут называться M151-office
— центральны офис и M152-remote1
— удаленный офис. На каждом роутере есть порт wan
, который смотрит наружу. На этом же порту поднят VLAN, который будет эмулировать интерфейс, смотрящий внутрь сети. Зачем мне здесь понадобился интерфейс VLAN, станет понятно во время тестирования.
Начальная настройка микротика M151-office
Интерфейс v200-office
vlanID=200
на интерфейсе wan.
Внешний IP — 192.168.10.151
на интерфейсе wan
, внутренний — 192.168.200.1
на интерфейсе v200-office
.
1 2 3 4 5 6 7 8 9 |
# # /interface vlan add interface=wan name=v200-office vlan-id=200 /ip address add address=192.168.10.151/24 interface=wan network=192.168.10.0 add address=192.168.200.1/24 interface=v200-office network=192.168.200.0 |
Начальная настройка микротика M152-remote1
Интерфейс v200-office
vlanID=200
на интерфейсе wan.
Внешний IP — 192.168.10.152
на интерфейсе wan
, внутренний — 192.168.200.2
на интерфейсе v200-office
.
1 2 3 4 5 6 7 8 9 |
# # /interface vlan add interface=wan name=v200-office vlan-id=200 /ip address add address=192.168.10.152/24 interface=wan network=192.168.10.0 add address=192.168.200.2/24 interface=v200-office network=192.168.200.0 |
Туннель EoIP
Теперь нам надо создать туннель между нашими устройствами. Делается это также просто.
MikroTik M151-office
1 2 3 4 5 6 |
# # [admin@M151-office] > interface eoip [admin@M151-office] /interface eoip> add name=tunnel-m152 tunnel-id=0 remote-address=192.168.10.152 |
MikroTik M152-remote1
1 2 3 4 5 6 |
# # [admin@M152-remote1] > interface eoip [admin@M152-remote1] /interface eoip> add name=tunnel-m151 tunnel-id=0 remote-address=192.168.10.151 |
О работоспособности туннеля нам скажет буква R (running).
В консоли:
1 2 3 4 5 6 7 8 9 10 11 |
# # [admin@M152-remote1] > interface eoip print Flags: X - disabled, R - running 0 R name="tunnel-m151" mtu=auto actual-mtu=1424 l2mtu=65535 mac-address=FE:21:B4:13:CD:2D arp=enabled arp-timeout=auto loop-protect=default loop-protect-status=off loop-protect-send-interval=5s loop-protect-disable-time=5m local-address=0.0.0.0 remote-address=192.168.10.151 tunnel-id=0 keepalive=10s,10 dscp=inherit clamp-tcp-mss=yes dont-fragment=no allow-fast-path=yes [admin@M152-remote1] > |
В winbox:
Если вам такой проверки недостаточно, то можете присвоить туннельным интерфейсам на обоих роутерах адреса одной подсети и попинговать.
Настраиваем на MikroTik IPsec
Здесь все сводится к тому, что сначала мы укажем, что между такими-то точками трафик надо шифровать (policy), а затем укажем, как (peer).
MikroTik M151-office
1 2 3 4 5 6 7 8 9 |
# # [admin@M151-office] > ip ipsec policy [admin@M151-office] /ip ipsec policy> add src-address=192.168.10.151 dst-address=192.168.10.152 sa-src-address=192.168.10.151 sa-dst-address=192.168.10.152 tunnel=no action=encrypt [admin@M151-office] > ip ipsec peer [admin@M151-office] /ip ipsec peer> add address=192.168.10.152 secret=vedernikoff.ru nat-traversal=no |
MikroTik M152-remote1
1 2 3 4 5 6 7 8 9 |
# # [admin@M152-remote1] > ip ipsec policy [admin@M152-remote1] /ip ipsec policy> add src-address=192.168.10.152 dst-address=192.168.10.151 sa-src-address=192.168.10.152 sa-dst-address=192.168.10.151 tunnel=no action=encrypt [admin@M152-remote1] > ip ipsec peer [admin@M152-remote1] /ip ipsec peer> add address=192.168.10.151 secret=vedernikoff.ru nat-traversal=no |
Практически все параметры здесь по-умолчанию, а мы ввели только необходимые, чтобы наша схема заработала. Также необходимо настроить firewall на каждом роутере, добавив три правила (нет, четыре! Я упустил из внимания протокол GRE для поднятия туннеля. Спасибо читателю Павлу, указавшему на это):
1 2 3 4 5 6 7 8 9 |
# # /ip firewall filter add action=accept chain=input dst-port=500 protocol=udp add action=accept chain=input protocol=ipsec-esp add action=accept chain=input protocol=ipsec-ah add action=accept chain=input protocol=gre |
Последние штрихи
Осталось объединить нужные интерфейсы в мосты и проверить работу.
MikroTik M151-office
Создадим мост office-bridge
и добавим туда туннель и ранее созданный VLAN интерфейс v200office
1 2 3 4 5 6 7 8 9 |
# # /interface bridge add name=office-tunnels /interface bridge port add bridge=office-tunnels interface=v200office add bridge=office-tunnels interface=tunnel-m152 |
Как раз здесь я и поясную, зачем поднимал интерфейсы VLAN на портах wan обоих микротиков. Мне (и вам) они нужны для тестирования. Т.е. в физический внешний интерфейс wan кабель воткнут. Он работает. Соответственно работают и все поднятые на нем VLAN-интерфейсы. А так как я присвоил этим интерфейсам IP-адреса 192.168.200.1
в офисе и 192.168.200.2
в «удаленном» офисе, то мне этого будет достаточно для проверки. А увидит ли микротик центрального офиса внутреннюю сеть удаленого офиса, я узнаю пропинговав соответствующие адреса. Заодно посмотрю как тикает счетчик байтов в IPsec, подтверждая, что трафик шифруется. В дальнейшем эти айпишники не нужны, достаточно будет объединить нужные интерфейсы (внутренней сети и моста) в бридж.
MikroTik M152-remote1
1 2 3 4 5 6 7 8 9 |
# # /interface bridge add name=office-tunnels /interface bridge port add bridge=office-tunnels interface=tunnel-m151 add bridge=office-tunnels interface=v200-office |
Если все было сделано правильно, то вы должны увидеть такую картину на обоих ваших роутерах:
1 2 3 4 5 6 7 8 9 10 11 |
# # [admin@M151-office] > ping 192.168.200.2 SEQ HOST SIZE TTL TIME STATUS 0 192.168.200.2 56 64 1ms 1 192.168.200.2 56 64 1ms 2 192.168.200.2 56 64 1ms 3 192.168.200.2 56 64 1ms 4 192.168.200.2 56 64 1ms |
1 2 3 4 5 6 7 8 9 10 11 |
# # [admin@M152-remote1] > ping 192.168.200.1 SEQ HOST SIZE TTL TIME STATUS 0 192.168.200.1 56 64 1ms 1 192.168.200.1 56 64 1ms 2 192.168.200.1 56 64 1ms 3 192.168.200.1 56 64 1ms 4 192.168.200.1 56 64 1ms |
Если так, то поздравляю, мы построили прозрачную сеть, по которой будет бегать любой трафик, включая DHCP. Т.е. вы можете поставить один DHCP-сервер в центральном офисе и он будет вещать на все остальные офисы. Правда, с одной важной оговоркой: вы должны быть стопроцентно (нет, двестипроцентно) уверены в качестве связи, чего не скажешь про интернет. Но если ваши офисы (или точки продаж) расположены в одном здании — в торговом центре, например, то один настроенный DHCP-сервер в центральном офисе облегчит вашу нелегкую админскую жизнь.
Масштабирование
Как было обещано ранее, пару слов (а больше и не понадобится) о масштабировании. Суть проста: сейчас мы создали туннель tunnel-id=0
, связывающий центральный офис и офис remote1. Теперь создаем новый туннель tunnel-id=1
, который свяжет центральный офис с удаленным офисом2 (remote2, например). Так же настраиваете IPsec. Настройка роутера remote2
повторяет настройку remote1
, а на центральном роутере надо будет добавить tunnel-id=1
в ранее созданный бридж.
В заключение
IPsec — обширная тема, суть которой мы здесь в общем-то не затронули. В данной статье был рассмотрен частный случай объединения офисов с помощью MikroTik и применением IPsec и EoIP. А если вы любознательны и хотите знать больше о защите данных, то начните, как минимум, с Википедии. 🙂
До новых встреч!
Реклама: