Резервирование и подсети на HAP Lite (RB941-2nD-TC)

Обсуждение оборудования и его настройки
ShadowNet
Сообщения: 19
Зарегистрирован: 19 янв 2021, 18:45

Двигаясь дальше по пути освоения устройства, сваял вариант, который должен реализовать резервирование провайдеров с балансировкой нагрузки:

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

/interface bridge add name=bridge disabled=no auto-mac=yes protocol-mode=rstp
/interface bridge port add bridge=bridge interface=ether3
/interface bridge port add bridge=bridge interface=ether4
#
/ip dhcp-client add interface=ether1 disabled=no add-default-route=no
/ip dhcp-client add interface=ether2 disabled=no add-default-route=no
/ip address add address=192.168.22.1/24 interface=bridge
/ip pool add name="default-dhcp" ranges=192.168.22.23-192.168.22.255
/ip dhcp-server add name=def-dhcp address-pool="default-dhcp" interface=bridge lease-time=10m disabled=no
/ip dhcp-server network add address=192.168.22.0/24 gateway=192.168.22.1
#
/ip firewall nat add action=masquerade chain=srcnat out-interface=ether1
/ip firewall nat add action=masquerade chain=srcnat out-interface=ether2
/ip route add dst-address=0.0.0.0/0 gateway=192.168.10.1,192.168.0.1 distance=1
/ip route add dst-address=0.0.0.0/0 gateway=192.168.0.1 check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=192.168.10.1 check-gateway=ping
На этом этапе - всё прекрасно. Видны провайдерские сети. Уже есть failover с балансингом, который запускается роутингом маршрутов через два гейтвея.

Но дальше идёт маркировка пакетов по провайдерам. И как только я добавляю правила файрволла, то теряю доступ к провайдерским подсетям.

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

/ip firewall mangle add action=mark-connection chain=input in-interface=ether1 new-connection-mark="CON-IN-ISP1"
/ip firewall mangle add action=mark-connection chain=input in-interface=ether2 new-connection-mark="CON-IN-ISP2"
/ip firewall mangle add action=mark-routing chain=output connection-mark="CON-IN-ISP1" new-routing-mark="ROUTE-ISP1"
/ip firewall mangle add action=mark-routing chain=output connection-mark="CON-IN-ISP2" new-routing-mark="ROUTE-ISP2"
/ip firewall mangle add action=mark-routing chain=prerouting dst-address-type=!local in-interface=bridge new-routing-mark="ISP1-OUT" passthrough=yes per-connection-classifier=both-addresses-and-ports:2/0
/ip firewall mangle add action=mark-routing chain=prerouting dst-address-type=!local in-interface=bridge new-routing-mark="ISP2-OUT" passthrough=yes per-connection-classifier=both-addresses-and-ports:2/1
/ip route add distance=1 gateway=192.168.10.1 routing-mark="ISP1-OUT"
/ip route add distance=1 gateway=192.168.0.1 routing-mark="ISP2-OUT"
Точнее, к той - через которую как я понимаю траффик не ходит. Активная - доступна. И плюс ко всему, изнутри микротика тоже что-то ломается. Пинги до яндекса(как вариант, так-то до любого внешнего хоста) перестают ходить после первого пакета:

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

[admin@MikroTik] > ping ya.ru                                                                                                                                                
  SEQ HOST                                     SIZE TTL TIME  STATUS                                                                                                        
    0 87.250.250.242                             56 248 30ms 
    1 87.250.250.242                                          timeout                                                                                                       
    2 87.250.250.242                                          timeout                                                                                                       
Я так понимаю, что для возобновления доступа к обоим провайдерам мне нужно запретить траффику на эти сети гулять по дефолтному маршруту(что предпочтительнее на мой взгляд), либо добавить для них дополнительные маршруты(imho менее правильно, чем первый вариант).

Подскажите, как это сделать. С учётом того, что маскарадинг(нат) будет в дальнейшем обрастать(скорее всего) новыми правилами.


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Почему в mangle у вас присутствуют 4 разных routing mark, а routes маршруты есть только до пары?


Telegram: @thexvo
ShadowNet
Сообщения: 19
Зарегистрирован: 19 янв 2021, 18:45

Конфиг брал с сети, ещё не очень разобрался. Если приведу в соответствие - проблема уйдёт?

И ещё: если не пользоваться маркировкой пакетов/маршрутов, а оставить конфиг до внедрения правил файрволла - много потеряю? Или работоспособная конфигурация будет?


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

ShadowNet писал(а): 21 янв 2021, 12:29 Конфиг брал с сети, ещё не очень разобрался. Если приведу в соответствие - проблема уйдёт?
Должна бы.
ShadowNet писал(а): 21 янв 2021, 12:29 И ещё: если не пользоваться маркировкой пакетов/маршрутов, а оставить конфиг до внедрения правил файрволла - много потеряю? Или работоспособная конфигурация будет?
Балансировку потеряете.


Telegram: @thexvo
ShadowNet
Сообщения: 19
Зарегистрирован: 19 янв 2021, 18:45

xvo писал(а): 21 янв 2021, 12:59
ShadowNet писал(а): 21 янв 2021, 12:29 если не пользоваться маркировкой пакетов/маршрутов, а оставить конфиг до внедрения правил файрволла - много потеряю? Или работоспособная конфигурация будет?
Балансировку потеряете.
Почему? Как я понял, балансировка включается уже на этапе

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

/ip route add dst-address=0.0.0.0/0 gateway=192.168.10.1,192.168.0.1 distance=1
.
Потеряю я маршрутизацию пакетов, а балансировка должна остаться.


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

ECMP (маршрут через несколько gateway'ев) может заменить PCC на этапе выбора маршрута для первого пакета, но дальше соединения все равно надо прибивать mangle'ом к определенной таблице маршрутизации: ECMP периодически делает перераспределение и без mangle вполне может ломать уже установленные соединения.
По факту оно вообще не предназначено для подобной балансировки.

И кстати да, не ясно, зачем вам и ECMP и PCC одновременно: такое ощущение, что вы кусков из разных конфигов надергали.
ShadowNet писал(а): 21 янв 2021, 14:03 Потеряю я маршрутизацию пакетов, а балансировка должна остаться.
Фраза не несет в сете никакого смысла: нет маршрутизации - пакеты не ходят, а если пакеты не ходят, то о балансировке чего идет речь?!


Telegram: @thexvo
ShadowNet
Сообщения: 19
Зарегистрирован: 19 янв 2021, 18:45

xvo писал(а): 21 янв 2021, 14:55 И кстати да, не ясно, зачем вам и ECMP и PCC одновременно: такое ощущение, что вы кусков из разных конфигов надергали.
Угу. Пытался совместить, неудачно.
xvo писал(а): 21 янв 2021, 14:55
ShadowNet писал(а): 21 янв 2021, 14:03 Потеряю я маршрутизацию пакетов, а балансировка должна остаться.
Фраза не несет в сете никакого смысла: нет маршрутизации - пакеты не ходят, а если пакеты не ходят, то о балансировке чего идет речь?!
В смысле "заданную мной маршрутизацию". Отдав её на откуп автоматизации микротика и его разработчиков. Тогда будет только ECMP, без каких-либо прописанных правил. Только чистый нат на два вана и резервирование. С таким конфигом уже можно жить дома, что я собственно и делаю в данный момент. :-):


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Если у вас ECMP маршрут и правда активен, то не должен бы он нормально работать без маркировок.


Telegram: @thexvo
ShadowNet
Сообщения: 19
Зарегистрирован: 19 янв 2021, 18:45

Тем не менее работает :-)
Микротиковская магия какая-то. Я реальный конфиг "от и до" выложил.


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Так а этот маршрут то активен?


Telegram: @thexvo
Ответить