Добрый день!
Есть два интернета со статическими ip. Решил настроить рекурсивную маршрутизацию для переключения каналов. Перечитал кучу статей, сделал настройки. Но не работает. Причину понять не могу. Прошу помочь.
В роуте настроил так:
в качестве Шлюз 1,2 провайдера вставлял IP адреса.
Два маршрута для промаркированого трафика
add distance=1 gateway="Шлюз 1 провайдера" routing-mark="ISP 1"
add distance=1 gateway="Шлюз 2 провайдера" routing-mark="ISP 2"
Маршрут по умолчанию
add distance=1 gateway="Шлюз 1 провайдера"
add distance=2 gateway="Шлюз 2 провайдера"
И настроил рекурсивную маршрутизацию , выбрал для проверки работоспособности каналов IP 8.8.4.4 и 208.67.222.222
add check-gateway=ping distance=1 gateway=8.8.4.4 scope=10
add check-gateway=ping distance=2 gateway=208.67.222.222 scope=10
add distance=1 dst-address=8.8.4.4/32 gateway="Шлюз 1 провайдера" scope=10
add distance=1 dst-address=208.67.222.222/32 gateway="Шлюз 2 провайдера" scope=10
Проверяю схему, отключаю оптику, на втором провайдере, и ни чего не происходит, хотя должно по сути сделать это канал unreachable и выключить маршруты
add check-gateway=ping distance=2 gateway=208.67.222.222 scope=10 и
add distance=1 gateway="Шлюз 2 провайдера" routing-mark="ISP 2"
Если ставлю проверку пинга в одно из этих правил, то все отрабатывает, маршрут выключает, но я так понимаю он напрямую пингует шлюз, а он не доступен.
add check-gateway=ping distance=2 distance=1 dst-address=208.67.222.222/32 gateway="Шлюз 2 провайдера" scope=10
или add check-gateway=ping distance=1 gateway="Шлюз 2 провайдера" routing-mark="ISP 2"
Что делаю не так?
еще по ходу возник вопрос а будет ли работать такая схема, если прописать два шлюза... что бы трафик разбивался на два канала, с проверкой удаленного ip
add check-gateway=ping distance=1 gateway=208.67.222.222,8.8.4.4 scope=10
Не могу настроить рекурсивную маршрутизацию
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.
1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.
1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
-
- Сообщения: 92
- Зарегистрирован: 15 июл 2018, 02:08
viewtopic.php?p=74185#p74185
Тут все что вам нужно, что бы работало резервирование.
2 адреса для проверки мне не понятно зачем.
Прямые дефолтные маршруты в этом случае совсем лишние.
Ну или например так:
https://youtu.be/X4jQDPIJ4tU?t=978
Тут все что вам нужно, что бы работало резервирование.
2 адреса для проверки мне не понятно зачем.
Прямые дефолтные маршруты в этом случае совсем лишние.
Ну или например так:
https://youtu.be/X4jQDPIJ4tU?t=978
- podarok66
- Модератор
- Сообщения: 4361
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Нет полной информации. При рекурсивной маршрутизации очень важно правильно промаркировать трафик.
Предположим, что мы имеем два соединения с провайдерами
ISP1 имеет шлюз 10.201.10.254 и выдает нам адрес 10.201.10.1 через ether4
ISP1 имеет шлюз 172.27.31.1 и выдает нам адрес 172.27.29.27 через ether2
Сначала маркируем входящие соединения на интерфейсах и метим маршруты на выходе:
Теперь правилами маршрутизации ограничиваем маркированные маршруты своими таблицами
Далее задаем маршруты с учетом применения параметра scope=10, разной дистанции для разных провайдеров и отдельного маршрута для маркированного трафика. В целом это уже обеспечит переключение каналов при обрыве.
Но хотелось бы, чтобы ответы отправлялись через те интерфейсы, с которых пришли. Составляем список BOGON
Маркируем на выходе все маршруты, отданные не локальными сетями
Теперь очередь маркировки соединений на входящих интерфейсах, и затем маршрутов по этим меткам, но теперь в цепочке prerouting, это важно!!!
Теперь роутер знает что откуда и куда. На этом настройку можно и закончить.
Предположим, что мы имеем два соединения с провайдерами
ISP1 имеет шлюз 10.201.10.254 и выдает нам адрес 10.201.10.1 через ether4
ISP1 имеет шлюз 172.27.31.1 и выдает нам адрес 172.27.29.27 через ether2
Сначала маркируем входящие соединения на интерфейсах и метим маршруты на выходе:
Код: Выделить всё
/ip firewall mangle
add action=mark-connection chain=input in-interface=ether4 \
new-connection-mark=Input/ISP1
add action=mark-routing chain=output connection-mark=Input/ISP1 \
new-routing-mark=ISP1 passthrough=no
add action=mark-connection chain=input in-interface=ether2 \
new-connection-mark=Input/ISP2
add action=mark-routing chain=output connection-mark=Input/ISP2 \
new-routing-mark=ISP2 passthrough=no
Теперь правилами маршрутизации ограничиваем маркированные маршруты своими таблицами
Код: Выделить всё
/ip route rule
add action=lookup-only-in-table routing-mark=ISP1 table=ISP1
add action=lookup-only-in-table routing-mark=ISP2 table=ISP2
Код: Выделить всё
/ip route
add distance=1 gateway=10.201.10.254 routing-mark=ISP1
add distance=1 gateway=172.27.31.1 routing-mark=ISP2
add distance=1 dst-address=8.8.4.4/32 gateway=172.27.31.1 scope=10
add distance=1 dst-address=8.8.8.8/32 gateway=10.201.10.254 scope=10
add check-gateway=ping distance=1 gateway=8.8.8.8 target-scope=30
add check-gateway=ping distance=2 gateway=8.8.4.4 target-scope=30
Код: Выделить всё
/ip firewall address-list
add list="BOGONS" address=0.0.0.0/8
add list="BOGONS" address=10.0.0.0/8
add list="BOGONS" address=100.64.0.0/10
add list="BOGONS" address=127.0.0.0/8
add list="BOGONS" address=169.254.0.0/16
add list="BOGONS" address=172.16.0.0/12
add list="BOGONS" address=192.0.0.0/24
add list="BOGONS" address=192.0.2.0/24
add list="BOGONS" address=192.168.0.0/16
add list="BOGONS" address=198.18.0.0/15
add list="BOGONS" address=198.51.100.0/24
add list="BOGONS" address=203.0.113.0/24
add list="BOGONS" address=224.0.0.0/3
Код: Выделить всё
/ip firewall mangle
add action=mark-routing chain=output dst-address-list=!BOGONS \
new-routing-mark=ISP1 src-address=10.201.10.1
add action=mark-routing chain=output dst-address-list=!BOGONS \
new-routing-mark=ISP2 src-address=172.27.29.27
Код: Выделить всё
/ip firewall mangle
add action=mark-connection chain=prerouting in-interface=ether4 \
new-connection-mark=Forward/ISP1
add action=mark-routing chain=prerouting connection-mark=Forward/ISP1 \
in-interface=!ether4 new-routing-mark=ISP1 passthrough=no
add action=mark-connection chain=prerouting in-interface=ether2 \
new-connection-mark=Forward/ISP2
add action=mark-routing chain=prerouting connection-mark=Forward/ISP2 \
in-interface=!ether2 new-routing-mark=ISP2 passthrough=no
Теперь роутер знает что откуда и куда. На этом настройку можно и закончить.
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
-
- Сообщения: 92
- Зарегистрирован: 15 июл 2018, 02:08
Разве эта тема с маркировкой маршрутов критична для простого резервирования?podarok66 писал(а): ↑02 окт 2020, 20:17 Нет полной информации. При рекурсивной маршрутизации очень важно правильно промаркировать трафик.
Предположим, что мы имеем два соединения с провайдерами
ISP1 имеет шлюз 10.201.10.254 и выдает нам адрес 10.201.10.1 через ether4
ISP1 имеет шлюз 172.27.31.1 и выдает нам адрес 172.27.29.27 через ether2
Сначала маркируем входящие соединения на интерфейсах и метим маршруты на выходе:Код: Выделить всё
/ip firewall mangle add action=mark-connection chain=input in-interface=ether4 \ new-connection-mark=Input/ISP1 add action=mark-routing chain=output connection-mark=Input/ISP1 \ new-routing-mark=ISP1 passthrough=no add action=mark-connection chain=input in-interface=ether2 \ new-connection-mark=Input/ISP2 add action=mark-routing chain=output connection-mark=Input/ISP2 \ new-routing-mark=ISP2 passthrough=no
Теперь правилами маршрутизации ограничиваем маркированные маршруты своими таблицамиДалее задаем маршруты с учетом применения параметра scope=10, разной дистанции для разных провайдеров и отдельного маршрута для маркированного трафика. В целом это уже обеспечит переключение каналов при обрыве.Код: Выделить всё
/ip route rule add action=lookup-only-in-table routing-mark=ISP1 table=ISP1 add action=lookup-only-in-table routing-mark=ISP2 table=ISP2
Код: Выделить всё
/ip route add distance=1 gateway=10.201.10.254 routing-mark=ISP1 add distance=1 gateway=172.27.31.1 routing-mark=ISP2 add distance=1 dst-address=8.8.4.4/32 gateway=172.27.31.1 scope=10 add distance=1 dst-address=8.8.8.8/32 gateway=10.201.10.254 scope=10 add check-gateway=ping distance=1 gateway=8.8.8.8 target-scope=30 add check-gateway=ping distance=2 gateway=8.8.4.4 target-scope=30
Это больше похоже на настройку dual wan для параллельной работы двух каналов.
- podarok66
- Модератор
- Сообщения: 4361
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Это работает, без оговорок и исключений в виде банк-клентов, баз данных и тому подобной трихомудии. Да, тут немного больше маркировать, да схема кажется избыточной. Но пашет на ура. И если надо вывести кого-то через определённого провайдера, тоже не сложно осуществить. Это задел для будущих хотелок начинающему админу
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
-
- Сообщения: 12
- Зарегистрирован: 25 сен 2020, 07:48
Спасибо, тему прочитал, у меня вроде так все и настроено, прямые дефолтные маршруты отключал.yarvelov писал(а): ↑02 окт 2020, 14:05 viewtopic.php?p=74185#p74185
Тут все что вам нужно, что бы работало резервирование.
2 адреса для проверки мне не понятно зачем.
Прямые дефолтные маршруты в этом случае совсем лишние.
Ну или например так:
https://youtu.be/X4jQDPIJ4tU?t=978
Видео посмотрел, у него там вообще через какието обманные маршруты сделано.. тоже не заработало так..
-
- Сообщения: 12
- Зарегистрирован: 25 сен 2020, 07:48
Не понятно почему важно правильно промаркировать трафик, вроде некоторые примеры показаны вообще без маркировки и работают.podarok66 писал(а): ↑02 окт 2020, 20:17 Нет полной информации. При рекурсивной маршрутизации очень важно правильно промаркировать трафик.
Предположим, что мы имеем два соединения с провайдерами
ISP1 имеет шлюз 10.201.10.254 и выдает нам адрес 10.201.10.1 через ether4
ISP1 имеет шлюз 172.27.31.1 и выдает нам адрес 172.27.29.27 через ether2
Сначала маркируем входящие соединения на интерфейсах и метим маршруты на выходе:Код: Выделить всё
/ip firewall mangle add action=mark-connection chain=input in-interface=ether4 \ new-connection-mark=Input/ISP1 add action=mark-routing chain=output connection-mark=Input/ISP1 \ new-routing-mark=ISP1 passthrough=no add action=mark-connection chain=input in-interface=ether2 \ new-connection-mark=Input/ISP2 add action=mark-routing chain=output connection-mark=Input/ISP2 \ new-routing-mark=ISP2 passthrough=no
Теперь правилами маршрутизации ограничиваем маркированные маршруты своими таблицамиДалее задаем маршруты с учетом применения параметра scope=10, разной дистанции для разных провайдеров и отдельного маршрута для маркированного трафика. В целом это уже обеспечит переключение каналов при обрыве.Код: Выделить всё
/ip route rule add action=lookup-only-in-table routing-mark=ISP1 table=ISP1 add action=lookup-only-in-table routing-mark=ISP2 table=ISP2
Но хотелось бы, чтобы ответы отправлялись через те интерфейсы, с которых пришли. Составляем список BOGONКод: Выделить всё
/ip route add distance=1 gateway=10.201.10.254 routing-mark=ISP1 add distance=1 gateway=172.27.31.1 routing-mark=ISP2 add distance=1 dst-address=8.8.4.4/32 gateway=172.27.31.1 scope=10 add distance=1 dst-address=8.8.8.8/32 gateway=10.201.10.254 scope=10 add check-gateway=ping distance=1 gateway=8.8.8.8 target-scope=30 add check-gateway=ping distance=2 gateway=8.8.4.4 target-scope=30
Маркируем на выходе все маршруты, отданные не локальными сетямиКод: Выделить всё
/ip firewall address-list add list="BOGONS" address=0.0.0.0/8 add list="BOGONS" address=10.0.0.0/8 add list="BOGONS" address=100.64.0.0/10 add list="BOGONS" address=127.0.0.0/8 add list="BOGONS" address=169.254.0.0/16 add list="BOGONS" address=172.16.0.0/12 add list="BOGONS" address=192.0.0.0/24 add list="BOGONS" address=192.0.2.0/24 add list="BOGONS" address=192.168.0.0/16 add list="BOGONS" address=198.18.0.0/15 add list="BOGONS" address=198.51.100.0/24 add list="BOGONS" address=203.0.113.0/24 add list="BOGONS" address=224.0.0.0/3
Теперь очередь маркировки соединений на входящих интерфейсах, и затем маршрутов по этим меткам, но теперь в цепочке prerouting, это важно!!!Код: Выделить всё
/ip firewall mangle add action=mark-routing chain=output dst-address-list=!BOGONS \ new-routing-mark=ISP1 src-address=10.201.10.1 add action=mark-routing chain=output dst-address-list=!BOGONS \ new-routing-mark=ISP2 src-address=172.27.29.27
Код: Выделить всё
/ip firewall mangle add action=mark-connection chain=prerouting in-interface=ether4 \ new-connection-mark=Forward/ISP1 add action=mark-routing chain=prerouting connection-mark=Forward/ISP1 \ in-interface=!ether4 new-routing-mark=ISP1 passthrough=no add action=mark-connection chain=prerouting in-interface=ether2 \ new-connection-mark=Forward/ISP2 add action=mark-routing chain=prerouting connection-mark=Forward/ISP2 \ in-interface=!ether2 new-routing-mark=ISP2 passthrough=no
Теперь роутер знает что откуда и куда. На этом настройку можно и закончить.
Но в любом случаем у меня все маркировано:
И направлены часть пользователей через одного провайдера, остальные через другого. !Other- все внутренние подсети
Код: Выделить всё
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=ether-1 new-connection-mark="ISP 1 -> Input" passthrough=no
add action=mark-routing chain=prerouting connection-mark="ISP 1 -> Input" in-interface-list=!WAN new-routing-mark="ISP 1" passthrough=no
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=ether-2 new-connection-mark="ISP 2 -> Input" passthrough=no
add action=mark-routing chain=prerouting connection-mark="ISP 2 -> Input" in-interface-list=!WAN new-routing-mark="ISP 2" passthrough=no
add action=mark-routing chain=output connection-mark="ISP 1 -> Input" new-routing-mark="ISP 1" passthrough=no
add action=mark-routing chain=output connection-mark="ISP 2 -> Input" new-routing-mark="ISP 2" passthrough=no
add action=mark-routing chain=prerouting dst-address-list=!Other new-routing-mark="ISP 2" passthrough=no src-address=192.168.50.2
add action=mark-routing chain=prerouting dst-address-list=!Other new-routing-mark="ISP 1" passthrough=no src-address=192.168.50.0/24
Только в правилах стоить просто lookup
Код: Выделить всё
add src-address=белый ip 1 провайдера/32 table="ISP 1"
add src-address=белый ip 2 провайдера/32 table="ISP 2"
-
- Сообщения: 92
- Зарегистрирован: 15 июл 2018, 02:08
Так когда вы отключаете маршрут до этого адреса в routes, с тика он остается доступен?
Если да, то косяк в правиле блокирующем пинг до этого адреса для второго провайдера.
Если да, то косяк в правиле блокирующем пинг до этого адреса для второго провайдера.
-
- Сообщения: 12
- Зарегистрирован: 25 сен 2020, 07:48
В файрволе я блокирую пинг с этого интерфейса до проверяемого адреса.
Код: Выделить всё
add action=drop chain=output dst-address=208.67.222.222 out-interface=ether-1 protocol=icmp
Код: Выделить всё
add check-gateway=ping distance=2 gateway=208.67.222.222 scope=10
Код: Выделить всё
add distance=1 gateway="Шлюз 2 провайдера" routing-mark="ISP 2"
add distance=1 dst-address=208.67.222.222/32 gateway="Шлюз 2 провайдера" scope=10
-
- Сообщения: 92
- Зарегистрирован: 15 июл 2018, 02:08
ну уменьшите количество условий хотя бы так: add action=drop chain=output dst-address=208.67.222.222 out-interface=ether-1
и проверьте, прямо руками из терминала, остается связь или нет.
и проверьте, прямо руками из терминала, остается связь или нет.