Jump to content
Калькуляторы

Mikrotik OSPF

Здравствуйте, есть задача сделать резервирование канала, что бы если падает один канал, впн подолжал работать и удаленные сервисы были доступны. 

нашел статью https://papa-admin.ru/mikrotik/129-mikrotik-настройка-офис-филиал-часть-2-филиал.html

 

все сделал по инструкции (10 раз :)) работать как нужно не хочет, впн постоянно отваливается, обратно с резервного канала толком не переключается, где то в статье косяк или у меня кривые руки? как их лечить? :) Спасибо. 

скрин настроек FyVBKMpBNSg.jpg

 

Главный офис

# dec/04/2018 14:33:29 by RouterOS 6.43.4
# software id = 
#
#
#
/interface ethernet
set [ find default-name=ether1 ] disable-running-check=no
set [ find default-name=ether2 ] disable-running-check=no
/interface l2tp-server
add name=l2tp-in01 user=l2tp-01
/interface sstp-server
add name=sstp-in01 user=sstp-01
/interface pptp-server
add name=pptp-in01 user=""
/interface list
add name=WAN
add name=LAN
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip pool
add name=pool-l2tp ranges=10.1.1.2-10.1.1.99
add name=pool-sstp ranges=10.1.2.2-10.1.2.99
/ppp profile
add change-tcp-mss=yes interface-list=WAN local-address=10.1.1.1 name=\
    profile-l2tp remote-address=pool-l2tp use-encryption=yes
add change-tcp-mss=yes interface-list=WAN local-address=10.1.2.1 name=\
    profile-sstp remote-address=pool-sstp use-encryption=yes
/routing ospf instance
set [ find default=yes ] router-id=10.20.30.1
/interface l2tp-server server
set authentication=mschap2 default-profile=profile-l2tp enabled=yes
/interface list member
add interface=ether1 list=WAN
add interface=ether2 list=LAN
/interface pptp-server server
set enabled=yes
/interface sstp-server server
set authentication=mschap2 default-profile=profile-sstp enabled=yes
/ip address
add address=10.20.30.1/24 interface=ether2 network=10.20.30.0
add address=5.188.53.68/24 interface=ether1 network=5.188.53.0
add address=5.188.53.71/24 interface=ether1 network=5.188.53.0
/ip firewall filter
add action=accept chain=forward
add action=accept chain=input disabled=yes dst-address=5.188.53.68
add action=accept chain=forward disabled=yes
add action=accept chain=input comment=icmp disabled=yes protocol=icmp
add action=accept chain=input comment="established & related" \
    connection-state=established,related
add action=accept chain=input comment=l2tp dst-port=1701 in-interface=ether1 \
    protocol=udp
add action=accept chain=input comment=sstp dst-port=443 in-interface=ether1 \
    protocol=tcp
add action=accept chain=input comment=ospf disabled=yes in-interface=all-ppp \
    protocol=ospf
add action=accept chain=input comment=bfd disabled=yes dst-port=3784-3785 \
    in-interface=all-ppp protocol=udp
add action=accept chain=input dst-address=5.188.53.70
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1 src-address=\
    10.20.30.0/24
/ip route
add distance=1 gateway=5.188.53.1 pref-src=5.188.53.68
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www address=0.0.0.0/0
set ssh disabled=yes
set api disabled=yes
set api-ssl disabled=yes
/ppp secret
add name=l2tp-01 password=111111111111 profile=profile-l2tp service=l2tp
add name=sstp-01 password=11111111111 profile=profile-sstp service=sstp
add name=pptp-01 password=11111111111 profile=profile-sstp service=pptp
/routing ospf interface
add interface=l2tp-in01 network-type=broadcast use-bfd=yes
add cost=20 interface=sstp-in01 network-type=broadcast
/routing ospf network
add area=backbone network=10.1.1.0/24
add area=backbone network=10.1.2.0/24
add area=backbone network=10.20.30.0/24
/system identity
set name=Office

Филиал

# jan/02/1970 02:07:30 by RouterOS 6.43.4
# software id = IQGD-KKFF
#
# model = 951Ui-2nD
# serial number = 7C2607BF88E5
/interface bridge
add fast-forward=no name=bridge1
/interface l2tp-client
add connect-to=5.188.53.68 disabled=no name=l2tp-out1 password=11111111 user=\
    l2tp-01
/interface wireless
set [ find default-name=wlan1 ] ssid=MikroTik
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip pool
add name=dhcp_pool0 ranges=192.168.55.1-192.168.55.253
/ip dhcp-server
add address-pool=dhcp_pool0 disabled=no interface=bridge1 name=dhcp1
/interface sstp-client
add connect-to=5.188.53.71 disabled=no name=sstp-out1 password=11111111111 \
    profile=default-encryption user=sstp-01
/routing ospf instance
set [ find default=yes ] router-id=192.168.55.0
/interface bridge port
add bridge=bridge1 interface=wlan1
add bridge=bridge1 interface=ether3
add bridge=bridge1 interface=ether4
add bridge=bridge1 interface=ether5
/ip address
add address=192.168.0.14/24 interface=ether1 network=192.168.0.0
add address=83.171.98.88/23 interface=ether2 network=83.171.98.0
add address=192.168.55.254/24 interface=bridge1 network=192.168.55.0
/ip dhcp-server network
add address=192.168.55.0/24 dns-server=8.8.8.8 gateway=192.168.55.254
/ip firewall mangle
add action=mark-connection chain=output comment=l2tp_c_udp dst-port=1701 \
    new-connection-mark=l2tp_c passthrough=yes protocol=udp
add action=mark-routing chain=output comment=l2tp_r connection-mark=l2tp_c \
    new-routing-mark=isp1only passthrough=no
add action=mark-connection chain=output comment=sstp_c dst-port=443 \
    new-connection-mark=sstp_c passthrough=yes protocol=tcp
add action=mark-routing chain=output comment=sstp_r connection-mark=sstp_c \
    new-routing-mark=isp2only passthrough=no
/ip firewall nat
add action=masquerade chain=srcnat
/ip route
add comment=MArked distance=1 gateway=192.168.0.129 routing-mark=isp1only
add comment=zaglushka distance=2 routing-mark=isp1only type=unreachable
add distance=1 gateway=83.171.98.1 routing-mark=isp2only
add distance=2 routing-mark=isp2only type=unreachable
add check-gateway=ping comment=Recursive distance=1 gateway=8.8.8.8 \
    target-scope=30
add check-gateway=ping distance=2 gateway=8.8.4.4 target-scope=30
add comment="Recursive 2" distance=1 dst-address=8.8.4.4/32 gateway=\
    83.171.98.1
add distance=1 dst-address=8.8.8.8/32 gateway=192.168.0.129
/routing ospf interface
add interface=l2tp-out1 network-type=broadcast use-bfd=yes
add cost=20 interface=sstp-out1 network-type=broadcast
add cost=5 interface=bridge1 network-type=broadcast
/routing ospf network
add area=backbone network=10.1.1.0/24
add area=backbone network=10.1.2.0/24
add area=backbone network=192.168.55.0/24
/system routerboard settings
set silent-boot=no

 

Share this post


Link to post
Share on other sites

Как интересно, а это в каждом филиале по 2 public ip от одного провайдера на одном порту? Зачем вам sstp? Сделайте только l2tp, что в логах?

Edited by fractal

Share this post


Link to post
Share on other sites

@savingleb 

Раз у вас в центре есть два публичных IP адреса, в филиале можно просто два маршрута прописать  - на каждый адрес через своего провайдера  - вместо манглов. И тогда можно 2-х L2TP клиентов использовать.

 

 

Share this post


Link to post
Share on other sites
8 часов назад, McSea сказал:

@savingleb 

Раз у вас в центре есть два публичных IP адреса, в филиале можно просто два маршрута прописать  - на каждый адрес через своего провайдера  - вместо манглов. И тогда можно 2-х L2TP клиентов использовать.

 

 

так ведь можно наткнуться на ассиметричный роутинг, это ж не vpn

8 часов назад, McSea сказал:

@savingleb 

Раз у вас в центре есть два публичных IP адреса, в филиале можно просто два маршрута прописать  - на каждый адрес через своего провайдера  - вместо манглов. И тогда можно 2-х L2TP клиентов использовать.

 

 

так ведь можно наткнуться на ассиметричный роутинг, это ж не vpn

Share this post


Link to post
Share on other sites
5 hours ago, fractal said:

так ведь можно наткнуться на ассиметричный роутинг, это ж не vpn

L2TP клиент не VPN ? Или про что речь ?

 

 

Share this post


Link to post
Share on other sites
15 минут назад, McSea сказал:

L2TP клиент не VPN ? Или про что речь ?

 

 

имеется ввиду провайдерский vpn, просто так прописать роуты через public не выйдет я бы сделал так, раз есть 2 провайдера, то первым делом настроил бы резервирование дефолтного маршрута к примеру так - https://www.technotrade.com.ua/Articles/mikrotik_2isp_setup_2015-06-19.php#2isp_setup. Далее уже поднимать l2tp через каждого провайдера под ospf, после этого добавить в ospf эти два l2tp в качестве интерфейсов в процесс ospf. в итоге пока работает первый провайдер все будет работать поверх l2tp через первого провайдера, первый провайдер упал, поднимается второй l2tp и работает дальше

Share this post


Link to post
Share on other sites
2 minutes ago, fractal said:

просто так прописать роуты через public не выйдет

Не вижу, что может помешать.

На филиальном микротике:

/ip route 

add dst-address=5.188.53.68/32 comment="Этот через первого провайдера" distance=1 gateway=192.168.0.129 

add dst-address=5.188.53.71/32 comment="Этот через второго провайдера" distance=1 gateway=83.171.98.1

 

Share this post


Link to post
Share on other sites
25 минут назад, McSea сказал:

Не вижу, что может помешать.

На филиальном микротике:


/ip route 

add dst-address=5.188.53.68/32 comment="Этот через первого провайдера" distance=1 gateway=192.168.0.129 

add dst-address=5.188.53.71/32 comment="Этот через второго провайдера" distance=1 gateway=83.171.98.1

 

ага, а в интернет они будут ходить через центральный филиал? Вы вероятно не сталкивались с тем что трафик может прийти с центрального филиала через первого провайдера, а уйти через второго, и вот тут начнутся проблемы 

Share this post


Link to post
Share on other sites

каждый делает как ему нравится, я же написал избегая проблем с которыми я уже сталкивался)

Share this post


Link to post
Share on other sites
22 minutes ago, fractal said:

ага, а в интернет они будут ходить через центральный филиал? Вы вероятно не сталкивались с тем что трафик может прийти с центрального филиала через первого провайдера, а уйти через второго, и вот тут начнутся проблемы 

Маски меньше чем /32 нет, поэтому пакеты на эти адреса центрального офиса всегда должны уходить по указанным маршрутам, как они будут в интернет ходить тут не важно (/ip route rule считаем пустым, как в приведенных конфигах - там можно завернуть по другому). 

 

Со стороны центрального офиса пакеты будут приходить на того провайдера = его адрес на филиальном микротике, с которого ушли. В цепочке output dstnat стандартными средствами роутер ос вообще невозможен. 

 

 

Share this post


Link to post
Share on other sites
6 минут назад, McSea сказал:

Маски меньше чем /32 нет, поэтому пакеты на эти адреса центрального офиса всегда должны уходить по указанным маршрутам, как они будут в интернет ходить тут не важно (/ip route rule считаем пустым, как в приведенных конфигах - там можно завернуть по другому). 

 

Со стороны центрального офиса пакеты будут приходить на того провайдера = его адрес на филиальном микротике, с которого ушли. В цепочке output dstnat стандартными средствами роутер ос вообще невозможен. 

 

 

ну что же, считайте так, как решит сделать автор так и сделает

Edited by fractal

Share this post


Link to post
Share on other sites
В 18.04.2019 в 19:56, fractal сказал:

а это в каждом филиале по 2 public ip от одного провайдера на одном порту?

Это виртуальная машина с микротом (извините что забыл указать в стартпосте), там можно оставить один, можно два IP адреса, на том же аккаунте будут терминал и астериск, там своя AS так что можно считать что интернет там изначально отказоустойчивый. 

 

Во всех 5 филиалах есть два провайдера с публичным IP. 

 

11 часов назад, fractal сказал:

раз есть 2 провайдера, то первым делом настроил бы резервирование дефолтного маршрута к примеру так

В филиалах так и настроено, но есть провайдеры, которые мигают, т.е. инет пропадает, он переключается на резервный, потом инет появляется и обратно и так может длиться несколько минут, десяток минут, это недопустимо. Если я Вас правильно понял. 

Share this post


Link to post
Share on other sites
2 часа назад, savingleb сказал:

Это виртуальная машина с микротом (извините что забыл указать в стартпосте), там можно оставить один, можно два IP адреса, на том же аккаунте будут терминал и астериск, там своя AS так что можно считать что интернет там изначально отказоустойчивый. 

 

Во всех 5 филиалах есть два провайдера с публичным IP. 

 

В филиалах так и настроено, но есть провайдеры, которые мигают, т.е. инет пропадает, он переключается на резервный, потом инет появляется и обратно и так может длиться несколько минут, десяток минут, это недопустимо. Если я Вас правильно понял. 

Тогда, если у Вас уже есть резервирование как минимум дефолтного маршрута - поднимайте два l2tp, с mtu 1400. Далее с обеих сторон добавляете оба l2tp в interfaces ospf - на основном cost 10, на резервном cost 20, mode point-to-point. После того как соседство поднялось анонсируете нужные локальные сети, либо добавлением ручками их в процесс ospf или через настройку routing filter + redistribution connected и должно все работать. 

Share this post


Link to post
Share on other sites

А нужен ли OSPF для такой маленькой сети ? 

 

Делал такое резервирование на L2, RSTP на бриджах переключает каналы почти мгновенно, на пинге с интервалом 200 миллисекунд максимум 1 пакет теряется (см. скрин ниже). И это один из каналов на LTE модеме с пингом ~ 100 ms.

 

Делается просто, L2TP c BCP, по отдельному бриджу с каждой стороны, куда эти интерфейсы добавляются при подключении. При неообходимости, кроме собственно бриджа в PPP профиле можно прописать веса (bridge path cost), чтобы нужный VPN канал был основным, а другой резервным.

 

Бриджи отдельные от локальной сети т.к. не было задачи соединять сети на L2 уровне, что также можно сделать, используя этот метод.

ping1.PNG

Edited by McSea

Share this post


Link to post
Share on other sites
2 часа назад, McSea сказал:

А нужен ли OSPF для такой маленькой сети ? 

 

Делал такое резервирование на L2, RTSP на бриджах переключает каналы почти мгновенно, на пинге с интервалом 200 миллисекунд максимум 1 пакет теряется (см. скрин ниже). И это один из каналов на LTE модеме с пингом ~ 100 ms.

 

Делается просто, L2TP c BCP, по отдельному бриджу с каждой стороны, куда эти интерфейсы добавляются при подключении. При неообходимости, кроме собственно бриджа в PPP профиле можно прописать веса (bridge path cost), чтобы нужный VPN канал был основным, а другой резервным.

 

Бриджи отдельные от локальной сети т.к. не было задачи соединять сети на L2 уровне, что также можно сделать, используя этот метод.

ping1.PNG

 

Вариантов на самом деле много, можно вообще два статика через l2tp и track reachability на них

Edited by fractal

Share this post


Link to post
Share on other sites
В 20.04.2019 в 14:14, McSea сказал:

Делается просто, L2TP c BCP

А управление дальней точкой в каком канале? =)

Что будет, если поток L2 сделает кольцо или еще что - правильно, управление потеряется. Нужно будет вручную поменять настройки в центре, что бы убрать его из бриджа. Поэтому правильнее поверх туннеля поднять еще и EoIP и уже в нем данные передавать.

Share this post


Link to post
Share on other sites
1 hour ago, Saab95 said:

Что будет, если поток L2 сделает кольцо

Нет с этим проблем, RSTP и топология очень простая, бридж в бридж двумя туннелями, кроме которых в этих бриджах ничего нет.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this