Pull to refresh
0
0

Системный администратор

Send message
Я про это и говорю, nexhop маршрутизация возможна при одинаковых каналах, но не при разных. Тут свои гемморы. Почему я и говорил, схема с BGP великолепна для домашнего использования. Просто идеальна, но в продакшене возникают нюансы, и, с учётом того что в продакшене обычно уже есть поднятые BGP сессии, то тут, к сожалению, микротик проигрывает. Хотя надежда есть, некоторые вещи они допиливают в нужную сторону.

ИМХО:
Идеально было-бы допилить сайт на выдачу скрипта для микротика :) Но это для совсем уж нубов :)
Вот моя конфа:
/ip firewall mangle
add action=mark-routing chain=prerouting dst-address-list=ddosed new-routing-mark=ddoser-route-mark passthrough=no src-address-list=ddoser
add action=mark-routing chain=output comment="Telegram (router) throuth Tor" dst-address-list=tor-traff log-prefix=telega new-routing-mark=to_tor passthrough=no
add action=mark-routing chain=prerouting comment="Email throuth ISP1" dst-port=25 in-interface=WiFi+LAN log-prefix=email new-routing-mark=route_isp_01 passthrough=no protocol=tcp
add action=mark-routing chain=prerouting comment="throuth Tor" dst-address-list=tor-traff log-prefix=tor new-routing-mark=to_tor passthrough=no
add action=mark-routing chain=prerouting comment="throuth Tor" dst-address-list=blocked-addr log-prefix=tor new-routing-mark=to_tor passthrough=no
add action=accept chain=prerouting dst-address=192.168.7.0/24
add action=accept chain=prerouting dst-address=192.168.0.0/24
add action=accept chain=prerouting dst-address=198.51.100.1
add action=mark-connection chain=input comment=PCC connection-state=new in-interface=00.pppoe-ISP01 new-connection-mark=conn_isp_01 passthrough=yes
add action=mark-connection chain=input connection-state=new in-interface=00.pppoe-ISP02 new-connection-mark=conn_isp_02 passthrough=yes
add action=mark-connection chain=input connection-state=new in-interface=09.SXT new-connection-mark=conn_backup passthrough=yes
add action=mark-connection chain=prerouting connection-state=related in-interface=00.pppoe-ISP01 new-connection-mark=conn_isp_01 passthrough=yes
add action=mark-connection chain=prerouting connection-state=related in-interface=00.pppoe-ISP02 new-connection-mark=conn_isp_02 passthrough=yes
add action=mark-connection chain=prerouting connection-state=related in-interface=09.SXT new-connection-mark=conn_backup passthrough=yes
add action=mark-routing chain=output connection-mark=conn_isp_01 new-routing-mark=route_isp_01 passthrough=yes
add action=mark-routing chain=output connection-mark=conn_isp_02 new-routing-mark=route_isp_02 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 dst-address-type=!local new-connection-mark=IT39_PCC_1 passthrough=yes per-connection-classifier=both-addresses:2/0 src-address-list=BOGONS
add action=mark-connection chain=prerouting dst-address-type=!local new-connection-mark=IT39_PCC_2 passthrough=yes per-connection-classifier=both-addresses:2/1 src-address-list=BOGONS
add action=mark-routing chain=prerouting connection-mark=IT39_PCC_1 new-routing-mark=IT39_1 passthrough=yes src-address-list=BOGONS
add action=mark-routing chain=prerouting connection-mark=IT39_PCC_2 new-routing-mark=IT39_2 passthrough=yes src-address-list=BOGONS
add action=mark-connection chain=prerouting connection-mark=no-mark new-connection-mark=oTher passthrough=yes

/ip route
add comment="Local IP throught Tor" distance=1 gateway=00.to-Pi routing-mark=to_tor
add distance=1 routing-mark=ddoser-route-mark type=blackhole
add check-gateway=ping comment=PCC distance=1 gateway=00.pppoe-ISP01 routing-mark=route_isp_01
add check-gateway=ping distance=1 gateway=00.pppoe-ISP02 routing-mark=route_isp_02
add check-gateway=ping comment=BACKUP distance=1 gateway=198.51.100.1 routing-mark=route_backup
add check-gateway=arp distance=1 gateway=00.pppoe-ISP01 routing-mark=IT39_1
add check-gateway=arp distance=2 gateway=00.pppoe-ISP02 routing-mark=IT39_1
add check-gateway=arp comment=BACKUP distance=3 gateway=198.51.100.1 routing-mark=IT39_1
add check-gateway=arp distance=1 gateway=00.pppoe-ISP02 routing-mark=IT39_2
add check-gateway=arp distance=2 gateway=00.pppoe-ISP01 routing-mark=IT39_2
add check-gateway=arp comment=BACKUP distance=3 gateway=198.51.100.1 routing-mark=IT39_2
add comment="Local IP to backuplink" distance=1 gateway=198.51.100.1 routing-mark=to_backuplink
add check-gateway=arp distance=1 gateway=00.pppoe-ISP01
add check-gateway=arp distance=2 gateway=00.pppoe-ISP02
add check-gateway=arp distance=3 gateway=198.51.100.1
add distance=1 dst-address=198.51.100.0/24 gateway=198.51.100.1 pref-src=198.51.100.254 scope=10
/ip route rule
add action=lookup-only-in-table dst-address=149.154.167.220/32 interface=00.to-Pi routing-mark=to_tor table=main
add action=lookup-only-in-table routing-mark=ISP1 table=ISP1
add action=lookup-only-in-table routing-mark=ISP2 table=ISP2

При такой конфигурации работает всё.
Когда переделываю на получение префиксов от BGP то работает всё только через того провайдера, на котором поднята BGP сессия, не смотря на то, что я маркирую пакеты от на конкретный маршрут. При поднятии 2-х пируов — всё работает с маркировками.
Схема в двух словах:
3 uplink
1 ovpn tunnel
Это основной маршрутизатор.
За ним клиенты будут ходить по Вашей схеме — почти без проблем, ну некоторые адреса всё равно не открываются. Мелочи, подмену DNS в этом случае ни кто не отменял (при условии глубокого dpi)
Но, при вашей схеме сам рутер не может отрезолвить нужные параметры и уйти через нужные маршруты, ибо в прерутинге нет понятия префикса. Через адреслист — проблем нет, прерутинг работает. И ни одного сбоя по проблемным сайтам. Заворачивает как надо. Причём, я смотрю лог маршрутизации, да, он уходит куда надо, в нужный интерфейс, но тут-же прилетает ответ от провайдера, что ресурс закрыт. При использовании адреслиста такой проблемы нет.

Ради хохмы (чтоб убедиться что я не накосячил) поднял разные BGP сессии на свои сервера. И, как я и говороил, при наличии 2-х и более провайдеров просто необходимо использовать несколько пиров. Просто так префиксы не передать. И сам маршрутизатор не будет ходить на заблокированные адреса.
В моей конфигурации, когда используется loadbalancing на двух одинаковых каналах и третий как резервный (через него только при падении двух основных) Данная схема нереализуема без появлкния нормальных пиров. Источник префикса, повторюсь, хорош для одного прова, для двух и более — только адресслист. Да и нагрузка меньше. Плюс, каким образом вы промаркируете маршруты с одной BGP сессии на второго провайдера. Это не реально, сам протокол этого не позволяет. Только несколько пиров позволит нормально маркировать маршруты и пользователь сможет ходить.
Я не говорю что данная конфигурация не жизнеспособна. Она не жизнеспособна в моём конкретном случае.
Всё хорошо, всё отлично, вот только при наличии 2-х и более провайдеров эта задумка не имеет смысла. Стандарт BGP требует минимум 2-х пиров для успешной реализации. Да, для обычного домашнего пользователя — ситема работать будет (немного подшпмпнить с фильтрами и вуаля), но для использования с несколькими провайдерами (у меня их 3 на входе и все с белыми IP) начинается переколбашивание сети. Необходимо подключать других пиров, но нельзя, так как со стороны antifiltr только одна AS.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity