Tag Archives: mq

QoS в Linux: поведение по умолчанию: pfifo_fast, mq

Этой заметкой начинается цикл статей на русском языке о QoS в Linux с актуальностью на момент времени 2014Q2. Базовой user space утилитой для управления трафиком является tc(traffic control), документация к которой устарела и содержит неточности. Различные HOWTO в большинстве своём датируются началом 2000-ых годов. Единственным достоверным источником о том как оно работает являются исходники ядра. Предполагается, что читатель владеет такими понятиями как классификация, маркировка, планирование(scheduling).

В качестве linux-дистрибутива будет использоваться Ubuntu 14.04(ядро 3.13.0-24-generic, но в один момент будет заменено на 3.14.1-031401-generic)

В Linux управление трафиком сосредоточено на исходящих интерфейсах, что вполне логично, поскольку напрямую мы не можем влиять на то, сколько трафика приходит на интерфейс; управление входящим трафиком, вообще говоря, может быть осуществлено только косвенно. По отношению к входящему(ingress) трафику тоже можно применять некоторые действия(в основном, policing, т.е. тупое удаление лишнего трафика), но в данной заметке это рассмотрено не будет. В действительности, для применения более сложных методов(чем простое удаление лишнего трафика) по отношению к входящему трафику существует два подхода – использование виртуальных интерфейсов ifb(с перенаправлением входящего трафика на ifb, а с ifb уже на исходящий интерфейс) или управление трафиком на исходящем интерфейсе(второй способ неудобен тем, что может быть два активных исходящих интерфейса и тем, что требуется классификация входящего трафика(в случае ISP, это уметь классифицировать абонента)). Таким образом, достаточно научиться управлять исходящим(egress) трафиком. Continue reading

Advertisements