sensor Posted May 27, 2017 · Report post Добрый день. Не могу никак побороть проблему работы 3х провайдеров одновременно. Имеем, 3 канала (30/90/500) Mbit/s от разных провайдеров. Статические белые IP, роутер Mikrotik CCR1009 До появления 500Mbit/s всё работало и было настроено ECMP load balancing with masquerade. https://wiki.mikrotik.com/wiki/ECMP_loa ... masquerade А именно Промаркированы input и output для 2х провайдеров. Исходя из инструкции WIKI, для каждого канала для своего routing_mark и общий, где я казала 1:3 шлюзы что бы распаралелить нагрузку. / ip route add dst-address=0.0.0.0/0 gateway=1.1.1.1,1.1.1.1,1.1.1.1,2.2.2.2 check-gateway=ping Добавляю 3й провайдер, прописываю аналогично 2м в Mangle правила, добавляю маршрут с маркировкой. Всё работает, но если добавить в эту конструкцию шлюз 500Mbit/s / ip route add dst-address=0.0.0.0/0 gateway=1.1.1.1,1.1.1.1,2.2.2.2,3.3.3.3,3.3.3.3,3.3.3.3,3.3.3.3 check-gateway=ping тоже всё работает, исходящие соеденения паралелятся по разным маршрутам, но вот все внутренние ресурсы сети (сайты, приложения, сервисы) перестают быть доступны из мира. Подскажите куда копать? p.s пробывал настраивать роутер https://wiki.mikrotik.com/wiki/Manual:PCC то же самое, всё работает, но доступ из мира на внутренние ресурсы, или очень долго заходит или не заходит вовсе. пример проброса портов у меня ;;; ftp chain=dstnat action=dst-nat to-addresses=192.168.101.85 to-ports=21 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=21 log=no log-prefix="" Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
nkusnetsov Posted May 28, 2017 (edited) · Report post sensor, у Вас, скорее всего, перемаркировываются маршруты. Посмотрите в "connections". Маркировку делать надо по соединениям, для новых еще не маркированых соединений - критерий "connection state = new" и "connection mark = no-mark". Затем маркировать маршруты для пакетов принадлежащие этим соединениям. Промаркированы input и output для 2х провайдеров Если у вас внутренние ресурсы проброшены через NAT (проброшены порты), то маркировать нужно не input и output, а prerouting и output. Prerouting для входящих извне. Edited May 28, 2017 by nkusnetsov Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sensor Posted May 28, 2017 (edited) · Report post Вот мой MANGLE я делал всё по вики или инструкциям в сети. 0 chain=input action=mark-connection new-connection-mark=gic_conn passthrough=yes in-interface=gic log=no log-prefix="> 1 chain=input action=mark-connection new-connection-mark=datagroup_conn passthrough=yes in-interface=datagroup log=no log-prefix="" 2 chain=input action=mark-connection new-connection-mark=triolan_conn passthrough=yes in-interface=triolan log=no log-prefix="" 3 chain=output action=mark-routing new-routing-mark=to_gic passthrough=yes connection-mark=gic_conn log=no log-prefix="" 4 chain=output action=mark-routing new-routing-mark=to_datagroup passthrough=yes connection-mark=datagroup_conn log=no log-prefix="" 5 chain=output action=mark-routing new-routing-mark=to_triolan passthrough=yes connection-mark=triolan_conn log=no log-prefix="" 6 chain=prerouting action=accept dst-address=1.1.1.0/23 in-interface=NLT_BRIDGE log=no log-prefix="" 7 chain=prerouting action=accept dst-address=2.2.2.2/30 in-interface=NLT_BRIDGE log=no log-prefix="" 8 chain=prerouting action=accept dst-address=3.3.3.3/24 in-interface=NLT_BRIDGE log=no log-prefix="" 9 chain=prerouting action=accept dst-address=192.168.101.0/24 in-interface=NLT_BRIDGE log=no log-prefix="" 10 chain=prerouting action=mark-connection new-connection-mark=datagroup_conn passthrough=yes dst-address-type=!local in-interface=NLT_BRIDGE per-connection-classifier=both-addresses-and-ports:7/0 log=no log-prefix="" 11 chain=prerouting action=mark-connection new-connection-mark=gic_conn passthrough=yes dst-address-type=!local in-interface=NLT_BRIDGE per-connection-classifier=both-addresses-and-ports:7/1 log=no log-prefix="" 12 chain=prerouting action=mark-connection new-connection-mark=gic_conn passthrough=yes dst-address-type=!local in-interface=NLT_BRIDGE per-connection-classifier=both-addresses-and-ports:7/2 log=no log-prefix="" 13 chain=prerouting action=mark-connection new-connection-mark=triolan_conn passthrough=yes dst-address-type=!local in-interface=NLT_BRIDGE per-connection-classifier=both-addresses-and-ports:7/3 log=no log-prefix="" 14 chain=prerouting action=mark-connection new-connection-mark=triolan_conn passthrough=yes dst-address-type=!local in-interface=NLT_BRIDGE per-connection-classifier=both-addresses-and-ports:7/4 log=no log-prefix="" 15 chain=prerouting action=mark-connection new-connection-mark=triolan_conn passthrough=yes dst-address-type=!local in-interface=NLT_BRIDGE per-connection-classifier=both-addresses-and-ports:7/5 log=no log-prefix="" 16 chain=prerouting action=mark-connection new-connection-mark=triolan_conn passthrough=yes dst-address-type=!local in-interface=NLT_BRIDGE per-connection-classifier=both-addresses-and-ports:7/6 log=no log-prefix="" 17 chain=prerouting action=mark-routing new-routing-mark=to_gic passthrough=yes connection-mark=gic_conn in-interface=NLT_BRIDGE log=no log-prefix="" 18 chain=prerouting action=mark-routing new-routing-mark=to_datagroup passthrough=yes connection-mark=datagroup_conn in-interface=NLT_BRIDGE log=no log-prefix="" 19 chain=prerouting action=mark-routing new-routing-mark=to_triolan passthrough=yes connection-mark=triolan_conn in-interface=NLT_BRIDGE log=no log-prefix="" РОУТЫ Я прописал так /ip routeA add dst-address=0.0.0.0/0 gateway=1.1.1.1 routing-mark=to_gic check-gateway=ping add dst-address=0.0.0.0/0 gateway=2.2.2.2 routing-mark=to_datagroup check-gateway=ping add dst-address=0.0.0.0/0 gateway=3.3.3.3 routing-mark=to_triolan check-gateway=ping add dst-address=0.0.0.0/0 gateway=1.1.1.1 distance=1 check-gateway=ping add dst-address=0.0.0.0/0 gateway=2.2.2.2 distance=2 check-gateway=ping add dst-address=0.0.0.0/0 gateway=3.3.3.3 distance=3 check-gateway=ping на этих настройках у меня всё работае, но доступ из мира к локальным ресурсам проимходит очень долго, к примеру сайт может открыватся 15 секунд. Edited May 28, 2017 by sensor Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
nkusnetsov Posted May 28, 2017 (edited) · Report post sensor, покажите NAT (srcnat+dstnat) тоже пожалуйста. А если добавите forward - будет вообще замечательно. Edited May 28, 2017 by nkusnetsov Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sensor Posted May 28, 2017 · Report post 0 ;;; NAT chain=srcnat action=masquerade src-address=192.168.101.0/24 log=no log-prefix="" 1 ;;; mai chain=dstnat action=dst-nat to-addresses=192.168.101.24 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=25,111,143,587 log=no log-prefix="" 2 ;;; ftp chain=dstnat action=dst-nat to-addresses=192.168.101.85 to-ports=21 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=21 log=no log-prefix="" 3 chain=dstnat action=dst-nat to-addresses=192.168.101.85 to-ports=45450-45500 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=45450-45500 log=no log-prefix="" 4 ;;; http/https chain=dstnat action=dst-nat to-addresses=192.168.101.29 to-ports=80 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=80 log=no log-prefix="" 5 chain=dstnat action=dst-nat to-addresses=192.168.101.29 to-ports=443 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=443 log=no log-prefix="" 6 ;;; redmine_old chain=dstnat action=dst-nat to-addresses=192.168.101.113 to-ports=80 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=12000 log=no log-prefix="" 7 XI chain=dstnat action=dst-nat to-addresses=192.168.101.113 to-ports=80 protocol=tcp dst-address-type=local dst-port=12000 log=no log-prefix="" 8 ;;; IIS_for_VOVA chain=dstnat action=dst-nat to-addresses=192.168.101.29 to-ports=8890 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=8890 log=no log-prefix="" 9 ;;; NIK_UBUNTU_SERVER chain=dstnat action=dst-nat to-addresses=192.168.101.140 to-ports=80 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=9000 log=no log-prefix="" 10 ;;; RTMP chain=dstnat action=dst-nat to-addresses=192.168.101.244 to-ports=80 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=8899 log=no log-prefix="" 11 chain=dstnat action=dst-nat to-addresses=192.168.101.154 to-ports=80 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=7999 log=no log-prefix="" 12 ;;; Andrey_Kursenko_project chain=dstnat action=dst-nat to-addresses=192.168.101.20 to-ports=8080 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=8080 log=no log-prefix="" 13 chain=dstnat action=dst-nat to-addresses=192.168.101.20 to-ports=8888 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=8888 log=no log-prefix="" 14 ;;; redmine_new chain=dstnat action=dst-nat to-addresses=192.168.101.178 to-ports=80 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=13000 log=no log-prefix="" 15 XI chain=dstnat action=dst-nat to-addresses=192.168.101.178 to-ports=80 protocol=tcp dst-address-type=local dst-port=13000 log=no log-prefix="" 16 ;;; iBroker chain=dstnat action=dst-nat to-addresses=192.168.101.221 to-ports=80 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=14000 log=no log-prefix="" 17 chain=dstnat action=dst-nat to-addresses=192.168.101.221 to-ports=80 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=16000 log=no log-prefix="" 18 ;;; tfb chain=dstnat action=dst-nat to-addresses=192.168.101.184 to-ports=80 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=20000 log=no log-prefix="" 19 chain=dstnat action=dst-nat to-addresses=192.168.101.184 to-ports=443 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=20001 log=no log-prefix="" 20 ;;; FTP_EM chain=dstnat action=dst-nat to-addresses=192.168.101.29 to-ports=7000 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=7000 log=no log-prefix="" 21 ;;; RUST_SERVER chain=dstnat action=dst-nat to-addresses=192.168.101.15 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=28025 log=no log-prefix="" 22 chain=dstnat action=dst-nat to-addresses=192.168.101.15 protocol=udp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=28025 log=no log-prefix="" 23 chain=dstnat action=dst-nat to-addresses=192.168.101.15 protocol=tcp dst-address=!192.168.101.0/24 dst-address-type=local dst-port=28026 log=no log-prefix="" Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
nkusnetsov Posted May 29, 2017 (edited) · Report post sensor, у Вас лишний раз перемаркировываются соединения. Например, пришедшее извне через интерфейс GIC соединение, помеченное на входе получит маркировку "gic_conn". Ответный пакет из локалки попадет в mangle, и правила с 10по16 перемаркируют уже имеющееся соединение, новой меткой. Edited May 29, 2017 by nkusnetsov Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sensor Posted May 29, 2017 · Report post В написании я руководствовался офф. WIKI https://wiki.mikrotik.com/wiki/Manual:PCC Мне нравиться вариант, который написан https://habrahabr.ru/post/313342/ но я пока не понимаю как в это действие, вложить балансировку по каналам. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
myth Posted May 29, 2017 · Report post Bgp. Остальное хрень, да ещё и на разных каналах Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
nkusnetsov Posted May 30, 2017 (edited) · Report post sensor, балансировать вы можете только соединения инициированные из локалки, либо инициированные самим роутером. Соединения пришедшие извне должны быть обработаны тем интерфейсом, на который они пришли. Поскольку у вас балансировка per-connection, то можно её сделать и через ECMP. Оно тоже per-connection. WiKi. Достаточно в ECMP маршруте указать один провайдерский gateway один раз, а более производительный несколько раз - пропорционально пропускной способности. Еще одна хорошая статья на хабре. Там есть про обработку входящих. sensor, попробуйте модифицировать правила mangle 10-16 примерно так: 10 chain=prerouting action=mark-connection connection-mark=no-mark new-connection-mark=datagroup_conn passthrough=yes dst-address-type=!local in-interface=NLT_BRIDGE per-connection-classifier=both-addresses-and-ports:7/0 log=no log-prefix="" Edited May 30, 2017 by nkusnetsov Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sensor Posted May 30, 2017 (edited) · Report post Финалочка, я конечно опираясь на разные статьй немного не так всё делал. Спасибо за помошь всем кто откликнулся. Может будет интересно, вот финальный результат маркировок. Всё проверил, из мира доступ ко всем ресурсам есть, PPTP и L2TP работают. /ip firewall mangle add action=accept chain=prerouting dst-address=1.1.1.0/23 in-interface=NLT_BRIDGE add action=accept chain=prerouting dst-address=2.2.2.0/30 in-interface=NLT_BRIDGE add action=accept chain=prerouting dst-address=3.3.3.0/24 in-interface=NLT_BRIDGE add action=accept chain=prerouting dst-address=192.168.101.0/24 in-interface=NLT_BRIDGE add action=mark-connection chain=prerouting in-interface=gic new-connection-mark=gic_conn passthrough=yes add action=mark-connection chain=prerouting in-interface=datagroup new-connection-mark=datagroup_conn passthrough=yes add action=mark-connection chain=prerouting in-interface=triolan new-connection-mark=triolan_conn passthrough=yes add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=NLT_BRIDGE new-connection-mark=datagroup_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:9/0 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=NLT_BRIDGE new-connection-mark=gic_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:9/1 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=NLT_BRIDGE new-connection-mark=gic_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:9/2 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=NLT_BRIDGE new-connection-mark=triolan_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:9/3 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=NLT_BRIDGE new-connection-mark=triolan_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:9/4 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=NLT_BRIDGE new-connection-mark=triolan_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:9/5 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=NLT_BRIDGE new-connection-mark=triolan_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:9/6 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=NLT_BRIDGE new-connection-mark=triolan_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:9/7 add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=NLT_BRIDGE new-connection-mark=triolan_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:9/8 add action=mark-routing chain=prerouting connection-mark=gic_conn in-interface=NLT_BRIDGE new-routing-mark=to_gic passthrough=yes add action=mark-routing chain=prerouting connection-mark=datagroup_conn in-interface=NLT_BRIDGE new-routing-mark=to_datagroup passthrough=yes add action=mark-routing chain=prerouting connection-mark=triolan_conn in-interface=NLT_BRIDGE new-routing-mark=to_triolan passthrough=yes add action=mark-routing chain=output connection-mark=gic_conn new-routing-mark=to_gic passthrough=yes add action=mark-routing chain=output connection-mark=datagroup_conn new-routing-mark=to_datagroup passthrough=yes add action=mark-routing chain=output connection-mark=triolan_conn new-routing-mark=to_triolan passthrough=yes Edited May 30, 2017 by sensor Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sensor Posted May 31, 2017 · Report post что бы не плодить темы, такой вопрос. некторые пользователи сети жалуются, что из-за разных внешних IP адресов они не могут нормлаьно работать с внешними сервисами. Есть необходимость привязки конкретного пользователя к одному WAN адресу. В начале я попробывал через Route Rules IP привязал к конкретной таблице - работает. но доступ к данному пользователю из сети пропадает. Попробывал прописать так add action=mark-routing chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=NLT_BRIDGE new-routing-mark=to_triolan passthrough=no src-address=192.168.101.10 Вроде работает, но как-то криво. Хотя доступ из сети уже к этому пользоват есть. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
nkusnetsov Posted June 3, 2017 · Report post sensor, вполне нормально, не криво. Если пользователей группа, то можно создать из их адресов address-list, и в приведенном правиле ссылаться не на "src-address", а на "src-address-list" Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sensor Posted June 7, 2017 · Report post sensor, вполне нормально, не криво. Если пользователей группа, то можно создать из их адресов address-list, и в приведенном правиле ссылаться не на "src-address", а на "src-address-list" спасибо так и сделал:) удобно. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
a.polev Posted February 12, 2018 · Report post Добрый день! Может кто помочь настроить настроить в маршрутизаторе микротик CCR1036-12G-4S второй канал от вышестоящего провайдера с балансировкой. На данный момент работает в тесте с одним входящим каналом и подключенным к нему билингом. не могу запустить в работу т.к. одного канала не хватает. P.S. вознаграждение гарантирую. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted February 12, 2018 · Report post 10 часов назад, a.polev сказал: P.S. вознаграждение гарантирую. Только в вашем случае будет один адрес от одного провайдера и второй от другого, если натите в серые адреса. Все абоненты распределяться равномерно по количеству на все имеющиеся каналы. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
a.polev Posted February 13, 2018 · Report post 11 часов назад, Saab95 сказал: Только в вашем случае будет один адрес от одного провайдера и второй от другого, если натите в серые адреса. Все абоненты распределяться равномерно по количеству на все имеющиеся каналы. Не совсем то что мне надо, если я конечно всё правильно понял, У меня один НАТ с двумя входящими каналами. Нат управляется сервером с карбон блилинг 5 версии. Первый канал работает. т.е. все абоненты могут работать через первый канал, но его не хватает. Нужно что бы часть абонентов работали через второй канал. с автоматической балансировкой или ручной пока не сильно принципиально. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted February 13, 2018 · Report post 4 часа назад, a.polev сказал: Не совсем то что мне надо, если я конечно всё правильно понял Скорее всего не правильно поняли. Вот делаете так. /ip address add address=91.33.21.3/28 interface=ether1 - внешний адрес первого провайдера add address=91.33.21.4/28 interface=ether2 - внешний адрес второго провайдера /ip firewall address-list add address=10.0.0.0/8 list=Local-IP - ваша служебная серая сеть в которой адресуете свое оборудование (коммутаторы и т.п.) add address=91.33.21.3 list=Local-IP - адрес одного провайдера add address=91.33.21.4 list=Local-IP - адрес второго провайдера add address=10.100.10.0-10.200.255.255 list=Local-ABON - адреса абонентов Разделяем абонентов на 2 группы ровно пополам /ip firewall mangle add action=add-src-to-address-list address-list=NAT_2 address-list-timeout=1h chain=prerouting comment=NAT2 dst-address-list=!Local-IP per-connection-classifier=src-address:2/0 src-address-list=Local-ABON add action=add-src-to-address-list address-list=NAT_3 address-list-timeout=1h chain=prerouting comment=NAT3 dst-address-list=!Local-IP per-connection-classifier=src-address:2/1 src-address-list=Local-ABON /ip firewall nat add action=src-nat chain=srcnat comment=NAT2 dst-address-list=!Local-IP src-address-list=NAT_2 to-addresses=91.33.21.3 - внешний адрес первого провайдера add action=src-nat chain=srcnat comment=NAT3 dst-address-list=!Local-IP src-address-list=NAT_3 to-addresses=91.33.21.4 - внешний адрес второго провайдера Тут у вас используется 2 ната по SRC адресам двух провайдеров. Балансировка по абонентам автоматическая - сколько идет запросов с IP абонентов, столько они и делятся пополам. Карбон 5 использует какую-то свою плохую схему управлением оборудованием. Нормальная схема это когда биллинг только изменяет скорости, блокирует/разблокирует абонентов. Никаких других действий биллинг осуществлять не должен, в том числе не должен создавать разрешающие/запрещающие фильтры для абонентов, тогда и никаких проблем с балансировкой не будет. Самое правильное это использование нескольких микротиков. Первый микротик только ограничивает скорость и блокирует доступ в интернет, а второй микротик делает НАТ - тогда биллинг к нему никакого отношения не имеет и можно городить любые схемы. А самая правильная схема это такая - когда для каждого внешнего канала используется свой отдельный микротик, тогда достаточно маршрутами управлять, например разбить их на две группы, первую отправлять через один микротик, вторую через второй. Так же сделать проверки на доступность, если один микротик отключить, все через оставшийся пойдут. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
a.polev Posted February 15, 2018 · Report post В 13.02.2018 в 16:22, Saab95 сказал: Скорее всего не правильно поняли. Вот делаете так. Да так, понятней. И походу даже работает. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
a.polev Posted February 21, 2018 · Report post Работает отлично, но как всегда бывает у всего хорошего есть побочный косяк. Абоненты которые используют банк клиент Сбербанк Бизнес онлайн (может и ещё какие) при смене внешнего IP приложение перезапрашивает аунтификацию. То есть клиент открывает в банке новую вкладку, срабатывает балансир. меняет внешний адрес (канал). Банк видит это и блокирует. Какой выход из этой ситуации??? Поделить всех в ручную в адрес листе и ли привязывать избранных абонентов к определённым каналам? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
myth Posted February 22, 2018 · Report post перестать ерундой заниматься и подымать bgp Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted February 25, 2018 · Report post В 21.02.2018 в 17:14, a.polev сказал: при смене внешнего IP приложение перезапрашивает аунтификацию В данном случае у абонентов IP адрес не меняется. Во многих местах используется такая схема и нет жалоб. У вас точно никакие другие фильтры/манглы не вмешиваются в работу оборудования? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Xfactor3000 Posted March 18, 2018 · Report post В 13.02.2018 в 11:22, Saab95 сказал: Скорее всего не правильно поняли. Вот делаете так. /ip address add address=91.33.21.3/28 interface=ether1 - внешний адрес первого провайдера add address=91.33.21.4/28 interface=ether2 - внешний адрес второго провайдера /ip firewall address-list add address=10.0.0.0/8 list=Local-IP - ваша служебная серая сеть в которой адресуете свое оборудование (коммутаторы и т.п.) add address=91.33.21.3 list=Local-IP - адрес одного провайдера add address=91.33.21.4 list=Local-IP - адрес второго провайдера add address=10.100.10.0-10.200.255.255 list=Local-ABON - адреса абонентов Разделяем абонентов на 2 группы ровно пополам /ip firewall mangle add action=add-src-to-address-list address-list=NAT_2 address-list-timeout=1h chain=prerouting comment=NAT2 dst-address-list=!Local-IP per-connection-classifier=src-address:2/0 src-address-list=Local-ABON add action=add-src-to-address-list address-list=NAT_3 address-list-timeout=1h chain=prerouting comment=NAT3 dst-address-list=!Local-IP per-connection-classifier=src-address:2/1 src-address-list=Local-ABON /ip firewall nat add action=src-nat chain=srcnat comment=NAT2 dst-address-list=!Local-IP src-address-list=NAT_2 to-addresses=91.33.21.3 - внешний адрес первого провайдера add action=src-nat chain=srcnat comment=NAT3 dst-address-list=!Local-IP src-address-list=NAT_3 to-addresses=91.33.21.4 - внешний адрес второго провайдера Тут у вас используется 2 ната по SRC адресам двух провайдеров. Балансировка по абонентам автоматическая - сколько идет запросов с IP абонентов, столько они и делятся пополам. Карбон 5 использует какую-то свою плохую схему управлением оборудованием. Нормальная схема это когда биллинг только изменяет скорости, блокирует/разблокирует абонентов. Никаких других действий биллинг осуществлять не должен, в том числе не должен создавать разрешающие/запрещающие фильтры для абонентов, тогда и никаких проблем с балансировкой не будет. Самое правильное это использование нескольких микротиков. Первый микротик только ограничивает скорость и блокирует доступ в интернет, а второй микротик делает НАТ - тогда биллинг к нему никакого отношения не имеет и можно городить любые схемы. А самая правильная схема это такая - когда для каждого внешнего канала используется свой отдельный микротик, тогда достаточно маршрутами управлять, например разбить их на две группы, первую отправлять через один микротик, вторую через второй. Так же сделать проверки на доступность, если один микротик отключить, все через оставшийся пойдут. Возникло пару вопросов. 1. Можно же будет разделить 67-33 если каналы неравноценные. Как с PCC для первого канала 3/0 и 3/1 и для второго канала 3/2. 2. Если один из каналов упадёт, получается часть пользователей останется без интернета. Возможно ли автоматически переключить их на рабочий канал? При использование src-nat я так понимаю это сделать нельзя, и тогда нужно использовать masquerade? (почему-то суппорт микротика не рекомендовал мне использовать masquerade). 3. Если поднять BGP с двумя соединениями (https://wiki.mikrotik.com/wiki/Manual:Simple_BGP_Multihoming), как можно сделать балансировку? и возможно ли сделать не только 50/50 (https://www.timigate.com/2018/01/dual-isp-ebgp-setup-with-load-balancing.html)? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
myth Posted March 18, 2018 · Report post препендами Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted March 19, 2018 · Report post Конечно можно как угодно делить, там же каждое правило просто разделение на одну часть от общего количества. Просто в примере 2 провайдера и деление пополам, так делают, когда есть свои белые адреса и натят всех абонентов например через 16 IP, разделив всех на 16 групп. Если у вас сломался один провайдер, просто изменяете в правиле ната IP адрес, и эта группа так же идет через оставшегося в работе провайдера. Если у вас будет BGP, то желательно получать сеть /23, тогда можете делить абонентов на группы и таким образом управлять трафиком. Часто бывает, что одну подсеть /24 нельзя нормально отбалансировать, т.к. изменение весов просто перекидывает входящий трафик с одного канала на другой. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Xfactor3000 Posted March 19, 2018 · Report post 5 минут назад, Saab95 сказал: Конечно можно как угодно делить, там же каждое правило просто разделение на одну часть от общего количества. Просто в примере 2 провайдера и деление пополам, так делают, когда есть свои белые адреса и натят всех абонентов например через 16 IP, разделив всех на 16 групп. Если у вас сломался один провайдер, просто изменяете в правиле ната IP адрес, и эта группа так же идет через оставшегося в работе провайдера. Если у вас будет BGP, то желательно получать сеть /23, тогда можете делить абонентов на группы и таким образом управлять трафиком. Часто бывает, что одну подсеть /24 нельзя нормально отбалансировать, т.к. изменение весов просто перекидывает входящий трафик с одного канала на другой. Здравствуйте. Большое спасибо за помощь. "Если у вас сломался один провайдер, просто изменяете в правиле ната IP адрес, и эта группа так же идет через оставшегося в работе провайдера." А как можно изменять правила ната автоматически? есть ли какое-то решение или скрипт? /23 навряд ли дадут, будет /24. Но большинство пользователей под NAT. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...