Author: 891rpm

  • Управление приоритетами для трафика различных типов

    Если канал практически полностью забит отправляемыми/получаемыми данными, то работа через telnet или ssh становится практически невозможной. Как было бы здорово, если бы интерактивный трафик не блокировался другими пакетами. Linux поможет вам в этом!

    Как и прежде, необходимо настроить обслуживание трафика на обоих концах канала. Наилучший вариант — когда с обоих концов установлена операционная система Linux, однако UNIX тоже может выполнять управление приоритетами трафика.

    Стандартный планировщик pfifo_fast имеет три различных \”полосы\”. В первую очередь обслуживается полоса 0, а затем полосы 1 и 2. Поэтому, необходимо весь интерактивный трафик отправить в полосу 0!

    Отталкиваясь от \”Ipchais HOWTO\” (уже довольно устаревшего):

    В IP-заголовке имеется 4 редко используемых бита — TOS (Type of Service — Тип Обслуживания). Они задают способ обслуживания пакета: \”Minimum Delay\” (минимальная задержка), \”Maximum Throughput\” (максимальная пропускная способность), \”Maximum Reliability\” (максимальная надежность) и \”Minimum Cost\” (минимальная стоимость канала). Причем одновременно может быть установлен только один из этих битов. Роб ван Ньюкерк (Rob van Nieuwkerk), автор кода ipchains TOS-mangling, дает следующее пояснение:

    Наиболее важным для меня, является флаг \”Minimum Delay\” (минимальная задержка). Я включаю его в пакетах интерактивного трафика на моем роутере, работающем под управлением Linux. Я подключен к сети через модем 33.6. Linux \”раскидывает\” пакеты по 3-м очередям. Таким образом я получаю вполне приемлемую скорость обслуживания интерактивного трафика при большой загрузке канала.

    Как правило, флаг \”Minimum Delay\” устанавливается в пакетах для telnet и ftp-control, а в пакетах ftp-data — \”Maximum Throughput\”. Делается это следующим образом:

    # iptables -A PREROUTING -t mangle -p tcp --sport telnet \\
    -j TOS --set-tos Minimize-Delay
    # iptables -A PREROUTING -t mangle -p tcp --sport ftp \\
    -j TOS --set-tos Minimize-Delay
    # iptables -A PREROUTING -t mangle -p tcp --sport ftp-data \\
    -j TOS --set-tos Maximize-Throughput

    Эти правила прописываются на удаленном хосте и воздействуют на входящие, по отношению к вашему компьютеру, пакеты. Для пакетов, отправляемых в обратном направлении, эти флаги (вроде бы) устанавливаются автоматически. Если это не так, можете на своей системе прописать следующие правила:

    # iptables -A OUTPUT -t mangle -p tcp --dport telnet \\
    -j TOS --set-tos Minimize-Delay
    # iptables -A OUTPUT -t mangle -p tcp --dport ftp \\
    -j TOS --set-tos Minimize-Delay
    # iptables -A OUTPUT -t mangle -p tcp --dport ftp-data \\
    -j TOS --set-tos Maximize-Throughput