Помогите разобраться с шейперами, пожалуйста!

Обсуждение ПО и его настройки
vottghern
Сообщения: 71
Зарегистрирован: 12 фев 2013, 11:19

Здравствуйте!

Хочу попросить уважаемое сообщество помочь мне разобраться с шейперами на Mikrotik RB 1100 AHx2 в условиях нескольких локальных подсетей.

Итак, что мы имеем:

    интерфейс ether1, который имеет адрес 85.х.х.х и смотрит к провайдеру.
    интерфейс ether2, который имеет адрес 192.168.2.2 и смотрит во VLAN2 офисной сети, где ограничиваем скорость выхода в интернет значением 3 Мб/сек, у всех клиентов адреса статические
    интерфейс ether3, который имеет адрес 192.168.3.2 и смотрит во VLAN3 офисной сети, где нет ограничений по скорости, подсеть для избранных, у всех клиентов адреса статические :-):
    интерфейс ether4, который имеет адрес 192.168.4.2 и смотрит во VLAN4, где сидят арендаторы и где скорость зарезана на 2 Мб/сек, там же поднят DHCP и нам на них наплевать :-):
    в сети присутствует домен-контроллер, который имеет две сетевухи с адресами 192.168.2.200 и 192.168.3.200 и смотрит, соответственно сразу в два VLAN

Что необходимо получить в итоге:

    Зарезать арендаторам скорость до 2 Мб/сек.
    Зарезать одному из офисных VLAN скорость на 3 МБ/сек.
    Второму офисному VLAN оставить канал без ограничений, за исключением некоторых индивидов.
    В тоже время, сделать так, чтоб VLAN2 (ether2) и VLAN3 (ether3) могли общаться с домен-контроллером и между собой без вмешательства шейперов

Теперь приведу почти полную конфигурацию Микротика, убраны только не относящиеся к делу моменты:

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

# oct/18/2013 16:38:04 by RouterOS 5.24
# software id = MQS2-AHDN
#

# Именуем интерфейсы и назначаем IP-адреса
/ip address
add address=85.x.x.x/24 comment="WAN port" interface=ether1
add address=192.168.2.2/24 comment="LAN Office Limited" interface=ether2
add address=192.168.3.2/24 comment="LAN Office Unlimited" interface=ether3
add address=192.168.4.2/24 comment="LAN Others Superlimited" interface=ether4

# Задаем главный маршрут, чтоб все подсети в интернет ходили
/ip route
add distance=1 gateway=85.x.x.x

# Назначаем DNS, первый - внутренний домен-контроллер, второй - провайдера
/ip dns
set allow-remote-requests=yes servers=192.168.2.200,85.x.x.x

# Задаем правила файервола, чтоб подсети могли выходить в интернет и общаться между собой
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1 to-addresses=0.0.0.0
add action=masquerade chain=srcnat out-interface=ether3
add action=masquerade chain=srcnat out-interface=ether4
add action=masquerade chain=srcnat out-interface=ether2

# Делаем пул адресов для DHCP в подсети арендаторов
/ip pool
add name=vlan4pool ranges=192.168.4.20-192.168.4.100

# Настраиваем DHCP-сервер на вышеназначенный пул
/ip dhcp-server
add add-arp=yes address-pool=vlan4pool always-broadcast=yes authoritative=yes disabled=no interface=ether4 name=vlan4dhcp
   
/ip dhcp-server network add address=192.168.4.0/24 dns-server=192.168.4.2,85.x.x.x gateway=192.168.4.2 netmask=24

# ДАЛЬШЕ НАЧИНАЕТСЯ БЛОК, НЕ СОВСЕМ ПОНЯТНЫЙ ДЛЯ МЕНЯ, ОН ПРИЗВАН ПОРЕЗАТЬ СКОРОСТЬ В ИНТЕРНЕТ, НО НЕ ТРОГАТЬ ЛОКАЛКУ   
# Делаем адрес-листы сетей, при обращении к которым скорость резать НЕ НАДО
/ip firewall address-list
add address=192.168.2.0/24 list=of-vlan2
add address=192.168.3.0/24 list=of-vlan3

# Маркируем пакеты в сети, которые, как я понимаю, не относятся к VLAN 2 и 3
/ip firewall mangle
add action=mark-packet chain=prerouting dst-address=0.0.0.0/0 dst-address-list=!of-vlan2 new-packet-mark=of-vlan2-mark
add action=mark-packet chain=prerouting dst-address=0.0.0.0/0 dst-address-list=!of-vlan3 new-packet-mark=of-vlan3-mark
   
# Режем скорость трафика
/queue simple
add max-limit=2M/2M name="Queue LAN Others Superlimited" queue=ethernet-default/ethernet-default target-addresses=192.168.4.0/24 total-queue=ethernet-default

add max-limit=3M/3M name="Queue LAN Office Limited" packet-marks=of-vlan2-mark queue=ethernet-default/ethernet-default target-addresses=192.168.2.0/24 total-queue=ethernet-default

add max-limit=1M/1M name=vorobiev1 packet-marks=of-vlan3-mark queue=ethernet-default/ethernet-default target-addresses=192.168.3.16/32 total-queue=ethernet-default

# КОНЕЦ НЕ СОВСЕМ ПОНЯТНОГО БЛОКА


Конфигурацию в свое время мне помогали создать здесь, на форуме, за что ребятам отдельное ОГРОМНОЕ спасибо! Сам бы я до такого не смог додуматься. :-)
В чем суть момента? Суть в том, что если в Simple Queue мы просто поставим ограничение по скорости, то оно применится ко всему трафику, включая локальный, что допустить нельзя.
Мне посоветовали и показали как сделать такую штуку - маркируем ВЕСЬ трафик, который проходит через Микротик, за исключением локального трафика в сети 192.168.2.х и потом этот трафик режем по скорости.

Первая строка Simple Queue add max-limit=2M/2M name="Queue LAN Others Superlimited" queue=ethernet-default/ethernet-default target-addresses=192.168.4.0/24 total-queue=ethernet-default тупо режет канал арендатором. На их локальный трафик нам плевать, поэтому такое правило полностью устраивает и абсолютно рабочее.

Последняя строка режет трафик одному индивиду, который хоть и сидит в привилегированной подсети, но задолбал качать постоянно видео.
Строка add max-limit=1M/1M name=vorobiev1 packet-marks=of-vlan3-mark queue=ethernet-default/ethernet-default target-addresses=192.168.3.16/32 total-queue=ethernet-default режет весь трафик, помеченный марком of-vlan3-mark, это весь трафик, кроме локального для этого чувака - 192.168.3.х

Вопрос по средней строке - add max-limit=3M/3M name="Queue LAN Office Limited" packet-marks=of-vlan2-mark queue=ethernet-default/ethernet-default target-addresses=192.168.2.0/24 total-queue=ethernet-default
Она режет весь трафик, который помечен марком of-vlan2-mark, а это весь трафик, кроме локального для этой группы - 192.168.2.х И вроде бы все правильно, все хорошо..... Но что-то я в пятницу заметил, сидя в web-интерфейсе, Микротика, что периодически на ограниченном офисном интерфейсе VLAN2 (ether2) взлетает трафик аж выше 10 Мб/сек и, соответственно сажает весь интернет трафик просто ниже плинтуса, скорость даже до 1 Мб/сек в привилегированной сети не поднимается.

Почему так происходит? Вроде же не должно так быть? Самое интересное, что если я поменяю эту среднюю строчку так -
add max-limit=3M/3M name="Queue LAN Office Limited" packet-marks=of-vlan2-mark,of-vlan3-mark queue=ethernet-default/ethernet-default target-addresses=192.168.2.0/24 total-queue=ethernet-default
т.е., добавлю туда марк of-vlan3-mark, теперь режется только трафик, который не относится ни к сети 192.168.2.х, ни к 192.168.3.х, то таких всплесков не случается, скорость в ограниченном офисном VLAN не поднимается выше запланированных 3 Мб/сек.
Не понимаю, почему так происходит. Не успел проверить, но опасаюсь, не режется ли теперь и локальный трафик?

Уважаемый, посмотрите на конфиг, может, подскажите чего?

Заранее спасибо!
С уважением, Алексей

P.S. а какой прогой можно смотреть скорость скачивания по внешнему интерфейсу по всем IP локальной сети на основе, допустим, NetFlow? У меня раньше на одном компе стоял NetFlow Traffic Analyzer. Отличная прога, но вот именно с тем, чтоб посмотреть какой IP сейчас с кайо скоростью качает - вот с этим у нее как-то не очень. Вот объемы скачивания и куда кто ходил - в ней просто классно смотреть. Ну или я не разобрался, как ее настроить :-):


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Завтра вникну в ваш пост, из вопросов. Микротик умеет строить графики загруженности, в том числе и интерфейсов. График можно смотреть в вебморде.


Есть интересная задача и бюджет? http://mikrotik.site
vottghern
Сообщения: 71
Зарегистрирован: 12 фев 2013, 11:19

Люди, не проходите мимо :-) Помогите, пожалуйста


Аватара пользователя
simpl3x
Модератор
Сообщения: 1532
Зарегистрирован: 19 апр 2012, 14:03

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

/ip firewall mangle
add action=mark-packet chain=prerouting dst-address=0.0.0.0/0 dst-address-list=!of-vlan2 new-packet-mark=of-vlan2-mark
add action=mark-packet chain=prerouting dst-address=0.0.0.0/0 dst-address-list=!of-vlan3 new-packet-mark=of-vlan3-mark

как то дико вы маркируете пакеты. два раза dst-address
предлагаю так:

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

/ip firewall mangle
add action=acept chain=prerouting src-address-list=of-vlan2 dst-address-list=of-vlan3
add action=acept chain=prerouting src-address-list=of-vlan3 dst-address-list=of-vlan2
add action=acept chain=prerouting src-address-list=of-vlan3
add action=mark-connection chain=prerouting src-address-list=of-vlan2 new-connection-mark=of-vlan2-mark-con
add action=mark-packet chain=prerouting connection-mark=of-vlan2-mark-con new-packet-mark=of-vlan2-mark

/queue simple
add max-limit=2M/2M name="Queue LAN Others Superlimited" queue=ethernet-default/ethernet-default target-addresses=192.168.4.0/24 total-queue=ethernet-default
add max-limit=3M/3M name="Queue LAN Office Limited" packet-marks=of-vlan2-mark queue=ethernet-default/ethernet-default total-queue=ethernet-default

первыми тремя строчками мы выносим пакеты, которые не нужно ограничивать в скорости. 4-5 метим конекты и по ним метим пакеты для vlan2
ну и дальше ограничение скорости идёт.

ну и как замечание:

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

add action=masquerade chain=srcnat out-interface=ether3
add action=masquerade chain=srcnat out-interface=ether4
add action=masquerade chain=srcnat out-interface=ether2

вам вот это все нужно? т.е. даже по направлению к\между клиентам(и)\сотрудникам(и) вы подменяете адреса источника на адрес микротика? просто лишняя нагрузка на роутер, он получается все пакеты от своего имени натит. по факту, вам только одна строчка нужна:

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

add action=masquerade chain=srcnat out-interface=ether1 to-addresses=0.0.0.0


vottghern
Сообщения: 71
Зарегистрирован: 12 фев 2013, 11:19

Здравствууйте!

Сегодня буду пробовать рекомендации по маркировке и нарезке трафика. Так действительно будет логичнее.

Скажите, а вот в этом фрагменте:
simpl3x писал(а):/ip firewall mangle

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

add action=acept chain=prerouting src-address-list=of-vlan2 dst-address-list=of-vlan3 
add action=acept chain=prerouting src-address-list=of-vlan3 dst-address-list=of-vlan2
add action=acept chain=prerouting src-address-list=of-vlan3


не надо добавить цепочку add action=acept chain=prerouting src-address-list=of-vlan2 ?

А по поводу этого момента:
simpl3x писал(а):ну и как замечание:

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

add action=masquerade chain=srcnat out-interface=ether3
add action=masquerade chain=srcnat out-interface=ether4
add action=masquerade chain=srcnat out-interface=ether2

вам вот это все нужно? т.е. даже по направлению к\между клиентам(и)\сотрудникам(и) вы подменяете адреса источника на адрес микротика? просто лишняя нагрузка на роутер, он получается все пакеты от своего имени натит. по факту, вам только одна строчка нужна:

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

add action=masquerade chain=srcnat out-interface=ether1 to-addresses=0.0.0.0


могу сказать, что это вы мне посоветовали такую конструкцию, после того, как я не смог добиться, чтоб пакеты между подсетями в локалке ходили. Вот эта ветка: viewtopic.php?f=3&t=3558&start=30 начиная с вашего сообщения от 17.05.2013 в 17:52. Или я снова чего-то не понял, :-( буду рад, если поясните.


Аватара пользователя
simpl3x
Модератор
Сообщения: 1532
Зарегистрирован: 19 апр 2012, 14:03

vottghern писал(а):Скажите, а вот в этом фрагменте:
simpl3x писал(а):/ip firewall mangle

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

add action=acept chain=prerouting src-address-list=of-vlan2 dst-address-list=of-vlan3 
add action=acept chain=prerouting src-address-list=of-vlan3 dst-address-list=of-vlan2
add action=acept chain=prerouting src-address-list=of-vlan3


не надо добавить цепочку add action=acept chain=prerouting src-address-list=of-vlan2 ?

ну если хотите исключить vlan2 из маркировки, то да.
vottghern писал(а):А по поводу этого момента:
simpl3x писал(а):ну и как замечание:

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

add action=masquerade chain=srcnat out-interface=ether3
add action=masquerade chain=srcnat out-interface=ether4
add action=masquerade chain=srcnat out-interface=ether2

вам вот это все нужно? т.е. даже по направлению к\между клиентам(и)\сотрудникам(и) вы подменяете адреса источника на адрес микротика? просто лишняя нагрузка на роутер, он получается все пакеты от своего имени натит. по факту, вам только одна строчка нужна:

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

add action=masquerade chain=srcnat out-interface=ether1 to-addresses=0.0.0.0


могу сказать, что это вы мне посоветовали такую конструкцию, после того, как я не смог добиться, чтоб пакеты между подсетями в локалке ходили. Вот эта ветка: viewtopic.php?f=3&t=3558&start=30 начиная с вашего сообщения от 17.05.2013 в 17:52. Или я снова чего-то не понял, :-( буду рад, если поясните.

а, ну там у вас какая то "замануха" была. там жеж я тоже написал, что это не много не правильно, но если работают костыли, значит пусть будет =)


vottghern
Сообщения: 71
Зарегистрирован: 12 фев 2013, 11:19

simpl3x писал(а):ну если хотите исключить vlan2 из маркировки, то да.

Тьфу! Протупил. Все понял
simpl3x писал(а):а, ну там у вас какая то "замануха" была. там жеж я тоже написал, что это не много не правильно, но если работают костыли, значит пусть будет =)

Там "заманухи" особой и не было. Там надо было сделать так, чтоб клиенты из сети 192.168.2.х могли общаться внутри локалки с клиентами из сети 192.168.3.х.
Без вот этих самых строк Микротик почему-то не пропускал пинги между ними


Аватара пользователя
simpl3x
Модератор
Сообщения: 1532
Зарегистрирован: 19 апр 2012, 14:03

vottghern писал(а):Там "заманухи" особой и не было. Там надо было сделать так, чтоб клиенты из сети 192.168.2.х могли общаться внутри локалки с клиентами из сети 192.168.3.х.
Без вот этих самых строк Микротик почему-то не пропускал пинги между ними

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


vottghern
Сообщения: 71
Зарегистрирован: 12 фев 2013, 11:19

simpl3x писал(а):ну именно поэтому я и назвал это все "заманухой". так не должно быть. без ната клиенты микротика должны ходить между собой без проблем, но у вас так не взлетело.

А можно попробовать как-то разобраться с этим вопросом или уже оставить так? Очень не хочется работать не правильно :-):


vottghern
Сообщения: 71
Зарегистрирован: 12 фев 2013, 11:19

И еще вопрос. А как в случае этого кода
simpl3x писал(а):

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

/ip firewall mangle
add action=acept chain=prerouting src-address-list=of-vlan2 dst-address-list=of-vlan3
add action=acept chain=prerouting src-address-list=of-vlan3 dst-address-list=of-vlan2
add action=acept chain=prerouting src-address-list=of-vlan3
add action=mark-connection chain=prerouting src-address-list=of-vlan2 new-connection-mark=of-vlan2-mark-con
add action=mark-packet chain=prerouting connection-mark=of-vlan2-mark-con new-packet-mark=of-vlan2-mark

быть с тем, что все-таки, некоторых из нелимитированной подсети 192.168.3.х надо ограничивать? Типа вот этого:

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

add max-limit=1M/1M name=vorobiev1 packet-marks=of-vlan3-mark queue=ethernet-default/ethernet-default target-addresses=192.168.3.16/32 total-queue=ethernet-default

Правильно ли я понимаю, что из вышеприведенного кода надо убрать строчку

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

add action=acept chain=prerouting src-address-list=of-vlan3

и добавить соответствующие маркировки для подсети 192.168.3.х, а потом этого товарища имеющимся же правилом и зарезать, а все остальные будут ходить без ограничений? Или на всех остальных из подсети 192.168.3.х тоже надо добавить какой-то правило, которое будет их пропускать без шейпера?


Ответить