LINUX.ORG.RU
ФорумAdmin

DSCP на iptables

 dscp, , , ,


0

1

Добрый день!

Хочется покрасить voip трафик, на шлюзе debian

SIP dscp cs4 RTP dscp es

Как я понимаю,маркировать нужно в таблице mangle в preprouting, поскольку она одна из первых до nat и filter, которая обрабатывается.

Допустим сделал:

iptables -t mangle -A PREROUTING -p udp --dport «10000:20000» -j DSCP --set-dscp-class ef iptables -t mangle -A PREROUTING -p udp --dport «40000:40049» -j DSCP --set-dscp-class ef iptables -t mangle -A PREROUTING -p udp --dport «5060» -j DSCP --set-dscp-class cs4

дальше хочу настроить tc чтобы он резервировал следующий полосы:

- под voip от 5 до 10мб\с - под http от 5 до 20мб\с - прочий трафик

Допустим делаю:

tc qdisc add dev eth0 root handle 1: htb default 30 tc class add dev eth0 parent 1: classid 1:1 htb rate 40000kbit ceil 50000kbit tc class add dev eth0 parent 1:1 classid 1:10 htb rate 5mbit ceil 10mbit prio 0 tc class add dev eth0 parent 1:1 classid 1:20 htb rate 5mbit ceil 10mbit prio 2 tc class add dev eth0 parent 1:1 classid 1:30 htb rate 5mbit ceil 20mbit prio 3

tc qdisc add dev eth0 parent 1:10 handle 10: pfifo tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10 tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10

Как мне фильтровать с помощью u32 трафик по dscp которым я крашу в iptables?


Обычно если маркировка и шейпинг на одной машине, то используют маркер iptables (-j MARK) и по нему делают фильтр. А так, все значения DSCP хранятся в одном байте заголовке пакета, во и пишут:

protocol ip u32 match ip tos ЗНАЧЕНИЕ МАСКА

или вобще u8 и указывать смещение байта от начала пакета.

mky ★★★★★
()
Ответ на: комментарий от r1sh

Если траффик не планируется шейпить на других устройствах, то MARK правильнее и понятнее. У маркера больший диапазон значений и их можно выбирать произвольно. В том плане, что в iptables вы пишете в ″-j MARK любое_число″ и эти самые числа фигурируют в ″tc filter″. При этом числа (маркеры) вы можете выбрать произвольно, как вам будет проще и понятнее.

В случае dscp в фильтрах будут фигурировать численные значения байта TOS, они не будут представлены в буквенном виде (af11, ef и т.д.) и не в диапазоне 0-63, а 0-255 — весь байт. Это сложнее для восприятия, легче запутаться.

Шейпинг на dscp имеет смысл, если есть другие устройства тоже шейпящие трафик или корпоративная политика. Ну, или если маркер iptables используется для маршрутизации.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.