воскресенье, 25 марта 2012 г.

STP (Spanning Tree Protocol)

Целью данной лабораторной работы является анализ конфигурации Basic Spanning Tree Protocol ( STP ) . При выполнении будет использоваться Cisco Packet Tracer 5.3. После выполнения лабораторной работы будут получены знания по базовым командам для диагностики STP на оборудования CISCO, а также закреплены навыки базовой конфигурации коммутаторов 2-го уровня Cisco ( Cisco Switches ).
План адресации

Анализ Basic Spanning Tree Protocol ( STP )

1. Выполнить базовую конфигурацию для Sw1, Sw2, Sw3, Sw4
2. Выполнить конфигурацию сетевых параметров для Sw1, Sw2, Sw3, Sw4
3. Проанализировать конфигурацию STP

1. Выполнить базовую конфигурацию

Sw1

Switch>enable
Switch#configure terminal

1.1 Установить имя хоста
Switch(config)#hostname Sw1


1.2 Отключить domain lookup
Sw1(config)#no ip domain lookup

1.3 Установить шифрованный пароль для Priveleged EXEC Mode
Sw1(config)#enable secret cisco

1.4 Включить logging synchronous и авторизацию по паролю для console0 и vty 0-15
Sw1(config)#line console 0
Sw1(config-line)#logging synchronous
Sw1(config-line)#password cisco2
Sw1(config-line)#login
Sw1(config-line)#exit
Sw1(config)#line vty 0 15
Sw1(config-line)#logging synchronous
Sw1(config-line)#password cisco3
Sw1(config-line)#login
Sw1(config-line)#end

1.5 Сохранить промежуточную конфигурацию
Sw1#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]


Sw2

Switch>enable
Switch#configure terminal

1.1 Установить имя хоста
Switch(config)#hostname Sw2

1.2 Отключить domain lookup
Sw2(config)#no ip domain lookup

1.3 Установить шифрованный пароль для Priveleged EXEC Mode
Sw2(config)#enable secret cisco

1.4 Включить logging synchronous и авторизацию по паролю для console0 и vty 0-15
Sw2(config)#line console 0
Sw2(config-line)#logging synchronous
Sw2(config-line)#password cisco2
Sw2(config-line)#login
Sw2(config-line)#exit
Sw2(config)#line vty 0 15
Sw2(config-line)#logging synchronous
Sw2(config-line)#password cisco3
Sw2(config-line)#login
Sw2(config-line)#end

1.5 Сохранить промежуточную конфигурацию
Sw2#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]


Sw3

Switch>enable
Switch#configure terminal

1.1 Установить имя хоста
Switch(config)#hostname Sw3

1.2 Отключить domain lookup
Sw3(config)#no ip domain lookup

1.3 Установить шифрованный пароль для Priveleged EXEC Mode
Sw3(config)#enable secret cisco

1.4 Включить logging synchronous и авторизацию по паролю для console0 и vty 0-15
Sw3(config)#line console 0
Sw3(config-line)#logging synchronous
Sw3(config-line)#password cisco2
Sw3(config-line)#login
Sw3(config-line)#exit
Sw3(config)#line vty 0 15
Sw3(config-line)#logging synchronous
Sw3(config-line)#password cisco3
Sw3(config-line)#login
Sw3(config-line)#end

1.5 Сохранить промежуточную конфигурацию
Sw3#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]

Sw4

Switch>enable
Switch#configure terminal

1.1 Установить имя хоста
Switch(config)#hostname Sw4

1.2 Отключить domain lookup
Sw4(config)#no ip domain lookup

1.3 Установить шифрованный пароль для Priveleged EXEC Mode
Sw4(config)#enable secret cisco

1.4 Включить logging synchronous и авторизацию по паролю для console0 и vty 0-15
Sw4(config)#line console 0
Sw4(config-line)#logging synchronous
Sw4(config-line)#password cisco2
Sw4(config-line)#login
Sw4(config-line)#exit
Sw4(config)#line vty 0 15
Sw4(config-line)#logging synchronous
Sw4(config-line)#password cisco3
Sw4(config-line)#login
Sw4(config-line)#end

1.5 Сохранить промежуточную конфигурацию
Sw4#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]


2. Выполнить конфигурацию сетевых параметров
Sw1
2.1 Отключить все порты
Sw1(config)#interface range FastEthernet 0/1-24
Sw1(config-if-range)#shutdown
Sw1(config-if-range)#exit

2.2. Включить порты с F0/1 по F0/3 в trunk mode
Sw1(config)#interface range FastEthernet 0/1-3
Sw1(config-if-range)#switchport mode trunk
Sw1(config-if-range)#no shutdown

2.3. Включить порты с F0/4 по F0/6 в access mode
Sw1(config)#interface range FastEthernet 0/4-6
Sw1(config-if-range)#switchport mode access
Sw1(config-if-range)#no shutdown
Sw1(config-if-range)#exit

2.4. Установить IP адреса на интерфейсе VLAN1
Sw1(config)#interface VLAN 1
Sw1(config-if)#ip address 192.168.10.1 255.255.255.0
Sw1(config-if)#no shutdown
Sw1(config-if)#end

2.5. Проверить правильность настройки командой ping
ping 192.168.10.1

2.6.Сохранить промежуточную конфигурацю
Sw1#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]

Sw2

2.1 Отключить все порты
Sw2(config)#interface range FastEthernet 0/1-24
Sw2(config-if-range)#shutdown
Sw2(config-if-range)#exit

2.2. Включить порты с F0/1 по F0/3 в trunk mode
Sw2(config)#interface range FastEthernet 0/1-3
Sw2(config-if-range)#switchport mode trunk
Sw2(config-if-range)#no shutdown

2.3. Включить порты с F0/4 по F0/6 в access mode
Sw2(config)#interface range FastEthernet 0/4-6
Sw2(config-if-range)#switchport mode access
Sw2(config-if-range)#no shutdown
Sw2(config-if-range)#exit

2.4. Установить IP адреса на интерфейсе VLAN1
Sw2(config)#interface VLAN 1
Sw2(config-if)#ip address 192.168.10.2 255.255.255.0
Sw2(config-if)#no shutdown
Sw2(config-if)#end

2.5. Проверить правильность настройки командой ping
ping 192.168.10.2

2.6.Сохранить промежуточную конфигурацю
Sw2#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]

Sw3

2.1 Отключить все порты
Sw3(config)#interface range FastEthernet 0/1-24
Sw3(config-if-range)#shutdown
Sw3(config-if-range)#exit

2.2. Включить порты с F0/1 по F0/3 в trunk mode
Sw3(config)#interface range FastEthernet 0/1-3
Sw3(config-if-range)#switchport mode trunk
Sw3(config-if-range)#no shutdown

2.3. Включить порты с F0/4 по F0/6 в access mode
Sw3(config)#interface range FastEthernet 0/4-6
Sw3(config-if-range)#switchport mode access
Sw3(config-if-range)#no shutdown
Sw3(config-if-range)#exit

2.4. Установить IP адреса на интерфейсе VLAN1
Sw3(config)#interface VLAN 1
Sw3(config-if)#ip address 192.168.10.3 255.255.255.0
Sw3(config-if)#no shutdown
Sw3(config-if)#end

2.5. Проверить правильность настройки командой ping
ping 192.168.10.3

2.6.Сохранить промежуточную конфигурацю
Sw3#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]

Sw4

2.1 Отключить все порты
Sw4(config)#interface range FastEthernet 0/1-24
Sw4(config-if-range)#shutdown
Sw4(config-if-range)#exit

2.2. Включить порты с F0/1 по F0/3 в trunk mode
Sw4(config)#interface range FastEthernet 0/1-3
Sw4(config-if-range)#switchport mode trunk
Sw4(config-if-range)#no shutdown

2.3. Включить порты с F0/4 по F0/6 в access mode
Sw4(config)#interface range FastEthernet 0/4-6
Sw4(config-if-range)#switchport mode access
Sw4(config-if-range)#no shutdown
Sw4(config-if-range)#exit

2.4. Установить IP адреса на интерфейсе VLAN1
Sw4(config)#interface VLAN 1
Sw4(config-if)#ip address 192.168.10.4 255.255.255.0
Sw4(config-if)#no shutdown
Sw4(config-if)#end

2.5. Проверить правильность настройки командой ping
ping 192.168.10.4

2.6.Сохранить промежуточную конфигурацю
Sw4#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]

3. Проанализировать конфигурацию STP
Sw4
Sw4#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32769
Address 0001.9791.82DC
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0001.9791.82DC
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 19 128.1 P2p
Fa0/2 Desg FWD 19 128.2 P2p
Fa0/3 Desg FWD 19 128.3 P2p
Fa0/4 Desg FWD 19 128.4 P2p
Fa0/5 Desg FWD 19 128.5 P2p
Fa0/6 Desg FWD 19 128.6 P2p

Sw1
Sw1#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32769
Address 0001.9791.82DC
Cost 19
Port 1(FastEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 000A.413B.C454
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/3 Desg FWD 19 128.3 P2p
Fa0/4 Desg FWD 19 128.4 P2p
Fa0/5 Desg FWD 19 128.5 P2p
Fa0/6 Desg FWD 19 128.6 P2p
Fa0/1 Root FWD 19 128.1 P2p
Fa0/2 Desg FWD 19 128.2 P2p

Sw3
Sw3#show spanning-tree
VLAN0001

Spanning tree enabled protocol ieee
Root ID Priority 32769
Address 0001.9791.82DC
Cost 19
Port 2(FastEthernet0/2)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0060.702B.4E59
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Altn BLK 19 128.1 P2p
Fa0/2 Root FWD 19 128.2 P2p
Fa0/3 Altn BLK 19 128.3 P2p
Fa0/4 Desg FWD 19 128.4 P2p
Fa0/5 Desg FWD 19 128.5 P2p
Fa0/6 Desg FWD 19 128.6 P2p

Sw2
Sw2#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32769
Address 0001.9791.82DC
Cost 19
Port 3(FastEthernet0/3)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0030.F250.433D
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Altn BLK 19 128.1 P2p
Fa0/2 Desg FWD 19 128.2 P2p
Fa0/3 Root FWD 19 128.3 P2p
Fa0/4 Desg FWD 19 128.4 P2p
Fa0/5 Desg FWD 19 128.5 P2p
Fa0/6 Desg FWD 19 128.6 P2p


В итоге получается следующая STP - топология.

Дополнительные команды для анализа работы STP
( не все команды доступны в Cisco Packet Tracer )
show spanning-tree summary — отображает сводку состояний портов
show spanning-tree root — отображает конфигурацию и состояние корневого моста
show spanning-tree detail — отображает подробные сведения о портах
show spanning-tree interface — выводит состояние и конфигурацию интерфейса STP
show spanning-tree blockedports — отображает заблокированные порты

STP (Spanning Tree Protocol)

Spanning Tree Protocol (сокращённо STP)(протокол остовного дерева) — сетевой протокол, работающий на втором уровне модели OSI. Основан на одноимённом алгоритме, который разработала Радья Перлман (англ. Radia Perlman)
Основное назначение протокола Spanning Tree - построение топологии ЛВС без избыточного дублирования соединений или закольцовывания, недопустимых в силу логики построения ЛВС. STP позволяет организовать в сети, построенной при помощи мостов (bridges), отказоустойчивую архитектуру.
Используя STP, вы можете построить сеть, в которой существует несколько параллельных путей, и гарантировать при этом, что:
резервные пути прохождения трафика при нормальном функционировании основного пути заблокированы;
один из резервных путей активизируется при нарушении основного пути.
Например, на рисунке 1 показана сеть, построенная на четырех коммутаторах, поддерживающих протокол STP. Это обстоятельство позволяет соединить их избыточным количеством линков, которые в обычных условиях создали бы петли и привели к неработоспособности сети. Однако, при инициализации сети STP обнаруживает дублирующие пути и оставляет на каждое направление только один, переводя остальные задействованные в линках порты в состояние "blocking" (на рисунке соответствующие линки зачеркнуты). При нарушении основного канала передачи (например, в следствие отключения одного из коммутаторов), STP обнаруживает этот факт и задействует запасной маршрут.

Протокол разработан в начале 90-х годов XX века (ANSI/IEEE 802.1D 1993 Edition) и дорабатывался в 1996 и 1998 годах. В качестве модели используется граф в виде дерева. Построение дерева сети начинается с корня (root) -- устройства, выигравшего выборы корневого (designated root). Designated root -- это просто отправная точка для построения активной незакольцованной топологии, в которой физические кольца не дают логических колец. Иными словами, это логическое понятие.

 Важно заметить, что Spanning Tree Protocol определен для различных сред передачи данных (MAC, Media Access Control). Далее в тексте рассматриваются примеры сетей в основном на базе Ethernet, как наиболее распространенной.
 BPDU - это именно пакеты, а не фреймы. Это ясно из BPDU пакеты инкапсулируются в используемый данной топологией тип фрейма с мультикастным MAC адресом в поле назначения, что обуславливает передачу этих пакетов через неинтеллектуальное оборудование, не знающее о существовании Spanning Tree.
Работа STP подразумевает выполнение следующих условий:
Возможность передачи информации между мостами, что осуществляется путем передачи каждым STP-совместимым устройством специальных блоков данных - Bridge Protocol Data Units (BPDU). Эти блоки данных передаются в пакетах с определенным групповым адресом назначения (multicast address), зарезервированным в
Один из мостов функционирует как "ведущее" устройство, называемое Designated Root Bridge.
Designated root присутствует всегда, даже когда топология не содержит физических колец. Если в сети только одно STP-совместимое устройство - до тех пор, пока STP не выключен, оно будет анонсировать себя. Каждое STP-совместимое устройство начинает работу, считая себя designated root, так что в сети с единственным STP-совместимым устройством оно и является Designated Root Bridge.
Если же в сети присутствует более устройства, поддерживающего STP, то Designated Root Bridge выбирается путем голосования (выборов) на основе значения параметра Bridge Identifier, обычно являющегося комбинацией уникального MAC-адреса моста и устанавливаемого для моста приоритета. На роль Designated Root Bridge назначается мост с наименьшим значением Bridge Identifier.
 Для всех остальных мостов в сети определяется Root Port, т.е. порт моста, ближайший к Root Bridge. От других портов, соединенных с root bridge непосредственно или через другие мосты, он отличается своим идентификатором, который содержит его номер и "вес", который может быть задан администратором.
 Другой величиной, влияющей на процесс выборов, является Root Path Cost. Она состоит из стоимости пути до Root Port данного моста плюс стоимость путей до Root Port мостов по всему маршруту до Root Bridge.
 Помимо Designated Root Bridge в STP вводится логическое понятие Designated Bridge. Владелец этого статуса считается главным в обслуживании данного сегмента ЛВС. Статус Designated Bridge также является выборным и может переходить от одного устройства к другому.
 Аналогичным образом вводится выборное логическое понятие Designated Port - порта, который обслуживает данный сегмент сети. Для Designated Port вводится понятие Designated cost, описывающее стоимость пути.
В зависимости от содержимого получаемых от соседних устройств конфигурационных пакетов то или иное устройство перестает оспаривать статус Designated Root Bridge и начинает анонсировать устройство, выигравшее этот статус в процессе выборов. Так происходит до тех пор, пока ситуация не придет к завершающей стадии, которая характеризуется следующим образом:
В сети только одно устройство, считающее себя корнем, а остальные устройства периодически анонсируют его как корень, что поддерживает статус кво, обновляя таймеры на всех STP-совместимых устройствах.
Root Bridge периодически посылает во все свои порты пакеты с BPDU. Интервал времени, через который происходит посылка, называется Hello Time.
В каждом сегменте сети имеется единственный Designated Bridge Port - порт, через который проходит обмен трафиком с Root Bridge. Этот порт имеет наименьшее значение Root Path Cost по сравнению с другими портами в сегменте, либо меньший bridge ID.
BPDU принимаются и отправляются STP-совместимым устройством на всех его портах, даже на тех, которые были "выключены" работой STP. Однако BPDU не принимаются на портах, которые были "выключены" администратором.
Каждый мост осуществляет пересылку (forwarding) пакетов только между Root Port и портами, которые являются Designated Bridge Port для соответствующего сегмента. Все остальные порты находятся в состоянии "Blocking".
 Как уже говорилось, корень не несет на себе иных обязанностей, кроме анонса своих параметров согласно спецификации Spanning Tree протокола, а это, в частности, значит, что в сети, не содержащей физических колец или избыточных соединений, от изменения владельца статуса Designated Root Bridge пути пакетов, пересылаемых между двумя произвольными станциями не изменится.
 Спецификация протокола не накладывает ограничений на время, в которое могут начаться выборы того или иного параметра, а лишь описывает необходимые для этого условия.

К числу ситуаций, в которых возникают выборы как минимум одного из параметров, относятся:
подключение в сеть нового STP-совместимого устройства;
устаревание имеющихся данных (например, в результате выхода из строя или отключения одного из устройств, участвовавших в создании дерева);
административная акция, изменяющая топологию сети.

В качестве параметров при выборах используются следующие величины:
Постоянные величины:
root path cost
стоимость пути к корневому устройству. Чем меньше значение, тем выше приоритет
bridge identifier
идентификатор устройства. Чем меньше значение, тем больше приоритет
port identifier
идентификатор порта. Чем меньше значение, тем выше приоритет
Выборные величины:
designated port
назначенный порт
designated root
назначенный корень
designated cost
назначенная стоимость

Величины bridge identifier и port identifier являются составными и образуются из поля приоритета (может устанавливаться администратором) и поля, присваиваемого производителем (некоторые устройства могут поддерживать установку этих идентификаторов целиком).
В момент обновления конфигурации STP-совместимое устройство изменяет состояние своих портов - они поочередно принимают одно из следующих возможных значений:
блокирован (Blocking)
Заблокирован. Однако, фреймы содержащие STP пакеты (bpdu), принимаются и обрабатываются, в отличие от пользовательских фреймов;
слушает (Listening)
Первый этап подготовки к состоянию Forwarding. Фреймы, содержащие STP пакеты (bpdu), принимаются и обрабатываются, в отличие от пользовательских фреймов;
обучается (Learning)
Второй этап подготовки к состоянию Forwarding. Фреймы, содержащие STP пакеты (bpdu), принимаются и обрабатываются, в отличие от пользовательских фреймов;
передает (forwarding)
Рабочее состояние портов устройства. Передаются как фреймы, содержащие STP пакеты, так и фреймы пользовательских протоколов.
 Время, на которое порт попадает в то или иное состояние, определяется значениями пауз, которые передаются посредством C-BPDU вместе с остальными параметрами.
 Согласно стандарту, во время нахождения в состояниях Blocking, Listening и Learning пересылка не-STP пакетов не разрешена. В то же время, bpdu-пакеты не обрабатываются только в случае если порт выключен администратором. Это говорит о том, что если порты находятся в режимах Blocking, Listening или Learning - сеть работает только на STP протокол, но не на пользователя. Этим можно воспользоваться для организации атаки "отказ в обслуживании" (Denial of Service, DoS), в терминах.
 Собственно, причина, по которой протокол работает именно таким образом, проста - все так организовано для того, чтобы избежать хаотичного дублирования и/или размножения пакетов в различные сегменты сети в момент перестройки ее топологии. Дублирование и/или размножение пакетов возможно, например, за счет возникновения временных колец, возникающих в процессе переключения состояния того или иного линка.
 В силу того, что топология сети определяется при участии протокола STP возможна атака по схеме ложный объект РВС с навязыванием ложного пути.
 Следует отметить, что стандарт не уточняет термин LAN-сегмент в данном контексте, что еще раз указывает, что это вещь весьма относительная, так что состав соответствующих сетей будет меняться в зависимости от выбранной точки подключения.
 Вообще говоря, описываемые на примере Ethernet уязвимости протокола относятся (часть может быть применена практически без изменений алгоритма) к любым топологиям, на которых может работать STP. Как следствие, протокол и рассматриваемые атаки, требующие включенной поддержки STP, могут быть применены на любых сетевых топологиях, не допускающих логических колец). В специально обращено внимание на то, что STP может ходить не только поверх Ethernet, но и поверх других сетей с другим принципом MAC.
Для большей наглядности и лучшего понимания работы STP авторы включили примеры, изображенные на рисунках 1 и 4. Комментарии к рисунку 1 расположены в самом начале этой главы. Рассмотрим теперь работу STP более подробно, для чего обратимся к рисунку 2.

Каждый порт каждого моста имеет свою величину Path Cost, обозначенную как PC=XXX. Мост A является Root Bridge, т.к. имеет наименьшее значение Bridge Identifier. Для сети A (LAN A) Designated Bridge Port является порт 1 моста А. Один из портов каждого из четырех оставшихся мостов является Root Port (это порт, ближайший к Root Bridge).
 Мосты X и B предоставляют доступ к сети B с одинаковым параметром Path Cost. Однако, в данном случае, порт моста B выбран в качестве Designated Bridge Port, т.к. этот мост имеет меньшее значение Bridge Identifier.
 Порт моста C выбран в качестве Designated Bridge Port для сети C, т.к. он предоставляет более "дешевый" доступ к этой сети (стоимость пути через мосты C и B равна 200, а через мосты Y и B - 300).
В стабильном состоянии все мосты ожидают периодической посылки Root Bridge специальных пакетов - Hello BPDU. Если в течение промежутка времени, определяемого значением Max Age Time, таких пакетов от Root Bridge не поступает, мост считает, что либо между ним и Root Bridge нарушена связь, либо последний отключен. В этом случае мост инициирует реконфигурацию топологии сети. Путем установки соответствующих параметров можно регулировать, насколько быстро мосты будут обнаруживать изменения в топологии и задействовать запасные маршруты. На практике с регулировкой значений STP приходится сталкиваться в основном в двух случаях - если в силу обстоятельств STP переводит в режим "запасного" более быстрый линк и если сеть имеет плохую сходимость на значениях по умолчанию из-за большого количества устройств.