Подружить pfSense и MikroTik можно, но только ради Open. Во всех остальных случаях я рекомендую полностью мигрировать с pfSense на RouterOS.
Профессиональная настройка MikroTik
Без предоплаты
Telegram: @Engineer_MikroTik
Легенда:
Имеется pfSense, который справляется с задачами здесь и сейчас. Но появились офисы, которые нужно подключить к сети за pfSense, да не просто подключить, а получить отказоустойчивость!
Проблема 1:
pfSense не умеет адекватно GRE+IPsec, к тому же OSPF работает только из пакета FRR, который вызывает только боль.
Проблема 2:
MikroTik не умеет Open udp (в 7 версии добавили), отправлять push клиентам.
Проблема 3:
На pfSense слишком много сервисов, которые практически невозможно перенести на MikroTik без простоя.
Решение:
Использовать обе системы — pfSense как основной шлюз, MikroTik для связи с остальными офисами.
Архитектура:
pfSense центр
WAN1: 1.1.1.2/30
LAN: 10.1.0.1/24
Open пользователей 10.1.1.0/24
Open расширенного доступа 10.1.2.0/24
Open полного доступа 10.1.3.0/24
MikroTik удаленные офисы
Москва
WAN1: 2.2.2.2/30
WAN2: 3.3.3.2/30
LAN: 192.168.10.1/24
Ржев
WAN1: 4.4.4.2/30
WAN2: 5.5.5.2/30
LAN: 192.168.20.1/24
Проектирование связей
Для настройки связи офис-центр нужно установить дополнительный маршрутизатор в виде MikroTik, это может быть как RouterBOARD, так и Cloud Hoster Router
Подготовка pfSense в центре:
Пакет FRR
Устанавливается из стандартного меню с доступными пакетами
System -> Package Manager
Магия Firewall
pfSense имеет особенность блокировки tcp пакетов, которые были запрошены не через его шлюз.
Решается через правило в Firewall -> Rules -> Floating
На поиск этого решения ушло очень много времени!
Так же можно указать маршрут статически, если не справитесь с FRR
Подготовка MikroTik в центре:
WAN: 9.9.9.2/30
LAN: 10.1.0.2/24
GRE+IPsec
/interface gre
add allow-fast-path=no keepalive=3s,3 local-address=9.9.9.9 mtu=1400 name=MSK-WAN1 remote-address=2.2.2.2
add allow-fast-path=no keepalive=3s,3 local-address=9.9.9.9 mtu=1400 name=MSK-WAN2 remote-address=3.3.3.2
add allow-fast-path=no keepalive=3s,3 local-address=9.9.9.9 mtu=1400 name=Rzhev-WAN1 remote-address=4.4.4.2
add allow-fast-path=no keepalive=3s,3 local-address=9.9.9.9 mtu=1400 name=Rzhev-WAN2 remote-address=5.5.5.2
IPsec
/ip ipsec profile
add dh-group=modp1024 enc-algorithm=3des name=ph1 nat-traversal=no
add dh-group=modp1024 enc-algorithm=aes-128 name=ph1-AES-128 nat-traversal=no
/ip ipsec peer
add address=2.2.2.2/32 exchange-mode=ike2 local-address=1.1.1.2 name=WAN1-DC profile=ph1-AES-128
add address=3.3.3.2/32 exchange-mode=ike2 local-address=1.1.1.2 name=WAN2-DC profile=ph1-AES-128
/ip ipsec proposal
add enc-algorithms=3des name=ph2
add enc-algorithms=aes-128-cbc lifetime=1h name=ph2-AES-128-CBC+SHA1
/ip ipsec identity
add peer=WAN1-DC secret=1q2w3e4r
add peer=WAN2-DC secret=1q2w3e4r
/ip ipsec policy
add dst-address=2.2.2.2/32 peer=WAN1-DC proposal=ph2-AES-128-CBC+SHA1 protocol=gre src-address=1.1.1.2/32
add dst-address=3.3.3.2/32 peer=WAN2-DC proposal=ph2-AES-128-CBC+SHA1 protocol=gre src-address=1.1.1.2/32
OSPF с зонами
/routing ospf area
add area-id=192.168.10.1 name=areaMSK
add area-id=192.168.20.1 name=areaRzhev
/routing ospf network
add area=backbone network=10.1.0.0/24
add area=areaMSK network=172.32.255.2/32
add area=areaMSK network=172.32.255.4/32
add area=areaRzhev network=172.32.255.6/32
add area=areaRzhev network=172.32.255.8/32
/routing ospf instance
set [ find default=yes ] redistribute-static=as-type-1 router-id=10.1.0.2
/routing ospf interface
add authentication=simple authentication-key=12345678 interface=bridgeLAN network-type=broadcast
add cost=10 interface=MSK-WAN1 network-type=point-to-point use-bfd=yes
add cost=11 interface=MSK-WAN2 network-type=point-to-point use-bfd=yes
add cost=10 interface=Rzhev-WAN2 network-type=point-to-point use-bfd=yes
add cost=11 interface=Rzhev-WAN2 network-type=point-to-point use-bfd=yes
/routing filter
add action=accept chain=ospf-out comment="Open Admin" prefix=10.1.3.0/24
add action=discard chain=ospf-in prefix-length=30-32
add action=discard chain=ospf-out prefix-length=30-32
add action=discard chain=ospf-out
Адресация GRE туннелей
Как можно заметить, адресация будет использоваться вида
172.32.255.1/32-172.32.255.2/32
Сторона MikroTik не четная, сторона офисов четная
Настройка офисов MikroTik
Настройка аналогична настройке GRE+IPsec+OSPF центра
Что мы получили:
Теперь поддержка туннелей и связь с офисами забота MikroTik. Это та функция, с которой не может справиться pfSense. К тому же под Open системный администратор может заходить в сети других офисов.