4 провайдера и резерв

Тема в разделе "Маршрутизация", создана пользователем Dravem, 13 сен 2017.

  1. Dravem

    Dravem Новый участник

    Добрый день, народ. Помогите, пожалуйста, решить дилему. Микротик получает по DHCP интернет от 4 провайдеров + 5 резервный канал и передает трафик с балансировкой через DHCP сервер в бридж.
    На данный момент есть проблема в том, что при физическом отключении 1 порта я теряю связь с интернетом в целом. Как сделать так, чтобы при отключении любого из портов связь не терялась ( 1 выключен, работают 3 других, а если 4 отключены работало на резерве и была стабильность в скорости для конечных пользователей?

    Конфиги прилагаю:
    ip address print
    Flags: X - disabled, I - invalid, D - dynamic
    # ADDRESS NETWORK INTERFACE
    0 D 192.168.8.101/24 192.168.8.0 ISP5
    1 D 192.168.2.20/24 192.168.2.0 ISP2
    2 172.16.10.1/24 172.16.10.0 bridge-lan
    3 D 192.168.1.105/24 192.168.1.0

    p route print
    Flags: X - disabled, A - active, D - dynamic,
    C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
    B - blackhole, U - unreachable, P - prohibit
    # DST-ADDRESS PREF-SRC GATEWAY DISTANCE
    0 A S 0.0.0.0/0 192.168.1.1 1
    1 A S 0.0.0.0/0 192.168.2.1 1
    2 S 0.0.0.0/0 192.168.3.1 1
    3 S 0.0.0.0/0 192.168.4.1 1
    4 A S 0.0.0.0/0 192.168.8.1 1
    5 ADS 0.0.0.0/0 192.168.1.1 1
    6 DS 0.0.0.0/0 192.168.2.1 1
    7 S 0.0.0.0/0 192.168.3.1 1
    8 S 0.0.0.0/0 192.168.1.1 1
    9 S 0.0.0.0/0 192.168.2.1 2
    10 S 0.0.0.0/0 192.168.3.1 3
    11 S 0.0.0.0/0 192.168.4.1 4
    12 S 0.0.0.0/0 192.168.8.1 5
    13 ADC 172.16.10.0/24 172.16.10.1 bridge-lan 0
    14 ADC 192.168.1.0/24 192.168.1.105 ISP1 0
    15 ADC 192.168.2.0/24 192.168.2.20 ISP2 0
    16 ADC 192.168.8.0/24 192.168.8.101 ISP5

    ip firewall mangle print
    Flags: X - disabled, I - invalid, D - dynamic
    0 chain=input action=mark-connection new-connection-mark=ISP1_conn
    in-interface=ISP1

    1 chain=input action=mark-connection new-connection-mark=ISP2_conn
    in-interface=ISP2

    2 chain=input action=mark-connection new-connection-mark=ISP3_conn
    in-interface=ISP3

    3 chain=input action=mark-connection new-connection-mark=ISP4_conn
    in-interface=ISP4

    4 chain=input action=mark-connection new-connection-mark=ISP5_conn
    in-interface=ISP5

    5 chain=output action=mark-routing new-routing-mark=to_ISP1
    connection-mark=ISP1_conn

    6 chain=output action=mark-routing new-routing-mark=to_ISP2
    connection-mark=ISP2_conn

    7 chain=output action=mark-routing new-routing-mark=to_ISP3
    connection-mark=ISP3_conn

    8 chain=output action=mark-routing new-routing-mark=to_ISP4
    connection-mark=ISP4_conn

    19 chain=prerouting action=mark-connection new-connection-mark=ISP1_conn
    dst-address-type=!local in-interface=bridge-lan
    per-connection-classifier=both-addresses-and-ports:5/0

    20 chain=prerouting action=mark-connection new-connection-mark=ISP2_conn
    dst-address-type=!local in-interface=bridge-lan
    per-connection-classifier=both-addresses-and-ports:5/1

    21 chain=prerouting action=mark-connection new-connection-mark=ISP3_conn
    dst-address-type=!local in-interface=bridge-lan
    per-connection-classifier=both-addresses-and-ports:5/2

    22 chain=prerouting action=mark-connection new-connection-mark=ISP4_conn
    dst-address-type=!local in-interface=bridge-lan
    per-connection-classifier=both-addresses-and-ports:5/3

    23 chain=prerouting action=mark-connection new-connection-mark=ISP5_conn
    dst-address-type=!local in-interface=bridge-lan
    per-connection-classifier=both-addresses-and-ports:5/4

    24 chain=prerouting action=mark-routing new-routing-mark=to_ISP1
    connection-mark=ISP1_conn in-interface=bridge-lan

    25 chain=prerouting action=mark-routing new-routing-mark=to_ISP2
    connection-mark=ISP2_conn in-interface=bridge-lan

    26 chain=prerouting action=mark-routing new-routing-mark=to_ISP3
    connection-mark=ISP3_conn in-interface=bridge-lan

    27 chain=prerouting action=mark-routing new-routing-mark=to_ISP4
    connection-mark=ISP4_conn in-interface=bridge-lan

    28 chain=prerouting action=mark-routing new-routing-mark=to_ISP5
    connection-mark=ISP5_conn in-interface=bridge-lan
     
  2. Последнее редактирование модератором: 23 янв 2019
  3. Dravem

    Dravem Новый участник

    не в той цепочке? если я правильно понял, то мне нужно замаркировать входящий через трафик с каждого WAN, отправить в сеть, и сделать выход Наружу, а то что вернется размаркировать. Тогда пакеты будут уходить через определенный интерфейс, а внутри будут обрабатываться по основной таблице маршрутизации. А если один из интерфейсов будет неактивен, то пакеты же нужно перенаправить на другой и в процессе, чтобы они вернулись. Будьте добры, подскажите какую цепь сменить или какую еще добавить.
     
  4. Изучите материал, все станет ясно.
    Пакеты которые идут через роутер, т.е. на ваши компьютеры которые внутри вашей локальной сети, не попадают в цепочку INPUT...
     
  5. Dravem

    Dravem Новый участник

    а если так ?

    /ip firewall mangle
    add action=mark-connection chain=input in-interface=ISP1 new-connection-mark=con_ISP1
    add action=mark-connection chain=input in-interface=ISP2 new-connection-mark=con_ISP2
    add action=mark-connection chain=input in-interface=ISP3 new-connection-mark=con_ISP3
    add action=mark-connection chain=input in-interface=ISP4 new-connection-mark=con_ISP5
    add action=mark-connection chain=input in-interface=ISP5 new-connection-mark=con_ISP5
    add action=mark-connection chain=input in-interface=ISP4 new-connection-mark=con_ISP4
    add action=mark-routing chain=output connection-mark=con_ISP1 new-routing-mark=rout_ISP1
    add action=mark-routing chain=output connection-mark=con_ISP2 new-routing-mark=rout_ISP2
    add action=mark-routing chain=output connection-mark=con_ISP3 new-routing-mark=rout_ISP3
    add action=mark-routing chain=output connection-mark=con_ISP4 new-routing-mark=rout_ISP4
    add action=mark-routing chain=output connection-mark=con_ISP5 new-routing-mark=rout_ISP5
    add action=mark-routing chain=prerouting new-routing-mark=lan_out-ISP1 nth=5,1 src-address=172.16.10.0/24
    add action=mark-routing chain=prerouting new-routing-mark=lan_out-ISP2 nth=5,2 src-address=172.16.10.0/24
    add action=mark-routing chain=prerouting new-routing-mark=lan_out-ISP3 nth=5,3 src-address=172.16.10.0/24
    add action=mark-routing chain=prerouting new-routing-mark=lan_out-ISP4 nth=5,4 src-address=172.16.10.0/24
    add action=mark-routing chain=prerouting new-routing-mark=lan_out-ISP5 nth=5,5 src-address=172.16.10.0/2
     
  6. Рабочий вариант:

    /ip firewall mangle
    add action=mark-connection chain=prerouting comment=mark-conn-from-WAN1 \
    connection-mark=no-mark in-interface=ether11-WAN1 new-connection-mark=\
    from-WAN1 passthrough=yes
    add action=mark-routing chain=prerouting comment=mark-route-from-WAN1 \
    connection-mark=from-WAN1 in-interface-list=!WAN new-routing-mark=WAN1 \
    passthrough=yes
    add action=mark-routing chain=prerouting comment=mark-route-from-WAN2 \
    connection-mark=from-WAN2 in-interface-list=!WAN new-routing-mark=WAN2 \
    passthrough=yes
    add action=mark-connection chain=prerouting comment=mark-conn-from-WAN2 \
    connection-mark=no-mark in-interface=ether13-WAN2 new-connection-mark=\
    from-WAN2 passthrough=yes
    add action=mark-routing chain=output comment=mark-route-from-WAN1 \
    connection-mark=from-WAN1 new-routing-mark=WAN1 passthrough=yes
    add action=mark-routing chain=output comment=mark-route-from-WAN2 \
    connection-mark=from-WAN2 new-routing-mark=WAN2 passthrough=yes
     
  7. Dravem

    Dravem Новый участник

    кажется получилось. возникла другая проблема. скриптом настроен переключение на резерв. при этом меняется шлюз на резервный канал. Если в этом момент работают другие каналы, выхода в мир нет (через 2 или 3 Ван, резерв на 5). Как организовать работу, чтобы резерв срабатывал только когда все ВАН порты были неактивны. А если отключался 1, в работу входили 2-4 и балансировка проходила между ними, пропал 2, то работает 3-4 и так далее. Как только все становятся неактивны, то в работу вступает резерв.

    /ip route set gateway=192.168.8.1 [find dst-address=0.0.0.0/0];
    /ip firewall mangle
    add action=accept chain=prerouting dst-address=192.168.1.0/24 in-interface=\
    bridge-lan
    add action=accept chain=prerouting dst-address=192.168.3.0/24 in-interface=\
    bridge-lan
    add action=accept chain=prerouting dst-address=192.168.2.0/24 in-interface=\
    bridge-lan
    add action=accept chain=prerouting dst-address=192.168.4.0/24 in-interface=\
    bridge-lan
    add action=mark-connection chain=prerouting connection-mark=no-mark \
    in-interface=ISP1 new-connection-mark=ISP1_conn passthrough=yes
    add action=mark-connection chain=prerouting connection-mark=no-mark \
    in-interface=ISP2 new-connection-mark=ISP2_conn passthrough=yes
    add action=mark-connection chain=prerouting connection-mark=no-mark \
    in-interface=ISP3 new-connection-mark=ISP3_conn passthrough=yes
    add action=mark-connection chain=prerouting connection-mark=no-mark \
    in-interface=ISP4 new-connection-mark=ISP4_conn passthrough=yes
    add action=mark-connection chain=prerouting connection-mark=no-mark \
    dst-address-type=!local in-interface=bridge-lan new-connection-mark=\
    ISP1_conn passthrough=yes per-connection-classifier=both-addresses:4/0
    add action=mark-connection chain=prerouting connection-mark=no-mark \
    dst-address-type=!local in-interface=bridge-lan new-connection-mark=\
    ISP2_conn passthrough=yes per-connection-classifier=both-addresses:4/1
    add action=mark-connection chain=prerouting connection-mark=no-mark \
    dst-address-type=!local in-interface=bridge-lan new-connection-mark=\
    ISP3_conn passthrough=yes per-connection-classifier=both-addresses:4/2
    add action=mark-connection chain=prerouting connection-mark=no-mark \
    dst-address-type=!local in-interface=bridge-lan new-connection-mark=\
    ISP4_conn passthrough=yes per-connection-classifier=both-addresses:4/3
    add action=mark-connection chain=prerouting connection-mark=no-mark \
    dst-address-type=!local in-interface=bridge-lan new-connection-mark=\
    ISP5_conn passthrough=yes per-connection-classifier=both-addresses:4/4
    add action=mark-routing chain=prerouting connection-mark=ISP1_conn \
    in-interface=ISP1 new-routing-mark=to_ISP1 passthrough=yes
    add action=mark-routing chain=prerouting connection-mark=ISP2_conn \
    in-interface=ISP2 new-routing-mark=to_ISP2 passthrough=yes
    add action=mark-routing chain=prerouting connection-mark=ISP3_conn \
    in-interface=ISP3 new-routing-mark=to_ISP3 passthrough=yes
    add action=mark-routing chain=prerouting connection-mark=ISP4_conn \
    in-interface=ISP4 new-routing-mark=to_ISP4 passthrough=yes
    add action=mark-routing chain=output connection-mark=ISP1_conn \
    new-routing-mark=to_ISP1 passthrough=yes
    add action=mark-routing chain=output connection-mark=ISP2_conn \
    new-routing-mark=to_ISP2 passthrough=yes
    add action=mark-routing chain=output connection-mark=ISP3_conn \
    new-routing-mark=to_ISP3 passthrough=yes
    add action=mark-routing chain=output connection-mark=ISP4_conn \
    new-routing-mark=to_ISP4 passthrough=yes
     
  8. https://mum.mikrotik.com/presentations/UA12/lukin.pdf вот хорошая презенташка