Падение маршрутизации [РЕШЕНО]

RIP, OSFP, BGP, MPLS/VPLS
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Падение маршрутизации [РЕШЕНО]

Сообщение Sir_Prikol »

Добрый день, помогите выловить глюк:

6 аплинков pppoe, балансировка - всё работает (от одного провайдера) все с белыми адресами, но, возникла необходимость на один конкретный сервер отправить через один конкретный линк. Исключил этот линк из балансировки - проблем нет, завёл правила которые выпускают на один сервер с одного аплинка - в торче проблем нет, но при падении этого аплинка и поднятии его - маршрутизация в ту сторону падает, ребут не помогает, помогает простой откат настроек на последнюю версию без изменений:
Нужный линк - 00.ppppoe-ISP06, IP 123.123.123.123
212.48.195.247 - шлюз провайдера

216.66.84.54 - адрес, куда надо попасть только с одного аплинка (06)

Частичная конфа:

ip route

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

add check-gateway=ping comment=BACKUP distance=1 gateway=11.sfp routing-mark=route_backup
add check-gateway=arp distance=1 gateway=212.48.195.247%00.pppoe-ISP06 routing-mark=route_isp_06
add check-gateway=arp distance=2 gateway=212.48.195.247%00.pppoe-ISP01routing-mark=route_isp_06
add check-gateway=arp distance=3 gateway=212.48.195.247%00.pppoe-ISP02 routing-mark=route_isp_06
add check-gateway=arp distance=4 gateway=212.48.195.247%00.pppoe-ISP03 routing-mark=route_isp_06
add check-gateway=arp distance=5 gateway=212.48.195.247%00.pppoe-ISP04 routing-mark=route_isp_06
add check-gateway=arp distance=6 gateway=212.48.195.247%00.pppoe-ISP05 routing-mark=route_isp_06
add check-gateway=arp comment=BACKUP distance=7 gateway=11.sfp routing-mark=route_isp_06
add check-gateway=arp distance=1 gateway=212.48.195.247%00.pppoe-ISP01 routing-mark=route_isp_01
add check-gateway=arp distance=2 gateway=212.48.195.247%00.pppoe-ISP02 routing-mark=route_isp_01
add check-gateway=arp distance=3 gateway=212.48.195.247%00.pppoe-ISP03 routing-mark=route_isp_01
add check-gateway=arp distance=4 gateway=212.48.195.247%00.pppoe-ISP04 routing-mark=route_isp_01
add check-gateway=arp distance=5 gateway=212.48.195.247%00.pppoe-ISP05 routing-mark=route_isp_01
add check-gateway=arp distance=6 gateway=212.48.195.247%00.pppoe-ISP06 routing-mark=route_isp_01
add check-gateway=arp comment=BACKUP distance=7 gateway=11.sfp routing-mark=route_isp_01
add check-gateway=arp distance=1 gateway=212.48.195.247%00.pppoe-ISP02 routing-mark=route_isp_02
add check-gateway=arp distance=2 gateway=212.48.195.247%00.pppoe-ISP03 routing-mark=route_isp_02
add check-gateway=arp distance=3 gateway=212.48.195.247%00.pppoe-ISP04 routing-mark=route_isp_02
add check-gateway=arp distance=4 gateway=212.48.195.247%00.pppoe-ISP05 routing-mark=route_isp_02
add check-gateway=arp distance=5 gateway=212.48.195.247%00.pppoe-ISP06 \routing-mark=route_isp_02
add check-gateway=arp distance=6 gateway=212.48.195.247%00.pppoe-ISP01 routing-mark=route_isp_02
add check-gateway=arp comment=BACKUP distance=7 gateway=11.sfp routing-mark=route_isp_02
add check-gateway=arp distance=1 gateway=212.48.195.247%00.pppoe-ISP03 routing-mark=route_isp_03
add check-gateway=arp distance=2 gateway=212.48.195.247%00.pppoe-ISP04 routing-mark=route_isp_03
add check-gateway=arp distance=3 gateway=212.48.195.247%00.pppoe-ISP05  routing-mark=route_isp_03
add check-gateway=arp distance=4 gateway=212.48.195.247%00.pppoe-ISP06routing-mark=route_isp_03
add check-gateway=arp distance=5 gateway=212.48.195.247%00.pppoe-ISP01routing-mark=route_isp_03
add check-gateway=arp distance=6 gateway=212.48.195.247%00.pppoe-ISP02 routing-mark=route_isp_03
add check-gateway=arp comment=BACKUP distance=7 gateway=11.sfp routing-mark=route_isp_03
add check-gateway=arp distance=1 gateway=212.48.195.247%00.pppoe-ISP04 routing-mark=route_isp_04
add check-gateway=arp distance=2 gateway=212.48.195.247%00.pppoe-ISP05 routing-mark=route_isp_04
add check-gateway=arp distance=3 gateway=212.48.195.247%00.pppoe-ISP06 routing-mark=route_isp_04
add check-gateway=arp distance=4 gateway=212.48.195.247%00.pppoe-ISP01 routing-mark=route_isp_04
add check-gateway=arp distance=5 gateway=212.48.195.247%00.pppoe-ISP02 routing-mark=route_isp_04
add check-gateway=arp distance=6 gateway=212.48.195.247%00.pppoe-ISP03 routing-mark=route_isp_04
add check-gateway=arp comment=BACKUP distance=7 gateway=11.sfp routing-mark=route_isp_04
add check-gateway=arp distance=1 gateway=212.48.195.247%00.pppoe-ISP05 routing-mark=route_isp_05
add check-gateway=arp distance=2 gateway=212.48.195.247%00.pppoe-ISP06 routing-mark=route_isp_05
add check-gateway=arp distance=3 gateway=212.48.195.247%00.pppoe-ISP01 routing-mark=route_isp_05
add check-gateway=arp distance=4 gateway=212.48.195.247%00.pppoe-ISP02 routing-mark=route_isp_05
add check-gateway=arp distance=5 gateway=212.48.195.247%00.pppoe-ISP03 routing-mark=route_isp_05
add check-gateway=arp distance=6 gateway=212.48.195.247%00.pppoe-ISP04 routing-mark=route_isp_05
add check-gateway=arp comment=BACKUP distance=7 gateway=11.sfp routing-mark=route_isp_05
add check-gateway=arp distance=1 gateway=212.48.195.247%00.pppoe-ISP01
add check-gateway=ping distance=1 gateway=212.48.195.247%00.pppoe-ISP03
add check-gateway=ping distance=1 gateway=212.48.195.247%00.pppoe-ISP05
add check-gateway=ping distance=1 gateway=212.48.195.247%00.pppoe-ISP01
add check-gateway=ping distance=1 gateway=212.48.195.247%00.pppoe-ISP02
add check-gateway=ping distance=1 gateway=11.sfp
add check-gateway=ping distance=1 gateway=212.48.195.247%00.pppoe-ISP04
add check-gateway=ping distance=1 gateway=212.48.195.247%00.pppoe-ISP06
add check-gateway=arp distance=2 gateway=212.48.195.247%00.pppoe-ISP02
add check-gateway=arp distance=3 gateway=212.48.195.247%00.pppoe-ISP03
add check-gateway=arp distance=4 gateway=212.48.195.247%00.pppoe-ISP04
add check-gateway=arp distance=5 gateway=212.48.195.247%00.pppoe-ISP05
add check-gateway=arp distance=6 gateway=212.48.195.247%00.pppoe-ISP06
add check-gateway=arp comment=BACKUP distance=7 gateway=11.sfp
add distance=1 dst-address=149.154.167.0/24 gateway=00.BYPASS_LV
add distance=1 dst-address=216.66.84.54/32 gateway=00.pppoe-ISP06 pref-src=123.123.123.123
ip firewall mangle

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

add action=mark-connection chain=input comment="##############  PCC \F1\F3\EC\
    \EC\E8\F0\EE\E2\E0\ED\E8\E5 \E0\EF\EB\E8\ED\EA\EE\E2  ##############" \
    connection-state=new in-interface=00.pppoe-ISP01 log-prefix=pppoe1 \
    new-connection-mark=conn_isp_01 passthrough=yes
add action=mark-connection chain=input connection-state=new in-interface=\
    00.pppoe-ISP02 log-prefix=pppoe2 new-connection-mark=conn_isp_02 \
    passthrough=yes
add action=mark-connection chain=input connection-state=new in-interface=\
    00.pppoe-ISP03 new-connection-mark=conn_isp_03 passthrough=yes
add action=mark-connection chain=input connection-state=new in-interface=\
    00.pppoe-ISP04 new-connection-mark=conn_isp_04 passthrough=yes
add action=mark-connection chain=input connection-state=new in-interface=\
    00.pppoe-ISP05 new-connection-mark=conn_isp_05 passthrough=yes
add action=mark-connection chain=input connection-state=new in-interface=\
    00.pppoe-ISP06 new-connection-mark=conn_isp_06 passthrough=yes
add action=mark-connection chain=input connection-state=new in-interface=\
    11.sfp new-connection-mark=conn_backup passthrough=yes
add action=mark-connection chain=prerouting connection-state=new \
    in-interface=00.pppoe-ISP01 log-prefix=pppoe1 new-connection-mark=\
    conn_isp_01 passthrough=yes
add action=mark-connection chain=prerouting connection-state=new \
    in-interface=00.pppoe-ISP02 log-prefix=pppoe2 new-connection-mark=\
    conn_isp_02 passthrough=yes
add action=mark-connection chain=prerouting connection-state=new \
    in-interface=00.pppoe-ISP03 new-connection-mark=conn_isp_03 passthrough=\
    yes
add action=mark-connection chain=prerouting connection-state=new \
    in-interface=00.pppoe-ISP04 new-connection-mark=conn_isp_04 passthrough=\
    yes
add action=mark-connection chain=prerouting connection-state=new \
    in-interface=00.pppoe-ISP05 new-connection-mark=conn_isp_05 passthrough=\
    yes
add action=mark-connection chain=prerouting connection-state=new \
    in-interface=00.pppoe-ISP06 new-connection-mark=conn_isp_06 passthrough=\
    yes
add action=mark-connection chain=prerouting connection-state=new \
    in-interface=11.sfp new-connection-mark=conn_backup passthrough=yes
add action=mark-routing chain=output connection-mark=conn_isp_01 log-prefix=\
    pppoe1 new-routing-mark=route_isp_01 passthrough=yes
add action=mark-routing chain=output connection-mark=conn_isp_02 log-prefix=\
    pppoe2 new-routing-mark=route_isp_02 passthrough=yes
add action=mark-routing chain=output connection-mark=conn_isp_03 \
    new-routing-mark=route_isp_03 passthrough=yes
add action=mark-routing chain=output connection-mark=conn_isp_04 \
    new-routing-mark=route_isp_04 passthrough=yes
add action=mark-routing chain=output connection-mark=conn_isp_05 \
    new-routing-mark=route_isp_05 passthrough=yes
add action=mark-routing chain=output connection-mark=conn_isp_06 \
    new-routing-mark=route_isp_06 passthrough=yes
add action=mark-routing chain=output connection-mark=conn_backup \
    new-routing-mark=route_backup passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark \
    dst-address-type=!local new-connection-mark=conn_isp_01 passthrough=yes \
    per-connection-classifier=both-addresses:5/0 src-address-list=BOGONS
add action=mark-connection chain=prerouting connection-mark=no-mark \
    dst-address-type=!local new-connection-mark=conn_isp_02 passthrough=yes \
    per-connection-classifier=both-addresses:5/1 src-address-list=BOGONS
add action=mark-connection chain=prerouting connection-mark=no-mark \
    dst-address-type=!local new-connection-mark=conn_isp_03 passthrough=yes \
    per-connection-classifier=both-addresses:5/2 src-address-list=BOGONS
add action=mark-connection chain=prerouting connection-mark=no-mark \
    dst-address-type=!local new-connection-mark=conn_isp_04 passthrough=yes \
    per-connection-classifier=both-addresses:5/3 src-address-list=BOGONS
add action=mark-connection chain=prerouting connection-mark=no-mark \
    dst-address-type=!local new-connection-mark=conn_isp_05 passthrough=yes \
    per-connection-classifier=both-addresses:5/4 src-address-list=BOGONS
add action=mark-connection chain=prerouting comment="\CE\F2\EA\EB\FE\F7\E5\ED\
    \EE \E4\EB\FF \F2\EE\E3\EE, \F7\F2\EE\E1\FB IPv6 \E1\FB\EB \F7\E8\F1\F2\FB\
    \E9 \E8 \E1\E5\E7 \E4\EE\EF\F2\F0\E0\F4\F4\E8\EA\E0. \CF\F0\E8 \E2\EA\EB\
    \FE\F7\E5\ED\E8\E8 \ED\E0\F1\F2\F0\EE\E8\F2\FC PCC \E2 Advanced" \
    connection-mark=no-mark disabled=yes dst-address-type=!local \
    new-connection-mark=conn_isp_06 passthrough=yes \
    per-connection-classifier=both-addresses:6/5 src-address-list=BOGONS
add action=mark-routing chain=prerouting connection-mark=conn_isp_01 \
    new-routing-mark=route_isp_01 passthrough=yes src-address-list=BOGONS
add action=mark-routing chain=prerouting connection-mark=conn_isp_02 \
    new-routing-mark=route_isp_02 passthrough=yes src-address-list=BOGONS
add action=mark-routing chain=prerouting connection-mark=conn_isp_03 \
    new-routing-mark=route_isp_03 passthrough=yes src-address-list=BOGONS
add action=mark-routing chain=prerouting connection-mark=conn_isp_04 \
    new-routing-mark=route_isp_04 passthrough=yes src-address-list=BOGONS
add action=mark-routing chain=prerouting connection-mark=conn_isp_05 \
    new-routing-mark=route_isp_05 passthrough=yes src-address-list=BOGONS
add action=mark-routing chain=prerouting connection-mark=conn_isp_06 \
    new-routing-mark=route_isp_06 passthrough=yes src-address-list=BOGONS
add action=mark-connection chain=prerouting connection-mark=no-mark \
    new-connection-mark=oTher passthrough=yes
Пытался прописывать в маршрутах явный routing mark - линк ложился
Пытался в мангла прописывать

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

add action=mark-routing chain=prerouting comment=dst-address=216.66.84.54/32 new-routing-mark=route_isp_05 passthrough=no
Эффект тот-же.

Куда рыть?
Последний раз редактировалось Sir_Prikol 22 ноя 2019, 11:45, всего редактировалось 1 раз.
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: Падение маршрутизации

Сообщение Sir_Prikol »

UPD.

Можно восстановить работу канала не восстанавливая конфу. Отправляю на нужный мне сервак через другую линию и через 2-3 часа возвращаю обратно на нужную - живёт дальше до ближайшего обрыва.
Такое ощущение что где-то сохраняется маршрут и сидит там какое-то время, соответственно не обновляется после падения
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: Падение маршрутизации

Сообщение Sir_Prikol »

Нашёл, происходит зависение соединения в Connections Tracking в разделе UDP Stream Timeout. Сейчас оно выставлено у меня на 3 часа, вот думаю что будет, если я заменю его на другое время?

Или может скриптом сбрасывать?

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

:local hostping 216.66.84.54;
:foreach i in=[/ip firewall connection find dst-address~$hostping] do={ /ip firewall connection remove $i } 
:foreach ii in=[/ip firewall connection find src-address~$hostping] do={ /ip firewall connection remove $ii } 
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Падение маршрутизации

Сообщение Chupaka »

Добрый.

Предлагаю после

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

add distance=1 dst-address=216.66.84.54/32 gateway=00.pppoe-ISP06 pref-src=123.123.123.123
добавить

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

add distance=10 dst-address=216.66.84.54/32 type=unreachable
В результате при падении аплинка пакеты не будут улетать на дефолтный шлюз - соответственно, и "залипать" нечему будет :)
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: Падение маршрутизации

Сообщение Sir_Prikol »

Спасибо, попробуем :) Отпишусь по результату
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: Падение маршрутизации

Сообщение Sir_Prikol »

Нужного эффекта не дало :( Скрипт отрабатывает, но один фиг все манипуляции ещё доделываю руками, в общем это занимает около 10 минут, поубивать все соединения
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Падение маршрутизации

Сообщение Chupaka »

Какой скрипт отрабатывает? О чём речь? Я только про маршрут писал, ни о каких скриптах речи не было...
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: Падение маршрутизации

Сообщение Sir_Prikol »

Скрипт я руками свой запускаю.
Заметил другое, данное содениение висит со статусом CDf - руками я его восстаавливаю (имеется ввиду хождение, осталось скриптом это сделать
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Падение маршрутизации

Сообщение Chupaka »

Я же написал, что без скрипта должно работать, просто с дополнительным маршрутом :) Мы сейчас какой из вариантов обсуждаем?
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: Падение маршрутизации

Сообщение Sir_Prikol »

Я-же ответил, допмаршрут не спасает, линка нет, пока его не скинешь в Connections Tracking.

Я почему и сказал, пишу скрипт по всем действиям, что приводит к восстановлению канала
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: Падение маршрутизации

Сообщение Sir_Prikol »

В общем, после долгих мучений родился следующий скрипт в Netwatch на IPv6 DNS

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

delay 15;
:log warning "Start clearing";
:foreach i in=[/ip firewall connection find dst-address~"^216.66.84.54"] do={ /ip firewall connection remove $i } 
:log warning "dst - cleared";
:foreach ii in=[/ip firewall connection find src-address~"^216.66.84.54"] do={ /ip firewall connection remove $ii } 
:log warning "src - cleared";
/ip firewall connection remove [find where src-address~"^216.66.84.54"]
:log warning "src - cleared";
/ip firewall connection remove [find where dst-address~"^216.66.84.54"]
:log warning "dst - cleared";
Очень долго подбирал время ожидания - delay, но теперь, тьфу-тьфу-тьфу - отрабатывает и соединение поднимается само
Всё это на RB3011, в среду перенесу на RB4011 - виимо и там надо будет подбирать оптимальный delay
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 562
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: Падение маршрутизации [РЕШЕНО]

Сообщение Sir_Prikol »

Переделал всё наглухо, наваял шедуллер и скрипт следующего содержания :

Шедуллер:

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

:local name1 DNSIPV6;
:local IP1 2606:4700:4700::1111;
:local time [/system clock get time];
:local PingCount 5;
:local Ping1 [/ping $IP1 count=$PingCount];
if ($Ping1 = 0) do={/system script run ipv6_error_repair} else={};
Сам скрипт:

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

:foreach i in=[/ip firewall connection find dst-address~"^216.66.84.54"] do={ /ip firewall connection remove $i } 
:log warning "dst - cleared";
:foreach ii in=[/ip firewall connection find src-address~"^216.66.84.54"] do={ /ip firewall connection remove $ii } 
:log warning "src - cleared";
/ip firewall connection remove [find where src-address~"^216.66.84.54"]
:log warning "src - cleared";
/ip firewall connection remove [find where dst-address~"^216.66.84.54"]
:log warning "dst - cleared";

САМОЕ ГЛАВНОЕ! НЕЛЬЗЯ ПИСАТЬ НАЗВАНИЕ СКРИПТОВ И ШЕДУЛЛЕРА С ЦИФРЫ, НАЧИНАЮТСЯ НЕПОНЯТНЫЕ ГЛЮКИ

У меня весь мозг сожрало в течении 3-х месяцев, работало как хотело, пока не переименовал
Дома: CCR2004 (7-ISP(GPON)белый IP)