Коммутация LAN : Протокол STP

Общие сведения о таймерах в протоколе связующего дерева и их настройка

20 октября 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Перевод, выполненный профессиональным переводчиком (22 сентября 2010) | Английский (7 октября 2015) | Отзыв


Содержание


Введение

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

Примечание: В документе обсуждается только то, как настраивать таймеры STP для связующего дерева в стандартном протоколе 802.1D. В этом документе не обсуждаются быстрый STP (RSTP) (стандарт IEEE 802.1w) или протокол с несколькими связующими деревьями (MST) (стандарт IEEE 802.1s). Более подробную информацию по протоколам RSTP и MST см. в следующей документации:

Предварительные условия

Требования

Для понимания данного документа требуется общее знание протокола STP. Дополнительные сведения о работе STP см. в документе Общие сведения и настройка конфигурации протокола связующего дерева (STP) на коммутаторах Catalyst.

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

  • Нестабильность

  • Замедления приложений

  • Пики нагрузки ЦП

  • Отказ локальной сети

См. 802.1D - Стандарты IEEE для Локальных и Общегородских сетей: Мосты Управления доступом к среде Media Access Control (MAC) leavingcisco.com (Пункт 8) для дополнительных сведений и ссылок на всех параметрах, которые обсуждает этот документ.

Используемые компоненты

Настоящий документ не имеет жесткой привязки к каким-либо конкретным версиям программного обеспечения и оборудования.

Условные обозначения

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

Таймеры протокола связующего дерева

Существует несколько таймеров STP, которые перечислены далее:

  • hello — время приветствия определяет интервал времени между блоками данных протокола моста BPDU, отправляемыми порту. По умолчанию это время равно 2 секундам, но можно выполнить его настройку в диапазоне от 1 до 10 секунд.

  • forward delay — задержка пересылки определяет время, затрачиваемое на состояния прослушивания и обучения. По умолчанию это время равно 15 секундам, но можно выполнить его настройку в диапазоне от 4 до 30 секунд.

  • max age — таймер максимального срока давности управляет максимальным интервалом времени до следующего сохранения портом моста информации из конфигурационного блока BPDU. По умолчанию это время равно 20 секундам, но можно выполнить его настройку в диапазоне от 6 до 40 секунд.

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

/image/gif/paws/19120/122-a.gif

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

См. следующий пример, который применим к схеме, приведенной в этом разделе:

  • Коммутаторы B и C получают блок BPDU конфигурации от коммутатора A со сроком давности сообщения, равным 0. На порту, связанном с устройством A, информация устаревает в течение (max age – 0) секунд. По умолчанию для этого таймера задано значение 20 секунд.

  • Коммутаторы D и E получают блок BPDU от коммутатора B со сроком давности сообщения, равным 1. На порту, который переходит к A, информационные века в (максимальный возраст – 1) сек. На этот раз 19 сек. по умолчанию.

  • Коммутатор F получает блок BPDU от коммутатора E со сроком давности сообщения, равным 2. На порту, связанном с устройством E, информация устаревает в течение (max age – 2) секунд. По умолчанию для этого таймера задано значение 18 секунд.

Другие параметры протокола связующего дерева

Стандарт IEEE 802.1D определяет протокол связующего STP. Помимо таймеров, описанных в разделе Таймеры протокола связующего дерева, стандарт IEEE также определяет следующие связанные с протоколом STP параметры:

  • диаметр домена STP (dia) — это значение определяет максимальное число мостов между любыми двумя точками подключения конечных станций. Стандартом IEEE рекомендуется устанавливать по умолчанию для таймеров STP максимальный диаметр из семи мостов.

  • задержка передачи моста (transit delay) — это значение интервала времени, проходящего между получением и передачей мостом одного кадра. Логически, это время прохождения через мост. IEEE рекомендует, чтобы задержка передачи по мосту не превышала одной секунды.

  • Задержка передачи BPDU (bpdu_delay) — это значение интервала времени между моментом получения блока BPDU портом и моментом, когда блок BPDU конфигурации фактически передается на другой порт. IEEE рекомендует, чтобы задержка передачи BPDU не превышала одной секунды.

  • завышение значения срока давности сообщения (msg_overestimate) — это значение, характеризующее увеличение срока давности сообщения каждым мостом перед пересылкой блока BPDU. Согласно информации в разделе Таймеры протокола связующего дерева коммутаторы Cisco (а, вероятно, и все остальные коммутаторы) добавляют 1 секунду к сроку давности сообщения перед пересылкой блока BPDU коммутатором.

  • потерянное сообщение (lost_msg) — это значение, определяющее число блоков BPDU, которые могут быть потеряны при пересылке BPDU из одного конца сети с мостовыми подключениями в другой. IEEE рекомендует, чтобы число утраченных BPDU было не больше трех.

  • задержка прерывания передачи (Tx_halt_delay) — это значение определяет максимальный интервал времени, который необходим мосту, чтобы фактически заблокировать порт в ситуациях, когда это необходимо сделать. IEEE рекомендует устанавливать для данного параметра значение одна секунда.

  • средняя задержка доступа (med_access_delay) — это значение определяет время, которое необходимо устройству для получения доступа к носителю для выполнения исходной передачи. Это время между моментом принятия ЦП решения об отправке кадра и моментом, когда кадр фактически покинет мост. IEEE рекомендует, чтобы для данного параметра устанавливалось значение не более 0,5 секунды.

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

  • Задержка сквозного распространения BPDU — это значение определяет интервал времени, необходимый блоку BPDU, для прохождения из одного конца сети в другой. Предположим, что диаметр домена равен 7 переходам, может быть потеряно не более 3 блоков BPDU, а время приветствия составляет 2 секунды. В этом случае используется следующая формула:

    End-to-end_BPDU_propa_delay
    = ((lost_msg + 1) x hello) + ((BPDU_Delay x (dia – 1)) 
    = ((3 + 1) x hello) + ((1 x (dia – 1)) 
    = 4 x hello + dia – 1 
    = 4 x 2 + 6 
    = 14 sec
  • завышенная оценка срока давности сообщения — назначением этого параметра является учет возраста блока BPDU с момента его создания. Предположим, что каждый мост увеличивает срок давности сообщения BPDU на 1 секунду. Используется следующая формула:

    Message_age_overestimate 
    = (dia – 1) x overestimate_per_bridge 
    = dia – 1 
    = 6
  • Максимальное время жизни кадра — это значение, определяющее максимальный интервал времени, в течение которого кадр, ранее отправленный в сеть с мостовыми соединениями, остается в этой сети, пока не достигнет места назначения. Используется следующая формула:

    Maximum_frame_lifetime
    = dia x transit_delay + med_access_delay 
    = dia + 0.5 
    = 7.5 
    = 8  (rounded)
  • Максимальная задержка прерывания передачи — это значение определяет интервал времени, необходимый для фактической блокировки порта, после того, как принято соответствующее решение о блокировке. IEEE рекомендует задавать для этого события не более одной секунды. Используется следующая формула:

    Maximum_transmission_halt_delay
    = 1

Значения по умолчанию для таймеров протокола связующего дерева

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

max age

Максимальный срок давности учитывает тот факт, что периферийный коммутатор в устойчивом состоянии не должен содержать устаревшие корневые данные (если корневое устройство активно). При определении значения max age необходимо учитывать совокупную задержку распространения блоков BPDU, а также завышенное значение срока давности сообщения. Поэтому используется следующая формула:

max_age 
= End-to-end_BPDU_propa_delay + Message_age_overestimate 
= 14 + 6 
= 20 sec

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

forward delay

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

  • Интервал времени с момента, когда первый порт моста переходит в режим прослушивания (и остается в нем во время последующего изменения настроек) до того момента, когда последний мост в LAN с мостовыми соединениями будет извещен о переменах в активной топологии

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

  • Интервал времени с момента прекращения последним мостом продвижения кадров, полученных из предыдущей топологии (максимальная задержка прерывания передачи), до момента исчезновения последнего кадра, отправленного в предыдущей топологии (максимальное время жизни кадра)

    Этот интервал времени обеспечивает отсутствие дублирующихся кадров.

Поэтому, удвоенное время задержки пересылки (время прослушивания + время обучения) охватывает все эти параметры. Используется следующая формула:

2 x forward delay 
= end-to-end_BPDU_propagation_delay + Message_age_overestimate + 
    Maximum_frame_lifetime + Maximum_transmission_halt_delay 
= 14 + 6 + 7.5 + 1 = 28.5 

forward_delay 
= 28.5 /2 
= 15 (rounded)

Настройка максимального срока давности и таймеров задержки пересылки

Среди всех этих параметров настройке подлежат только следующие:

Примечание: Возможность настройки этих параметров зависит от сети.

  • hello — от 1 до 6

  • max age

  • forward delay

  • diameter — значение зависит от сети.

Не изменяйте никакие значения из следующего списка. Оставьте для этих параметров рекомендованные IEEE значения:

  • lost_msg = 3

  • transit_delay = 1

  • bpdu_delay = 1

  • msg_overestimate = 1

  • Tx_halt_delay = 1

  • med_access_delay = 0,5

  • maximum_transmission_halt_delay = 1

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

  • При высокой нагрузке на ЦП

  • При перегрузках порта

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

max_age 
= End-to-end_BPDU_propa_delay + Message_age_overestimate 
= ((lost_msg + 1) x hello) + ((BPDU_Delay x (dia – 1)) + (dia – 1) x overestimate_per_
    bridge 
= (4 x hello) + dia – 1 + dia – 1 
= (4 x hello) + (2 x dia) – 2 


forward_delay 
= (End-to-end_BPDU_propa_delay + Message_age_overestimate + 
    Maximum_frame_lifetime + Maximum_transmission_halt_delay ) / 2 
= ((lost_msg + 1) x hello) + ((BPDU_Delay x (dia – 1)) + ((dia – 1)
    x overestimate_per_bridge)  + (dia x transit_delay) + med_access_delay 
    +  Maximum_transmission_halt_delay) / 2 
= ((4 x hello) + dia – 1 + dia – 1 + dia + 0.5 + 1) / 2 
= ((4 x hello) + (3 x dia) – 0.5) / 2

В результате этих расчетов получаются две окончательные формулы (если округлить значение 0,5):

max_age = (4 x hello) + (2 x dia) – 2 
forward_delay = ((4 x hello) + (3 x dia)) / 2

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

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

hello = 2 (default) then 
max_age = 14 sec 
forward_delay = 10 sec 
If hello = 1 then 
max_age = 10 sec 
forward_delay = 8 sec

Примечание: hello = 1 — это минимальное значение. Невозможно настроить этот параметр, чтобы получить меньше 10 секунд для максимального срока давности и 8 секунд для задержки пересылки, если диаметр равен 4.

Уменьшение времени приветствия до 1 секунды

Уменьшение времени приветствия до 1 секунды — простейший и наиболее надежный способ уменьшения параметров STP. Однако, следует помнить, что при снижении времени приветствия с 2 секунд до 1 секунды удваивается число блоков BPDU, которые отправляются и принимаются каждым из мостов. Это увеличение создает дополнительную нагрузку на ЦП, которому приходится обрабатывать в два раза больше блоков BPDU. Это может стать проблемой при наличии нескольких VLAN и магистралей.

Расчет диаметра

Диаметр полностью зависит от устройства сети. Диаметр — это максимальное число коммутаторов, через которые устанавливается связь между двумя коммутаторами в сети с мостовыми соединениями (сюда входят исходное и конечное устройства), подразумеваются наиболее протяженные цепочки. При этом ни через один коммутатор при определении диаметра пакет не должен проходить дважды. На схеме в разделе Таймеры протоколов связующего дерева настоящего документа можно увидеть, что в рассматриваемом примере диаметр равен 5 (путь F-E-B-A-C).

Теперь посмотрите на схему в этом разделе. На схеме показаны коммутаторы доступа (коммутаторы C, D и E), которые подключены к двум распределительным коммутаторам (коммутаторы A и B). Между распределительными коммутаторами и центральным уровнем имеется граница уровня 3 (L3). Домен с мостовыми соединениями заканчивается на распределительных коммутаторах. Диаметр STP равен 5:

  • C-A-D-B-E

  • D-A-C-B-E

/image/gif/paws/19120/122-b.gif

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

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

В разделе Таймеры протокола связующего дерева упоминалось, что каждый BPDU включает следующие таймеры STP: hello, forward delay и max age. Для моста IEEE не имеют значения локальные настройки значений таймеров. Мост IEEE учитывает значения таймеров в блоке BPDU, получаемом мостом. Фактически это означает, что значение имеет только таймер, настроенный для корневого моста STP. При утрате корневого моста, новый корневой мост начнет распространять свои локальные значения таймера на всю сеть. Поэтому, хоть и нет необходимости настраивать одинаковое значение таймера во всей сети, следует как минимум настроить все значения таймеров для корневого моста и резервного корневого моста.

Если используется коммутатор Cisco, работающий под управлением ПО Catalyst OS (CatOS), существует несколько макросов, которые позволяют настроить корневой мост и установить его параметры в соответствии с данными формулами. Выполните команду set spantree root vlan dia diameter hello hello_time, чтобы установить значения диаметра и времени приветствия. Например:

Taras> (enable) set spantree root 8 dia 4 hello 2 
VLAN 8 bridge priority set to 8192. 
VLAN 8 bridge max aging time set to 14. 
VLAN 8 bridge hello time set to 2. 
VLAN 8 bridge forward delay set to 10. 
Switch is now the root switch for active VLAN 8.

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


Дополнительные сведения


Document ID: 19120