Шукати в цьому блозі

четвер, 4 червня 2009 р.

Задействуем функционал QoS (ToS) (решение для Linux)

Собственно, в связи с тем, что сеть Датасвит поддерживает функционал QoS:
Цитата:
Сообщение от Fire Посмотреть сообщение
DSCP to 802.1p
IP TOS Precedence to Priority Queue Mapping
802.1P Priority to Priority Queue Mapping
TOS/Differentiated Service Enable
Flow Control
Port Priority
Попытаться реализовать "под себя" этот функционал можно переопределив значения поля DSCP, через iptables в таблице mangle:
Код:
*mangle
:PREROUTING ACCEPT [178941:94642599]
:INPUT ACCEPT [121227:85510027]
:FORWARD ACCEPT [18238:2053107]
:OUTPUT ACCEPT [126752:85537218]
:POSTROUTING ACCEPT [133655:86846914]
[0:0] -A INPUT -j DSCP --set-dscp 0x0a
[0:0] -A INPUT -p gre -j DSCP --set-dscp 0x2e
[0:0] -A INPUT -p icmp -m icmp --icmp-type any -j DSCP --set-dscp 0x1a
[0:0] -A INPUT -p tcp -m tcp --dport 80 -j DSCP --set-dscp 0x22
[0:0] -A INPUT -p tcp -m tcp --dport 22 -j DSCP --set-dscp 0x24
[0:0] -A FORWARD -j DSCP --set-dscp 0x0a
[0:0] -A FORWARD -j DSCP --set-dscp 0x0a
[0:0] -A FORWARD -p gre -j DSCP --set-dscp 0x2e
[0:0] -A FORWARD -p gre -j DSCP --set-dscp 0x2e
[0:0] -A FORWARD -p icmp -m icmp --icmp-type any -j DSCP --set-dscp 0x1a
[0:0] -A FORWARD -p icmp -m icmp --icmp-type any -j DSCP --set-dscp 0x1a
[0:0] -A FORWARD -p tcp -m tcp --dport 80 -j DSCP --set-dscp 0x22
[0:0] -A FORWARD -p tcp -m tcp --sport 80 -j DSCP --set-dscp 0x22
[0:0] -A FORWARD -p tcp -m tcp --dport 8085 -j DSCP --set-dscp 0x2e
[0:0] -A FORWARD -p tcp -m tcp --sport 8085 -j DSCP --set-dscp 0x2e
[0:0] -A FORWARD -p tcp -m tcp --dport 22 -j DSCP --set-dscp 0x24
[0:0] -A FORWARD -p tcp -m tcp --sport 22 -j DSCP --set-dscp 0x24
[0:0] -A OUTPUT -j DSCP --set-dscp 0x0a
[0:0] -A OUTPUT -p gre -j DSCP --set-dscp 0x2e
[0:0] -A OUTPUT -p icmp -m icmp --icmp-type any -j DSCP --set-dscp 0x1a
[0:0] -A OUTPUT -p tcp -m tcp --sport 80 -j DSCP --set-dscp 0x22
[0:0] -A OUTPUT -p tcp -m tcp --sport 22 -j DSCP --set-dscp 0x24
[0:0] -A OUTPUT -p udp -m udp --sport 4569 -j DSCP --set-dscp 0x2e
[0:0] -A OUTPUT -p udp -m udp --sport 10000:20000 -j DSCP --set-dscp 0x2e
[0:0] -A OUTPUT -p udp -m udp --sport 5060 -j DSCP --set-dscp 0x18
Если у Вас всего один компьютер, то определять цепочку FORWARD не нужно.
Ну и, естественно, что значения поля dscp и условия для его установки могут отличаться от предложенных выше. На вкус и цвет, как говориться... ;) Только помните, что если весь Ваш поток "закинуть" в EF, то он перестанет быть "гарантированным", надеюсь понимаете почему? ;)
Отдельно хочется отметить, что инструкция -j DSCP --set-dscp не является терминирующей, как DROP, ACCEPT или REJECT, поэтому наиболее общие условия для установки DSCP необходимо описывать раньше, чем частные решения.

PS: Ну и опять таки - это не панацея от всех бед, а лишь один из кирпичиков в Вашем тетрисе :)

Немає коментарів: