Введение
В этом лабораторном занятии вы узнаете, как проверить, активна ли политика качества обслуживания сети (Quality of Service, QoS) в Linux. Вы будете использовать мощную команду tc для перечисления и проверки дисциплин и классов QoS, настроенных на ваших сетевых интерфейсах.
В частности, сначала вы используете команду tc qdisc show для перечисления активных дисциплин очереди и понимания их роли в управлении сетевым трафиком. Затем вы узнаете, как проверить классы QoS с помощью команды tc class, которые используются для классификации и приоритизации различных типов трафика. Наконец, вы научитесь проверять файлы сетевой конфигурации в каталоге /etc/network, чтобы понять, как политики QoS могут быть постоянно настроены.
Перечислить дисциплины QoS с помощью tc qdisc
На этом этапе вы узнаете, как перечислить дисциплины качества обслуживания сети (Quality of Service, QoS) с использованием команды tc. QoS представляет собой набор технологий, которые управляют сетевым трафиком для уменьшения потери пакетов, задержки и дребезга. Команда tc является мощным инструментом в Linux для настройки управления трафиком.
Команда tc qdisc используется для управления дисциплинами очереди. Дисциплина очереди (qdisc) - это часть ядра Linux, которая определяет планирование пакетов.
Чтобы перечислить в настоящее время настроенные дисциплины QoS на ваших сетевых интерфейсах, откройте терминал и введите следующую команду:
tc qdisc show
Нажмите Enter.
Вы должны увидеть вывод, похожий на следующий:
qdisc noqueue 0: dev lo root refcnt 2
qdisc fq_codel 0: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn
Разберём вывод:
qdisc: Указывает, что эта строка описывает дисциплину очереди.noqueue 0: dev lo: Показывает дисциплину очереди для локального интерфейса (lo).noqueueозначает, что очередь не используется, так как трафик на локальном интерфейсе обычно не подлежит регулированию.fq_codel 0: dev eth0: Показывает дисциплину очереди для сетевого интерфейсаeth0.fq_codel- это конкретный тип дисциплины очереди, который объединяет Fair Queueing (FQ) с Controlled Delay (CoDel).root: Указывает, что это корневая дисциплина очереди для устройства.- Остальные параметры (
refcnt,limit,flowsи т.д.) относятся к дисциплине очередиfq_codelи контролируют ее поведение.
Вывод, который вы увидите, может отличаться в зависимости от параметров по умолчанию сетевых интерфейсов в среде LabEx. Главное - понять, что команда tc qdisc show перечисляет активные дисциплины очереди.
Теперь попробуйте перечислить дисциплины очереди для конкретного интерфейса, например eth0:
tc qdisc show dev eth0
Нажмите Enter.
Эта команда покажет только дисциплину очереди, настроенную на интерфейсе eth0.
Понимание вывода команды tc qdisc show является первым шагом в управлении сетевым трафиком с помощью tc.
Нажмите Продолжить, чтобы перейти к следующему шагу.
Проверить классы QoS с помощью tc class
На предыдущем этапе вы узнали о дисциплинах очереди (qdisc). Теперь давайте рассмотрим классы QoS с использованием команды tc class.
В то время как дисциплины очереди определяют общее поведение планирования на интерфейсе, классы используются в определенных дисциплинах очереди (например, HTB или CBQ) для создания иерархических структур и применения различных правил к разным типам трафика. Представьте классы как категории или подразделения внутри дисциплины очереди.
Чтобы перечислить в настоящее время настроенные классы QoS, вам нужно указать сетевой интерфейс и родительскую дисциплину очереди или класс. Поскольку стандартная дисциплина очереди fq_codel на интерфейсе eth0 не использует иерархию классов так же, как некоторые другие дисциплины очереди, выполнение команды tc class show dev eth0 напрямую, возможно, изначально не покажет никаких классов.
Давайте попробуем выполнить эту команду, чтобы посмотреть на вывод:
tc class show dev eth0
Нажмите Enter.
Вероятно, вы не увидите никакого вывода или увидите вывод, указывающий, что классы не определены, похожий на следующий:
Это ожидаемо, так как fq_codel - это безклассовая дисциплина очереди. Безклассовые дисциплины очереди выполняют свою работу без необходимости классификации трафика на разные группы.
Однако, если была настроена дисциплина очереди, такая как HTB (Hierarchical Token Bucket) или CBQ (Class Based Queueing), вы бы увидели список классов, определенных в рамках этой дисциплины очереди, с указанием их параметров, таких как ограничения по пропускной способности, приоритеты и т.д.
Например, если на интерфейсе eth0 была настроена дисциплина HTB, вывод может выглядеть примерно так (это всего лишь пример, вы не увидите такого вывода в текущей среде):
class htb 1:1 root prio 0 rate 100Mbit ceil 100Mbit burst 1600b cburst 1600b
class htb 1:10 parent 1:1 prio 1 rate 50Mbit ceil 80Mbit burst 1600b cburst 1600b
class htb 1:20 parent 1:1 prio 2 rate 20Mbit ceil 30Mbit burst 1600b cburst 1600b
В этом гипотетическом примере:
class htb: Указывает на класс HTB.1:1: Идентификатор корневого класса.1:10,1:20: Идентификаторы дочерних классов, находящихся под корневым классом1:1.rate,ceil: Определяют гарантированную и максимальную пропускную способность для класса.prio: Определяет приоритет класса.
Хотя в стандартной конфигурации вы не видите классы, понимание команды tc class show является важным для работы с дисциплинами очереди, поддерживающими классы, когда они настроены.
Нажмите Продолжить, чтобы перейти к следующему шагу.
Проверить конфигурацию QoS в /etc/network
На предыдущих шагах вы использовали команду tc для просмотра текущих активных конфигураций QoS. В то время как tc показывает состояние во время выполнения, конфигурационные файлы часто определяют, как эти настройки применяются при запуске системы или включении сетевых интерфейсов.
На системах на основе Debian, таких как Ubuntu, настройки сетевых интерфейсов часто управляются в файле /etc/network/interfaces и файлах в директории /etc/network/interfaces.d/. Эти файлы могут включать команды, которые должны быть выполнены при настройке интерфейса, включая команды tc для настройки QoS.
Давайте проверим основной файл конфигурации сети. Откройте терминал и используйте команду cat для просмотра содержимого файла /etc/network/interfaces:
cat /etc/network/interfaces
Нажмите Enter.
Вы увидите базовую конфигурацию сетевого интерфейса. В среде LabEx вывод может выглядеть примерно так:
## interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
Этот файл определяет локальный интерфейс (lo) и основной сетевой интерфейс (eth0), который настроен на использование DHCP для получения IP - адреса.
Конфигурации QoS обычно не размещаются непосредственно в файле /etc/network/interfaces для сложных настроек. Вместо этого они часто включаются в отдельные скрипты или фрагменты конфигурации, которые выполняются при включении интерфейса. Эти фрагменты могут находиться в директории /etc/network/if - up.d/. Скрипты в этой директории выполняются после включения сетевого интерфейса.
Давайте перечислим файлы в директории /etc/network/if - up.d/, чтобы узнать, есть ли какие - то скрипты, связанные с QoS или управлением трафиком:
ls /etc/network/if-up.d/
Нажмите Enter.
Вывод покажет файлы, присутствующие в этой директории. Вы, возможно, увидите различные скрипты, связанные с конфигурацией сети, но, вероятно, нет ни одного, специально предназначенного для сложных настроек QoS в этой базовой среде.
## Example output (may vary)
avahi-autoipd ethtool mountnfs ntp openssh-server resolvconf upstart
Если бы были скрипты, предназначенные для применения правил tc при запуске системы, они обычно располагались бы здесь. Например, скрипт с именем qos - setup в этой директории мог бы содержать команды tc для настройки дисциплин очереди и классов.
Хотя в этой базовой среде вы не нашли явных конфигураций QoS в этих стандартных местах, знание, где искать (/etc/network/interfaces, /etc/network/interfaces.d/ и /etc/network/if - up.d/), является важным для понимания того, как QoS постоянно настраивается в системе Linux.
Нажмите Продолжить, чтобы завершить этот практический урок.
Резюме
В этом практическом уроке вы узнали, как проверить, активна ли сетевая политика QoS в Linux. Вы начали с использования команды tc qdisc show для перечисления активных дисциплин очереди на своих сетевых интерфейсах, понимая, что дисциплины очереди определяют планирование пакетов и являются ключевой частью конфигурации QoS. Вы проанализировали вывод, чтобы определить тип дисциплины очереди и связанный сетевой интерфейс, а также узнали, как перечислить дисциплины очереди для конкретного интерфейса с помощью команды tc qdisc show dev <interface>.



