Последнее изменение текста: 19980504
Скопировано с www.bog.pp.ru: 2023.10.01
Bog BOS: IOS - настройка очередей
Когда пропускной
способности канала не хватает, пакеты падают на пол. Наша
задача, чтобу упали наименее ценные пакеты.
Возможные алгоритмы
обработки выходной очереди (входная
очередь нам
недоступна - по крайней мере,
непосредственно):
первый пришел, первый
обслуживается (время прихода по концу
пакета), как только очередь
переполнилась, то следующий пакет
теряется.
Устанавливается по
умолчанию на
интерфейсах более быстрых, чем E1 (все равно
мощности CPU не хватает)
weighted fair queuing: пакеты
автоматически
группируются в потоки
(остовываясь на адресах и портах), потоки с
низким трафиком имеют больше шансов
уцелеть, потоки с большим
трафиком делят
оставшуюся часть канала.
(config-if)# fair-queue рубеж
очередей
резервных-очередей
где
рубеж - число мест в выходной очереди для всех
толстых потоков, по
умолчанию - 64, для каждого
конкретного потока
выделяется не полее четверти от общего числа мест;
очередей - макс.число
одновременно
распознаваемых потоков (по
умолчанию 256);
резервных потоков - очередей для Resource Reservation Protocol (по
умолчанию - 0).
priority queuing - 4 очереди с
приоритетами high, medium, normal, low. Пока более
старшая очередь не опустеет, младшая не
начнет
обрабатываться. Жесткая политика для
медленных линий, когда уже некуда
деваться. Пакеты
размещаются по очередям в
зависимости от протокола и других
характеристик. Если очередь
переполняется в процессе
обработки старшей очереди, то пакет
теряется. Большая загрузка
процессора (не для Ethernet!).
распасовка пакетов по
приоритетам
(config)# priority-list
номер-листа protocol
имя-протокола {high|medium|normal|low}
[выражение]
где выражение
fragments
gt размер
lt размер
list
номер-списка-доступа
tcp порт
udp порт
определить приоритет по
умолчанию (изначально normal)
(config)# priority-list
номер-листа default {high|medium|normal|low}
определить приоритет на пакеты,
приходящие по
определенному
интерфейсу
(config)# priority-list
номер-листа interface
тип-интерфейса
номер-интерфейса {high|medium|normal|low}
определить число пакетов в
очереди
(config)# priority-list
номер-листа queue-limit для-high-20 для-medium-40 для-normal-60
для-low-80
привязать список
приоритетов к
интерфейсу (только один)
(config-if)# priority-group
номер-списка
посмотреть
show queuing priority
show interface
custom queuing - более мягкий
алгоритм для более быстрых линий, что-то типа round-robbin.
Можно задать 16 очередей и
определить для каждой из них размер и
максимальное
количество байт
отправляемых из нее на каждом цикле. Есть еще
суперприоритетная очередь 0.
распасовка пакетов по
приоритетам
(config)# queue-list
номер-листа protocol
имя-протокола
номер-очереди
[выражение]
где выражение
fragments
gt размер
lt размер
list
номер-списка-доступа
tcp порт
udp порт
определить очередь по
умолчанию
(config)# queue-list
номер-листа default
номер-очереди
определить очередь для═ пакетов,
приходящие по
определенному
интерфейсу
(config)# queue-list
номер-листа interface
тип-интерфейса
номер-интерфейса
номер-очереди
определить число пакетов в
очереди
(config)# queue-list
номер-листа queue
номер-очереди limit
число-пакетов-20
определить числа байт,
вынимаемых из очереди на каждом круге
(config)# queue-list
номер-листа queue
номер-очереди byte-count
число-байт-1500
привязать список очередей к
интерфейсу (только один)
(config-if)# custom-queue-list
номер-списка
посмотреть
show queuing custom
show interface
Примеры═
У себя я сделал следующее (пакеты
перестали падать, хотя канал явно
перегружен):
interface Serial0 - ручное
управление очередью на выходном канале
priority-group 1
priority-list 1 protocol ip low tcp ftp-data -
пакеты FTP могут и
подождать (passive так просто не
преодолеть)
priority-list 1 protocol ip high udp domain -
запросы DNS самые
приоритетные