Введение
Перед началом работы
Условные обозначения
Предварительные требования
Используемые компоненты
Обзор
Процесс SPD
Проверка состояния SPD
Проверка входной очереди
Прочее
Дополнительные сведения
В этом документе описан механизм избирательного отбрасывания пакетов, Selective Packet Discard (SPD), его контроль и настройка.
Примечание. В данном документе не приводятся способы устранения неполадок, выражающиеся в увеличении потерь входных данных в отчете по команде show interfaces на маршрутизаторе Cisco серии 12000. Для получения данных сведений см. раздел Устранение неполадок, связанных с потерями входных данных на IP-маршрутизаторе Cisco серии 12000.
Дополнительные сведения об условных обозначениях в документах см. в разделе Условные обозначения, используемые в технической документации Cisco.
Для данного документа нет особых требований.
Сведения, содержащиеся в данном документе, относятся к следующим версиям программного и аппаратного обеспечения.
Маршрутизаторы Cisco серии 7200
Маршрутизаторы Cisco серии 7500
IP-маршрутизатор Cisco серии 12000
Все версии ПО Cisco IOS®
Сведения, содержащиеся в данном документе, были получены с устройств в специальной лабораторной среде. Все устройства, используемые в этом документе, были запущены в исходной (заданной по умолчанию) конфигурации. В рабочей сети необходимо изучить потенциальное воздействие всех команд до их использования.
Выборочное отбрасывание пакетов (SPD) - механизм управления входными очередями на уровне процесса на процессоре маршрутизации (RP). Цель SPD – предоставить приоритет пакетам протокола маршрутизации и другим важным источникам управления трафиком уровня 2 в течение периодов перегрузки очереди на уровне процесса.
На платформах Cisco 7x00 и в системах Express Forwarding (CEF) 7500 большое количество транзитных пакетов пересылалось процессором маршрутизации для заполнения кэша быстрой коммутации. В данном случае SPD требовался для обеспечения приоритета пакетов протокола маршрутизации над транзитными пакетами, находящимися в той же очереди.
В настоящее время на Интернет-маршрутизаторе Cisco версии 12000 и на 7500 под управлением CEF только трафик, направленный на сам маршрутизатор, направляется на уровень процесса. В этом случае SPD используется для расположения пакетов протокола маршрутизации по приоритетам при наличии управляющего трафика, например простого протокола управления сетью (SNMP) или в случае атаки типа "отказ в обслуживании" (DoS), направляющей трафик на RP.
Когда линейная карта на маршрутизаторе Cisco серии 12000 определяет, что входящий пакет следует передать RP для последующей обработки, пакет передается посредством коммутационной матрицы как ячейки Cisco и принимается механизмом сегментации и повторной сборки Cisco (CSAR) логической матрицы программируемых полей (FPGA).
Пакет предназначен для обработки трафика между коммутационной матрицей и RP CPU, именно здесь выполняются проверки SPD. Это относится к пакетам IP, пакетам сетевой службы без предварительного соединения (CLNS), средствам поддержки активности уровня 2 и подобным пакетам, направляемым на RP. SPD выполняет две проверки и может отбросить пакет в одном из следующих состояний:
Проверка состояния SPD
Проверка входной очереди
Очередь процесса IP на процессоре маршрутизации RP разделена на две части: общая очередь пакетов и приоритетная очередь. Пакеты, помещенные в общую очередь пакетов, подвергаются проверке состояния SPD; пакеты, входящие в приоритетную очередь, данной проверке не подвергаются. Пакеты высокого приоритета из приоритетной очереди, такие как прецедент IP 6 или 7, не должны быть отброшены. Пакеты, не предназначенные для приоритетной очереди, могут быть отброшены в зависимости от длины общей очереди пакетов в зависимости от состояния SPD. Общая очередь пакетов может находиться в одном из трех состояний, и, таким образом, низкоприоритетные пакеты могут обрабатываться различными способами.
СОСТОЯНИЕ NORMAL: размер очереди <= min
RANDOM DROP (случайное отбрасывание): min <= размер очереди <= max
FULL DROP (полное отбрасывание): max <= размер очереди
В состоянии NORMAL не отбрасываются правильно или неправильно сформированные пакеты.
В состоянии RANDOM DROP происходит случайное отбрасывание правильно сформированных пакетов. Если настроен агрессивный режим, происходит отбрасывание всех неправильно сформированных пакетов; в противном случае они обрабатываются как и правильно сформированные пакеты.
В состоянии FULL DROP отбрасываются все правильно и неправильно сформированные пакеты. Данные минимальные (по умолчанию 73) и максимальные (по умолчанию 74) значения получены от наименьшей очереди удержания на шасси, но могут быть изменены с помощью глобальных команд ip spd queue min-threshold и ip spd queue max-threshold.
Механизм SPD может быть настроен для работы в двух различных режимах: обычном (по умолчанию) и агрессивном. Единственное отличие между двумя режимами заключается в способе учета маршрутизатором недопустимых IP-пакетов (недопустимой контрольной суммы, номера версии, длины заголовка, длины пакета). Неправильно сформированные IP-пакеты отбрасываются SPD в агрессивном режиме и в состоянии случайного отбрасывания Random. Чтобы настроить агрессивный режим, используйте команду ip spd mode aggressive.
Примечание. Агрессивный режим не внедрен на Интернет-маршрутизаторе Cisco серии 12000, поскольку неправильно сформированные пакеты IP отбрасываются непосредственно входящей линейной платой и не направляются на процессор гигабитного маршрутизатора (GRP). В результате агрессивный режим не требуется на данной конкретной платформе.
Входная очередь поддерживается аппаратным интерфейсом и общая для всех подчиненных интерфейсов. Без SPD все пакеты отбрасываются, если входная очередь заполнена при получении пакета. Размер входной очереди по умолчанию составляет 75 и может быть настроен для каждого интерфейса с помощью команды конфигурации интерфейса hold-queue [размер] in. Число пакетов во входной очереди можно просмотреть в поле "input queue" (входная очередь) командой show interfaces.
router#show interfaces pos 3/0 POS3/0 is up, line protocol is up Hardware is Packet over SONET Internet address is 137.40.55.2/24 MTU 4470 bytes, BW 2488000 Kbit, DLY 100 usec, rely 255/255, load 1/255 Encapsulation PPP, crc 32, loopback not set Keepalive not set Scramble disabled LCP Open Open: IPCP, CDPCP, OSICP, TAGCP Last input 00:00:01, output 00:00:00, output hang never Last clearing of "show interface" counters 2w3d Queueing strategy: fifo Output queue 0/40, 0 drops; input queue 0/75, 0 drops 30 second input rate 9000 bits/sec, 0 packets/sec 30 second output rate 0 bits/sec, 0 packets/sec 456292 packets input, 917329913 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 parity 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 112046977 packets output, 32078928095 bytes, 0 underruns 0 output errors, 0 applique, 3 interface resets 0 output buffer failures, 0 output buffers swapped out 1 carrier transitions
Примечание. Сокращение размера входной очереди на одном интерфейсе может привести к значительному количеству потерянных входных данных на всех других интерфейсах. Убедитесь, что минимальный размер входной очереди удержания равен, по меньшей мере, 75.
Даже при SPD поведение обычных пакетов IP остается прежним; тем не менее, пакеты протокола маршрутизации имеют более высокий приоритет, так как SPD распознает пакеты протокола маршрутизации с помощью поля приоритета IP. Следовательно, если значение IP-приоритета равно 6, пакету дается приоритет.
SPD назначает приоритеты этим пакетам, позволяя программе ставить их во входящую очередь уровня процесса и превышать максимальный размер этой очереди. Количество пакетов, разрешенное сверх обычного предела, называется дополнительным резервом SPD (headroom) и по умолчанию равно 100 пакетам. Это означает, что пакет с высоким приоритетом не отбрасывается, если размер очереди входящих пакетов меньше 175 (размер входящей очереди по умолчанию + размер расширенного резерва SPD).
Аналогично выпуску ПО Cisco 12.0(22)S, значение по умолчанию spd headroom равно 1000 для Интернет-маршрутизаторов Cisco серии 12000 для размещения более крупных сетей SP. Это происходит из-за того, что обмен сообщениями протокола BGP идет с постоянно растущим числом соседей для объявления постоянно растущего числа маршрутов через интерфейсы с постоянно растущей скоростью. Единичная очистка BGP зачастую может приводить к тысячам потерь во входной очереди на одном интерфейсе, что может серьезно нарушать время сходимости.
Резерв SPD можно настроить с помощью команды spd headroom. Его текущий уровень можно просмотреть в выходных данных команды show spd или show ip spd.
Router#show spd Headroom: 1000, Extended Headroom: 10 Router#show ip spd Current mode: normal Queue min/max thresholds: 73/74, Headroom: 1000, Extended Headroom: 10 IP normal queue: 0, priority queue: 0. SPD special drop mode: none
Примечание. Размер обычной очереди IP также можно контролировать с помощью команды show ip spd.
Пакетам, не являющимся IP-пакетами, например, пакетам службы передачи без установления соединения протокола взаимодействия промежуточных систем (CLNS ISIS), пакетам протокола точка-точка (PPP) и пакетам keepalive Высокоуровневого управления каналом передачи данных (HDLC) до недавнего времени назначался обычный приоритет, так как они были пакетами второго уровня, а не третьего. Кроме того, пакетам протокола внутреннего шлюза (IGP), работающим на третьем уровне или выше, назначался более высокий приоритет по сравнению с обычными пакетами IP, но равный приоритету пакетов BGP. Таким образом, во время сходимости BGP или в периоды очень высокой активности BGP IGP-пакеты hello и keepalive часто отбрасывались, вызывая сбой в работе соседей IGP.
В связи с тем, что устойчивость протокола IGP и канала более подвержена нарушению и играет более важную роль, чем устойчивость BGP, таким пакетам присваивается наивысший приоритет и дополнительный резерв SPD (по умолчанию для 10 пакетов). Это означает, что эти пакеты не отбрасываются, если размер очереди входящих пакетов ниже 185 (размер входной очереди по умолчанию + размер резерва spd + дополнительный резерв spd).
Расширенный резерв SPD можно настроить с помощью команды spd extended [size] и его текущий уровень просматривается в выходных данных команды show spd или show ip spd.
Router#show ip spd Current mode: normal Queue min/max thresholds: 73/74, Headroom: 100, Extended Headroom: 10 IP normal queue: 0, priority queue: 0. SPD special drop mode: none
Примечание. На Интернет-маршрутизаторе Cisco серии 12000 пакеты keepalive HDLC и PPP наряду с пакетами протокола маршрутизации CLNS ISIS обрабатываются в качестве высокоприоритетных и могут образовывать очередь в расширенном резерве SPD начиная с выпуска ПО Cisco IOS 12.0(12)S1. Начиная с выпуска ПО Cisco IOS 12.0(18)S, все пакеты IGP могут также быть включены в очередь в расширенном резерве SPD.
Значения по умолчанию, установленные до выпуска ПО Cisco IOS 12.0(22)S:
Размер входной очереди = 75
Размер резерва SPD = 100
Размер расширенного резерва = 10
Значения по умолчанию, установленные после выпуска ПО Cisco IOS 12.0(22)S, следующие:
Размер входной очереди = 75
Размер резерва SPD = 1000
Размер расширенного резерва = 10
В первом случае результат следующий:
IP-пакеты с обычным приоритетом могут ставиться в очередь до достижения максимального размера очереди по умолчанию (75)
IP-пакеты с высоким приоритетом ставятся в очередь до предела очереди по умолчанию + spd_headroom (резерв SPD) (175 или 1075 в зависимости от версии Cisco IOS)
Пакеты поддержания активности CLNS, IGP и LC могут ставиться в очередь до достижения максимального размера очереди по умолчанию + spd_headroom + spd_ext_headroom (185 или 1085 на основе выпуска ПО Cisco IOS).
Ниже представлены дополнительные рекомендации и сведения о SPD.
По умолчанию SPD включен. Эту функцию можно включить или отключить с помощью глобальной команды spd enable.
Первоначально функция SPD была доступна только на интерфейсах передачи пакетов через Sonet (PoS).
До выпуска ПО Cisco IOS 12.0(21)S механизм SPD не работал на линейных картах Gigabit Ethernet (обработчика 1 и обработчика 2) и линейных картах Fast Ethernet, установленных на Интернет-маршрутизаторе Cisco серии 12000. Очередь входящих пакетов должна быть увеличена для хранения избыточных пакетов.
Значения счетчика потерь (сбросов) SPD на маршрутизаторе Cisco серии 7200/7500 можно просмотреть в выходных данных команды show interfaces в ПО Cisco IOS начиная с версий 12.1(1), 12.1(1)T и 12.0(9)ST без поддержки механизма организации очереди FIFO и версий 12.2(7), 12.2(7)T и 12.1(7)E с поддержкой механизма организации очереди FIFO. На других выпусках и на Интернет-маршрутизаторе Cisco серии 12000 данный счетчик можно просмотреть только путем ввода команды show interface switching. Например, команда show interface pos 0/1 switching может использоваться для просмотра сбросов SPD, агрессивных сбросов и приоритетов.
Ниже приведен пример:
7500_Router#show interfaces FastEthernet0/0/0 is up, line protocol is up Hardware is cyBus FastEthernet Interface, address is 0090.9282.7000 (bia 0090) MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, rely 255/255, load 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) Full-duplex, 100Mb/s, 100BaseTX/FX ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:01, output 00:00:01, output hang never Last clearing of "show interface" counters never Queueing strategy: fifo Output queue 0/40, 0 drops; input queue 0/75, 0 drops, 0 flushes 30 second input rate 4000 bits/sec, 9 packets/sec 30 second output rate 0 bits/sec, 0 packets/sec 2628397 packets input, 546327119 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored 0 watchdog, 0 multicast 0 input packets with dribble condition detected 264792 packets output, 225434458 bytes, 0 underruns 0 output errors, 0 collisions, 20 interface resets 0 babbles, 0 late collision, 0 deferred 22 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out