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

» MikroTik RouterOS (часть 3)

Автор: faust72rus
Дата сообщения: 13.02.2011 09:00
korsakoff72RU
у меня на дефолтной конфе у РБ450Г собран бридж (а не свич).
Автор: korsakoff72RU
Дата сообщения: 13.02.2011 13:53
faust72rus

Цитата:
меня на дефолтной конфе у РБ450Г собран бридж (а не свич).

И... ? При чём тут дефолтный конфиг? На кой городить бридж в данном случае, если имеется возможность, задействовать АППАРАТНЫЙ свич (управляемый к тому же)?
Не, ну можно и бридж конечно заюзать, если не знаете, чем ещё процессор роутерборда занять. В противном случае я не понимаю, к чему гонять данные между локальными машинами, расположенными в одной подсетке через CPU роутера, если их, по утверждению микротиковцев, можно гонять через встроенный switch-chip без всякой нагрузки на CPU с wire speed.
Автор: faust72rus
Дата сообщения: 13.02.2011 17:51
korsakoff72RU

Цитата:
На кой городить бридж в данном случае

...ни к чему, если не нужно контролировать и\или шейпить\дропать. А вы чего нервничаете? Мне кажется Dr0niX сможет и сам разобраться какой способ коммутации использовать =)
*и чем занять процессор своего РБ.
Автор: korsakoff72RU
Дата сообщения: 13.02.2011 18:22
faust72rus

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

Ну так может стоит для начала ознакомиться с сутью вопроса, возникшего у человека, начиная вот от сюда:
http://forum.ru-board.com/topic.cgi?forum=8&topic=38493&start=1160#18
У человека цель: разместить 3, насколько понял, домашних компа в одной локальной подсети с выдачей адресов с единого DHCP-сервера - обычная задача штатно реализованная в бытовых роутерах. Про шейпить/дропать запросов не было, да и ни к чему это, ИМХО, в большинстве случаев в крохотной квартирной локалке - шейпить/дропать локалный трафик.

Цитата:
А вы чего нервничаете?

В котором месте? Я спокоен.

Цитата:
Мне кажется Dr0niX сможет и сам разобраться какой способ коммутации использовать =)

В том то и дело, что, судя по всему, не может уже 2 недели. ИМХО, использование бриджа в конкретном случае - из серии "вредные советы".
Подобью итоги :
Если на плате не распаян switch-chip - юзаем бридж
Если switch-chip на плате имеется (как в случае RB450G), то юзаем его, объединяя нужные порты в одну группу коммутации с помощью указания общего master-port.
Автор: Chupaka
Дата сообщения: 13.02.2011 21:02

Цитата:
...ни к чему, если не нужно контролировать и\или шейпить\дропать

контролировать/дропать - это правилами свитча, опять же на wire speed
шейпить - если не всё, то это теми же правилами свитча отправить на ЦПУ для обработки
Автор: korsakoff72RU
Дата сообщения: 14.02.2011 13:57
Chupaka

Цитата:
контролировать/дропать - это правилами свитча, опять же на wire speed
шейпить - если не всё, то это теми же правилами свитча отправить на ЦПУ для обработки

Ну, дропать там можно только по MAC и/или порту, оно и понятно, т.к. свич = L2 only, если же нужно какой-то конкретный трафик зарезать, то опять же придётся применять redirect-to-cpu, а это уже включение режима маршрутизации, т.е. уже не wire speed.
Автор: Chupaka
Дата сообщения: 14.02.2011 16:00

Цитата:
дропать там можно только по MAC и/или порту, оно и понятно, т.к. свич = L2 only

это в Хостсах, я имел в виду Rules, там можно по IP/IPv6-полям отбирать. прямого дропа нет, но если всё, что надо дропать, пересылать на цпу и дропать там - весь остальной трафик всё равно будет ходить на wire speed
Автор: Dr0niX
Дата сообщения: 14.02.2011 20:27
korsakoff72RU
выражаю благодарность за интерес к моей проблеме.

Оказалось нужна всего одна команда.
Автор: SyCraft
Дата сообщения: 15.02.2011 00:03
RB750 сразу горит 3мя то 5 лампочками.. сетевой кабель не подключен
ресет зажимал до мигания acl.. через netinstall цеплять пробовал.. на хабе линк не горит когда подлючаю к нему тик..
умер роутер?
Автор: wwwwwww7
Дата сообщения: 15.02.2011 10:23
Люди, подскажите пожалуйста, если я в одном simple queue прописываю два ip адреса то скорость max limit делится на эти два адреса или у каждого по max limit.
Автор: Demon
Дата сообщения: 15.02.2011 11:04
wwwwwww7

Делится
Автор: Chupaka
Дата сообщения: 15.02.2011 14:49
wwwwwww7
чтобы каждому - необходимо тип очереди сменить на PCQ
Автор: wwwwwww7
Дата сообщения: 15.02.2011 23:19
Народ , кто нибудь тестировал этот скрипт http://mikrotik.axiom-pro.ru/scripts/balancer2xpro.php
Автор: faust72rus
Дата сообщения: 16.02.2011 08:51
korsakoff72RU
Chupaka
Круто, не знал (не думал\не осозновал).
Автор: npokypop2002
Дата сообщения: 16.02.2011 11:42
Уважаемые гуру! Может кто сталкивался с такой проблемой:
Порт tcp:80 пробросил через МТ, но сайт грузится не хочет, хотя в локалке по запросу 192.168.253.253 грузится.


Код:
[admin@MikroTik] > ip firewall nat
[admin@MikroTik] /ip firewall nat> print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat action=src-nat to-addresses=82.209.198.88 to-ports=0-65535
protocol=tcp src-address=192.168.0.0/16

1 chain=srcnat action=src-nat to-addresses=82.209.198.88 to-ports=0-65535
protocol=udp src-address=192.168.0.0/16

2 chain=srcnat action=src-nat to-addresses=82.209.198.88 protocol=icmp
src-address=192.168.0.0/16

3 chain=dstnat action=dst-nat to-addresses=192.168.253.253 to-ports=9740
protocol=tcp dst-address=82.209.198.88 dst-port=9740

4 chain=dstnat action=dst-nat to-addresses=192.168.253.253 to-ports=5900
protocol=tcp dst-address=82.209.198.88 dst-port=5900

5 chain=dstnat action=dst-nat to-addresses=192.168.253.253 to-ports=80
protocol=tcp dst-address=82.209.198.88 dst-port=80
[admin@MikroTik] /ip firewall nat>

Автор: faust72rus
Дата сообщения: 17.02.2011 06:06
npokypop2002
Уважаемый, у вас правила специально шиворот на выворот или я чего не понял?

Правильная версия тут:
NAT


Цитата:
Destination NAT

If you want to link Public IP 10.5.8.200 address to Local one 192.168.0.109, you should use destination address translation feature of the MikroTik router. Also if you want allow Local server to talk with outside with given Public IP you should use source address translation, too.

Add Public IP to Public interface:

/ip address add address=10.5.8.200/32 interface=Public

Add rule allowing access to the internal server from external networks:

/ip firewall nat add chain=dstnat dst-address=10.5.8.200 action=dst-nat \
    to-addresses=192.168.0.109

Add rule allowing the internal server to talk to the outer networks having its source address translated to 10.5.8.200:

/ip firewall nat add chain=srcnat src-address=192.168.0.109 action=src-nat \
    to-addresses=10.5.8.200


Т.е. (если я опять таки ничего не перепутал) у вас адреса поменяны местами.


Итого:

Код: Добавляем адрес на внешний интерфейс (подозреваю это уже сделано)
/ip address add address=82.209.198.88/32 interface=Public

Делаем проброс портов внутрь:
/ip firewall nat add chain=dstnat dst-address=82.209.198.88 action=dst-nat \
dst-port=80 to-addresses=192.168.253.253 to-ports=80

/ip firewall nat add chain=dstnat dst-address=82.209.198.88 action=dst-nat \
dst-port=5900 to-addresses=192.168.253.253 to-ports=5900

/ip firewall nat add chain=dstnat dst-address=82.209.198.88 action=dst-nat \
dst-port=9740 to-addresses=192.168.253.253 to-ports=9740


Маскируем выход от сервера наружу (если внешних адресов несколько):
/ip firewall nat add chain=srcnat src-address=192.168.253.253 action=src-nat \
to-addresses=82.209.198.88
Автор: npokypop2002
Дата сообщения: 17.02.2011 10:29
Вот мой НАТ для всех адресов из локалки.

Код:
0 chain=srcnat action=src-nat to-addresses=82.209.198.88 to-ports=0-65535
protocol=tcp src-address=192.168.0.0/16

1 chain=srcnat action=src-nat to-addresses=82.209.198.88 to-ports=0-65535
protocol=udp src-address=192.168.0.0/16

2 chain=srcnat action=src-nat to-addresses=82.209.198.88 protocol=icmp
src-address=192.168.0.0/16
Автор: faust72rus
Дата сообщения: 17.02.2011 11:33
npokypop2002
*и да действительно правила изначально были правильными.
А что со счётчиками на этих правилах? А так же что есть в фильтре?
Автор: PuzzleW
Дата сообщения: 17.02.2011 16:04
всезнающий All, подскажи, может есть где мануал по решению такой задачи на микротике:
есть 2 канала связи (homelan static real ip + adsl dynamic real ip)
соответственно имеем внешние IP1 и IP2 на микротике.
pppoe поднимается в микротике.
маршрутизация в инет выглядит так:
0.0.0.0/0 через homelan с distance =1
0.0.0.0/0 через adsl с distance=2

вопрос: как добиться того, чтоб при пинговании с внешнего мира (например с машиной с реальным IP3) IP1 и IP2 0- получать корректные imcp ответы пришедшие каждый через свой канал?
т.е. мне нужно чтобы ответные пакеты на пришедшие на какой-либо интрфейс микротика ВСЕГДА уходили в этот же интерфейс! сейчас они всегда уходят по маршруту по умолчанию.
из-за особенностей homelan провайдера, у меня через него уходят (не умирая внутри) пакеты, направленные через adsl!!!
смотрел Torch'em на интерфейсах - пакеты приходят на ppp, но уходят через homelan!

погуглил, на микротике решения именно этой задачи не нашёл.
в процессе гугленья нашёл как это делается на iptables вот тут http://habrahabr.ru/blogs/linux/100919/
и упёрся в то, что мне фактически не хватает механизма пометки создаваемых в самом микротике ответных пакетов, который на iptables делается с помощью, цитирую статью с хабра "Для этого,, придётся использовать отслеживание соединений файрволом (conntrack) для выставления fwmark (connmark)"

после последующего гуленья я нашёл следующую статью на wiki самого микротика http://wiki.mikrotik.com/wiki/PCC#Policy_routing

но при реализации его в моем случае, у меня действительно пинги с IP3 на IP1 и IP2 ходят правильно, но при этом куча исходящих соединений получает совершенно левую (мною нигде не просимую маркировку по одному или второму каналу)
я пробовал усилить условие для pcc - выставив both-addresses and ports, но это не помогло.

вот экспорт конфига
/ip firewall mangle
add action=mark-connection chain=input in-interface=\
ether1-gateway new-connection-mark=homelan_conn passthrough=yes
add action=mark-connection chain=input in-interface=\
adsl new-connection-mark=adsl_conn passthrough=yes
add action=mark-routing chain=output connection-mark=homelan_conn \
new-routing-mark=to_homelan passthrough=yes
add action=mark-routing chain=output connection-mark=adsl_conn \
new-routing-mark=to_adsl passthrough=yes
add action=accept chain=prerouting dst-address=\
HOMELAN_IP/MASK in-interface=ether2-local-master
add action=accept chain=prerouting dst-address=\
ADSL_IP_R1/MASK in-interface=ether2-local-master
add action=accept chain=prerouting dst-address=\
ADSL_IP_R2/MASK in-interface=ether2-local-master
add action=mark-connection chain=prerouting \
dst-address-type=!local in-interface=ether2-local-master \
new-connection-mark=homelan_conn passthrough=yes per-connection-classifier=\
both-addresses-and-ports:2/0
add action=mark-connection chain=prerouting \
dst-address-type=!local in-interface=ether2-local-master \
new-connection-mark=adsl_conn passthrough=yes \
per-connection-classifier=both-addresses-and-ports:2/1
add action=mark-routing chain=prerouting connection-mark=\
homelan_conn in-interface=ether2-local-master \
new-routing-mark=to_homelan passthrough=yes
add action=mark-routing chain=prerouting connection-mark=\
adsl_conn in-interface=ether2-local-master \
new-routing-mark=to_adsl passthrough=yes

/ip route print detail
0 A S dst-address=0.0.0.0/0 gateway=ether1-gateway gateway-status=ether1-gateway reachable distance=1 scope=30 target-scope=10 routing-mark=to_homelan
1 S dst-address=0.0.0.0/0 gateway=adsl gateway-status=adsl unreachable distance=2 scope=30 target-scope=10 routing-mark=to_adsl
2 A S dst-address=0.0.0.0/0 gateway=ether1-gateway gateway-status=ether1-gateway reachable distance=1 scope=30 target-scope=10
3 S dst-address=0.0.0.0/0 gateway=adsl gateway-status=adsl unreachable distance=2 scope=30 target-scope=10
4 ADC dst-address=HOMELAN_R/MASK pref-src=IP1 gateway=ether1-gateway gateway-status=ether1-gateway reachable distance=0 scope=10
5 ADC dst-address=192.168.0.0/24 pref-src=192.168.0.1 gateway=ether2-local-master gateway-status=ether2-local-master reachable distance=0 scope=10
6 ADC dst-address=192.168.1.0/24 pref-src=192.168.1.2 gateway=ether5-local-slave gateway-status=ether5-local-slave reachable distance=0 scope=10

/ip route
add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ether1-gateway routing-mark=\
to_homelan scope=30 target-scope=10
add comment="" disabled=no distance=2 dst-address=0.0.0.0/0 gateway=adsl routing-mark=to_adsl \
scope=30 target-scope=10
add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ether1-gateway scope=30 \
target-scope=10
add comment="" disabled=no distance=2 dst-address=0.0.0.0/0 gateway=adsl scope=30 target-scope=10


Добавлено:
Так, судя по всему, сам догадался
PCC тут не причём, и без него логика работает верно
убрал правила с per-connection-classifier и вроде всё пока работает, потестирую ещё.
Автор: Chupaka
Дата сообщения: 17.02.2011 16:59
PuzzleW
именно так, для поставленной задачи нужны только правила input/output
Автор: vlh
Дата сообщения: 17.02.2011 20:27
интересует такой вопрос!
в данный момент настроен шейпер для локальной сети и все как бы устраивает,
но вот если мне придется давать на группу из адресс-листа белый IP,
то в NAT наверное будет следующее правило:

Код: chain=srcnat action=src-nat to-addresses=86.*.*.196 src-address-list=GR out-interface=PABLIC
Автор: PuzzleW
Дата сообщения: 17.02.2011 20:58
Chupaka
Спасибо за ответ! Действительно всё работает Лишнего ничего случайно не обнаружилось в моем конфиге?
Автор: npokypop2002
Дата сообщения: 17.02.2011 21:03

Цитата:
А так же что есть в фильтре?

Вот именно что кроме НАТ на МТ ничего не настраивалось (
Автор: korsakoff72RU
Дата сообщения: 17.02.2011 21:11
npokypop2002

Цитата:
Порт tcp:80 пробросил через МТ, но сайт грузится не хочет

Может для начала нужно в сервисах Микротика изменить порт для его собственного веб-интерфейса, за которым как раз и закреплён по умолчанию 80-й порт?
Автор: Chupaka
Дата сообщения: 18.02.2011 03:09

Цитата:
а вот как в этом случае надо будет переделывать правила в мангле и Queue tree?

никак, если не используется queue с parent=Public, поскольку нат срабатывает непосредственно перед Interface Queue, и всё предыдущее не затрагивает


Цитата:
Может для начала нужно в сервисах Микротика изменить порт для его собственного веб-интерфейса

он совершенно не мешает. если делать дст-нат, то пакеты на веб-сервер мелкотика не попадут, есть он там или нет его
Автор: morfius86
Дата сообщения: 18.02.2011 08:33

Цитата:
Допускаем что у нас ограниченный канал и нам надо приоритизировать определенные классы трафика.

0. Маркируем все соединения в цепочке форвард.
1. Маркируем ICMP трафик. В Queue Tree даем ему приоритет 1, гарантируя ему определенную скорость и устанавливая максимальную скорость.
2. Маркируем весь остальной tcp трафик. В Queue Tree даем ему приоритет 6, гарантируя ему определенную скорость и устанавливая максимальную скорость.
3. Маркируем udp трафик. В Queue Tree даем ему приоритет 4, гарантируя ему определенную скорость и устанавливая максимальную скорость.
4. Маркируем весь остальной трафик. В Queue Tree даем ему приоритет 8, гарантируя ему определенную скорость и устанавливая максимальную скорость.


Если говорить человеческим языком:
1. Мы гарантировали хорошее время отклика.
2. Странички откроются быстро и с максимальной скоростью.

Вот пример того как это реализовать:



Цитата:

/ ip firewall mangle
add chain=forward dst-address-list=Clients action=mark-connection new-connection-mark=Download passthrough=yes comment="" disabled=no
add chain=forward src-address-list=Clients action=mark-connection new-connection-mark=Upload passthrough=yes comment="" disabled=no

add chain=forward protocol=tcp connection-mark=Download action=mark-packet new-packet-mark=tcp-other-dl passthrough=no comment="" disabled=no
add chain=forward protocol=icmp connection-mark=Download action=mark-packet new-packet-mark=icmp-dl passthrough=no comment="" disabled=no
add chain=forward protocol=udp connection-mark=Download action=mark-packet new-packet-mark=udp-dl passthrough=no comment="" disabled=no
add chain=forward connection-mark=Download action=mark-packet new-packet-mark=other-dl passthrough=no comment="" disabled=no


add chain=forward protocol=tcp connection-mark=Upload action=mark-packet new-packet-mark=tcp-other-ul passthrough=no comment="" disabled=no
add chain=forward protocol=icmp connection-mark=Upload action=mark-packet new-packet-mark=icmp-ul passthrough=no comment="" disabled=no
add chain=forward protocol=udp connection-mark=Upload action=mark-packet new-packet-mark=udp-ul passthrough=no comment="" disabled=no
add chain=forward connection-mark=Upload action=mark-packet new-packet-mark=other-ul passthrough=no comment="" disabled=no



Цитата:


/ queue tree
add name="Download" parent=global-out packet-mark="" limit-at=0 max-limit=0 disabled=no
add name="Upload" parent=global-out packet-mark="" limit-at=0 max-limit=0 disabled=no


add name="tcp-other-dl" parent=Download packet-mark=tcp-other-dl limit-at=0 priority=6 max-limit=0 disabled=no
add name="icmp-dl" parent=Download packet-mark=icmp-dl limit-at=0 priority=1 max-limit=0 disabled=no
add name="udp-dl" parent=Download packet-mark=udp-dl limit-at=0 priority=4 max-limit=0 disabled=no
add name="other-dl" parent=Download packet-mark=other-dl limit-at=0 priority=8 max-limit=0 disabled=no

add name="tcp-other-ul" parent=Upload packet-mark=tcp-other-ul limit-at=0 priority=6 max-limit=0 disabled=no
add name="icmp-ul" parent=Upload packet-mark=icmp-ul limit-at=0 priority=1 max-limit=0 disabled=no
add name="udp-ul" parent=Upload packet-mark=udp-ul limit-at=0 priority=4 max-limit=0 disabled=no
add name="other-ul" parent=Upload packet-mark=other-ul limit-at=0 priority=8 max-limit=0 disabled=no





Цитата:

Такая схема работает для каждого нового TCP соединения, главное чтобы правила шли в указаной очереди.

Далее создал 2 типа queue:

add name="PCQ-Download" kind=pcq pcq-limit=50 pcq-classifier=dst-address pcq-rate=2000k
add name="PCQ-Upload" kind=pcq pcq-limit=50 pcq-classifier=src-address pcq-rate=1024k


Далее указываешь в каждом правиле Queue Tree тип queue соответственно PCQ-Dowload или PCQ-Upload.



Всем, привет!
Нашел данное руководство у одного из пользователей ru-board'a
Сделал, как написано выше. Вроде бы все отлично, но когда запускаешь торрент, скорость в 2 раза больше (4000k), при этом если серфить и проводить тесты (http, ftp и т.д.), то скорость показывает соответствующую (2000k).

Ребят помогите, неужели так и должно работать?
Автор: korsakoff72RU
Дата сообщения: 18.02.2011 09:34
Chupaka

Цитата:
он совершенно не мешает. если делать дст-нат, то пакеты на веб-сервер мелкотика не попадут, есть он там или нет его

ХЗ, подобная муля, на сколько помню, имеет место у имеющегося у меня D-Link DFL-210: чтобы получить доступ к веб-серверу, расположенному в локалке из вне при обращении с наружи по 80-му порту нужно кроме проброса самого порта ещё и изменить порт доступа к веб-интерфейсу самого роутера.
В любом случае от попытки вреда, ИМХО, не будет.
Либо, как вариант, обращаться снаружи к локальному веб серверу не по 80-му порту, а, допустим, по порту 11111, т.е. делать запрос вида bla-bla-bla.ru:11111, а затем внешний порт 11111 мапить внутрь локалки на порт 80 веб-сервера.
Автор: npokypop2002
Дата сообщения: 18.02.2011 10:44
morfius86
У меня по этой схеме не работает вообще, только два момент у меня, это необходимость работы без Address-list и переброс пакетов через НАТ. Все остальное сделано как в инструкции. Для теста создал в списке Clients один ip (свой).
Автор: vlh
Дата сообщения: 18.02.2011 11:22
что ни у кого из сильных мира сего нет вариантов ответа на мой вопрос?
про то почему некоторые пакеты пролетают правила в форварде...
у самого сложилось как бы два варианта:
1. проблемы с тиком, а именно с RO.
2. проблема на стороне провайдера, так как оба канала у меня от одного провайдера, понятно что учетки разные, но вот смущает то что прорываются именно входящие пакеты, то есть исходящие идут как надо.
так же есть еще один провайдер, через него ни чего не приходит, если ни чего
не отправлять....
получается что запрос у меня пользователь отправляет через один канал, а ответ
получает по другому...но повторюсь, что их очень мало и сбросив сессии у этого
клиента все прекращается, а потом через какое то время может появится уже у другого клиента....
я мечу пакеты как для группы так и на определенном интерфейсе, можно конечно
оставить только для группы и тогда все пакеты попадут под это правило и шейпер
отработает как надо, хоть пакет будет идти с другого интерфейса, но интересно
разобраться в чем проблема...
Автор: npokypop2002
Дата сообщения: 18.02.2011 12:11
morfius86
А где правило ?


Код: 2. Маркируем первые 500KB tcp трафика. В Queue Tree даем им приоритет 2, гарантируя ему определенную скорость и устанавливая максимальную скорость.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798

Предыдущая тема: Firewall *nix: iptables, ipfw, pf etc...


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