Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» MikroTik RouterOS (часть 2)

Автор: vlh
Дата сообщения: 10.01.2010 16:35
да, если правило перенести выше то считает, у меня просто выше стояли другие правила...
все заработало, но только с такой конфигурацией:

ip firewall mangle
add chain=forward action=mark-packet new-packet-mark=Group2MbitDownload passthrough=no \
in-interface=public dst-address-list=Group2Mbit

add chain=forward action=mark-packet new-packet-mark=Group2MbitUpload passthrough=no \
in-interface=local src-address-list=Group2Mbit

где public - внешний интерфейс
local - интерфейс смотрит в локальную сеть.

/ queue type
add name="Group1MbitDownload" kind=pcq pcq-rate=2048000 pcq-classifier=dst-address

add name="Group2MbitUpload" kind=pcq pcq-rate=2048000 pcq-classifier=src-address

/ queue tree
add name="Group1MbitDownload" parent=local packet-mark=Group1MbitDownload queue=Group1MbitDownload

add name="Group2MbitUpload" parent=public packet-mark=Group2MbitUpload queue=Group2MbitUpload

где local - интерфейс смотрящий в локальную сеть
public - вот в этом и была проблема, у меня стоял интерфейс смотрящий на провайдера из-за чего и пинги были большие и скорость маленькая, а надо было global-out

этот пример я нашел в интернете, а вот в том что на сайте Микротика там не надо метить пакеты на локальном интерфейсе и внешнем интерфейсе ... достаточно пометить пакеты группы из адрес листа и правила Tree написаны с global-out и global-in - это тоже самое и какой из этих примеров более грамотнее?

P.S.
попробовал скорость с оф. сайта ... не работает... скорость не режет .... шпарит на всю...
Автор: Chupaka
Дата сообщения: 10.01.2010 17:09

Цитата:
если правило перенести выше то считает

значит, какое-то из верхних правил перехватывало пакет. поэтому всегда надо понимать, какие правила и куда дописываем...


Цитата:
public - вот в этом и была проблема, у меня стоял интерфейс смотрящий на провайдера из-за чего и пинги были большие и скорость маленькая, а надо было global-out


угу, я специально ещё в прошлом году в шапку добавил:


Цитата:
RouterOS Packet Flow: http://wiki.mikrotik.com/wiki/Packet_Flow (важно знать для понимания сути происходящего в файрволе и шейпере)


потому как очередь, подвешенная на интерфейс, расположена после Src-NAT, а подвешенная на global-out - до него, и поэтому для аплоада в интерфейсной очереди невозможно различить пользователей


Цитата:
какой из этих примеров более грамотнее?

[offtop]простите, меня так умиляет использование слова "грамотный" в неграмотно построенных предложениях %)[/offtop]
грамотнее использовать то, что решает поставленную задачу с минимальной сложностью. если недостаточно очередей на интерфейсах - надо использовать global-*, но при этом надо уже вручную разделять направления
Автор: boddy2
Дата сообщения: 11.01.2010 13:36
Люди добрые, помогите.
Есть 4 внешних канала по 8Мбит каждый, Eppp1 - Eppp4
Внутренний интерфейс Local
Юзеры раскидываются по каналам, в зависимости от адреса устанавливаются new-routing-mark, созданы статические роуты на внешние
Подробно:
Цитата:
[admin@mt111] > ip firewall mangle print
1 ;;; Eppp4
chain=prerouting action=mark-routing new-routing-mark=Eppp4 passthrough=yes src-address=192.168.10.0/29

2 ;;; Eppp3
chain=prerouting action=mark-routing new-routing-mark=Eppp3 passthrough=yes src-address=192.168.10.8/29
...
[admin@mt111] > ip route print
# DST-ADDRESS GATEWAY-STATE GATEWAY DISTANCE INTERFACE ROUTING-MARK
0 A S 0.0.0.0/0 reachable Eppp1 1 Eppp1 Eppp1
1 A S 0.0.0.0/0 reachable Eppp2 1 Eppp2 Eppp2
2 A S 0.0.0.0/0 reachable Eppp3 1 Eppp3 Eppp3
3 A S 0.0.0.0/0 reachable Eppp4 1 Eppp4 Eppp4
...
mangle = 30 штук

Шейпер через queue simple
Цитата:
[admin@mt111] > queue simple print
1 name="10.003" target-addresses=192.168.10.3/32 dst-address=0.0.0.0/0 interface=Local parent=none
direction=both priority=8 queue=default-small/default-small limit-at=0/0 max-limit=256000/4000000
burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s total-queue=default-small

2 name="10.004" target-addresses=192.168.10.4/32 dst-address=0.0.0.0/0 interface=Local parent=none
direction=both priority=8 queue=default-small/default-small limit-at=199000/1000000 max-limit=200000/6000000
burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s total-queue=default-small
queue simple = 256 штук

версия 3.17
Загрузка процессора - максимум 20%, памяти 512МБ, свободной полно.
Проблема - сумарная загрузка внешних каналов не превышает 15Мбит, хоть убейся.
Хотя до 15Мбит шейпит правильно, а после - резко возрастают задержки.
Что за порог такой?
Помогите кто чем может, почему не утилизируются каналы полностью?
Автор: Chupaka
Дата сообщения: 11.01.2010 13:48
может, из-за Simple queues... до ста штук - ещё куда ни шло, а вот дальше - как правило, избыточно. они нужны? может, лучше всё организовать на PCQ-очередях?
Автор: boddy2
Дата сообщения: 11.01.2010 14:39

Цитата:
до ста штук - ещё куда ни шло, а вот дальше - как правило, избыточно. они нужны?
Как можно засечь избыточность?

с PCQ у меня отдельная трабла в том, что есть 4 внешних канала.

Например, маркирую коннект, маркирую в нем пакеты
Цитата:
[admin@mt111] > ip fir mangle print
...
40 chain=prerouting action=mark-connection new-connection-mark=un0128-con
passthrough=yes src-address=192.168.10.0/24

41 chain=prerouting action=mark-packet new-packet-mark=un0128 passthrough=ye>
connection-mark=un0128-con
...

[admin@mt111] /queue tree> print
2 name="u0128down" parent=Local packet-mark=un0128 limit-at=0 queue=ti0128 priority=8 max-limit=0
burst-limit=0 burst-threshold=0 burst-time=0s

3 name="u0128up" parent=Eppp4 packet-mark=un0128 limit-at=0 queue=ti0040 priority=8 max-limit=0
burst-limit=0 burst-threshold=0 burst-time=0s
...
Так? Или я что коряво делаю?

Для download я могу указать интерфейс в одной очереди, а вот для upload каждому юзеру нужно четыре очереди и четыре манглы.
Потому что вдобавок ко всему используется [more=скрипт проверки упавших каналов]
Код: :local e1route true; :local e2route true; :local e3route true; :local e4route true;
:local e1run true; :local e2run true; :local e3run true; :local e4run true;
:local newIF "Eppp1";

{:set e "Eppp1"}
:if (!([interface find name=$e]=[interface find running name=$e])) do={:set e1run false;:log warning "interface down:Eppp1";}
{:set e "Eppp2"}
:if (!([interface find name=$e]=[interface find running name=$e])) do={:set e2run false;:log warning "interface down:Eppp2";}
{:set e "Eppp3"}
:if (!([interface find name=$e]=[interface find running name=$e])) do={:set e3run false;:log warning "interface down:Eppp3";}
{:set e "Eppp4"}
:if (!([interface find name=$e]=[interface find running name=$e])) do={:set e4run false;:log warning "interface down:Eppp4";}


:if ([ip route find disabled comment="intEppp1"]=[ip route find comment="intEppp1"]) do={:set e1route false;}
:if ([ip route find disabled comment="intEppp2"]=[ip route find comment="intEppp2"]) do={:set e2route false;}
:if ([ip route find disabled comment="intEppp3"]=[ip route find comment="intEppp3"]) do={:set e3route false;}
:if ([ip route find disabled comment="intEppp4"]=[ip route find comment="intEppp4"]) do={:set e4route false;}


:if (!$e1run) do={ :if ($e1route) do={
/ip route disable [find comment="intEppp1"];:set e1route false;}
}
:if (!$e2run) do={ :if ($e2route) do={
/ip route disable [find comment="intEppp2"];:set e2route false;}
}
:if (!$e3run) do={ :if ($e3route) do={
/ip route disable [find comment="intEppp3"];:set e3route false;}
}
:if (!$e4run) do={ :if ($e4route) do={
/ip route disable [find comment="intEppp4"];:set e4route false;}
}


ut {$e1run,$e2run,$e3run,$e4run}
:if (!$e1run && !$e2run && !$e3run && !$e4run) do={:put "pizdariki"} else={
ut "jakato blad jiva";
:if ($e1run) do={/ip firewall mangle set [find comment="Eppp1" new-routing-mark!="Eppp1"] new-routing-mark=Eppp1;}
:if ($e2run) do={/ip firewall mangle set [find comment="Eppp2" new-routing-mark!="Eppp2"] new-routing-mark=Eppp2;}
:if ($e3run) do={/ip firewall mangle set [find comment="Eppp3" new-routing-mark!="Eppp3"] new-routing-mark=Eppp3;}
:if ($e4run) do={/ip firewall mangle set [find comment="Eppp4" new-routing-mark!="Eppp4"] new-routing-mark=Eppp4;}


:if (!($e1run && $e2run && $e3run && $e4run)) do={
:if ($e4run) do={
:if (!(e4route)) do={
ip route disable [find comment="intEppp1"];
ip route disable [find comment="intEppp2"];
ip route disable [find comment="intEppp3"];
ip route enable [find comment="intEppp4"];
}
} else={

:if ($e3run) do={
:if (!(e3route)) do={
ip route disable [find comment="intEppp1"];
ip route disable [find comment="intEppp2"];
ip route enable [find comment="intEppp3"];
ip route disable [find comment="intEppp4"];
}
} else={

:if ($e2run) do={
:if (!(e2route)) do={
ip route disable [find comment="intEppp1"];
ip route enable [find comment="intEppp2"];
ip route disable [find comment="intEppp3"];
ip route disable [find comment="intEppp4"];
}
} else={

:if ($e1run) do={
:if (!(e1route)) do={
ip route enable [find comment="intEppp1"];
ip route disable [find comment="intEppp2"];
ip route disable [find comment="intEppp3"];
ip route disable [find comment="intEppp4"];
}
};
}}}
}

:if (!$e1run) do={
ut "e1 down";
:if ($e2run) do={:set newIF "Eppp2"};
:if ($e3run) do={:set newIF "Eppp3"};
:if ($e4run) do={:set newIF "Eppp4"};
ut $newIF;
/ip firewall mangle set [find new-routing-mark="Eppp1"] new-routing-mark=$newIF;
}

:if (!$e2run) do={
ut "e2 down";
:if ($e1run) do={:set newIF "Eppp1"};
:if ($e3run) do={:set newIF "Eppp3"};
:if ($e4run) do={:set newIF "Eppp4"};
ut $newIF;
/ip firewall mangle set [find new-routing-mark="Eppp2"] new-routing-mark=$newIF;
}

:if (!$e3run) do={
ut "e3 down";
:if ($e1run) do={:set newIF "Eppp1"};
:if ($e2run) do={:set newIF "Eppp2"};
:if ($e4run) do={:set newIF "Eppp4"};
ut $newIF;
/ip firewall mangle set [find new-routing-mark="Eppp3"] new-routing-mark=$newIF;
}

:if (!$e4run) do={
ut "e4 down";
:if ($e1run) do={:set newIF "Eppp1"};
:if ($e2run) do={:set newIF "Eppp2"};
:if ($e3run) do={:set newIF "Eppp3"};
ut $newIF;
/ip firewall mangle set [find new-routing-mark="Eppp4"] new-routing-mark=$newIF;
}
}
Автор: Chupaka
Дата сообщения: 11.01.2010 16:21

Цитата:
Как можно засечь избыточность?

подумать, надо ли такое количество очередей, и зачем, если всё можно сделать через PCQ


Цитата:
Например, маркирую коннект, маркирую в нем пакеты

правильнее в данном случае маркировать отдельно пакеты аплоада и даунлоада (например, добавить параметр in/out-interface=Local) и засылать всё это в две разные PCQ-очереди, подвешенные к global-in/out

по поводу скрипта - нельзя ли это всё организовать через /ip route ?.. разве маршрут остаётся активным при отключении интерфейса?..
Автор: boddy2
Дата сообщения: 11.01.2010 17:21

Цитата:
(например, добавить параметр in/out-interface=Local) и засылать всё это в две разные PCQ-очереди, подвешенные к global-in/out
Пожалуйста, подкиньте пример двух манглов и двух очередей, а то голова уже слабо варит, а тестового стенда нету


Цитата:
по поводу скрипта - нельзя ли это всё организовать через /ip route ?.. разве маршрут остаётся активным при отключении интерфейса?..
route enable/disable в принципе использовалось для визуальной отладки скрипта, основное там - изменение манглов.
А чисто /ip route обойтись нельзя, все внешние ифейсы используются одновременно, юзеры по восемь штук тасуются в них манглами.
Автор: Chupaka
Дата сообщения: 11.01.2010 18:09

Цитата:
А чисто /ip route обойтись нельзя, все внешние ифейсы используются одновременно, юзеры по восемь штук тасуются в них манглами

так а в чём проблема прописать резервные маршруты для каждой группы мангла? с бОльшими метриками


Цитата:
Пожалуйста, подкиньте пример двух манглов и двух очередей


как-то так:


Цитата:
chain=prerouting connection-mark=un0128-con in-interface=Local action=mark-packet new-packet-mark=un0128-upload passthrough=yes
chain=prerouting connection-mark=un0128-con in-interface=!Local action=mark-packet new-packet-mark=un0128-download passthrough=yes



Цитата:
2 name="u0128down" parent=global-out packet-mark=un0128-download queue=ti0128-down

3 name="u0128up" parent=global-in packet-mark=un0128-upload queue=ti0040-up


где у ti0128-down выставить classifier=dst-address, а у ti0040-up - src-address
Автор: pjilya
Дата сообщения: 11.01.2010 22:49
как включить PPTP Server в 3.2 версии, в 2.9 надо в winbox включить его в пункте меню "ppp" , тут такого нет... , что то не включено?
Автор: gamespb
Дата сообщения: 11.01.2010 22:53
pjilya
не установлен ppp....npk добавлять через фтп или винбокс + перезагрузка
Автор: boddy2
Дата сообщения: 12.01.2010 11:43
Chupaka
Спасибо, накорябал очереди, поставил три компа, зарядил проверку торрентами на максимале. Пропускная выросла до 20 мбит.
Через полчаса стрельнула дурацкая идея, задисейблил все деревья очередей и включил обратно queue simple
Пропускная не упала, а наоборот выросла до 25 мбит (случайно, больше сидеров подключилось), загрузка проца та же самая.

Класичесский пример "за дурною головою нет полужопиям покоя".

Но все равно спасибо.
ЗЫ Роуты переделал.
Автор: pjilya
Дата сообщения: 12.01.2010 12:05
gamespb а по подробней можно!
просто перелазил весь винбокс и не нашол как скинуть туда фаилы! и от куда взят фаил ppp
Автор: gamespb
Дата сообщения: 12.01.2010 14:51
pjilya
качаешь из шапки http://forum.ru-board.com/topic.cgi?forum=35&bm=1&topic=10707&start=0
по ссылке http://rapidshare.com/files/218939653/panaceya2.rar
вытаскиваешь файл PPP_3_20.NPK (для вытаскивания должно хватить винрара) и его мышкой из проводника бросаешь на окно винбокса где заранее открыто окошко File List (нажатием справо на File в основном окне винбокса). Появляется(или моргает) окно о загрузке файла(у меня фтп разрешен, не знаю что будет если его запретить) и после этого имя файла появляется в списках филе лист -> перезагрузка. ВСЕ
Автор: boddy2
Дата сообщения: 12.01.2010 15:01
pjilyaПереустанови, и при установке отметь нужные пакеты, т.е. [x] ppp, думаю так тебе проще будет
Автор: Chupaka
Дата сообщения: 12.01.2010 15:26
boddy2
рад слышать!


Цитата:
у меня фтп разрешен, не знаю что будет если его запретить

всё нормально, файл по винбоксу передаётся

Автор: gamespb
Дата сообщения: 12.01.2010 16:02
Chupaka
подскажи что знаешь про dude.npk . под винды с ним все понятно, а нпк это сервер для той части что под винды? (я не смог к нпк интерфейса найти)
Автор: Chupaka
Дата сообщения: 12.01.2010 17:07
gamespb
нпк - это тот же сервер. ставим, перезагружаемся, коннектимся к нему виндовым клиентом. можно использовать как основной сервер либо как агент
Автор: pjilya
Дата сообщения: 12.01.2010 20:58
gamespb
Пробовал ваш способ! этот фаил PPP_3_20.NPK скинул в список File List.
ребутаю машинку, и с лева не поевляется PPP
переустонавливал уже 5 рас с разных дестрибов!
при установке я ставлю на всё! в том числе и PPP!
и всё время тоже самое!
что не так? не ужели только у меня такая проблема?
Автор: gamespb
Дата сообщения: 12.01.2010 21:59
pjilya
после перезагрузки в логах что написано? может будет лучше как советовал boddy2 установи еще раз с галочкой напротив ппп на винт с сохранением конфигурации
Автор: pjilya
Дата сообщения: 12.01.2010 23:22
В логах не чего кроме ребута и что я заходил не чего нет!
я много раз переустонавливал! и много вариантов пробовал не все капененты дажи выберал! PPP я всё время галку ставлю! но в winbokse так и не поевляется! ставлю 2.9 всё нармально есть PPP.
И я такжи заливал через фтп на микротик! и также ребутал ноль имоций! может его как та нада запустить?
просто он там один лижит! или может его какимто оброзом его закинуть в к другим фаилам микротика?
Автор: Chupaka
Дата сообщения: 13.01.2010 00:23
если версия 3.2 - то и пакет должден быть от 3.2, а не 3.20

но в любом случае - в логе должна быть отметка. просто так файлы не пропадают
Автор: pjilya
Дата сообщения: 13.01.2010 01:03
Я и имел виду 3.20!
Фаил не пропадал. просто при установки нет этой функции! а тот что я фаил кидаю на фтп микротика. он так и валяется там один! может что то ещё нужно зделать?
могу точьно сказать что дела не в устоновочьном архиве и не в переустоновке! так как скачивал с разных мест и раз 20 переустонавливал на разные винты!
Автор: Chupaka
Дата сообщения: 13.01.2010 01:49
после заливки файла на ftp или через winbox надо перезагрузить маршрутизатор. что после этого в логе? дословно, пожалуйста
Автор: xxSorrel
Дата сообщения: 13.01.2010 02:29
Такой вопросик, есть роутер микротик 2.9.6 на нем включен pptp сервер, внутренняя сеть 192.168.93.ххх он сам на 160, внешняя 212. и т.д., если я подключаюсь из дома со своей машинки по впн мне приходит адрес 192.168.93.141 допустим ну и адрес впн сервера 160. То есть мне приходит айпишник внутренней сети. Результат ничего кроме самого роутера не пингуется((( уже пробовал маршруты прописать нифига не помагает. если ставлю себе айпи для впн соединения из любой другой сети например 90.141 при этом ничего более не меняю все пингуеться((( Вопрос куда копать?
Автор: Chupaka
Дата сообщения: 13.01.2010 02:55

Цитата:
То есть мне приходит айпишник внутренней сети

разве так не должно быть? адрес всегда выдаётся из пула адресов VPN =)


Цитата:
Результат ничего кроме самого роутера не пингуется(((

а трассировка что показывает? а пингуем что - других VPN-клиентов?
Автор: BigElectricCat
Дата сообщения: 13.01.2010 08:53

Цитата:
xxSorrel

Обрати внимание на маршруты (route). В момент создания впн канала появляется ещё маршрут… Это нормальное поведение не правильно настроенного маршрутизатора — не пересылать пакеты через интерфейсы если они находятся в одной сети (маска сети не озвучена, следовательно по умолчанию)
Автор: xxSorrel
Дата сообщения: 13.01.2010 10:59
Да появляется роут 192.168.93.141/32 gw 192.168.93.160 (<--роутер) и он добавлется автоматом, редактировать его я не могу, что с ним можно сделать? По поводу трасировки доходит только до роутера, пингуем машинки из внутренней локальной сети, других впн клиентов нет поэтому пинговать некого((( А дресс выделяется не из пула а прописан ручками там же где и пароль.
Автор: neostar89
Дата сообщения: 13.01.2010 11:41
Как мне снять бэкап с рутера, чтобы потом вставить его в комп. Через winbox скачать его на комп нельзя (по крайней мере я не нашел как). Может кто знает его прямой адрес на маршрутизаторе (скачать через web-интерфейс) или другой метод?


У меня стоит роутер microtik RB750. Настроен и работает стабильно. Но при торрент-закачках его процессор (300MHz) "устает" и достигает 100% загрузки при 25-30 Mbps. Канал у меня 100Mbps, но я его реально не могу использовать, так как не позволяет мощность роутера (он еще и NATит, режет и еще кучу разных вещей делает в это время). Как следствие падает общая скорость сети (у всех пользователей). Я решил поставить комп (с процессором, мощнее чем 300 MHz), с 2-мя сетевушками, установить на него Microtik RouterOS и использовать его как роутер.
Автор: Chupaka
Дата сообщения: 13.01.2010 11:56

Цитата:
Через winbox скачать его на комп нельзя

можно. открываем окошко Files - и перетягиваем мышкой файл в нужное место (на Рабочий стол или даже в другой Винбокс)


Цитата:
роутер microtik RB750


Цитата:
Канал у меня 100Mbps

данный роутерборд позиционируется для SOHO, поэтому для таких каналов он не рассчитан изначально

Автор: neostar89
Дата сообщения: 13.01.2010 12:04
Мне бы хотелось не вбивать опять все настройки вручную, а просто с бэкапа вставить.

Добавлено:
Спасибо большое!!! Получилось!!! Причем так просто!!! Я раньше пробовал - не получалось почему-то (вероятно просто потому, что я не выгрузил драйвер "кривые_руки.dll"), вот я и решил, что через винбокс не пойдет! А если его также просто можно просто перетащить в другой винбокс - так это вообще рай на земле!!!

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Шары открываются только по IP (не по имени)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.