Страница 1 из 1

2 провайдера - пинг не восстанавливается при обратном переходе на первого

Добавлено: 18 фев 2019, 23:19
kluvonog
Добрый день!

Экспериментирую с микротик - пытаюсь настроить рекурсивную маршрутизацию.
Обнаружил такую проблему, которую не могу понять или найти в интернете объяснение:
Запускаю с ноута (Windows 7) "ping -t ya.ru" (тут без разницы, т.к. c mail.ru и другими то же самое).
Делаю "tracert ya.ru" - вижу, что идёт через первого провайдера
При отключение внешнего интерфейса на первого провайдера во вкладке interfaces наблюдаю пропадание 1-2 пингов, и по "tracert ya.ru" вижу переключение на второго провайдера и пинги идут ровно.

Включаю интерфейс первого провайдера - и пинги на ya.ru пропадают. Если запустить пинги на что-то ещё то они есть, а вот именно на этот IP нет ответа.
Запущенный пинг в терминале микротика не падает - т.е. на нём всё отлично.
Да и вообще интернет на ноутбуке работает, но вот пинг не восстанавливается.

Пинг восстанавливается только если уронить второго провайдера или остановить его и подождать.


Ниже конфигурация (т.к. всё в локалке, то фаервол отключен):
 

Код: Выделить всё

# feb/18/2019 23:11:47 by RouterOS 6.43.4
# software id = KA29-ULEH
#
# model = RouterBOARD 941-2nD
# serial number = 6616067B5048
/interface bridge
add name=bridge-local
/interface wireless
set [ find default-name=wlan1 ] ssid=MikroTik
/interface ethernet
set [ find default-name=ether1 ] name=ether1-wan
set [ find default-name=ether2 ] name=ether2-wan
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip pool
add name=pool-lan ranges=192.168.3.11-192.168.3.99
/ip dhcp-server
add address-pool=pool-lan disabled=no interface=bridge-local name=dhcp-lan
/interface bridge port
add bridge=bridge-local hw=no interface=ether3
add bridge=bridge-local hw=no interface=ether4
/ip address
add address=192.168.3.1/24 interface=bridge-local network=192.168.3.0
add address=172.16.0.53/24 interface=ether1-wan network=172.16.0.0
add address=192.168.137.2/24 interface=ether2-wan network=192.168.137.0
/ip dhcp-server network
add address=192.168.3.0/24 dns-server=192.168.3.1 gateway=192.168.3.1
/ip dns
set allow-remote-requests=yes servers=77.88.8.88,77.88.8.2
/ip dns static
add address=192.168.3.1 name=router2
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1-wan
add action=masquerade chain=srcnat out-interface=ether2-wan
/ip route
add check-gateway=ping distance=1 gateway=8.8.8.8
add check-gateway=ping distance=2 gateway=8.8.4.4
add distance=1 dst-address=8.8.4.4/32 gateway=192.168.137.1 scope=10
add distance=1 dst-address=8.8.8.8/32 gateway=172.16.0.1 scope=10
/system clock
set time-zone-autodetect=no
/system clock manual
set time-zone=+03:00

По сути добавлена только рекурсивная маршрутизация:

Код: Выделить всё

/ip route add check-gateway=ping distance=1 gateway=8.8.8.8
/ip route add check-gateway=ping distance=2 gateway=8.8.4.4

/ip route add distance=1 dst-address=8.8.8.8/32 gateway=172.16.0.1 scope=10
/ip route add distance=1 dst-address=8.8.4.4/32 gateway=192.168.137.1 scope=10
Заранее благодарю!


Ответ найден - на другом форуме ткнули меня носом:
"Делается дополнительно если нужен доступ к хостам с разных провайдеров, маршруты по умолчанию должны быть, их ни кто не отменял.

Код: Выделить всё

/ip route 
add dst-address=0.0.0.0/0 gateway=100.XXX.XXX.1 distance=1 
add dst-address=0.0.0.0/0 gateway=150.XXX.XXX.1 distance=2 
 
"

Re: 2 провайдера - пинг не восстанавливается при обратном переходе на первого

Добавлено: 08 апр 2019, 21:38
strelok
Похожая ситуация, настраиваю резервирование канала по скрипту.

ISP1 - Onlime (внешний адрес отдается по DHCP)
ISP2 - Akado (внешний адрес отдается по DHCP)

В настройках DHCP клиента ставлю:
add default route = no
use peer dns = no

Прописываю в разделе DNS адрес гуглового DNS сервера (8.8.8.8)

Прописываю руками два статических маршрута через каждого провайдера с разным distance:

0.0.0.0/0 gateway ISP1 distance 1
0.0.0.0/0 gateway ISP2 distance 2

В Fiewall/NAT прописан маскарадинг через обоих провайдеров, соответственно.

Скрипт каждые 5 минут проверяет доступность нескольких хостов путём пропинговки с каждого интерфейса в сторону провайдера. Вобщем известный, стандартный скрипт на просторах интернета. Если основной канал падает, скрипт меняет distance с 1 на 2 (на упавшем канале) и с 2 на 1 (на резервном)

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

Где может быть проблема ?