Шейпер на Mikrotik
С появлением у меня анлим канала в интернет, появилась проблема разделения этого канала между сервером и другими компьютерами (в моем случае с двумя). Сервер, постоянно качает торренты, которые забивают канал и не дают нормально работать за другими компьютерами. Изначально решение было реализовано средствами шейпера Linux на сервере. Но вскоре я приобрел маршрутизатор RB-750. Он у меня и стал шлюзом, фаерволом и шейпером.
Исходные данные:
— общий канал: 2048/512 Kbps
— 3 вида входящего тафика: «торрент трафик» сервера, «не торрент трафик» сервера и весь трафик первого компьютера, трафик второго компьютера или ноутбука
— максимальная скорость второго компьютера или ноутбука — 512 Kbps
— максимальная скорость «не торрент трафика» — не ограничена
— «торрент трафик» использует канал по остаточному принципу
— IP адреса: сервер — 192.168.2.2, первый компьютер — 192.168.2.5, второй компьютер — 192.168.2.90, ноутбук — 192.168.2.91
— интернет приходит через интерфейс pppoe-ByFly
— входящий порт для торрентов на сервере — 6880
Решение:
Порты, к которым подключены компы и сервер объединены виртуальным свичем, чтобы упростить правила mangle.
Метим пакеты по типам трафика:
[admin@router] > ip firewall mangle export
# nov/17/2010 10:24:34 by RouterOS 4.12
# software id = ****-****
#
/ip firewall mangle
add action=mark-packet chain=forward comment=«Down torrent» disabled=no in-interface=pppoe-ByFly new-packet-mark=in-torrent-packet p2p=bit-torrent passthrough=yes
add action=mark-packet chain=forward comment=«Down torrent» disabled=no dst-address=192.168.2.2 dst-port=6880 in-interface=pppoe-ByFly new-packet-mark=in-torrent-packet \
passthrough=yes protocol=tcp
add action=mark-packet chain=forward comment=«Down torrent» disabled=no dst-address=192.168.2.2 dst-port=6880 in-interface=pppoe-ByFly new-packet-mark=in-torrent-packet \
passthrough=yes protocol=udp
add action=mark-packet chain=forward comment=«Down not torrent» disabled=no in-interface=pppoe-ByFly new-packet-mark=in-no_torrent-packet packet-mark=!in-torrent-packet \
passthrough=yes
add action=mark-packet chain=forward comment=«Down Chingiz book» disabled=no dst-address=192.168.2.91 in-interface=pppoe-ByFly new-packet-mark=«Down chingiz» passthrough=yes
add action=mark-packet chain=forward comment=«Down Chingiz comp» disabled=no dst-address=192.168.2.90 in-interface=pppoe-ByFly new-packet-mark=«Down chingiz» passthrough=yes
add action=mark-packet chain=forward comment=«Up chingiz book» disabled=no new-packet-mark=«Up chingiz» out-interface=pppoe-ByFly passthrough=yes src-address=192.168.2.91
add action=mark-packet chain=forward comment=«Up chingiz comp» disabled=no new-packet-mark=«Up chingiz» out-interface=pppoe-ByFly passthrough=yes src-address=192.168.2.90
Ну и потом создаем правила queue tree:
[admin@router] > queue tree export
# nov/17/2010 10:24:46 by RouterOS 4.12
# software id = ****-****
#
/queue tree
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=2M name=in-wan packet-mark=«in-torrent-packet,in-no_torrent-packet,Down chingiz» parent=global-out priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=1388k max-limit=2M name=in-not-torrent packet-mark=in-no_torrent-packet parent=in-wan priority=4 queue=pcq
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=1950k name=in-torrent packet-mark=in-torrent-packet parent=in-wan priority=8 queue=pcq
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=800k name=out-wan packet-mark=«Up chingiz» parent=global-out priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=512k max-limit=512k name=in-chingiz packet-mark=«Down chingiz» parent=in-wan priority=2 queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=256k max-limit=256k name=out-chingiz packet-mark=«Up chingiz» parent=out-wan priority=8 queue=default
Исходные данные:
— общий канал: 2048/512 Kbps
— 3 вида входящего тафика: «торрент трафик» сервера, «не торрент трафик» сервера и весь трафик первого компьютера, трафик второго компьютера или ноутбука
— максимальная скорость второго компьютера или ноутбука — 512 Kbps
— максимальная скорость «не торрент трафика» — не ограничена
— «торрент трафик» использует канал по остаточному принципу
— IP адреса: сервер — 192.168.2.2, первый компьютер — 192.168.2.5, второй компьютер — 192.168.2.90, ноутбук — 192.168.2.91
— интернет приходит через интерфейс pppoe-ByFly
— входящий порт для торрентов на сервере — 6880
Решение:
Порты, к которым подключены компы и сервер объединены виртуальным свичем, чтобы упростить правила mangle.
Метим пакеты по типам трафика:
[admin@router] > ip firewall mangle export
# nov/17/2010 10:24:34 by RouterOS 4.12
# software id = ****-****
#
/ip firewall mangle
add action=mark-packet chain=forward comment=«Down torrent» disabled=no in-interface=pppoe-ByFly new-packet-mark=in-torrent-packet p2p=bit-torrent passthrough=yes
add action=mark-packet chain=forward comment=«Down torrent» disabled=no dst-address=192.168.2.2 dst-port=6880 in-interface=pppoe-ByFly new-packet-mark=in-torrent-packet \
passthrough=yes protocol=tcp
add action=mark-packet chain=forward comment=«Down torrent» disabled=no dst-address=192.168.2.2 dst-port=6880 in-interface=pppoe-ByFly new-packet-mark=in-torrent-packet \
passthrough=yes protocol=udp
add action=mark-packet chain=forward comment=«Down not torrent» disabled=no in-interface=pppoe-ByFly new-packet-mark=in-no_torrent-packet packet-mark=!in-torrent-packet \
passthrough=yes
add action=mark-packet chain=forward comment=«Down Chingiz book» disabled=no dst-address=192.168.2.91 in-interface=pppoe-ByFly new-packet-mark=«Down chingiz» passthrough=yes
add action=mark-packet chain=forward comment=«Down Chingiz comp» disabled=no dst-address=192.168.2.90 in-interface=pppoe-ByFly new-packet-mark=«Down chingiz» passthrough=yes
add action=mark-packet chain=forward comment=«Up chingiz book» disabled=no new-packet-mark=«Up chingiz» out-interface=pppoe-ByFly passthrough=yes src-address=192.168.2.91
add action=mark-packet chain=forward comment=«Up chingiz comp» disabled=no new-packet-mark=«Up chingiz» out-interface=pppoe-ByFly passthrough=yes src-address=192.168.2.90
Ну и потом создаем правила queue tree:
[admin@router] > queue tree export
# nov/17/2010 10:24:46 by RouterOS 4.12
# software id = ****-****
#
/queue tree
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=2M name=in-wan packet-mark=«in-torrent-packet,in-no_torrent-packet,Down chingiz» parent=global-out priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=1388k max-limit=2M name=in-not-torrent packet-mark=in-no_torrent-packet parent=in-wan priority=4 queue=pcq
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=1950k name=in-torrent packet-mark=in-torrent-packet parent=in-wan priority=8 queue=pcq
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=800k name=out-wan packet-mark=«Up chingiz» parent=global-out priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=512k max-limit=512k name=in-chingiz packet-mark=«Down chingiz» parent=in-wan priority=2 queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=256k max-limit=256k name=out-chingiz packet-mark=«Up chingiz» parent=out-wan priority=8 queue=default
0 комментариев