Сети для самых маленьких. часть четвертая. stp
Содержание:
STP
простых циклов
- идентификатор отправителя (Bridge ID)
- идентификатор корневого свича (Root Bridge ID)
- идентификатор порта, из которого отправлен данный пакет (Port ID)
- стоимость маршрута до корневого свича (Root Path Cost)
01-80-c2-00-00-00
Роли портов
корневым портом (Root port)
- Корневой свич посылает BPDU с полем Root Path Cost, равным нулю
- Ближайший свич смотрит на скорость своего порта, куда BPDU пришел, и добавляет стоимость согласно таблице
Скорость порта Стоимость STP (802.1d) 10 Mbps 100 100 Mbps 19 1 Gbps 4 10 Gbps 2 - Далее этот второй свич посылает этот BPDU нижестоящим коммутаторам, но уже с новым значением Root Path Cost, и далее по цепочке вниз
Designated
Состояния портов
- блокировка (blocking): блокированный порт не шлет ничего. Это состояние предназначено, как говорилось выше, для предотвращения петель в сети. Блокированный порт, тем не менее, слушает BPDU (чтобы быть в курсе событий, это позволяет ему, когда надо, разблокироваться и начать работать)
- прослушивание (listening): порт слушает и начинает сам отправлять BPDU, кадры с данными не отправляет.
- обучение (learning): порт слушает и отправляет BPDU, а также вносит изменения в CAM- таблицу, но данные не перенаправляет.
- перенаправление\пересылка (forwarding): этот может все: и посылает\принимает BPDU, и с данными оперирует, и участвует в поддержании таблицы mac-адресов. То есть это обычное состояние рабочего порта.
- отключен (disabled): состояние administratively down, отключен командой shutdown. Понятное дело, ничего делать не может вообще, пока вручную не включат.
автонастройки.
Виды STP
коммутацииCSTPVSTPVST+
RSTP
RSTP
STP (802.1d) | RSTP (802.1w) |
В уже сложившейся топологии только корневой свич шлет BPDU, остальные ретранслируют | Все свичи шлют BPDU в соответствии с hello-таймером (2 секунды по умолчанию) |
Состояния портов | |
— блокировка (blocking) — прослушивание (listening) — обучение (learning) — перенаправление\пересылка (forwarding) — отключен (disabled) |
— отбрасывание (discarding), заменяет disabled, blocking и listening — learning — forwarding |
Роли портов | |
— корневой (root), участвует в пересылке данных, ведет к корневому свичу — назначенный (designated), тоже работает, ведет от корневого свича — неназначенный (non-designated), не участвует в пересылке данных |
— корневой (root), участвует в пересылке данных — назначенный (designated), тоже работает — дополнительный (alternate), не участвует в пересылке данных — резервный (backup), тоже не участвует |
Механизмы работы | |
Использует таймеры: Hello (2 секунды) Max Age (20 секунд) Forward delay timer (15 секунд) |
Использует процесс proposal and agreement (предложение и соглашение) |
Свич, обнаруживший изменение топологии, извещает корневой свич, который, в свою очередь, требует от всех остальных очистить их записи о текущей топологии в течение forward delay timer | Обнаружение изменений в топологии влечет немедленную очистку записей |
Если не-корневой свич не получает hello- пакеты от корневого в течение Max Age, он начинает новые выборы | Начинает действовать, если не получает BPDU в течение 3 hello-интервалов |
Последовательное прохождение порта через состояния Blocking (20 сек) — Listening (15 сек) — Learning (15 сек) — Forwarding | Быстрый переход к Forwarding для p2p и Edge-портов |
Configuring the “Shutdown” ports
Finally, we need to configure the two remaining interfaces. FastEthernet 0/3 and FastEthernet 0/4. As a requirement, both must shutdown in case of violation. This is the default behavior for Port Security. Therefore, we just enter the previous template and change the violation action to shutdown with .
Be aware, as a requirement, we only need sticky MAC addresses on FastEthernet 0/3, not on FastEthernet 0/4. At this point, we finished our configuration, but we need to do something more on sticky MAC addresses, otherwise, they won’t work.
Populating sticky MAC addresses
We should spend some time talking about sticky MAC addresses. Unlike hardcoded MAC addresses, here you don’t specify which MAC address to expect. Therefore, the switch must dynamically learn a MAC address. However, this is true for the first time only. After that, the switch must remember this MAC address (or these, in case they are a few), and accept traffic only from them.
As soon as the switch receives a packet, it will inspect it and learn the MAC address. In this process, the switch stores the MAC in the running configuration. This MAC address starts to be part of the configuration immediately but is not retained upon reboot. Therefore, you must log in to your switch and save the configuration.
Now, issue to check out the Port Security configuration. As you can see, there is no MAC address just yet.
This is all the configuration we created.
To make the switch learn MAC addresses, we need to generate some traffic. Open PC0 desktop, then start the command prompt. From there, ping PC1 with ping . This way, the switch will learn PC0’s MAC address and PC1’s MAC address (from the response). After this ping, ping PC2 with ping . Then, check the configuration of the switch again.
Cisco IOS automatically added the highlighted command.
Now, if we want, we can use to save the configuration. At this point, the switch will retain these MAC addresses even after a reboot. For the configuration part, this is everything we need to know. Instead, we need to continue this lab with troubleshooting.
[править] MLS (Multilayer Switching)
SVI-интерфейсы
Для того чтобы коммутатор мог маршрутизировать трафик между VLAN, нужно:
- включить ip routing
- должны быть созданы соответствующие VLAN
- должны быть созданы соответствующие VLAN interface (switched virtual interfaces)
SVI-интерфейс’:
- представляет VLAN и принадлежащие ему порты, как один интерфейс для функций маршрутизации и коммутации в системе;
- создается при создании interface vlan;
- поддерживает протоколы маршрутизации.
SVI-интерфейс находится в состоянии up, если выполняются такие 3 условия:
- VLAN, который соответствует SVI, существует и активный в VLAN database коммутатора
- SVI не выключен административно
- Хотя бы один интерфейс 2 уровня принадлежит соответствующему VLAN, находится в состоянии up и STP forward.
Создание SVI и состояние интерфейса:
- Если создан VLAN interface, но не создан соответствующий VLAN и не включен ip routing, то порт в состоянии «down down».
- После создания соответствующего VLAN, порт в состоянии «up down».
SVI autostate
По умолчанию SVI-интерфейс переходит в состояние «down», если все интерфейсы этого VLAN’а переходят в состояние «down».
Порт можно исключить из проверки доступности SVI-интерфейса.
Для этого используется команда switchport autostate exclude.
После включения команда применяется ко всем VLAN, которые включены на интерфейсе.
Эта возможность может пригодиться для случаев, когда к порту коммутатора подключен анализатор трафика или IDS.
Исключение порта:
sw(conf-if)# switchport autostate exclude
Интерфейсы 3го уровня
switch(-if)# no switchport
Повторное включение портов, отключенных из-за ошибки
После устранения причины проблемы порты остаются отключенными, если на коммутаторе не настроено восстановление из состояния «errdisabled». В этом случае необходимо включить порты вручную. Выполните команду shutdown, а затем — команду интерфейсного режима no shutdownна соответствующем интерфейсе, чтобы вручную включить порты.
Команда errdisable recovery позволяет выбрать тип ошибок, после которых порты снова автоматически включаются через указанный промежуток времени. Команда show errdisablerecovery показывает состояние по умолчанию после восстановления из состояния отключения из-за ошибки для всех возможных условий.
cat6knative#show errdisable recovery
ErrDisable Reason | Timer Status |
udld | Disabled |
bpduguard | Disabled |
security-violatio | Disabled |
channel-misconfig | Disabled |
pagp-flap | Disabled |
dtp-flap | Disabled |
link-flap | Disabled |
2ptguardl | Disabled |
psecure-violation | Disabled |
gbic-invalid | Disabled |
mac-limit | Disabled |
unicast-flood | Disabled |
arp-inspection | Disabled |
Timer interval: 300 seconds
Interfaces that will be enabled at the next timeout:
Примечание: Стандартный интервал тайм-аута равен 300 секундам, и по умолчанию он отключен.
Чтобы включить errdisable recovery и выбрать состояния отключения из-за ошибки, выполните следующую команду:
cat6knative#errdisable recovery cause?
all | Enable timer to recover from all causes |
arp-inspection | Enable timer to recover from arp inspection error disable |
state | |
bpduguard | Enable timer to recover from BPDU Guard error disable |
state | |
channel-misconfig | Enable timer to recover from channel misconfig disable |
state | |
dhcp-rate-limit | Enable timer to recover from dhcp-rate-limit error disable |
state | |
dtp-flap | Enable timer to recover from dtp-flap error disable |
state | |
gbic-invalid | Enable timer to recover from invalid GBIC error disable |
state | |
l2ptguard | Enable timer to recover from l2protocol-tunnel errordisable |
state | |
link-flap | Enable timer to recover from link-flap error disable |
state | |
mac-limit | Enable timer to recover from mac limit disable |
state | |
pagp-flap | Enable timer to recover from pagp-flap error disable |
state | |
psecure-violation | Enable timer to recover from psecure violation disable |
state | |
udld | Enable timer to recover from udld error disable |
state | |
unicast-flood | Enable timer to recover from unicast flood disable |
state |
В этом примере показано, как разрешить условие восстановления из состояния «errdisabled» при включенной защите BPDU:
cat6knative(Config)#errdisable recovery cause bpduguard
Полезное свойство этой команды состоит в том, что при включении восстановления из состояния «errdisabled», команда выдает список общих причин перевода портов в состояние отключения из-за ошибки
В следующем примере обратите внимание на то, что функция защиты BPDU была причиной отключения порта 2/4:
cat6knative#show errdisable recovery
ErrDisable Reason | Timer Status |
udld | Disabled |
bpduguard | Enabled |
security-violatio | Disabled |
channel-misconfig | Disabled |
pagp-flap | Disabled |
dtp-flap | Disabled |
link-flap | Disabled |
2ptguardl | Disabled |
psecure-violation | Disabled |
gbic-invalid | Disabled |
mac-limit | Disabled |
unicast-flood | Disabled |
arp-inspection | Disabled |
Timer interval: 300 seconds
Interfaces that will be enabled at the next timeout:
Interface |
Errdisable reason |
Time left(sec) |
Fa2/4 |
bpduguard |
290 |
Если разрешено любое из условий восстановления из состояния «errdisabled», порты с таким условием снова включаются через 300 секунд. Это значение по умолчанию (300 секунд) можно изменить, выполнив следующую команду:
cat6knative(Config)#errdisable recovery interval timer_interval_in_seconds
В следующем примере длительность интервала восстановления из состояния «errdisabled» изменяется с 300 на 400 секунд:
cat6knative(Config)#errdisable recovery interval 400
Configuration Steps:
By default, the switchport security feature is disabled on all switchports and must be enabled.
1) Your switch interface must be L2 as «port security» is configure on an access interface.You can make your L3 switch port to an access interface by using the «switchport» command.
2) Then you need to enable port security by using the «switchport port-security» command. This can also be applied in a range of the interfaces on a switch or individual interfaces.
3) This step is optional, but you can specify how many MAC addresses the switch can have on one interface at a time. If this setting is not applied the default of one MAC address is used. The command to configure this is as follows, «switchport port-security maximum N» (where N can be from 1 to 6272) Keep in mind the range the number of maximum MAC address depends on the hardware and Cisco IOS you use.
4) This step is also optional, but you can define the action to take when a violation occurs on that interface or interfaces. The default is to shut down the interface or interfaces. The command to configure this is as follows «switch port-security violation { protect | restrict | shutdown }»
Protect which discards the traffic but keeps the port up and does not send a SNMP message.
Restrict which discards the traffic and sends a SNMP message but keeps the port up
Shutdown which discards the traffic sends a SNMP message and disables the port. (This is the default behavior is no setting is specified.)
5) You can specify the MAC address that is allowed to access the network resources manually by using the command «switchport port-security mac-address value». Use this command multiple times if you want to add more than one MAC address.
6) If you don’t want to configure manually every single MAC address of your organization then you can have the switch learn the MAC address dynamically using the «switchport port-security mac-address sticky» command. This command allow switch to learn the first MAC address that comes into on the interface.
Пример настройки SVI
Имеется многослойный коммутатор с возможностями маршрутизации (представленный на рисунке). Настроим SVI (Switch Virtual Interface) для каждой VLAN и зададим IP-адрес. Этот IP-адрес может использоваться для компьютеров в качестве основного шлюза.
SW1(config)#ip routing SW1(config)#interface vlan 10 SW1(config-if)#no shutdown SW1(config-if)#ip address 192.168.10.254 255.255.255.0 SW1(config)#interface vlan 20 SW1(config-if)#no shutdown SW1(config-if)#ip address 192.168.20.254 255.255.255.0
Статус «UP»
Сперва включите маршрутизацию с помощью команды , иначе коммутатор не построит таблицу маршрутизации. Теперь создадим SVI для VLAN 10 и 20 и настроим IP-адреса на них. После создания SVI и выполнения команды , как правило SVI будет находится в состоянии «up» так как это виртуальный интерфейс, однако есть ряд требований при отсутствии которых будет отображаться состояние «down»:
- VLAN должна существовать в базе данных VLAN и она должна быть активной;
- Хотя бы один порт доступа должен активно использовать эту VLAN и должен находиться в режиме связующего дерева (spanning-tree forwarding mode).
Итак, два компьютера в сети VLAN 10 и SVI:
SW1#show ip interface brief vlan 10 Interface IP-Address OK? Method Status Protocol Vlan10 192.168.10.254 YES manual up up
Статус «UP» при отключении одного из интерфейсов
Если отключить один интерфейс, SVI все равно будет отображаться «up/up», потому что интерфейс fa0/2 все ещё активен.
Статус SVI при отключении обоих интерфейсов
Как только закроются оба интерфейса, VLAN 10 станет неактивным. В результате SVI перейдет в состояние «up/down».
SW1#show ip interface brief vlan 10 Interface IP-Address OK? Method Status Protocol Vlan10 192.168.10.254 YES manual up down
Теперь можно исключить интерфейс из состояния SVI. Для этого надо убедиться, что все, что происходит с интерфейсом fa0/2, не влияет на состояние SVI:
SW1(config)#interface fa0/2 SW1(config-if)#switchport autostate exclude
Можно использовать команду . Это означает, что он больше не будет влиять на состояние интерфейса SVI. Fa0/1 — единственный интерфейс, который теперь может влиять на состояние SVI, как только он перейдет в состояние «down», вы увидите, что состояние SVI также изменится на «down», несмотря на то, что fa0/2 все еще запущен и работает.
Configuring Port Security
The Configuration Commands
When configuring Port Security, there are a few things to keep in mind. First of all, you can configure it only on access ports hardcoded with command. Then, you can use several commands to tune Port Security. While you are doing so, Port Security is still off. Once you finish, you will have to turn it on with a specific command. As a best practice, always do the tuning first, then turn it on. You can find in the following table all the commands, all given in the interface configuration prompt .
Command | Description |
---|---|
Set to “N” the number of MAC address to accept on this port. Default is 1. | |
Hardcode one MAC address to the port. You can specify one or more MAC addresses, if so the switch will accept traffic only from them. Without this command,all MAC addresses are accepted unless they exceed the maximum. | |
Write in the configuration the MAC addresses seen on the port, then allow only them. Not compatible with hardcoded MAC address. | |
Specify what to do when a violation happens. Instead of action, we must write what the device should perform. We have three options. silently drops traffic from any exceeding MAC. drops traffic from any exceeding MAC and generates an alert. (the default), blocks the port if a violation happens (and generates an alert). | |
Turns on Port Security. |
Port Security Configuration Commands
Configuring the “Protect” port
The first interface we are going to configure is FastEthernet 0/1. This is the port facing toward PC0, and we must configure it to allow a single MAC address. Furthermore, by requirements, don’t want to generate alerts in case of violation. However, we want the switch to learn and hardcode PC0’s MAC address. This is the step list we must follow.
- Force the port in access mode with .
- Set the maximum MAC addresses allowed to 1 with . This way, the port will consider “violation” if it sees more than two MAC addresses.
- Configure the violation action to silent drop with . As a result, the switch will drop all traffic sourced from any MAC address different from the first. However, while doing so, the switch does not raise alerts.
- Turn on sticky MAC address with . This means that the switch will put in the configuration the first MAC address it receives. After that, it will accept traffic from this MAC address only (in this case just one, as from the maximum). Then, the administrator can check it and save the configuration.
- Turn on Port Security with .
Below, a quick recap of what we typed.
This is a pretty good template. According to our requirements, we can apply this exact template to all other ports, changing only the violation action. In fact, this is what we are going to do in the next steps.
Configuring the “Restrict” port
Interface FastEthernet 0/2 faces PC1, and we need to configure it to generate alerts by requirements. However, two different violation actions generate alerts on the violation. We are talking about restrict and shutdown mode. The key difference is that shutdown generates an alert, then shut down the port. For this port, we only want alerts, so we are going to use restrict.
To configure the violation action to be restrict, use command. We are going to see how the alerts look like in a minute, once we finished the configuration. To that, add all the commands from the template in the previous section (maximum, sticky MAC and so on). Once you finished, it is time to move to the shutdown method.
Конфигурация cisco порта
- description etazh 2 komnata 1 — комментарий к интерфейсу, до 240 символов.
- switchport mode access — порт принадлежит к одному влану и передает не тегированный трафик. Детальней: xgu.ru/wiki/VLAN_в_Cisco
- switchport access vlan 30 — порт принадлежит к единственному, 30-му vlan’у и передает не тегированый трафик
- switchport mode trunk — порт передает тегированный трафик и принадлежит к одному, нескольким или всем (по умолчанию) вланам
- switchport trunk allowed vlan 1-2,10,15 — разрешенные вланы для транкового порта
- switchport trunk native vlan 5 — можно указать к какому влану на транковом порте относится не тегированный трафик, на примере это 5-й влан, по умолчанию 1-й влан.
- switchport port-security — включение порта в режим защиты от сетевых атак, с помощью ограничений трафика с привязкой к mac-адресам. По умолчанию не более одного mac-адреса на порту, в случае нарушения — выключение порта в статус «errdisable state» и запись в лог. Для того чтоб вывести порт из статуса «errdisable state» его нужно выключить и включить командами «shutdown» и «no shutdown». Детальней: xgu.ru/wiki/Port_security
- errdisable recovery cause security-violation — порт должен сам выходить из состояния «errdisable state» через 5 минут (по умолчанию)
- errdisable recovery interval 600 — указываем что порт должен сам выходить из состояния «errdisable state» через 10 минут (вместо 5-ти по умолчанию)
- switchport port-security maximum 3 — на порту разрешено не более 3 мак-адресов.
- switchport port-security mac-address 0000.1111.2222 — разрешили на порт работу хоста с мак-адресом 0000.1111.2222
- switchport port-security aging time 2 — коммутатор удаляет MAC адреса из CAM таблицы через 2 минуты их не активности (по умолчанию 5 минут). Если используем эту команду необходимо указать причину удаления мак-адреса из таблицы.
- switchport port-security aging type inactivity — причина удаления MAC адресов из CAM таблицы: из-за не активности
- spanning-tree portfast — при подключении устройства к такому порту, он, минуя промежуточные стадии, сразу переходит к forwarding-состоянию. Portfast следует включать только на интерфейсах, ведущих к конечным устройствам (рабочим станциям, серверам, телефонам и т.д.), но не к другим свичам.
- switchport host — эта команда разом включает PortFast, переводит порт в режим access (аналогично switchport mode access), и отключает протокол PAgP
- spanning-tree bpduguard enable — переход порта в состояние error-disabled при получении BPDU пакета, так как на порте с включенным «spanning-tree portfast» не должно появляться BPDU пакетов.
Практика
Скачать актуальную версию документа.самонастроился
- собственно, порт
- его роль (Root- корневой порт, Desg- назначенный порт, Altn- дополнительный, Back- резервный)
- его статус (FWD- работает, BLK- заблокирован, LIS- прослушивание, LRN- обучение)
- стоимость маршрута до корневого свича
- Port ID в формате: приоритет порта.номер порта
- тип соединения
VLAN0003 Spanning tree enabled protocol ieee Root ID Priority 32771 Address 0007.ECC4.09E2 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
каких-то
EtherChannel
Новый план коммутацииФайл PT с лабораторнойКонфигурация устройствSTPSTPБезопасность канального уровня Агрегация каналовЖЖeucariot
[править] Instrumentation monitor
Instrumentation monitor — функция коммутатора, которая позволяет:
- обнаруживать некоторые аномалии в работе коммутатора. Аномалии могут быть следствием или признаком атаки на сеть;
- при обнаружении аномалий отправлять сообщение администратору (log, SNMP).
Доступные параметры для обнаружения аномалий:
- mac-address-count — количество MAC-адресов в таблице коммутации. Для защиты от атак использующих заполнение таблицы коммутации (после заполнения таблицы коммутатор работает как хаб).
- ip-address-count — количество выученых IP-адресов получателей в IP forwarding table.
- system-resource-usage — процент использования системных ресурсов.
- system-delay — время ответа (в секундах) CPU на обработку новых событий в сети, таких как BPDU пакет или пакеты другого протокола.
- mac-moves — среднее количество MAC-адресов передвигающихся с одного порта на другой за минуту.
- learn-discards — количество отклоненных событий запоминания MAC-адреса за минуту (отклоняются для того чтобы освободить ресурсы).
- ip-port-scans — количество пакетов в минуту, которые были отправлены на закрытые TCP/UDP порты коммутатора.
- arp-requests — количество ARP-запросов обработанных за минуту.
- login-failures — количество неудачных попыток залогиниться на коммутатор или неудачных попыток SNMP-аутентификации в минуту.
- port-auth-failures — количество неудачных попыток клиента пройти аутентификацию в минуту.
Предопределенные значения для 3 уровней (low, medium, high):
Название параметра | Low | Medium | High |
---|---|---|---|
mac-address-count | 100 | 1000 | 10000 |
ip-address-count | 100 | 1000 | 10000 |
system-resource-usage (%) | 10 | 50 | 90 |
system-delay (сек) | 1 | 3 | 5 |
mac-moves (/мин) | 10 | 100 | 1000 |
learn-discards (/мин) | 10 | 100 | 1000 |
ip-port-scans (/мин) | 1 | 10 | 100 |
arp-requests (/мин) | 100 | 1000 | 10000 |
login-failures (/мин) | 1 | 10 | 100 |
port-auth-failures (/мин) | 1 | 10 | 100 |
Настройка instrumentation monitor
Включение instrumentation monitor:
switch(config)# instrumentation monitor
Если включить instrumentation monitor командой
switch(config)# instrumentation monitor all
то по умолчанию будут такие параметры:
- для всех параметров задан уровень medium,
- включено логирование сообщений,
- не отправляются SNMP trap.
Для любого параметра можно указать другое значение уровня реагирования (в соответствующих единицах измерения):
switch(config)# instrumentation monitor system-resource-usage 60 switch(config)# instrumentation monitor mac-address-count 300
Просмотр настроек instrumentation monitor:
switch(config)# show instrumentation monitor configuration
Просмотр статистики по информации собранной instrumentation monitor:
switch(config)# show instrumentation monitor
Instrumentation monitor автоматически регулирует частоту отправки повторяющихся сообщений.