tc

title: tc(8)

text:
# tc(8)

## ИМЯ
tc - показать / изменить параметры управления трафиком

## СИНТАКСИС
tc qdisc [ add | change | replace | link ] dev УСТРОЙСТВО [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ параметры qdisc ]

tc class [ add | change | replace ] dev УСТРОЙСТВО parent qdisc-id [ classid class-id ] qdisc [ параметры qdisc ]

tc filter [ add | change | replace ] dev УСТРОЙСТВО [ parent qdisc-id | root ] protocol protocol prio priority filtertype [ параметры filtertype ] flowid flow-id

tc [-s | -d ] qdisc show [ dev УСТРОЙСТВО ]

tc [-s | -d ] class show dev УСТРОЙСТВО

tc filter show dev УСТРОЙСТВО

## ОПИСАНИЕ
Tc используется для настройки системы контроля трафика (Traffic Control) ядра Linux. Система контроля трафика состоит из:

ОГРАНИЧЕНИЕ ИСХОДЯЩЕГО ТРАФИКА (SHAPING)

Когда трафик сформирован, его полоса пропускания начинает контролироваться. Ограничение может дать больше, чем уменьшение полосы пропускания - оно также используется для сглаживания пиков для более прогнозируемого поведения сети.

ПЛАНИРОВАНИЕ (SCHEDULING)

Планирование передачи пакетов позволяет увеличить интерактивность исходящего трафика при гарантировании полосы пропускания для передачи данных большого объема. Такое упорядочение также называется приоритезацией и применяется для исходящего трафика.

ОГРАНИЧЕНИЕ ВХОДЯЩЕГО ТРАФИКА (POLICING)

механизм, с помощью которого можно ограничить количество пакетов или байт в потоке входящего трафика, соответствующих определенной классификации.

ОТБРАСЫВАНИЕ (DROPPING)

Трафик, превышающий установленную полосу пропускания, может быть отброшен как для входящего, так и исходящего трафика.

Обработка трафика контролируется тремя типами объектов: очередями (qdiscs), классами и фильтрами.

## ОЧЕРЕДИ (QDISCS)
qdisc - сокращение от 'queueing discipline' (дисциплина очередности) и является базовым для понимания контроля трафика. Всякий раз, когда ядру требуется отправить пакет на интерфейс, этот пакет ставится в очередь к qdisc, настроенный для этого интерфейса. Сразу же после этого ядро пытается получить сколько можно пакетов из qdisc для передачи их драйверу сетевого адаптера.

Простейший QDISC является очередью 'pfifo' без обработки, лишь реализующей принцип 'First In, First Out' (первый вошел - первый вышел). Однако он сохраняет трафик в очереди, если сетевой интерфейс не может обработать данные сразу же.

## КЛАССЫ (CLASSES)
Некоторые очереди (qdiscs) могут содержать классы, содержащие дополнительные очереди: трафик может быть поставлен в очередь внутренних очередей в рамках классов. Когда ядро пытается взять пакет из такой очереди с классами , он может прийти из любого класса. Очередь, например, может установить приоритет трафика, считывая пакеты из одних очередей раньше, чем из других.

## ФИЛЬТРЫ (FILTERS)
A Фильтр используется в очереди с классами для определения, в какой класс поставить пакет. Всякий раз, когда трафик приходит в класс с подклассами, он нуждается в классификации. Для этого используются различные методы, один из которых - фильтрация. Вызываются все фильтры, связанные с этим классом, пока один из них не вернёт решение. Если решение не принято, могут быть использованы другие критерии. Это зависит от очереди.

Очень важно понимать, что фильтры в очередях не возвращают решений.

## БЕЗКЛАССОВЫЕ ОЧЕРЕДИ (CLASSLESS QDISCS)
Бесклассовые очереди:

[p|b]fifo

Простейшие очереди без обработки, лишь реализующие принцип 'First In, First Out' (первый вошел - первый вышел). Ограничены в пакетах или байтах.

pfifo_fast

Стандартная очередь ядра с 'расширенным роутером'. Состоит из очереди с тремя потоками, учитывающей флаги типа услуги (Type of Service) и приоритет пакета.

red

Random Early Detection (случайное раннее обнаружение) симулирует физический затор, отбрасывая пакеты случайным образом при близком достижении заданной полосы пропускания. Хорошо подходит для приложений, требующих очень широкую полосу пропускания.

sfq

Stochastic Fairness Queueing (очередь равномерного случайного распределения пакетов) реорганизует трафик в очереди таким образом, что каждый 'сеанс' ('session', виртуальная подочередь) получает право отправить пакет, а маркер переходит на следующий сеанс.

tbf

Token Bucket Filter (фильтр буфера токенов) удерживает скорость передачи пакетов на примерно постоянном уровне (меньшем, чем реальная скорость интерфейса). Хорошо масштабируется для широких каналов.

## НАСТРОЙКА БЕЗКЛАССОВЫХ ОЧЕРЕДЕЙ (CLASSLESS QDISCS)
Безклассовые очереди могут назначаться только на входе (root) устройства. Полный синтаксис:

tc qdisc add dev УСТРОЙСТВО root QDISC ПАРАМЕТРЫ_QDISC

Для удаления очереди выполните

tc qdisc del dev УСТРОЙСТВО root

Очередь pfifo_fast назначается автоматически при отсутствии настроенной очереди.

## ОЧЕРЕДИ С КЛАССАМИ (CLASSFUL QDISCS)
Очереди с классами:

CBQ

Очередь, базирующая на классах (Class Based Queueing) реализует мощную иерархию классов. Поддерживает ограничения и приоритеты. Разделение осуществляется по времени простоя канала, вычисляемого на основании среднего размера пакета и полосы пропускания.

HTB

Очередь HTB (Hierarchy Token Bucket - иерархический буфер токенов) реализует мощную иерархию классов с упором на согласование с существующей практикой. HTB обеспечивает гарантированную полосу пропускания для классов, также позволяет устанавливать верхние пределы межклассового разделения очереди. Содержит объекты ограничения, базирующиеся на TBF, и может устанавливать приоритеты для классов.

PRIO

Очередь PRIO может разделять трафик между тремя полосами, которые являются очередями любого типа. При извлечении пакета из очереди вначале исследуется подочередь с большим приоритетом, если в последней нет пакетов для обработки, то выбирается очередь с более низким приоритетом и.т.д.. Для установки приоритета используются биты типа услуги (Type Of Service).

## ТЕОРИЯ
Классы формируют дерево, где каждый класс имеет своего родителя и может содержать несколько дочерних классов. Некоторые типы очередей позволяют добавлять классы во время выполнения (CBQ, HTB), в то время как другие (PRIO) создаются с фиксированным набором дочерних классов).

Очереди с динамическим добавлением классов могут иметь от нуля до нескольких подклассов.

Кроме того, каждый класс содержит очередь класса (leaf qdisc) (по умолчанию это очередь pfifo ) хотя может быть назначена очередь другого типа. Эта очередь может содержать классы, но у каждого класса может быть только одна очередь.

Когда пакет попадает в очередь с классами, он классифицируется для помещения в один из классов. Доступны три критерия классификации, но не все очереди используют все три критерия::

фильтр управления трафиком (tc filter)

Если классу назначены фильтры управления трафиком, они рассматриваются первыми. Фильтры могут назначаться на любое поле в заголовке пакета также как и в цепочках брандмауэра ipchains или iptables. См. tc-filters(8).

тип услуги (Type of Service)

Некоторые очереди имеют встроенные правила классификации пакетов на основе поля TOS.

skb->priority

Программы в пользовательском пространстве могут указывать class-id в поле 'skb->priority' при использовании флага SO_PRIORITY.

Каждый объект дерева может иметь свои фильтры, фильтры верхнего уровня могут классифицировать для классов нижнего уровня.

Если классификация не произошла, пакет ставится в очередь этого класса. Обратитесь к руководствам MAN соответствующего класса.

## ИМЕНОВАНИЕ
Все очереди, классы и фильтры имеют присвоенные или автоматически назначенные идентификаторы.

Идентификатор состоит из основного (major) и дополнительного (minor) номеров, разделенных двоеточием.

ОЧЕРЕДИ

Очереди, которая потенциально может иметь дочерние объекты, назначается основной номер, называемый 'handle' ('обработчик') и использует дополнительный номер для нумерации классов, например: '10:'.

КЛАССЫ

Идентификатор класса наследует основной номер родительской очереди и имеет дополнительный номер, обозначающий класс ('classid'). Идентификатор не имеет отношения к родительским классам, только к родительской очереди.

ФИЛЬТРЫ

Фильтры имеют идентификатор, состоящий из трех частей, который необходим для поиска в иерархии фильтров, см. tc-filters(8).

## ЕДИНИЦЫ ИЗМЕРЕНИЯ
Все параметры принимают число с плавающей точкой за которой может следовать единица измерения.

Полоса пропускания (скорость) может быть указана в:

kbps

килобит в секунду

mbps

мегабит в секунду

kbit

килобит в секунду

mbit

мегабит в секунду

bps или число без единицы измерения

байт в секунду

Объем может быть указан в:

kb или k

килобайтах

mb или m

мегабайтах

mbit

мегабитах

kbit

килобитах

b или число без единицы измерения

байтах.

Период времени задается в:

s, sec или secs

секундах

ms, msec или msecs

миллисекундах

us, usec, usecs или число без единицы измерения

микросекундах.

## КОМАНДЫ TC
Следующие команды доступны для очередей, классов и фильтров:

add (добавить)

Добавить очередь, класс или фильтр в объект. Обязательно должен быть указан параметр родителя parent , в виде идентификатора или 'root' для обозначения самого верхнего уровня устройства. При создании очереди или фильтра он может быть именован с помощью параметра handle . Класс именуется с помощью параметра classid .

remove (удалить)

Очередь удаляется по 'handle' (допустимо указание имени 'root'). Все подклассы и их очереди, а также фильтры автоматически удаляются.

change (изменить)

Некоторые объекты могут быть изменены по месту. Эта команда использует такой же синтаксис, как и 'add', за исключением не изменяемого параметра 'handle', чтобы не допустить перемещение объекта в дереве.

replace (заменить)

Удаляет и добавляет новый объект по идентификатору. Если объект не существует, он будет создан.

link (связать)

Доступно только для очередей. Заменяет существующий объект.

## ИСТОРИЯ
tc написана Алексеем Кузнецовым и добавлена в Linux 2.2.

## СМ. ТАКЖЕ
tc-cbq(8), tc-htb(8), tc-sfq(8), tc-red(8), tc-tbf(8), tc-pfifo(8), tc-bfifo(8), tc-pfifo_fast(8), tc-filters(8)

## АВТОРЫ
man-страница сопровождается Бертом Хубертом (Bert Hubert) <ahu@ds9a.nl>

## ПЕРЕВОД
Андрей Черепанов <cas@altlinux.ru> 2007


tc-bfifo

package: man-pages-ru-extra

title: tc-bfifo(8)

summary: очередь FIFO с ограничением по пакетам

text:
# tc-bfifo(8)

## ИМЯ
pfifo - очередь FIFO с ограничением по пакетам

bfifo - очередь FIFO с ограничением по байтам

## СИНТАКСИС
tc qdisc ... add pfifo [ предел пакетов ]

tc qdisc ... add bfifo [ предел байтов ]

## ОПИСАНИЕ
Очереди pfifo и bfifo являются простейшими очередями FIFO. pfifo ограничивает размер очереди по количеству пакетов. bfifo ограничивает по количеству байт.

Как и все нестандартные очереди, они поддерживают статистику, поэтому предпочтительнее использовать по умолчанию pfifo или bfifo.

## АЛГОРИТМ
Пакет помещается в конец очереди. Когда требуется отправить пакет в сеть, выбирается первый пакет с начала очереди.

Если размер очереди превышает определенный предел, пакетам запрещено вставать в него. Это называется

## ПАРАМЕТРЫ
limit

Максимальный размер очереди. Указывается в байтах для bfifo, в количестве пакетов для pfifo. По умолчанию для pfifo используется значение параметра интерфейса txqueuelen, указанного через ifconfig(8) или ip(8). Для bfifo по умолчанию значение txqueuelen умножается на MTU интерфейса.

## ВЫВОД
Вывод tc -s qdisc ls содержит предел (в пакетах или байтах) и количество отправленных пакетов или байтов. Неотправленные и отброшенные пакеты показываются в круглых скобках и не входят в количество отправленных.

В этом примере длина очереди 100 пакетов, 45894 байта отправлено в 681 пакете. Нет отброшенных пакетов, так как очередь pfifo не замедляет отправку пакетов, нет превышения установленного предела:

```
# tc -s qdisc ls dev eth0
qdisc pfifo 8001: dev eth0 limit 100p

 Sent 45894 bytes 681 pkts (dropped 0, overlimits 0)
```

Если бы в очереди были неотправленные пакеты, из количество также показывается.

## СМ. ТАКЖЕ
tc(8)

## АВТОРЫ
Алексей Кузнецов <kuznet@ms2.inr.ac.ru>

man-страница сопровождается Бертом Хубертом (Bert Hubert) <ahu@ds9a.nl>

## ПЕРЕВОД
Андрей Черепанов <cas@altlinux.ru> 2007


tc-cbq

title: tc-cbq(8)

summary: очередь, базирующая на классах

text:
# tc-cbq(8)

## ИМЯ
CBQ - очередь, базирующая на классах

## СИНТАКСИС
tc qdisc ... dev УСТРОЙСТВО ( parent classid | root) [ handle major: ] cbq [ allot размер ] avpkt размер bandwidth скорость [ cell размер ] [ ewma степень ] [ mpu размер ]

tc class ... dev УСТРОЙСТВО parent major:[minor] [ classid major:minor ] cbq allot размер [ bandwidth скорость ] [ rate скорость ] prio приоритет [ weight вес ] [ minburst количество_пакетов ] [ maxburst количество_пакетов ] [ ewma степень ] [ cell размер ] avpkt размер [ mpu размер ] [ bounded isolated ] [ split handle & defmap defmap ] [ estimator интервал константа ]

## ОПИСАНИЕ
Очередь, базирующая на классах (Class Based Queueing) реализует мощную иерархию классов. Поддерживает ограничения и приоритеты. Разделение осуществляется по времени простоя канала, вычисляемого на основании временных характеристик освобождения очереди и полосы пропускания.

## АЛГОРИТМ
При ограничении канала 10 мбит/с до 1 мбит/с, полоса простаивает 90% времени. Если это не так, необходимо распределить трафик так, чтобы полоса простаивала 90% времени.

Во время операций эффективное время простоя вычисляется по EWMA (exponential weighted moving average), которое основано на предположении, что последние пакеты экспоненциально более важные, чем ранние. Средняя загрузка Unix рассчитывается таким же образом.

Вычисленное время простоя вычитается из значения EWMA и получается значение, называемое 'avgidle'. Идеально загруженный канал имеет значение avgidle равным нулю: пакеты прибывают точно с заданным интервалом.

Перегруженный канал имеет отрицательное значение avgidle и, если это отрицательное значение слишком большое по модулю, CBQ забивается.

И наоборот, простаивающий канал имеет большое значение avgidle, которое позволяет обеспечить канал бесконечного объема после нескольких часов отсутствия пакетов. Для предотвращения таких перегибов, значение avgidle ограничивается значением maxidle.

При переполнении канала, в теории, CBQ тоже может забиться на период между отправлением пакетов. Однако в связи с ограничениями принятие решения по таймеру (см. параметр minburst ниже) это невозможно.

## КЛАССИФИКАЦИЯ
В рамках одной очереди CBQ может существовать множество классов. Каждый из этих классов имеет собственную очередь, по умолчанию tc-pfifo(8).

При постановке пакета в очередь, он попадает в очередь на верхнем уровне и, с использованием различных методов определяется, какой класс должен получить этот пакет.

Если не указаны необязательные параметры настройки, процесс достаточно прост. На каждой ветви проверяются действия и управление переходит на класс, на который ссылаются действия. Если класс не имеет дочерних элементов, пакет ставится в очередь этого класса. Если это не конечная ветвь, для нее производятся все указанные операции.

Следующие варианты проверяются по порядку для каждой ветви до тех пор, пока управление не будет передано другой ветви или процесс не будет завершен.

(i)

Проверка условий фильтров, привязанных к классу. Если это последняя ветвь, закончить работу. В противном случае повторить операцию.

(ii)

Найти в defmap значение приоритета, назначенного пакету, который зависит от битов TOS. Проверить, есть ли дочерние элементы, в противном случае повторить операцию.

(iii)

Найти в defmap инструкции для приоритета 'best effort' (лучшее достижение). Проверить, есть ли дочерние элементы, в противном случае повторить операцию.

(iv)

Если ни один из вариантов не вернул инструкции, поставить в текущую очередь.

Этот алгоритм обеспечивает гарантированное распределение пакета даже если конфигурация была произведена с ошибкой.

Дополнительные сведения указаны в tc-cbq-details(8).

## АЛГОРИТМ РАСПРЕДЕЛЕНИЯ
Когда необходимо забрать пакет из очереди для отправки на сетевой интерфейс, CBQ определяет, из очереди какого класса это необходимо сделать. Это осуществляется посредством процесса Weighted Round Robin, когда каждый класс получает шанс отправить пакет. Процесс WRR начинает опрос сначала с классов с наивысшим приоритетом (с минимальным числом, но более высоким семантически) и, в случае если очередь этих классов пуста, переходит к менее приоритетным классам.

В свою очередь, классы опрашивают свои дочерние классы по тому же принципу. Класс может быть исключен из опроса, если объявлен как 'bounded' (связанный). Класс также может сообщить о своей неготовности, если отмечен как 'isolated' (изолированный).

## ОЧЕРЕДЬ
Верхний элемент дерева классов очереди CBQ имеет следующие параметры:

parent major:minor | root

Обязательный параметр, определяющий место экземпляра CBQ: как root (корневой) класс сетевого интерфейса или дочерний класс указанного по идентификатору класса.

handle major:

Как и другие типы очередей, CBQ поддерживает идентификатор 'handle' (обработчик), состоящий только из основного номера и двоеточия после него. Опционально, но очень удобно, если классы имеют идентификатор с номером этой очереди.

allot размер

Доля при распределении ссылок для определения времени передачи. Распределение времени на очередь отличается от распределения времени на класс (см. ниже). Опциональный параметр, связан с avpkt.

avpkt размер

Средний размер пакета, используемый для вычисления maxidle и определяющий безопасный размер доли. Обязательный параметр.

bandwidth скорость

Для определения времени простоя, CBQ должна знать скорость физического интерфейса или родительской очереди. Это очень важный параметр. Объяснения см. ниже. Обязательный параметр.

cell

Размер ячейки определяет шаг времени передачи пакетов.

mpu

Пустой пакет также требует некоторое время на передачу. Это значение задает минимальное время отправки пакета. По умолчанию - 0.

ewma степень

Когда вычисляется среднее время простоя, используется EWMA, которое сглаживает полученное значение. Степень задает силу сглаживания. Малые значения означают большую чувствительность. Значение параметра должно быть от 0 до 31. По умолчанию - 5.

Очередь CBQ не разделяет трафик по каналам, она лишь задает параметры об интерфейсе и канале. Реально трафик разделяется в классах.

## КЛАССЫ
Следующие параметры используются для классов:

parent major:minor

Место класса в иерархии. Если класс верхнего уровня, дополнительный номер может быть опущен. Обязательный параметр.

classid major:minor

Как и очереди, классы могут быть именованы. Основной номер должен совпадать с основным номером родительской очереди. Если класс имеет дочерние классы, нужно указать дополнительный номер.

weight вес

При отправке пакетов на интерфейс учитывается вес. Классы с более высоким весом могут передать больше трафика за раз. Вес классов нормализуется и в дальнейшем учитываются пропорции, а не числа. По умолчанию - 1.

allot размер

Задает сколько байтов взять из очереди за раз. Этот параметр зависит от параметра weight и ограничивается как минимум 2/3 avpkt. Обязательный параметр.

prio приоритет

Классы с меньшим значением приоритета быстрее ставятся на отправку пакетов. Обязательный параметр.

avpkt

См. раздел ОЧЕРЕДЬ.

rate скорость

Максимальная скорость для этого класса и всех его дочерних классов. Обязательный параметр.

bandwidth скорость

Параметр для класса отличается от аналогичного параметра для корневой очереди CBQ. Используется только для определения значений параметров maxidle и offtime, которые рассчитываются для maxburst или minburst. Обязательный параметр, если указан параметр maxburst или minburst.

maxburst

Количество пакетов для вычисления значения параметра maxidle. При таком значении avgidle равно maxidle, то есть количество средних пакетов, которое будет передано до тех пор как avgidle станет равно 0. Чем выше это значение, тем чаще будут отправки. Вы не можете установить maxidle напрямую, только через этот параметр.

minburst

Как упомянуто выше, CBQ нужно определить границу переполнения. Идеальным решением будет сделать это для вычисленного времени простоя и пропустить 1 пакет. Однако ядра Unix имеют жестко заданные события планировщика с периодом короче 10 мс, поэтому лучше установить границу на более продолжительный период и затем пропустить пакеты. Время ожидания называется 'offtime'. Более высокие значения minburst приводят к более аккуратному разделению на длительном периоде, но к более высоким скачкам в масштабах миллисекунд. Необязательный параметр.

minidle

Если avgidle меньше 0, очередь перегружена и необходимо подождать, пока значение avgidle будет достаточно большим для отправки хотя бы одного пакета. Для предотвращения внезапных скачков во время продленного периода, avgidle сбрасывается до minidle, если оно слишком маленькое. Minidle указывает отрицательное количество микросекунд, так что заданное значение 10 означает ограничение avgidle до -10 микросекунд. Необязательный параметр.

bounded

Указывает что класс не получает очереди на отправку от других классов того же уровня

isolated

Указывает что класс не передает очередь на отправку другим классам того же уровня

split major:minor & defmap bitmap[/bitmap]

Если фильтры, привязанные к классу не вынесли решение, может быть проведена классификация по приоритету пакетов. Доступно 16 приоритетов (от 0 до 15). defmap определяет какой класс получает пакеты каких приоритетов в виде битовой таблицы. Бит LSB соответствует приоритету 0. Параметр split какому классу передается трафик.

Например, 'tc class add ... classid 10:1 cbq .. split 10:0 defmap c0' задает для класса 10:0 передачу пакетов с приоритетами 6 и 7 классу 10:1.

Дополнительная конфигурация be: 'tc class add ... classid 10:2 cbq ... split 10:0 defmap 3f' отправляет все пакеты с приоритетами 0, 1, 2, 3, 4 и 5 классу 10:1.

estimator интервал константа

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

## ОБНАРУЖЕННЫЕ ОШИБКИ
Реальная полоса канала может быть неизвестна, к примеру, для соединений PPoE или PPTP, которые посылают пакеты через канал вместо физического устройства. На настроенном канале CBQ будет достаточно устойчиво работать, возможно, за счет грубого разделения.

По умолчанию ядра предоставляют ограниченное время на принятие решений. Это сказывается на точном разделении в долгосрочной перспективе, но приводит к грубому разделению в краткосрочной (в рамках секунды) перспективе.

См. tc-cbq-details(8) для советов как исправить это.

## ЛИТЕРАТУРА
o

Sally Floyd and Van Jacobson, "Link-sharing and Resource Management Models for Packet Networks", IEEE/ACM Transactions on Networking, Vol.3, No.4, 1995

o

Sally Floyd, "Notes on CBQ and Guaranteed Service", 1995

o

Sally Floyd, "Notes on Class-Based Queueing: Setting Parameters", 1996

o

Sally Floyd and Michael Speer, "Experimental Results for Class-Based Queueing", 1998, не опубликовано.

## СМ. ТАКЖЕ
tc(8)

## АВТОРЫ
Алексей Кузнецов <kuznet@ms2.inr.ac.ru>. man-страница сопровождается Бертом Хубертом (Bert Hubert) <ahu@ds9a.nl>

## ПЕРЕВОД
Андрей Черепанов <cas@altlinux.ru> 2007


tc-cbq-details

title: tc-cbq-details(8)

summary: очередь, базирующая на классах

text:
# tc-cbq-details(8)

## ИМЯ
CBQ - очередь, базирующая на классах

## СИНТАКСИС
tc qdisc ... dev УСТРОЙСТВО ( parent classid | root) [ handle major: ] cbq avpkt размер bandwidth скорость [ cell размер ] [ ewma степень ] [ mpu размер ]

tc class ... dev УСТРОЙСТВО parent major:[minor] [ classid major:minor ] cbq allot размер [ bandwidth скорость ] [ rate скорость ] prio приоритет [ weight вес ] [ minburst количество_пакетов ] [ maxburst количество_пакетов ] [ ewma степень ] [ cell размер ] avpkt размер [ mpu размер ] [ bounded isolated ] [ split handle & defmap defmap ] [ estimator интервал константа ]

## ОПИСАНИЕ
Очередь, базирующая на классах (Class Based Queueing) реализует мощную иерархию классов. Поддерживает ограничения и приоритеты. Разделение осуществляется по времени простоя канала, вычисляемого на основании временных характеристик освобождения очереди и полосы пропускания.

## АЛГОРИТМ РАЗДЕЛЕНИЯ
Разделение осуществляется с использованием расчета времени простоя канала и при отклонении от заданных значений выполняются определенные действия.

При ограничении канала 10 мбит/с до 1 мбит/с, полоса простаивает 90% времени. Если это не так, необходимо распределить трафик так, чтобы полоса простаивала 90% времени.

С точки зрения ядра это сложно вычислить, поэтому CBQ получает время простоя из количества микросекунд, которые проходят между запросами драйвера устройства пакетов для передачи. Основываясь на знании о размерах пакетов можно приблизительно оценить насколько загружен или пуст канал.

Это довольно осторожные оценки и они не всегда приводят к правильным результатам. Например, какова действительная скорость канала интерфейса, если невозможно обеспечить скорость передачи данных 100 мбит/c из-за неверно написанного драйвера? Сетевые карты PCMCIA никогда не позволяют добиться скорости 100 мбит/c из-за архитектурных ограничений шины. Как в этом случае вычислить время простоя?

Физическая пропускная способность канала не может быть правильно определена для псевдо-сетевых интерфейсов типа PPP через Ethernet или PPTP через TCP/IP. Эффективная пропускная способность в этом случае определяется приблизительно по эффективности каналов (pipes) пользовательского пространства, которые чётко не определены.

Во время операций эффективное время простоя вычисляется по EWMA (exponential weighted moving average), которое основано на предположении, что последние пакеты экспоненциально более важные, чем ранние. Средняя загрузка Unix рассчитывается таким же образом.

Вычисленное время простоя вычитается из значения EWMA и получается значение, называемое 'avgidle'. Идеально загруженный канал имеет значение avgidle равным нулю: пакеты прибывают точно с заданным интервалом.

Перегруженный канал имеет отрицательное значение avgidle и, если это отрицательное значение слишком большое по модулю, CBQ забивается.

И наоборот, простаивающий канал имеет большое значение avgidle, которое позволяет обеспечить канал бесконечного объема после нескольких часов отсутствия пакетов. Для предотвращения таких перегибов, значение avgidle ограничивается значением maxidle.

При переполнении канала, в теории, CBQ тоже может забиться на период между отправлением пакетов. Однако в связи с ограничениями принятие решения по таймеру (см. параметр minburst ниже) это невозможно.

## РАСПРЕДЕЛЕНИЕ
В рамках одной очереди CBQ может существовать множество классов. Каждый из этих классов имеет собственную очередь, по умолчанию tc-pfifo(8).

При постановке пакета в очередь, он попадает в очередь на верхнем уровне и, с использованием различных методов определяется, какой класс должен получить этот пакет. Если такой класс определен, процесс классификации повторяется для всех дочерних классов этого класса, если они есть.

CBQ использует следующие методы для распределения пакета по дочерним классам:

(i)

по skb->priority. Устанавливается из пользовательского пространства опцией SO_PRIORITY в функции setsockopt. skb->priority используется только тогда, когда skb->priority содержит идентификатор существующего класса в виде major:minor, который является дочерним для очереди с этим пакетом.

(ii)

по фильтрам, привязанным к этому классу

(iii)

по карте defmap класса, которая задается параметрами split & defmap . defmap может содержать инструкции для каждого возможного приоритета пакета Linux.

Каждый класс также имеет уровень . Конечные классы, находящиеся в конце иерархии (и не имеющие дочерних классов), находятся на уровне 0.

## АЛГОРИТМ РАСПРЕДЕЛЕНИЯ
Распределение идет по циклу, который заканчивается когда найден конечный класс. На любом этапе цикла может быть вызван обработчик ошибок.

Цикл состоит из следующих этапов:

(i)

Если пакет создан локально и содержит правильный идентификатор класса в поле skb->priority, выбирается этот класс и цикл заканчивается.

(ii)

Проверка условий фильтров, привязанных к классу. Если это последняя ветвь, закончить работу. В противном случае повторить операцию.

(iii)

Если фильтры не вернули класс, но вернули идентификатор класса (classid), попробовать найти класс с таким идентификатором для текущей очереди. Сравнить уровни найденного класса и текущего класса. Если уровень найденного класса меньше и этот класс не является конечным, повторить цикл для этого класса. Если класс конечный, прервать цикл. Если уровень больше, то вызвать обработчик ошибок.

(iv)

Если фильтры не вернули ни класс, ни правильную ссылку на него, определить класс по приоритету. Он ищется в таблице defmap класса. Если по приоритету класс не найден, найти в таблице класс, помеченный как BEST_EFFORT . Если уровень этого класса выше или в таблице не определен класс BEST_EFFORT , вызвать обработчик ошибок.

Обработчик ошибок находится вне цикла и состоит из следующих этапов:

(i)

Найти в таблице defmap класс, на который передавать управление в случае ошибки. Если defmap содержит класс с приоритетом пакета (указывается в поле TOS), выбрать этот класс и закончить.

(ii)

Найти в таблице класс с приоритетом BEST_EFFORT . Если такой класс есть в таблице, выбрать его и закончить.

(iii)

Выбрать класс, на котором произошла ошибка и закончить.

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

## АЛГОРИТМ РАСПРЕДЕЛЕНИЯ ССЫЛОК (LINK SHARING)
Когда необходимо забрать пакет из очереди для отправки на сетевой интерфейс, CBQ определяет, из очереди какого класса это необходимо сделать. Это осуществляется посредством процесса Weighted Round Robin, когда каждый класс получает шанс отправить пакет. Процесс WRR начинает опрос сначала с классов с наивысшим приоритетом (с минимальным числом, но более высоким семантически) и, в случае если очередь этих классов пуста, переходит к менее приоритетным классам.

Каждый класс только освобождает заданное количество данных из очереди на каждом раунде.

Если класс находится близко к переполнению и не отмечен как bounded , он будет пытаться занимать avgidle от соседних классов, которые не помечены как isolated.

Этот процесс повторяется снизу вверх. Если классу невозможно занять достаточно avgidle для отправки пакета, он забивается и не принимает пакеты, пока avgidle не станет положительным числом.

## ОЧЕРЕДЬ
Верхний элемент дерева классов очереди CBQ имеет следующие параметры:

parent major:minor | root

Обязательный параметр, определяющий место экземпляра CBQ: как root (корневой) класс сетевого интерфейса или дочерний класс указанного по идентификатору класса.

handle major:

Как и другие типы очередей, CBQ поддерживает идентификатор 'handle' (обработчик), состоящий только из основного номера и двоеточия после него. Опциональный параметр.

avpkt размер

Средний размер пакета, используемый для вычисления. Как минимум 2/3 от MTU интерфейса. Обязательный параметр.

bandwidth скорость

Для определения времени простоя, CBQ должна знать скорость физического интерфейса или родительской очереди. Это очень важный параметр. Объяснения см. ниже. Обязательный параметр.

cell

Размер ячейки определяет шаг времени передачи пакетов. Значение по умолчанию вполне походит для большинства случаев.

mpu

Пустой пакет также требует некоторое время на передачу. Это значение задает минимальное время отправки пакета. По умолчанию - 0.

ewma степень

Когда вычисляется среднее время простоя, используется EWMA, которое сглаживает полученное значение. Степень задает силу сглаживания. Малые значения означают большую чувствительность. Значение параметра должно быть от 0 до 31. По умолчанию - 5.

Очередь CBQ не разделяет трафик по каналам, она лишь задает параметры об интерфейсе и канале. Реально трафик разделяется в классах.

## КЛАССЫ
Следующие параметры используются для классов:

parent major:minor

Место класса в иерархии. Если класс верхнего уровня, дополнительный номер может быть опущен. Обязательный параметр.

classid major:minor

Как и очереди, классы могут быть именованы. Основной номер должен совпадать с основным номером родительской очереди. Если класс имеет дочерние классы, нужно указать дополнительный номер.

weight вес

При отправке пакетов на интерфейс учитывается вес. Классы с более высоким весом могут передать больше трафика за раз. Вес классов нормализуется и в дальнейшем учитываются пропорции, а не числа. По умолчанию - 1.

allot размер

Задает сколько байтов взять из очереди за раз. Вес вычисляется с учётом нормализованного веса класса, описанного выше.

priority приоритет

Классы с меньшим значением приоритета быстрее ставятся на отправку пакетов. Обязательный параметр.

rate rate

rate скорость Максимальная скорость для этого класса и всех его дочерних классов. Обязательный параметр.

bandwidth скорость

Параметр для класса отличается от аналогичного параметра для корневой очереди CBQ. Используется только для определения значений параметров maxidle и offtime, которые рассчитываются для maxburst или minburst. Обязательный параметр, если указан параметр maxburst или minburst.

maxburst

Количество пакетов для вычисления значения параметра maxidle. При таком значении avgidle равно maxidle, то есть количество средних пакетов, которое будет передано до тех пор как avgidle станет равно 0. Чем выше это значение, тем чаще будут отправки. Вы не можете установить maxidle напрямую, только через этот параметр.

minburst

Как упомянуто выше, CBQ нужно определить границу переполнения. Идеальным решением будет сделать это для вычисленного времени простоя и пропустить 1 пакет. Однако ядра Unix имеют жестко заданные события планировщика с периодом короче 10 мс, поэтому лучше установить границу на более продолжительный период и затем пропустить пакеты. Время ожидания называется 'offtime'. Более высокие значения minburst приводят к более аккуратному разделению на длительном периоде, но к более высоким скачкам в масштабах миллисекунд.

minidle

minidle Если avgidle меньше 0, очередь перегружена и необходимо подождать, пока значение avgidle будет достаточно большим для отправки хотя бы одного пакета. Для предотвращения внезапных скачков во время продленного периода, avgidle сбрасывается до minidle, если оно слишком маленькое. Minidle указывает отрицательное количество микросекунд, так что заданное значение 10 означает ограничение avgidle до -10 микросекунд.

bounded

Указывает что класс не получает очереди на отправку от других классов того же уровня

isolated

Указывает что класс не передает очередь на отправку другим классам того же уровня

split major:minor & defmap bitmap[/bitmap]

Если фильтры, привязанные к классу не вынесли решение, может быть проведена классификация по приоритету пакетов. Доступно 16 приоритетов (от 0 до 15). defmap определяет какой класс получает пакеты каких приоритетов в виде битовой таблицы. Бит LSB соответствует приоритету 0. Параметр split какому классу передается трафик.

Например, 'tc class add ... classid 10:1 cbq .. split 10:0 defmap c0' задает для класса 10:0 передачу пакетов с приоритетами 6 и 7 классу 10:1.

Дополнительная конфигурация be: 'tc class add ... classid 10:2 cbq ... split 10:0 defmap 3f' отправляет все пакеты с приоритетами 0, 1, 2, 3, 4 и 5 классу 10:1.

estimator интервал константа

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

## ЛИТЕРАТУРА
o

Sally Floyd and Van Jacobson, "Link-sharing and Resource Management Models for Packet Networks", IEEE/ACM Transactions on Networking, Vol.3, No.4, 1995

o

Sally Floyd, "Notes on CBQ and Guarantee Service", 1995

o

Sally Floyd, "Notes on Class-Based Queueing: Setting Parameters", 1996

o

Sally Floyd and Michael Speer, "Experimental Results for Class-Based Queueing", 1998, not published.

## СМ. ТАКЖЕ
tc(8)

## АВТОРЫ
Алексей Кузнецов <kuznet@ms2.inr.ac.ru>. man-страница сопровождается Бертом Хубертом (Bert Hubert) <ahu@ds9a.nl>

## ПЕРЕВОД
Андрей Черепанов <cas@altlinux.ru> 2007


tc-htb

title: tc-htb(8)

summary: иерархический буфер токенов

text:
# tc-htb(8)

## ИМЯ
HTB - иерархический буфер токенов

## СИНТАКСИС
tc qdisc ... dev УСТРОЙСТВО ( parent classid | root) [ handle major: ] htb [ default minor-id ]

tc class ... dev УСТРОЙСТВО parent major:[minor] [ classid major:minor ] htb rate скорость [ ceil скорость ] burst размер [ cburst размер ] [ prio приоритет ]

## ОПИСАНИЕ
Очередь HTB является более понятной и интуитивной заменой очереди CBQ в Linux. И CBQ и HTB помогают контролировать полосу пропускания исходящего трафика. Оба позволяют разделить физическую полосу на несколько полос. В обоих случаях вы указываете как распределить трафик по полосам и определить, из какой полосы пакет будет отправлен на физическое устройство.

В отличие от CBQ, HTB распределяет трафик по алгоритму иерархического буфера токенов (Token Bucket Filter), который не зависит от характеристик сетевого интерфейса и канала.

## АЛГОРИТМ РАЗДЕЛЕНИЯ
Алгоритм описан в tc-tbf (8).

## КЛАССИФИКАЦИЯ
В каждой очереди HTB могут быть несколько классов. Каждый из этих классов содержит собственную очередь, по умолчанию tc-pfifo(8).

При помещении пакета в очередь HTB начинает проверку с корневой очереди и использует различные методы для определения класса, который получит данные.

В случает, если не указываются необязательные параметры, процесс достаточно прост. На каждом узле проверяются условия и при совпадении проверка продолжается в классе, удовлетворяющем условиям. Если класс не содержит дочерних элементов, пакет помещается в очередь этого класса. Если класс содержит дочерние элементы, проверка продолжается среди элементов этого класса.

Следующие действия осуществляются на каждом посещённом узле до тех пор, пока не будет достигнут окончательный класс или процесс не будет прерван.

(i)

Проверка фильтров класса. При отправке конечному классу, обработка заканчивается. В противном случае проверка перезапускается.

(ii)

Если инструкции от фильтров не получены, поместить в очередь этого класса.

Этот алгоритм гарантированно помещает пакет в какую-либо очередь, даже если конфигурация содержит ошибки.

## АЛГОРИТМ РАЗДЕЛЕНИЯ ТРАФИКА
Ещё не написано.

## ОЧЕРЕДЬ
Корневая очередь HTB имеет три параметра:

parent major:minor | root

Обязательный параметр определяющий место расположения HTB: в корне интерфейса или в одном из существующих классов.

handle major:

Как и все другие очереди для HTB может быть назначен идентификатор. Он состоит только из основного (major) числа и двоеточия после него. Необязательный параметр, но очень удобный, если вы хотите назначить классы для этой очереди.

default minor-id

Нераспределённый трафик попадает в указанный класс по его дополнительному (minor) номеру.

## КЛАССЫ
Поддерживаются следующие параметры классов:

parent major:minor

Место класса в иерархии. При создании под корневой очередью может быть не указано. Обязательный параметр.

classid major:minor

Как и очереди, классы могут быть поименованы. Основной номер должен совпадать с основным номером вышестоящей очереди. Необязательный параметр, но требуется, если этот класс будет иметь дочерние классы.

prio приоритет

При отправке пакетов, классы с низким значением поля приоритета оправляют первыми. Обязательный параметр.

rate скорость

Максимальная гарантированная скорость для этого класса и всех его дочерних классов. Обязательный параметр.

ceil скорость

Максимальная скорость, с которой класс может отправлять пакеты, если родительский элемент позволяет отправлять данные. По умолчанию такой же как в параметре 'rate'

burst размер

Количество байтов, отдаваемых за раз Должно быть как минимум таким же высоким, как максимальный размер среди всех дочерних классов.

cburst размер

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

## ПРИМЕЧАНИЕ
В связи с ограничениями планировщика Unix, максимальная скорость не бесконечна и на практике может быть достаточно низкой. На архитектуре Intel таймер выдаёт 100 событий в секунду, поэтому максимальная скорость - это скорость, при которой отдаётся указанное количество байтов за один тик таймера. Исходя их этого можно получить минимальный размер данных, отдаваемых за раз. На i386, канал 10 Мбит требует отдачу за раз 12 кб, так как 100*12кб*8 соответствует 10 Мбит.

## СМ. ТАКЖЕ
tc(8)

Веб-сайт HTB: http://luxik.cdi.cz/~devik/qos/htb/

## АВТОРЫ
Мартин Девера (Martin Devera) <devik@cdi.cz>. man-страница сопровождается Бертом Хубертом (Bert Hubert) <ahu@ds9a.nl>

## ПЕРЕВОД
Андрей Черепанов <cas@altlinux.ru> 2007


title: tc-pfifo_fast(8)

summary: очередь FIFO с тремя полосами

text:
# tc-pfifo_fast(8)

## ИМЯ
pfifo_fast - очередь FIFO с тремя полосами

## ОПИСАНИЕ
pfifo_fast является очередью по умолчанию для каждого интерфейса.

Когда создается интерфейс, ему автоматически назначается очередь pfifo_fast. При назначении другой очереди очередь pfifo_fast выгружается.

## АЛГОРИТМ
Алгоритм очень похож на безклассовую очередь tc-prio(8). pfifo_fast напоминает три очереди (полосы) tc-pfifo(8) пакеты по которым ставятся в очередь в зависимости от типа услуги (TOS) или заданного приоритета.

Не все три полосы освобождаются одновременно: пока нижние полосы имеют трафик, верхние каналы не будут освобождаться. Это используется для повышения приоритета интерактивного трафика или задержки трафика с "низкой стоимостью".

Каждая полоса вмещает txqueuelen пакетов, что может быть изменено через ifconfig(8) или ip(8). Пакеты, которые не помещаются в очередь, отбрасываются.

См. tc-prio(8) для сведений о том, как биты TOS позволяют разделять трафик по каналам.

## ПАРАМЕТРЫ
txqueuelen

длина трёх полос, зависящая от параметра интерфейса txqueuelen, указанного через ifconfig(8) или ip(8).

## ОШИБКИ
Очередь не поддерживает статистику и не показывается в списке очередей поскольку является очередью по умолчанию.

## СМ. ТАКЖЕ
tc(8)

## АВТОРЫ
Алексей Кузнецов <kuznet@ms2.inr.ac.ru>. man-страница сопровождается Бертом Хубертом (Bert Hubert) <ahu@ds9a.nl>

## ПЕРЕВОД
Андрей Черепанов <cas@altlinux.ru> 2007


tc-prio

title: tc-prio(8)

summary: приоритетная очередь

text:
# tc-prio(8)

## ИМЯ
PRIO - приоритетная очередь

## СИНТАКСИС
tc qdisc ... dev УСТРОЙСТВО ( parent classid | root) [ handle major: ] prio [ bands bands ] [ priomap band,band,band... ] [ estimator interval timeconstant ]

## ОПИСАНИЕ
Очередь PRIO - простая реализация постановки в очередь, которая поддерживает классы, и содержит опредёленное число классов с различным приоритетом. Очереди классов освобождаются в порядке снижения приоритета. PRIO - планировщик,который никогда не задерживает пакеты - это работа внутренних очередей.

Очень полезно использовать PRIO для снижения задержки в случае, когда нет необходимости замедлять трафик.

## АЛГОРИТМ
При создании с помощью 'tc qdisc add', создается фиксированное число полос. Каждая полоса является классом, хотя для PRIO невозможно добавлять классы вручную при помощи 'tc qdisc add', вместо этого число создаваемых полос должно быть указано в командной строке, добавляющей PRIO к вышестоящей очереди.

При освобождении пакета из очереди вначале происходит попытка использовать полосу 0 и в случае, если она не доставила пакет, PRIO будет пытаться использовать полосу 1, и так далее. Соответственно, пакеты с максимальной надёжностью должны быть отправлены на полосу 0, с минимальной задержкой - на полосу 1, и все оставшиеся - на полосу 2.

Так как очередь PRIO сама по себе будет иметь дополнительный (minor) номер равный 0, полоса 0 на самом деле major:1, полоса 1 является major:2, и т.д. Вместо major, подставьте основной номер, назначенный очереди в момент её создания при помощи 'tc qdisc add" с параметром handle.

## КЛАССИФИКАЦИЯ
Три метода доступны в PRIO для определения, в какую полосу будет помещён пакет.

Из пользовательского пространства (userspace)

Процесс с достаточными привилегиями может указать требуемый класс напрямую при помощи SO_PRIORITY, см. tc(7).

С tc-фильтром

tc-фильтр, добавленный к корневой очереди, может указывать класс напрямую.

С использованием priomap

Основываясь на приоритете пакета, который, в свою очередь, получается из типа услуги, назначенного пакету.

Для этого типа очереди специфичен только priomap.

## ПАРАМЕТРЫ
bands

Число полос, если отличается от используемых трёх по умолчанию. priomap также должен быть обновлен.

priomap

priomap назначает класс в зависимости от приоритета пакета. Приоритет может быть или напрямую установлен из пользовательского пространства или быть определён на основе типа услуги. Определяет, каким образом приоритеты пакета, назначенные ядром, влияют на выбор полосы. Выбор основывается на TOS-октете пакета, который выглядит приблизительно так:

```
0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
|           |               |   |
|СТАРШИНСТВО|      TOS      |MBZ|
|           |               |   |
+---+---+---+---+---+---+---+---+
```

Четыре бита поля TOS определены как:

```
Двоичный Десятичный Значение
---------------------------------------------------------------
1000     8          Минимизировать задержку (minimize delay - md)
0100     4          Максимизировать пропускную способность (maximize

                    thorughput - mt)
0010     2          Максимальная надежность (maximal reliability - mr)
0001     1          Минимизировать денежную стоимость (minimize monetary

                    cost - mmc)
0000     0          Обычное обслуживание (normal service)
```

Так как справа от этих полей находится 1 бит, действительное значение TOS вдвое больше значение битов TOS. Tcpdump -v -v показывает значение всего поля TOS, а не только четырех битов. Это значение, которые вы видите в первом столбце следующей таблицы:

```
TOS     Биты  Значение                 Linux Приоритет   Полоса
---------------------------------------------------------------
0x0     0     Обычное обслуживание     0     Best Effort     1
0x2     1     Минимизировать затраты   1     Filler          2
0x4     2     Макс. надежность         0     Best Effort     1
0x6     3     mmc+mr                   0     Best Effort     1
0x8     4     Макс. пропускн. способн. 2     Bulk            2
0xa     5     mmc+mt                   2     Bulk            2
0xc     6     mr+mt                    2     Bulk            2
0xe     7     mmc+mr+mt                2     Bulk            2
0x10    8     Минимизировать задержку  6     Interactive     0
0x12    9     mmc+md                   6     Interactive     0
0x14    10    mr+md                    6     Interactive     0
0x16    11    mmc+mr+md                6     Interactive     0
0x18    12    mt+md                    4     Int. Bulk       1
0x1a    13    mmc+mt+md                4     Int. Bulk       1
0x1c    14    mr+mt+md                 4     Int. Bulk       1
0x1e    15    mmc+mr+mt+md             4     Int. Bulk       1
```

Второй столбец содержит значение соответствующих четырех битов TOS, за которыми следует их расшифрованное значение. К примеру, 15 обозначает пакет, которые требует минимальные денежные затраты, максимальную надежность, максимальную скорость прохождения и минимальную задержку.

Четвертый столбец перечисляет, каким образом ядро Linux интерпретирует биты TOS, и показывает, какие приоритеты ставятся им в соответствие.

Последний столбец показывает используемый по умолчанию priomap. В командной строке, priomap по умолчанию выглядит так:

1, 2, 2, 2, 1, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1

Это означает, что приоритету 4, например, будет поставлена в соответствие полоса номер 1. priomap также разрешает использовать более высокие приоритеты (>7), которые не соответствуют значениям TOS, но устанавливаются другими способами.

Эта таблица из RFC 1349 (обратитесь к RFC за дополнительной информацией) объясняет, как приложения могут устанавливать свои биты TOS:

```
TELNET                   1000           (минимальная задержка)
FTP

        Control          1000           (минимизировать задержку)

        Data             0100           (макс. пропускн. способность)
TFTP                     1000           (минимизировать задержку)
SMTP

        Command phase    1000           (минимальная задержка)

        DATA phase       0100           (макс. пропускн. способность)
Domain Name Service

        UDP Query        1000           (минимальная задержка)

        TCP Query        0000

        Zone Transfer    0100           (макс. пропускн. способность)
NNTP                     0001           (минимальные денежные затраты)
ICMP

        Errors           0000

        Requests         0000 (как правило)

        Responses        <такой же, как и в Request> (как правило)
```

## КЛАССЫ
Классы PRIO не могут настраиваться - они автоматически создаются, при добавлении очереди PRIO. Тем не менее, каждый класс может содержать ещё одну очередь.

## ОШИБКИ
Большие объемы трафика в младших полосах могут вызывать "голод" в старших полосах. Это может быть предотвращено добавлением ограничения скорости (например, shaper, tc-tbf(8) ) к этим полосам, чтобы быть уверенным, что они не захватят соединение полностью.

## АВТОРЫ
Алексей Н. Кузнецов <kuznet@ms2.inr.ac.ru>, J Hadi Salim <hadi@cyberus.ca>. Эта страница руководства поддерживается Бертом Хубертом (Bert Hubert) <ahu@ds9a.nl>

## ПЕРЕВОД
Перевод с английского Виктор Ерёмин <ErV2005@rambler.ru> 2007.


tc-red

title: tc-red(8)

text:
# tc-red(8)

## ИМЯ
red - Random Early Detection (случайное раннее обнаружение)

## ОБЗОР
tc qdisc ... red limit количество_байтов min количество_байтов max количество_байтов avpkt количество_байтов burst количество_пакетов [ ecn ] [ bandwidth скорость ] probability вероятность

## ОПИСАНИЕ
Случайное раннее обнаружение - это бесклассовая очередь, которая управляет размером очереди "интеллектуальным" методом. Стандартные очереди просто отбрасывают пакеты с "хвоста" очереди, если очередь заполнена, что не обязательно является оптимальным поведением. RED также отбрасывает пакеты с конца очереди, но делает это выборочно.

Как только очередь достигает заданной средней длины, пакеты, находящиеся в ней, получают настраиваемый шанс быть отмеченными ("отброшенными").

Этот шанс увеличивается линейно до точки, называемой максимальной (max) средней длины очереди (хотя очередь на самом деле может превысить этот лимит).

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

Задача - получить очередь небольшого размера (что хорошо для интерактивности), не беспокоя при этом TCP/IP трафик неожиданными отклонениями большого числа пакетов после взрывного увеличения трафика.

В зависимости от того, сконфигурирован ECN или нет, отметка пакета обозначает либо отброс пакета, либо просто пометку пакета как превышающего лимит.

## АЛГОРИТМ
Средний размер очереди используется для определения вероятности пометки пакета, которая вычисляется при помощи экспоненциального взвешенного движущегося среднего (Exponential Weighted Moving Average), которое может быть более или менее чувствительно к взрывному увеличения трафика.

Когда средний размер очереди меньше минимума (min) байтов, ни один пакет никогда не будет отмечен. Когда размер превышает минимум (min) , вероятность пометки пакета увеличивается линейно, вплоть до достижения значения вероятность (probability), а также до момента, когда средний размер очереди достигнет размера максимум (max) байтов. Поскольку в нормальных случаях вероятность (probability) не устанавливается в значения больше 100%, размер очереди может предположительно превысить максимум (max) байтов. Поэтому задается параметр предел (limit) , который задает жесткий максимальный размер очереди.

## ОПЦИИ
min

Средний размер очереди, по достижении которого возникает вероятность отметки пакета.

max

По достижении этого среднего размера очереди, вероятность пометки пакета максимальная. Значение должно быть как минимум вдвое больше, чем min, чтобы предотвратить синхронные повторные пересылки, причем должно быть выше для более низких значениях min.

probability

Максимальная вероятность пометки, указанная как число с плавающей точкой, от 0.0 до 1.0. Рекомендуемые значения - 0.01 или 0.02 (1 или 2%, соответственно).

limit

Жесткий предел реального (не среднего) размера очереди в байтах. По достижении этого размера все лишние пакеты будут отброшены. Должен быть больше, чем max+burst. Рекомендуется устанавливать значение в несколько раз больше, чем max .

burst

Используется для определения того, как реальный размер очереди начинает влиять на средний размер очереди. Более высокие значения делают изменение более вялым, что разрешает более длительные взрывные увеличения трафика прежде, чем начнется пометка пакетов. Эксперименты, проведенные в реальных условиях, выдают следующие рекомендации для расчета этого значения: (min+min+max)/(3*avpkt).

avpkt

Указывается в байтах. Используется вместе с burst для определения временной константы для вычисления среднего размера очереди. 1000 - неплохое значение.

bandwidth

Этот параметр используется для расчета среднего размера очереди после простоя в течение некоторого времени. Должно быть равным значению пропускной способности интерфейса. Не влияет на параметр пропускной скорости интерфейса. Необязательное значение.

ecn

Как уже было указано, RED может либо "отметить", либо "отбросить" пакет. Явное уведомление о переполнении (Explicit Congestion Notification) позволяет RED уведомить удаленные хосты, что частота отсылки ими сообщений превышает доступную пропускную способность. Не поддерживающие ECN хосты могут быть уведомлены только отбросом пакета. Если этот параметр указан, пакеты, сообщающие о том, что их отправитель придерживается ECN будут только помечены, но не отброшены, кроме случаев, когда размер очереди достигает предела (limit). Требует tc с вкомпилированной поддержкой RED. Рекомендуется.

## СМ. ТАКЖЕ
tc(8)

## ИСТОЧНИКИ
o

Floyd, S., and Jacobson, V., Random Early Detection gateways for Congestion Avoidance. http://www.aciri.org/floyd/papers/red/red.html

o

Некоторые изменения в алгоритме были сделаны Алексеем Кузнецовым.

## АВТОРЫ
Алексей Кузнецов <kuznet@ms2.inr.ac.ru>, Алексей Макаренко <makar@phoenix.kharkov.ua>, J Hadi Salim <hadi@nortelnetworks.com>. Эта страница руководства поддерживается Бертом Хубертом (Bert Hubert) <ahu@ds9a.nl>

## ПЕРЕВОД
Перевод с английского Виктор Ерёмин <ErV2005@rambler.ru> 2007


tc-sfq

title: tc-sfq(8)

text:
# tc-sfq(8)

## ИМЯ
sfq - очередь равномерного случайного распределения пакетов (SFQ)

## СИНТАКСИС
tc qdisc ... perturb секунд quantum байтов

## ОПИСАНИЕ
Очередь SFQ является безклассовой очередью для управления трафиком командой tc(8).

Очередь SFQ не классифицирует трафик, а распределяет передачу пакетов на базе потоков. SFQ не позволяет захватить одному клиенту все ресурсы обработки пакетов, поэтому обеспечивается примерно одинаковая скорость поступления данных от различных клиентов. Это может частично смягчать последствия DoS-атак.

SFQ всегда доставляет пакет если есть хотя бы один доступный.

## АЛГОРИТМ
При постановке в очередь каждый пакет прикрепляется к буферу хэшей на основании

(i)

адреса источника

(ii)

адреса приемника

(iii)

порта источника

SFQ поддерживает ipv4 и ipv6, а также UDP, TCP и ESP. Пакеты других протоколов хэшируются на основании 32-битных представлений адреса приемника и сокета.

Каждый из буферов имеет свой внутренний поток. Поток, получивший маркер передает один пакет данных, а маркер переходит к следующему потоку. Случайность передачи обеспечивается тем, что размер потоков обычно не фиксируется жестко и данные могут попадать в различные потоки.

Максимальная длина очереди SFQ составляет 128 пакетов, которые распределяются по 128 потокам из доступных 1024. Для предотвращения переполнения пакеты, не помещающиеся в очередь, отбрасываются.

## ПАРАМЕТРЫ
perturb

число секунд, после которого происходит перерасчет длины потоков, по умолчанию - 0, т.е. переконфигурирования не происходит. Рекомендуется устанавливать этот параметр равный примерно 10 секундам

quantum

число байтов, которые может передать поток, получивший маркер. Значение по умолчанию - MTU интерфейса, - подходит для большинства случаев, т.к. это гарантирует, что очередь сможет передать хотя бы один пакет.

## ПРИМЕР
Назначение на интерфейс ppp0:

\# tc qdisc add dev ppp0 root sfq perturb 10

Очереди SFQ удобно применять для балансирования нагрузки канала. Это подходит для модемов, соединений SDN и немаршрутизируемых каналов Ethernet.

## ЛИТЕРАТУРА
o

Paul E. McKenney "Stochastic Fairness Queuing", IEEE INFOCOMM'90 Proceedings, San Francisco, 1990.

o

Paul E. McKenney "Stochastic Fairness Queuing", "Interworking: Research and Experience", v.2, 1991, p.113-131.

o

См. также: M. Shreedhar and George Varghese "Efficient Fair Queuing using Deficit Round Robin", Proc. SIGCOMM 95.

## СМ. ТАКЖЕ
tc(8)

## АВТОРЫ
Алексей Кузнецов <kuznet@ms2.inr.ac.ru>. man-страница сопровождается Бертом Хубертом (Bert Hubert) <ahu@ds9a.nl>

## ПЕРЕВОД
Андрей Черепанов <cas@altlinux.ru> 2007


tc-tbf

title: tc-tbf(8)

summary: фильтр буфера токенов (Token Bucket)

text:
# tc-tbf(8)

## ИМЯ
tbf - фильтр буфера токенов (Token Bucket)

## СИНТАКСИС
tc qdisc ... tbf rate скорость burst байтов на ячейку ( latency мс | limit размер ) [ mpu размер [ peakrate скорость mtu байтов на ячейку ] ]

burst можно заменить на buffer или maxburst. mtu можно заменить на minburst.

## ОПИСАНИЕ
Фильтр Token Bucket является безклассовой очередью для управления трафиком командой tc(8).

TBF является простой очередью и не планирует трафик. Пакеты помещаются в очередь, пока не будет достигнут определенный размер очереди, который затем передается на обработку (но происходит некоторая задержка данных, т.к. происходит ожидание необходимого количества пакетов для поддержания постоянной скорости передачи). Если же скорость превышает заданную, то "лишние" пакеты просто отбрасываются. На всех платформах (кроме Alpha) позволяет обрабатывать более 1 мбит/с обычного трафика с минимальной задержкой, отправляя данные точно с заданной скоростью.

Более высокая скорость поддерживается, но задержка на обработку увеличивается. В этом случае данные из очереди отправляются с заданной скоростью, но возможно увеличение скорости на несколько миллисекунд. Поскольку пакеты отправляются в очередь сетевого адаптера, часто это не является проблемой.

Ядра с высоким 'HZ' могут обрабатывать высокие скорости с минимальной задержкой. На платформе Alpha HZ в десять раз выше, что позволяет ограничивать скорость до 10 мбит/с с приемлемой задержкой. Эти условия достижимы для пакетов с размером около 1000 байтов.

## АЛГОРИТМ
Как ясно из имени, трафик фильтруется на базе токенов . Токены грубо соответствуют байтам, однако любой пакет содержит несколько токенов безотносительно от размера пакета. Это необходимо для отражения того факта, что даже пустой пакет занимает канал при передаче.

При создании TBF для очереди накапливаются токены, отражающие объем помещённого в очередь трафика. Токены прибывают с постоянной скоростью до тех пор, пока буфер не окажется полон.

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

Если ограничена передача пакетов с максимальной скоростью, должна быть настроена пиковая скорость (peakrate) для ограничения скорости, при достижении которой очищается буфер. Ограничение пиковой скорости реализовано в виде второго TBF с очень маленьким буфером.

Для достижения приемлемой задержки второй буфер может содержать только один пакет, который соответствует вышеупомянутому пределу в 1 мбит/с.

Этот предел связан с минимальным временем, необходимым ядру для отправки в виде одного "мига", который зависит от HZ как 1/HZ. Для идеальной классификации только один пакет может быть отправлен в один "миг". Для HZ=100 это означает 100 пакетов по 1000 байтов, что приблизительно соответствует 1 мбит/с.

## ПАРАМЕТРЫ
См. tc(8) для указания единиц измерения значений.

limit или latency

Limit (предел) - число байт, которые могут быть помещены в очередь для ожидания, latency (латентность) - максимальное время, которое может провести пакет в очереди. Эти два параметра взаимно исключают друг друга.

burst

(buffer или maxburst). длина буфера очереди в байтах, чем больше заданная скорость передачи, тем больше должен быть буфер данных. На платформе Intel для скорости 10 мбит/с потребуется буфер размером 1 кб. Если буфер будет слишком маленький, лишние пакеты будут отбрасываться поскольку потребуется получить заданную скорость и для этого нужно набрать необходимое количество токенов. Минимальный размер буфера определяется делением заданного уровня скорости на HZ.

Подсчет токенов осуществляется по таблице, заполняемой при анализе 8 пакетов по умолчанию. Это поведение может быть изменено указанием другого размера ячейки (cell) . Например, для указания размера буфера в 6000 байт с 16-байтной ячейкой, установите burst как 6000/16.

mpu

минимальный размер пакета для помещения в очередь, пакеты меньшей длины отбрасываются, для сетей ethernet каждый пакет должен быть больше 64 байт. По умолчанию - 0.

rate

заданный уровень скорости. См. примечания об ограничениях выше и tc(8) для обозначения единицы измерения.

Если потребуется указать максимальную скорость передачи пакетов, используйте следующие параметры:

peakrate

максимально возможная скорость передачи пакетов из очереди в интерфейс, по умолчанию 1 мбит/с на Intel, 10 мбит/с на Alpha. Обычно не требуется устанавливать.

mtu/minburst

размер буфера максимальной скорости. Должен быть равен MTU интерфейса. Буфер в 3000 байт позволяет установить максимальную скорость передачи в 3 мбит/с (отправка 1000-байтовых пакетов). Так и burstsize, вы можете установить размер ячейки (cell) .

## ПРИМЕР
Для установки очереди с гарантированной скоростью 0,5 мбит/с, а максимальной скоростью 1,0 мбит/c, буфером в 5 кб, ограничивающей ожидание 70 мс и приемлемым временем задержки выполните:

\# tc qdisc add dev eth0 root tbf rate 0.5mbit \

burst 5kb latency 70ms peakrate 1mbit \

minburst 1540

## СМ. ТАКЖЕ
tc(8)

## АВТОРЫ
Алексей Кузнецов <kuznet@ms2.inr.ac.ru>. man-страница сопровождается Бертом Хубертом (Bert Hubert) <ahu@ds9a.nl>

## ПЕРЕВОД
Андрей Черепанов <cas@altlinux.ru> 2007


title: tcb_convert(8)

text:
# tcb_convert(8)

## Название
tcb_convert , tcb_unconvert - утилиты преобразования теневых файлов для перехода к схеме tcb и обратно.

## Использование
tcb_convert

tcb_unconvert

## Описание
Утилита tcb_convert преобразует файл /etc/shadow во множество файлов, расположенных в /etc/tcb/ (см. tcb(5)). На время проведения этой операции файл /etc/shadow блокируется.

Утилита tcb_unconvert преобразует файлы из /etc/tcb/ обратно в единый файл /etc/shadow. Ввиду невозможности блокировки всей теневой базы данных при использовании схемы tcb, tcb_unconvert временно изменяет права на каталог /etc/tcb/ устанавливая группу владельца в значение "sys" для того, чтобы утилита passwd(1) не могла работать до окончания преобразования.

## Переход на схему tcb
Для перевода операционной системы на схему управления теневыми паролями tcb с традиционной схемы /etc/passwd+/etc/shadow, необходимо предпринять следующее:

1.

Установить пакеты libtcb, libnss_tcb, pam_tcb, tcb_utils, а также адаптированные для работы с tcb пакеты из семейства shadow-utils.

2.

Создать системную группу "auth", если её ещё нет в системе.

3.

Для разрешения процессам, входящим одновременно в группы "shadow" и "auth", осуществлять доступ по чтению ко всем теневым файлам, необходимо добавить либо раскомментировать нижеприведённую строку в файле /etc/login.defs: tcb_AUTH_GROUP yes

4.

Запустить утилиту tcb_convert.

5.

В конфигурационном файле подсистемы NSS, /etc/nsswitch.conf, найти запись "shadow" и заменить метод "files" методом "tcb"; отредактированная запись будет выглядеть примерно так: shadow: tcb nisplus nis

6.

Во всех файлах, расположенных в каталоге /etc/pam.d/ заменить все вхождения pam_unix.so и pam_pwdb.so (если такие есть) на pam_tcb.so. Информацию по дополнительной настройке PAM можно прочесть в pam_tcb(8).

7.

В каждом файле из каталога /etc/pam.d/ содержащим правило "password" с использованием модуля pam_tcb (например, /etc/pam.d/system-auth) необходимо добавить параметр write_to=tcb к аргументам модуля pam_tcb, используемого при смене пароля. Отредактированная запись будет выглядеть примерно так: password required pam_tcb.so shadow use_authtok write_to=tcb

8.

Отредактировать файл /etc/login.defs, добавив (раскомментировав) строку: USE_tcb yes

9.

Теперь можно удалить файл /etc/shadow. Это важно сделать хотя бы для того, чтобы процессы, которым этот файл доступен по чтению, не могли прочитать хеши прежних паролей (многие из которых могут использоваться в течении долгого времени после перехода на tcb).

10.

Если это не было сделано ранее при установке пакетов, выполнить с правами рута команды chown root:shadow /usr/bin/passwd /etc/pam.d/passwd

chmod 2711 /usr/bin/passwd

chmod 640 /etc/pam.d/passwd

11.

Проверить, все ли работает нормально, в частности, можно ли "войти" в систему, работает ли смена пароля.

## Возврат к традиционной схеме
Если по какой-либо причине необходимо вернуться к традиционной схеме с единым теневым файлом, это можно сделать, запустив утилиту tcb_unconvert и выполнив некоторые из действий, обратные перечисленным выше в разделе "Переход на схему tcb".

## Историческая справка
Первая публичная версия реализации альтернативной схемы управления теневыми паролями tcb появилась 12 ноября 2001 года в ОС Openwall GNU/*/Linux.

Дата появления tcb в ALT Linux Sisyphus - 20 декабря 2001 года.

## Авторы
Rafal Wojtczuk <nergal@owl.openwall.com>, Solar Designer <solar@owl.openwall.com> -

реализация схемы tcb для ОС Openwall GNU/*/Linux.

Dmitry V. Levin <ldv@altlinux.org> -

аудит кода, адаптация схемы tcb для ОС ALT Linux, перевод документации по tcb на русский язык.

Реализация PAM-модуля

pam_tcb призвана обеспечивать обратную совместимость с pam_unix, ввиду чего некоторые решения были заимствованы из pam_unix. Некоторые менее критичные фрагменты кода, а также в некоторой мере композиция кода взяты из реализации модуля pam_unix в Linux-PAM. Имена соавторов pam_unix приведены в каталоге orig_copyright/ исходного кода схемы tcb.

## Ссылки
login.defs(5), pam_tcb(8), tcb(5)


tftpd

title: tftpd(8)

summary: сервер TFTP

text:
# tftpd(8)

## ИМЯ
tftpd - сервер TFTP

## СИНТАКСИС
tftpd каталог

## ОПИСАНИЕ
tftpd это сервер, поддерживающий протокол DARPA TFTP (RFC1350). TFTP сервер запускается inetd(8).

Каталог - обязательный аргумент; если он не указан, то tftpd завершает работу. Этот путь присоединяется к имени запрошенного файла, фактически используя указания корня (chrooting) tftpd в этом каталоге. Имена файлов проверяются для недопущения выхода из этого каталога, однако администратор может обойти это ограничение, используя символические ссылки.

Это отличает данную версию сервера от других вариантов tftpd под другими системами Unix, которые принимают список каталогов и требуют указания полного пути к запрашиваемому файлу. Есть две причины, почему так не стоит делать: во-первых, это неудобно, клиенты не предполагают знание о формате или файловой системе сервера. И вторая, протокол TFTP не средство для просмотра серверных файловых систем, это только агент, позволяющий загружать "тупые" клиенты.

В случае когда tftpd используется вместе с rarpd(8), каталоги tftp в параметрах этих серверов должны быть одинаковы, поскольку предполагается, что каждый клиент, загруженный через TFTP, использует образ, соответствующий IP-адресу с суффиксом архитектуры согласно соглашениям Sun Microsystems. См. rarpd(8) для получения дополнительно информации.

## БЕЗОПАСНОСТЬ
Протокол TFTP не предусматривает аутентификации. В связи с этой особенностью, tftpd не может ограничить доступ файлов и позволяет получить доступ только к файлам, имеющим право на чтение для всех. Файлы могут быть записаны только если они существуют и имеют права на запись для всех.

Очевидно, что по соображениям безопасности, каталог TFTP, не может содержит конфиденциальную информацию любого вида, поскольку она может быть прочитана любым клиентом. Загруженные образы, как правило, не содержат такой информации, однако вы должны подумать дважды перед размещением конфигурационных файлов Cisco IOS через TFTP, так как они содержат незашифрованные пароли и могут содержать много информации о сети, которую вы не хотите выставлять на всеобщее обозрение.

Сервер tftpd запускается inetd с пониженными административными правами, то есть с пользовательским ID, дающим минимальный доступ к опубликованным файлам в каталоге tftp. Если сеанс запускается под правами суперпользователя, то tftpd сбрасывает UID и GID до 65534, что, скорее всего, не является тем, что вам нужно. Однако, это не так существенно. Помните, только доступные для всех файлы могут быть записаны или прочитаны через TFTP.

## СМ. ТАКЖЕ
rarpd(8), tftp(1), inetd(8).

## ИСТОРИЯ
Команда tftpd впервые появилась в 4.2BSD. Исходный код в iputils приведён в порядок как синтаксически (ANSIлизирован), так и семантически (UDP сокет IO).

Программа распространяется с iputils главным образом как хорошая демонстрация интересных особенностей (MSG_CONFIRM) позволяющих загружать большие образы с "тупых" клиентов, не отвечающих ARP запросам до тех пор, пока они не загрузятся. Однако, он полностью функционален и может быть использован в работе.

## ДОСТУПНОСТЬ
tftpd часть пакета iputils и последние версии доступны в виде исходного кода на FTP-сервере с анонимным доступом по адресу: ftp://ftp.inr.ac.ru/ip-routing/iputils-current.tar.gz.

## ПЕРЕВОД
Перевод с английского russians <pawel5@mail.ru> 2007


tracepath

title: tracepath(8)

text:
# tracepath(8)

## ИМЯ
tracepath, tracepath6 - показывает маршрут по сетевым узлам с MTU

## СИНТАКСИС
tracepath адрес [ порт]

## ОПИСАНИЕ
Показывает маршрут до указанного адреса с MTU. Программа использует указанный порт UDP или другой случайный порт. Она похожа на traceroute, только не требует привилегий суперпользователя и не имеет расширенных настроек.

tracepath6 хорошо замещает traceroute6 и является классическим примером приложения с очередью ошибок. Ситуация с tracepath хуже, потому что коммерческие IP маршрутизаторы не возвращают достаточно информации в сообщениях ICMP об ошибке. Возможно, эта ситуация изменится, когда они будут обновлены. На данный момент они используют метод Ван Якобсона (Van Jacobson), меняя диапазон портов UDP для поддержки журнала трассировки.

## ВЫВОД

```
root@mops:~ # tracepath6 3ffe:2400:0:109::2

 1?: [LOCALHOST]                              pmtu 1500

 1:  dust.inr.ac.ru                   0.411ms

 2:  dust.inr.ac.ru        asymm  1   0.390ms pmtu 1480

 2:  3ffe:2400:0:109::2               463.514ms reached

     Итого: pmtu 1480 hops 2 back 2
```

Первая колонка показывает TTL шагов с двоеточием. Обычно значение TTL получается из сетевого отклика, но иногда отклик не содержит необходимой информации и делается попытка предположения данных. В этом случае после номера выводится ?.

Вторая колонка показывает сетевой сегмент, который ответил на тест. Это либо адрес маршрутизатора или слово [LOCALHOST], если пакет не был отправлен в сеть.

Остальная часть строки содержит различную информацию о сегменте маршрута. Как правило, это содержимое RTT. Кроме того, может быть показан MTU сегмента если он меняется. Если маршрут асимметричен или тест закончится прежде, чем он достигнет сегмента, разница между числом сегментов в прямом и обратном направлении показывается после ключевого слова async. Эта информация не точная. В указанном примере в третьей строке показывается асимметрия 1, потому что первый тест с TTL 2 был отклонён первым сегментом в соответствии с обнаружением маршрута с MTU.

Последняя строка суммирует информацию обо всех маршрутах до указанного адреса, показывает общее значение MTU, количество сегментов до адреса и свою предполагаемую оценку количества сегмента из адресата к нам, которые могут различаться когда маршруты асимметричны.

## СМ. ТАКЖЕ
traceroute(8), traceroute6(8), ping(8).

## АВТОР
tracepath был написан Алексеем Кузнецовым <kuznet@ms2.inr.ac.ru>.

## БЕЗОПАСНОСТЬ
Нет сообщений о найденных проблемах в безопасности.

Это стало возможно в связи с особенностями реализации. tracepath не требует привилегий для выполнения, в отличие от traceroute, ping и других подобных программ. tracepath может быть выполнен любым пользователем, имеющим доступ к сети, достаточно послать датаграмму UDP на указанный адрес, используя заданный порт.

## ДОСТУПНОСТЬ
tracepath является частью пакета iputils и последние версии доступны в виде исходного кода на FTP-сервере с анонимным доступом по адресу: ftp://ftp.inr.ac.ru/ip-routing/iputils-current.tar.gz.

## ПЕРЕВОД
Перевод с английского russians <pawel5@mail.ru> 2007


title: traceroute6(8)

summary: показывает маршрут по сетевым узлам

text:
# traceroute6(8)

## ИМЯ
traceroute6 - показывает маршрут по сетевым узлам

## СИНТАКСИС
traceroute6 [ -dnrvV] [ -i интерфейс] [ -m макс_ttl] [ -p порт] [ -q макс_тесты] [ -s исходящий адрес] [ -w время ожидания] адрес назначения [ размер]

## ОПИСАНИЕ
Описание опций располагается в traceroute(8), все ссылки к IP заменены на IPv6.

## СМ. ТАКЖЕ
traceroute(8), tracepath(8), ping(8).

## ИСТОРИЯ
У программы длинная история. Автор traceroute Ван Якобсон и она впервые появилась в 1988. Этот клон базируется на портированном в IPv6 traceroute, опубликованном в дистрибутиве NRL IPv6 в 1996. В процессе преобразований он был портирован на Linux Педро Рокки. После этого он был взят в пакет sync Алексеем Кузнецовым <kuznet@ms2.inr.ac.ru>. В конце концов она вошла в пакет iputils.

## БЕЗОПАСНОСТЬ
tracepath6 требует привилегии CAP_NET_RAWIO для запуска. Она надёжна при выставлении бита set-uid root.

## ДОСТУПНОСТЬ
traceroute6 часть пакета iputils и последние версии доступны в виде исходного кода на FTP-сервере с анонимным доступом по адресу: ftp://ftp.inr.ac.ru/ip-routing/iputils-current.tar.gz.

## ПЕРЕВОД
Перевод с английского russians <pawel5@mail.ru> 2007


umount

title: umount(8)

summary: размонтирует файловые системы

text:
# umount(8)

## НАЗВАНИЕ
umount - размонтирует файловые системы

## СИНТАКСИС
umount [-hV]

umount -a [-dflnrv] [-t тип_vfs] [-O параметры]

umount [-dflnrv] каталог | устройство [...]

## ОПИСАНИЕ
Команда umount отключает файловые системы от иерархического дерева каталогов. Файловая система указывается или по имени каталога, к которому она была подключена, или по имени специального устройства, на котором она размещена. Однако последний подход является устаревшим и может не сработать, в основном в тех случаях, когда специальное устройство одновременно смонтировано в несколько каталогов.

Следует отметить, что файловая система не может быть размонтирована, если в настоящий момент она "занята" или используется, а именно: на ней есть открытые файлы, некоторые процессы имеют там рабочие каталоги или на ней размещён файл подкачки (swap).

Возможна ситуация, когда процесс, выполнивший монтирование не может выполнить обратную операцию umount самостоятельно. Например, он использовал libc, который в свою очередь открыл файлы, расположенные на требующем размонтирования устройстве. Подобные проблемы можно решать растянутым во времени ("ленивым") размонтированием.

## ПАРАМЕТРЫ
-V

Вывести информацию о версии программы и завершить работу.

-h

Вывести справку о программе, её параметрах и завершить работу.

-v

Подробно комментирует происходящее.

-n

Размонтировать без регистрации событий в файле /etc/mtab.

-r

Если размонтирование выполнить не удалось, пытается перемонтировать файловую системы в режим "только для чтения".

-d

Если размонтируемое устройство являлось петлевым (loop), тогда освобождает его.

-i

Для выполнения размонтирования не использует специальный модуль (помощник) /sbin/umount.<filesystem>, даже если он существует. По умолчанию, помощник /sbin/umount.<filesystem> (если только он существует) выполняет размонтирование.

-a

Размонтировать все смонтированные файловые системы, записи о которых есть в файле /etc/mtab. (Начиная с версии 2.7, команда umount не размонтирует файловую систему proc.)

-t тип_vfs

Требует выполнение действий лишь для файловых систем указанного типа тип_vfs. Вообще тип_vfs является списком файловых систем, разделённых запятыми. Этот список может начинаться с префикса no для указания файловых систем, на которые не распространяются никакие действия.

-O параметры

Действия будут выполнены лишь для тех файловых систем, для которых в /etc/fstab указаны заданные параметры. Кортеж из нескольких параметров подряд может быть указан через запятую. Этот список может содержать префикс no, что предпишет не выполнять действий над файловой системой, имеющую в /etc/fstab заданный параметр.

-f

Принудительное размонтирование (в случае недоступности системы NFS). (Требуется ядро 2.1.116 или выше).

-l

"Ленивое" размонтирование. Отключает файловую систему из существующей иерархии файловых систем и удаляет все ссылки на неё по мере того, как она освобождается. (Требуется ядро 2.4.11 или выше).

## ПЕТЛЕВОЕ (LOOP) УСТРОЙСТВО
Команда umount освободит петлевое устройство (устройство локальной передачи файлов), связанное с mount (и не только), если в файле /etc/mtab найдёт для него параметр `loop=...' или, когда задан параметр -d. Любое петлевое устройство может быть освобождено через использование команды `losetup -d'. Детальную информацию об этом см. losetup(8).

## ПРИМЕРЫ
\# umount /dev/fd0

Используя имя устройства, размонтирует файловую систему накопителя, работающего с дискетами.

\# umount /mnt/floppy

Размонтирование, аналогичное первому, но с использованием точки монтирования.

## ФАЙЛЫ
/etc/mtab таблица смонтированных файловых систем

## СМ. ТАКЖЕ
umount(2), mount(8), losetup(8).

## ИСТОРИЯ
Команда umount появилась в AT&T UNIX версии 6.

## ПЕРЕВОД
оригинального файла на английском umount.8.gz (1898 байт от 01.02.2007) (+примеры) выполнен Aleksander N.Gorohovski <angel@feht.dgtu.donetsk.ua> 13.11.2005. Обновление перевода 12.07.2007.

## РЕЦЕНЗИЯ ПЕРЕВОДА
Vasily Kolomeets <boojuman@gmail.com>, Aleksandr Blokhin <sass@altlinux.ru>


update-alternatives

title: update-alternatives(8)

text:
# update-alternatives(8)

## НАЗВАНИЕ
Подсистема update-alternatives обслуживает символические ссылки, определяющие команды, файлы и каталоги, используемые по-умолчанию.

## СИНТАКСИС
update-alternatives [опции] --install link name path priority [--slave link name path] ...

update-alternatives [опции] --remove name path

update-alternatives [опции] --auto name

update-alternatives [опции] --display name

update-alternatives [опции] --config name

## ОПИСАНИЕ
update-alternatives создает, удаляет, обслуживает и отображает информацию о символических ссылках, входящих в подсистему альтернатив для ALT Linux.

Это позволяет нескольким программам, установленным в системе одновременно, выполнять одинаковые или похожие функции. Например, во многих системах одновременно установлено несколько текстовых редакторов. Это дает возможность всем пользователям системы, при желании, пользоваться различными редакторами, но создает при этом сложности для системы при вызове программы редактирования, если пользователь не определил своих предпочтений.

Предназначение подсистемы альтернатив заключается в решении этих задач. Универсальное имя в файловой системе разделено между всеми файлами, предоставляющими взаимозаменяемые функциональные возможности. Система альтернатив и системный администратор вместе определяют, к какому файлу в системе происходит обращение при помощи универсального имени. Например, если в системе одновременно установлены текстовые редакторы ed(1) и vim(1), то подсистема альтернатив обратится к универсальному имени /usr/bin/editor для вызова /usr/bin/vim по-умолчанию. Системный администратор может изменить параметры так, что вместо этого будет произведен вызов /usr/bin/ed, и подсистема альтернатив не изменит эти установки до тех пор, пока об этом не последует явный запрос.

Универсальное имя - это не прямая символическая ссылка к выбранной альтернативе. Вместо этого создается символическая ссылка в каталоге альтернатив, которая, в свою очередь, ссылается на конкретный файл. Это сделано для того, чтобы изменения, сделанные системным администратором, ограничивались только каталогом /etc : FHS дает основания считать это хорошей идеей.

Если пакет, предоставляющий файл со специфическими функциями, установлен, изменен или удален, вызывается update-alternatives для обновления информации об этом файле, содержащемся в подсистеме альтернатив. Вызов update-alternatives обычно происходит посредством вызова post-install или pre-install скрипта, содержащегося в пакете RPM.

Зачастую бывает полезно синхронизировать изменение нескольких альтернатив, образующих группу; например, если в системе установлено несколько версий редактора vi(1), то man-страница /usr/share/man/man1/vi.1 должна соответствовать альтернативе, определяемой /usr/bin/vi Подсистема update-alternatives управляет этим посредством главных (master) и подчиненных (slave) ссылок; если изменяется главная ссылка, подчиненные ссылки тоже изменяются. Главная ссылка и ассоциированные с ней подчиненные образуют группу ссылок.

Каждая группа ссылок в любой момент времени может находиться в одном из двух режимов: автоматическом или не автоматическом. Если группа находится в автоматическом режиме, при установке, обновлении и удалении пакетов подсистема альтернатив сама решает, какие из ссылок требуется обновить и как. В не автоматическом режиме подсистема альтернатив не делает изменений ссылок, оставляя их на усмотрение системного администратора.

Каждая группа ссылок при первой установке в систему находится в автоматическом режиме. Если системный администратор вносит изменения в автоматические установки системы, то update-alternatives при очередном запуске обнаружит изменении группы ссылок и автоматически перейдет в не автоматический режим.

Каждая альтернатива имеет ассоциированный с ней приоритет - когда группа ссылок находится в автоматическом режиме, то альтернативами, указанными членами группы, будут те, которые имеют наивысший приоритет.

При использовании опции --config update-alternatives перечислит весь список вариантов в группе ссылок, соответствующий главной ссылке. Вам будет предложено определить, какой из вариантов вы желаете использовать. Если вы однажды сделаете изменения, то группа ссылок больше не будет работать в автоматическом режиме. Для возврата к автоматическому режиму вам необходимо использовать опцию --auto

## ТЕРМИНОЛОГИЯ
Поскольку update-alternatives представляет из себя довольно сложный механизм, некоторые термины помогут объяснить его действие:

универсальное имя

Имя, например, /usr/bin/editor, которое обращается посредством подсистемы альтернатив к одному из нескольких файлов со схожими функциями.

символическая ссылка

Без каких-либо дополнительных определений это означает ссылку в каталог альтернатив - каталог, который может корректировать системный администратор.

альтернатива

Имя конкретного файла в файловой системе, который может быть доступен через универсальное имя, используя подсистему альтернатив.

каталог альтернатив

Каталог, по умолчанию это /etc/alternatives, содержащий символические ссылки.

административный каталог

Каталог, по умолчанию это /var/lib/rpm/alternatives, содержащий информацию о состоянии подсистемы update-alternatives

группа ссылок

Набор взаимосвязанных ссылок, подлежащих синхронной модификации.

главная ссылка

Ссылка в группе ссылок, определяющая конфигурацию остальных ссылок в группе.

подчиненная ссылка

Ссылка в группе ссылок, контролируемая значением главной ссылки.

автоматический режим

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

не автоматический режим

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

## ОПЦИИ
При вызове update-alternatives должно быть определено ровно одно действие, которое должно быть выполнено. Любое число параметров может быть указано в комбинации с любым действием.

### ПАРАМЕТРЫ
--verbose

Выводит подробности о действиях update-alternatives.

--quiet

Не выводит на экран никаких сообщений о работе, кроме сообщений об ошибках.

--test

Не предпринимать реальных действий, только показать, что будет сделано. Эта функция еще не реализована.

--help

Вывести информацию об использовании (и показать версию update-alternatives ).

--version

Показать версию update-alternatives (и отобразить информацию об использовании).

--altdir каталог

Определяет каталог альтернатив, отличный от используемого по умолчанию.

--admindir каталог

Определяет административный каталог, отличный от используемого по умолчанию.

### ДЕЙСТВИЯ
--install link gen path pri [--slave slink sgen spath] ...

Добавляет группу альтернатив в систему. gen - универсальное имя для главной ссылки, link - имя этой ссылки, path - альтернатива для главной ссылки. sgen, slink и spat это универсальное имя, ссылка и альтернатива для подчиненной ссылки. Может быть определено любое число действий --slave, и каждое из них - с тремя аргументами.

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

--remove name path

Удаляет альтернативы и все ассоциированные с ними подчиненные ссылки. name - это имя в каталоге альтернатив, а path - это абсолютное имя файла, на которое ссылается name на path, то name будет обновлено, для указания на ближайшую альтернативу, или удалено, в случае, если больше не осталось альтернатив. Ассоциированные подчиненные ссылки будут, соответственно, обновлены или удалены. Если ссылка указывает не на path, то ссылка не будет изменена; будет удалена только информация об альтернативе.

--auto link

Переключает главную ссылку link в автоматический режим. При этом как сама ссылка, так и все ее подчиненные ссылки будут обновлены тиким образом, что будут указывать на альтернативы с наивысшим приоритетом.

--display link

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

## ФАЙЛЫ
/etc/alternatives/

Каталог альтернатив по умолчанию. Может быть изменен при помощи опции --altdir

/var/lib/rpm/alternatives/

Административный каталог по умолчанию. Может быть изменен при помощи опции --admindir

## КОДЫ ВОЗВРАТА
0

Требуемое действие было успешно выполнено.

2

Возникли проблемы в синтаксисе командной строки или при выполнении действия.

## ДИАГНОСТИКА
update-alternatives, если не было обнаружено ошибок, не сообщает о своих действиях в стандартный вывод. Если же update-alternatives сталкивается с проблемой, то выводится сообщение об ошибке и работа прекращается с кодом возврата 2. Эта диагностика должна быть очевидна; если вы находите, что это не так, пожалуйста, сообщите об этом как об ошибке.

## ОШИБКИ
Если вы обнаружите ошибку, пожалуйста, сообщите об этом в систему слежения за ошибками ALT Linux - http://bugs.altlinux.ru/ или, если это невозможно, отправьте сообщение авторам электронной почтой.

Если вы найдете любое расхождение между работой update-alternatives и настоящим руководством, то это ошибка реализации либо документации и перевода; пожалуйста, сообщите об этом.

## АВТОРЫ
Подсистема update-alternatives основана на Debian update-alternatives.

```
Ian Jackson - автор Debian update-alternatives.
Charles Briscoe-Smith - автор этой документации.
Aleksandr Blohin <sass@altlinux.ru> - перевод на русский язык.
Dmitry V. Levin <ldv@alt-linux.org> - адаптация для ALT Linux.
```

## АВТОРСКИЕ ПРАВА
Это свободное программное обеспечение; см. GNU General Public License версии 2 или позже в части, касающейся авторского права. Поставляется БЕЗ предоставления каких либо гарантий.

## СМ. ТАКЖЕ
ln(1), FHS - the Filesystem Hierarchy Standard.


visudo

title: visudo(8)

summary: редактирует файл sudoers

text:
# visudo(8)

## НАЗВАНИЕ
visudo - редактирует файл sudoers

## СИНТАКСИС
visudo [ -c ] [ -f sudoers ] [ -q ] [ -s ] [ -V ]

## ОПИСАНИЕ
visudo редактирует файл sudoers в безопасном режиме, аналогично vipw(8). visudo блокирует файл sudoers, во избежание открытия его для правки в нескольких сессиях редактора одновременно, осуществляет проверку правильности выражений и грамматики. Если файл sudoers в настоящий момент редактируется, Вы получите сообщение с предложением попытаться отредактировать его позже.

Имеется встроенный список программ для редактирования, указанных при компиляции, которые использует visudo и которые могут быть переопределены посредством переменной editorв sudoers. По умолчанию этот список соотносится с расположением vi(1) в вашей системе, как определено сценарием configure. Обычно, visudo не учитывает переменные окружения EDITOR или VISUAL, если они не содержат программу-редактор из вышеупомянутого списка редакторов. Однако, если visudo сконфигурирован с флагом --with-enveditor или в sudoers установлена переменная enveditor, то visudo будет использовать любой редактор определенный при помощи EDITOR или VISUAL. Имейте в виду, что это может стать прорехой в защите, так как позволит пользователю выполнять любые программы просто установив значение EDITOR или VISUAL.

После редактирования visudo анализирует файл sudoers и не сохраняет изменения, если имеется синтаксическая ошибка. При обнаружении ошибки на экран будет выведена подсказка с указанием номера строки, на которой произошла ошибка, и пользователю будет предложено решить, что делать дальше, "What now?". Пользователь может ввести "e", для возврата в режим редактирования файла sudoers, "x", для выхода без сохранения внесенных изменений, или "Q", для выхода с сохранением сделанных им изменений. Опция Q должна использоваться крайне осторожно, так как если visudo в результате синтаксического анализа предполагает, что в файле имеются ошибки, то точно так-же будет считать sudo, в результате чего никто больше не сможет выполнять sudo прежде, чем ошибка будет исправлена. При указании "е", для продолжения редактирования файла sudoers после обнаружения синтаксической ошибки, курсор переместится на ту строку, где была обнаружена ошибка (если редактор поддерживает эту функцию).

## ПАРАМЕТРЫ
visudo поддерживает следующие параметры командной строки:

"-с"

Задействует режим check-only. При этом будет проверен синтаксис уже существующего файла sudoers и на стандартный вывод будет выведено сообщение содержащее детальный статус sudoers. Если проверка синтаксиса прошла удачно, то visudo завершит работу со значением 0. Если будет обнаружена ошибка в синтаксисе, то visudo завершит работу со значением 1.

"-f"

Указывает и переопределяет месторасположение файла sudoers. При указании этого параметра visudo будет редактировать (или осуществит проверку) файла sudoers по вашему выбору, вместо подразумеваемого по умолчанию @sysconfdir@/sudoers. Файлом блокировки будет являться имя файла, указанного для sudoers, с добавленным в конце ".tmp".

"-q"

Задействовать "тихий" режим. При этом режиме не будут отображаться детали при выводе сообщений об ошибках в синтаксисе. Этот параметр полезен только в комбинации с флагом -с.

"-s"

Включает строгую проверку файла sudoers. Если псевдоним используется до того как он определен, visudo будет рассматривать это как грамматическую ошибку. Обратите внимание, что оно не в состоянии делать различие между псевдонимом и именем машины или именем пользователя, состоящих только из букв набранных в верхнем регистре, чисел и знаков подчеркивания ('_').

"-V"

Параметр -V (версия) заставляет visudo отобразить номер версии, после чего прекращает его работу.

## СООБЩЕНИЯ ОБ ОШИБКАХ
"sudoers file busy, try again later"

Это означает, что кто-то в настоящий момент редактирует файл sudoers.

"/etc/sudoers.tmp: Permission denied"

Вы выполняете visudo не как супер-пользователь (root).

"Can't find you in the passwd database"

Ваш идентификатор пользователя не найден в файле паролей.

"Warning: undeclared Alias referenced near ..."

Либо вы используете один из псевдонимов {User,Runas,Host,Cmnd}_Alias до их определения, либо вы имеете пользователя или имя машины описанное только буквами, набранными в верхнем регистре, цифрами и символами подчеркивания ('_'). В последнем случае вы можете игнорировать предупреждения (sudo не будет жаловаться). В -s (строгом) режиме эти сообщения будут считаться не предупреждениями, а ошибками.

## ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
Следующие переменные могут использоваться в том случае, если visudo при сборке было сконфигурировано с параметром --with-env-editor:

EDITOR Используется visudo для указания используемого редактора

VISUAL Используется visudo если EDITOR не определен

## ФАЙЛЫ
/etc/sudoers

/etc/sudo.d/* список пользователей с указанием того, что они могут выполнять

/etc/sudoers.tmp файл блокировки для visudo

## ПРЕДОСТЕРЕЖЕНИЕ
Не существует никакого простого способа предотвратить захват пользователем оболочки с правами супер-пользователя (root), если редактор, используемый visudo, позволяет использовать управляющие команды оболочки.

## ОШИБКИ
Если вам кажется, что вы нашли ошибку в sudo, то отправьте рапорт об ошибке по адресу: http://www.courtesan.com/sudo/bugs/

## ОБ АВТОРЕ
Многие люди работали годами над sudo.

Эта версия visudo написана:

Todd Miller <Todd.Miller@courtesan.com>

Для детальных пояснений смотри файл HISTORY или в интернете по адресу http://www.sudo.ws/sudo/history.html.

## ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ
Эта программа распространяется в надежде, что она будет полезной, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемых гарантий КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Для получения подробных сведений смотрите Универсальную Общественную Лицензию GNU. Вы должны были получить копию Универсальной Общественной Лицензии GNU вместе с этой программой; если нет, напишите по адресу: Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

## ПЕРЕВОД
Константин Кудрин <cola@tcsb.perm.su>

Александр Блохин <sass@altlinux.ru>

## СМ. ТАКЖЕ
vi(1), sudo(8), vipw(8).


vzcalc

title: vzcalc(8)

text:
# vzcalc(8)

## ИМЯ
vzcalc - использование ресурсов виртуальной средой.

## ОБЗОР
vzcalc [-v] <vpsid>

## ОПЦИИ
-v

Выводить расширенную информацию.

## ОПИСАНИЕ
Эта утилита выводит количество ресурсов физической среды, используемых заданной виртуальной средой. Если виртуальная среда запущена, будет выведен текущий уровень использования ресурсов. Большие значения использования (>100%) означают, что система перегружена (или виртуальная среда использует неверную конфигурацию).

Current

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

Promised

показывает нестрогий предел значений, "обещанных" для данной виртуальной среды.

Max

показывает строгий предел значений, "обещанных" для данной виртуальной среды.

Если указана опция -v, выводится расширенная информация.

Low Mem

часть памяти, находящейся в нижних адресах, и напрямую используемой ядром.

Total Ram

вся оперативная память

Mem+Swap

количество памяти, доступное для приложений (количество оперативной памяти + размер подкачки).

Alloc Mem

стандартные выделения памяти для приложений, сделанные для приложения внутри виртуальной среды. Это более "виртуальный" системный ресурс по сравнению с объемом доступной памяти или объемом доступной памяти + подкачка.

## ДИАГНОСТИКА
В случае успешного завершения возвращается 0. В случае ошибки возвращается 1.

## АВТОРСКИЕ ПРАВА
Copyright (C) 2000-2007, SWsoft. Распространяется на условиях GNU GPL.

## ПЕРЕВОД
Перевод с английского Виктор Ерёмин <ErV2005@rambler.ru> 2007


vzcfgvalidate

title: vzcfgvalidate(8)

summary: проверяет файл конфигурации VE.

text:
# vzcfgvalidate(8)

## ИМЯ
vzcfgvalidate - проверяет файл конфигурации VE.

## ОБЗОР
vzcfgvalidate [-r | -i] файл_конфигурации

## ОПЦИИ
-r

Режим исправления ошибок.

-i

Интерактивный режим исправления ошибок.

## ОПИСАНИЕ
Эта программа проверяет правильность параметров контролирования ресурсов в заданном файле_конфигурации виртуальной среды. Конфигурации, где количество ресурсов, разрешенных для использования, превышает возможности системы, неверны и опасны с точки зрения стабильности.

Существует три уровня серьезности вывода: Error(ошибки), Warning(предупреждения), Recommendation (рекомендации).

## ДИАГНОСТИКА
В случае успешного завершения возвращается 0. В случае ошибки выполнения программы, возвращается 1. Если проверка не была успешной возвращается 2.

## СМ. ТАКЖЕ
vps.conf(5).

## АВТОРСКИЕ ПРАВА
Copyright (C) 2000-2007, SWsoft. Распространяется на условиях GNU GPL.

## ПЕРЕВОД
Перевод с английского Виктор Ерёмин <ErV2005@rambler.ru> 2007


vzcpucheck

title: vzcpucheck(8)

text:
# vzcpucheck(8)

## ИМЯ
vzcpucheck - показывает информацию о доступной мощности центрального процессора и её применении.

## ОБЗОР
vzcpucheck [-v]

## ОПИСАНИЕ
Этот скрипт показывает информацию о доступной мощности центрального процессора и её применении.

## ОПЦИИ
-v

Выводить информацию по каждой виртуальной среде.

## ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Возвращает 0 в случае успеха.

## СМ. ТАКЖЕ
vzctl(8).

## АВТОРСКИЕ ПРАВА
Copyright (C) 2000-2007, SWsoft. Распространяется на условиях GNU GPL.

## ПЕРЕВОД
Перевод с английского Виктор Ерёмин <ErV2005@rambler.ru> 2007