Как восстановить порт из состояния errDisable State
В этой статье предоставляются примеры способов обнаружения портов, отключенных из-за ошибки, и их восстановления, а также краткое обсуждение некоторых дополнительных причин отключения портов из-за ошибки. Конкретные примеры таких неполадок, приведенные ниже, легко воспроизвести в лабораторных условиях.
Для восстановления порта из состояния errDisable выполните следующие действия:
-
Версия программного обеспечения, используемого в данном документе
Команда show version показывает, что версия программного обеспечения коммутатора работает согласно данному документу. Здесь просто показано, какую версию CatOS мы использовали для этого теста и какие были задействованы модули.
Cat5500> (enable) show version WS-C5500 Software, Version McpSW: 5.4(2) NmpSW: 5.4(2) Copyright (c) 1995-2000 by Cisco Systems NMP S/W compiled on Apr 7 2000, 16:59:29 MCP S/W compiled on Apr 07 2000, 16:49:24 System Bootstrap Version: 5.1(1) Hardware Version: 1.3 Model: WS-C5500 Serial #: 069041642 Mod Port Model Serial # Versions --- ---- ---------- --------- ---------------------------------------- 1 0 WS-X5540 013459824 Hw : 1.1 Fw : 5.1(1) Fw1: 5.1(1) Sw : 5.4(2) Sw : 5.4(2) 11 24 WS-X5225R 012121634 Hw : 3.1 Fw : 4.3(1) Sw : 5.4(2) DRAM FLASH NVRAM Module Total Used Free Total Used Free Total Used Free ------ ------- ------- ------- ------- ------- ------- ----- ----- ----- 1 32768K 18567K 14201K 8192K 4171K 4021K 512K 179K 333K Uptime is 0 day, 0 hour, 4 minutes Cat5500> (enable) show module Mod Slot Ports Module-Type Model Status --- ---- ----- ------------------------- ------------------- -------- 1 1 0 Supervisor IIG WS-X5540 ok 15 1 Route Switch Feature Card 11 11 24 10/100BaseTX Ethernet WS-X5225R ok Mod Module-Name Serial-Num --- ------------------- -------------------- 1 00013459824 11 00012121634 Mod MAC-Address(es) Hw Fw Sw --- -------------------------------------- ------ ---------- ----------------- 1 00-90-ab-28-d0-00 to 00-90-ab-28-d3-ff 1.1 5.1(1) 5.4(2) 5 00-10-7b-7c-09-d4 to 00-10-7b-7c-09-df 3.0 3.1(1) 5.4(2) 6 00-e0-1e-6c-80-da to 00-e0-1e-6c-80-dc 1.0 4.1(1) 5.4(2) 8 00-10-7b-44-16-40 to 00-10-7b-44-16-57 1.3 3.1(1) 5.4(2) 10 00-10-7b-0c-32-d0 to 00-10-7b-0c-32-db 2.0 3.1(1) 5.4(2) 11 00-50-a2-f4-e4-50 to 00-50-a2-f4-e4-67 3.1 4.3(1) 5.4(2)
-
Как узнать, что порты находятся в состоянии errDisable
Можно ввести команду show port, чтобы выяснить является ли причиной отключения порта ошибка. Это пример активного порта; ниже этот же порт отключен из-за ошибки.
Cat5500> (enable) show port 11/1 Port Name Status Vlan Level Duplex Speed Type ----- ------- ---------- ---------- ------ ------ ----- ------------ 11/1 connected 1 normal a-half a-100 10/100BaseTX Cat5500> (enable) show port 11/1 Port Name Status Vlan Level Duplex Speed Type ----- ------- ---------- ---------- ------ ------ ----- ------------ 11/1 errdisable 1 normal auto auto 10/100BaseTX
Примечание. Если причиной отключения порта является ошибка, то индикатор, связанный с этим портом, загорится оранжевым цветом.
-
Как определить причину отключения (системный журнал, сообщения консоли, использование errdisable-timeout)
После переведения порта на коммутаторе в состояние отключения из-за ошибки, он посылает сообщение на консоль с описанием причины, вызвавшей отключение порта. Есть два образца сообщений, показывающих что порт отключен: один тип сообщения - от функций защиты portfast BPDU и другой тип сообщения - информация о проблеме, связанной с конфигурацией EtherChannel.
2000 May 09 19:09:18 %SPANTREE-2-RX_PORTFAST:Received BPDU on PortFast enable port. Disabling 11/1 2000 May 09 19:09:18 %PAGP-5-PORTFROMSTP:Port 11/1 left bridge port 2000 May 09 19:22:11 %SPANTREE-2-CHNMISCFG: STP loop - channel 11/1-2 is disabled in vlan 1 2000 May 09 19:22:11 %PAGP-5-PORTFROMSTP:Port 11/1 left bridge port 11/1-2
Примечание. Сообщения не уточняют состояние errDisable или error-disabled; они оповещают о том, что коммутатор отключает порт. После генерации сообщений в консоли они не сохраняются, если в сети не используется syslog-сервер. Если настроить коммутатор на отправку этих сообщений на syslog-сервер, то можно будет просмотреть подробную запись о времени и причинах отключения порта. Сведения о настройке коммутатора на пересылку сообщений syslog-серверу см. в разделе "Настройка ведения журналов системных сообщений" в руководстве по настройке CatOS 5.4.
Если вы работаете в CatOS 5.4(1) или более поздней версии, то имейте в виду, что в этой операционной системе есть функция «errdisable-timeout», которая (если включена) поможет узнать причину отключения порта. Ниже рассмотрен пример.
Cat5500> (enable) show errdisable-timeout ErrDisable Reason Timeout Status Port ErrDisable Reason ------------------- -------------- ---- ---------------- bpdu-guard enable 11/1 bpdu-guard channel-misconfig disable duplex-mismatch disable udld disable other disable Interval: 30 seconds
-
Порядок устранения проблемы. После обнаружения причины отключения порта, необходимо исправить сначала основную проблему и после этого включить порт.
-
Исправление проблемы корневого узла
Решение зависит от фактического источника проблемы. Множество причин может инициировать завершение работы. Самые распространенные и достойные внимания причины.
-
Неправильная настройка EtherChannel
Для работы EtherChannel порты должны иметь одну и ту же сеть VLAN, магистральное соединение, дуплексный режим, скорость и т.д. Основная масса различий настроек на одном коммутаторе, определяется и заносится при создании канала в отчет. В некоторых случаях, обычно при использовании режима «Включено» (в противоположность режимам «автоматический» или «ожидаемый»), все может быть согласовано в одном коммутаторе, который может начать установку связи по каналу. Однако подключенный соседний коммутатор может быть настроен по-другому и стать причиной неработоспособности первого коммутатора. Если оба коммутатора поддерживают протокол PAgP, для предотвращения этой проблемы желательно настроить режимы каналов на каждом коммутаторе. Настройку EtherChannel лучше доверить компании специализирующейся на абонентском обслуживании компьютеров и сетевого оборудования.
-
Несоответствие дуплексных режимов
Несоответствие дуплексных параметров бывает достаточно часто из-за невозможности автоматического согласования скорости и дуплексной передачи. В отличие от устройства работающего в полудуплексном режиме, которому приходится ждать пока все другие устройства прекратят передавать данные по тому же сегменту LAN, полнодуплексное устройство будет передавать данные всякий раз при появлении информации для отправки, вне зависимости от других устройств в сети. В случае если эта передача производится, когда передает полудуплексное устройство, данное устройство станет рассматривать это как коллизию (на протяжении этого временного отрезка) или как позднюю коллизию (по истечении временного отрезка). Так как сторона полнодуплексной передачи никогда не вызывает коллизий, в них не реализуется возможность передачи отброшенных пакетов повторно. Невысокий процент конфликтов свойственен для полудуплексного, но не для полнодуплексного соединения. Если в порту коммутатора возникает много поздних конфликтов, это как правило указывает на проблему несоответствия дуплексных режимов. Убедитесь, что на портах на обоих концах кабеля установлены одинаковый дуплексный режим и скорость. Команда show port сообщит скорость и дуплексный режим для портов коммутаторов Catalyst. Версии Cisco Discovery Protocol, CDP (протокола обнаружения Cisco) предупреждают о несоответствии режимов дуплекса до перевода порта в состояние отключения в результате ошибки. Кроме того, могут быть установочные параметры платы NIC, которые вызывают проблемы (такие как автоматические функции полярности; если у вас есть сомнения, выключите их). Если имеется много плат NIC от поставщика, и на всех этих платах наблюдается одна и та же проблема, найдите на веб-сайте производителя документацию по версии и проверьте, что установлены последние драйверы от производителя. Среди других причин поздних коллизий — неисправность NIC (физическая неисправность, а не только проблемы конфигурации), повреждение кабеля или слишком длинный сегмент кабеля.
2000 May 09 19:19:09 %CDP-4-DUPLEXMISMATCH:Full/half duplex mismatch detected on port 11/3
-
Защита портов BPDU
Некоторые более новые версии программного обеспечения коммутатора отслеживают, включена ли поддержка PortFast на порту. Порт в режиме PortFast должен быть подключен к конечной станции, а не к устройствам, которые генерируют пакеты STP (BPDU). Если коммутатор обнаруживает BPDU, исходящий от порта с включенной функцией portfast, этот порт будет переведен в режим errDisable.
-
UDLD
UDLD — это протокол в некоторых новых версиях программного обеспечения, который определяет, является ли связь по каналу только односторонней и, соответственно, частично разорванной. Поврежденный оптоволоконный кабель или другие проблемы, связанные с кабелем/портом, могут стать причиной превращения соединения в одностороннее. При этом могут возникать петли связующего дерева. UDLD позволяет порту обнаружить однонаправленный канал и в этом случае может перевести порт в состояние errDisable (если настроен для этого режима).
-
Другое
Любой процесс на коммутаторе, обнаружив неисправность порта, может поместить порт в состояние «error-disable». Просмотрите сообщения на консоли или сообщения, посланные на сервер syslog, в которых указана причина отключения порта. Кроме того, если включена функция времени ожидания при отключении в результате ошибки (как минимум на CatOS 5.4(1)), команда show errdisable-timeout позволяет выяснить причину отключения порта.
-
-
Снова включите порт
После устранения основной проблемы, порты продолжают оставаться отключенными; необходимо включить их повторно. Это можно выполнить вручную при помощи команды set port enable.
Cat5500> (enable) set port enable 11/1-2 Ports 11/1-2 enabled.
В CatOS 4.2(2) и более поздних версиях можно воспользоваться командой set option errport, описывающей способы предотвращения отключения портов. Если проблема фактически осталась не устранена, это может представлять риск возникновения неисправности. В CatOS 5.4(1) и более новых версиях можно воспользоваться командой errdisable-timeout для автоматического повторного включения портов, как это описано в следующем разделе.
-
-
Как автоматически снова включить порт при помощи команды errdisable-timeout – CatOS 5.4(1)
Команда errdisable-timeout позволяет выбрать, какой тип ошибок будет автоматически снова включать порты по прошествии определённого периода времени. Выходные данные команды показывают состояние по умолчанию, которым является errdisable-timeout disabled (неактивно) для всех пяти возможных условий. Просмотр выходных данных команды рекомендуется передать организации, оказывающей услуги ИТ аутсорсинга сетевого оборудования. Если какое-либо условие было разрешено, порты с таким условием снова включаются через 30 секунд.
Cat5500> (enable) show errdisable-timeout ErrDisable Reason Timeout Status ------------------- -------------- bpdu-guard disable channel-misconfig disable duplex-mismatch disable udld disable other disable Interval: 30 seconds
Чтобы включить функцию errdisable-timeout, используйте следующие команды для выбора условий errdisable.
Cat5500> (enable) set errdisable-timeout enable ? bpdu-guard BPDU Port-guard channel-misconfig Channel misconfiguration duplex-mismatch Duplex Mismatch udld UDLD other Reasons other than the above all Apply errDisable timeout to all reasons Cat5500> (enable) set errdisable-timeout enable bpdu-guard Successfully enabled errdisable-timeout for bpdu-guard. Cat5500> (enable) set errdisable-timeout interval 30 Successfully set errdisable timeout to 30 seconds.
Полезное свойство этой команды состоит в том, что при включении errdisable-timeout команда выдает список общих причин отключения портов из-за ошибки. Для получения более подробного описания, следите за сообщениями, отображаемыми во время события. Помните, что первым шагом исправления состояния отключения в результате ошибки является исправление исходной ошибки, повлекшей прекращение работы. Обратите внимание далее, что порт 11/1 был отключен функцией bpdu-guard.
Cat5500> (enable) show errdisable-timeout ErrDisable Reason Timeout Status Port ErrDisable Reason ------------------- -------------- ---- ----------------- bpdu-guard enable 11/1 bpdu-guard channel-misconfig disable duplex-mismatch disable udld disable other disable Interval: 30 seconds
Здесь дан пример того, что отображается, когда коммутатор заново включает порт из-за функции errdisable-timeout.
2000 May 09 19:17:33 %SPANTREE-2-RX_PORTFAST:Received BPDU on PortFast enable port. Disabling 11/1 2000 May 09 19:17:58 %MGMT-5-ERRDISPORTENABLED:Port 11/1 err-disabled by bpdu-guard enabled by errdisable timeout 2000 May 09 19:18:02 %SPANTREE-2-RX_PORTFAST:Received BPDU on PortFast enable port. Disabling 11/1
-
Что произойдет, если включить порт, не устранив проблему?
Если снова включить порт, не исправив проблему, порты снова станут отключенными из-за ошибки. Это будет продолжаться снова и снова, пока проблема не будет решена. Обратите внимание на три сообщения ниже. В первом коммутатор описывает отключение порта 11/1 вследствие получения BPDU на порт, для которого включен режим portfast (такая ситуация приводит к ошибке, если включена функция bpdu-guard). По истечении 25 секунд порт автоматически включается функцией времени ожидания при отключении в результате ошибки. Затем через четыре секунды порт снова становится неработоспособным, потому что настоящая проблема так и не была решена.
2000 May 09 19:17:33 %SPANTREE-2-RX_PORTFAST:Received BPDU on PortFast enable port. Disabling 11/1 2000 May 09 19:17:58 %MGMT-5-ERRDISPORTENABLED:Port 11/1 err-disabled by bpdu-guard enabled by errdisable timeout 2000 May 09 19:18:02 %SPANTREE-2-RX_PORTFAST:Received BPDU on PortFast enable port. Disabling 11/1
Повторное включение портов вручную предпочтительнее потому, что это напоминает о существовании реальной проблемы и необходимости ее устранения.
-
Можно ли предотвратить отключение портов из-за коллизий
Ниже приведен пример предотвращения отключения порта коммутатором при ошибке вследствие избыточных или поздних коллизий. Команда set option errport доступна в версии CatOS 4.2(2). И снова не забывайте, что это следует использовать только как подручное средство измерения. Это позволяет избежать отключений портов из-за ошибок по причине коллизий, однако может не уберечь от коллизий, которые обычно приводят к отключению порта коммутатором. При выполнении этой команды коммутатор не будет отключать порт в случае коллизий.
Cat5500> (enable) set option errport enable Error port option is enabled Cat5500> (enable) show option errport Option errport : enabled
Ниже приведен пример возврата в состояние по умолчанию, которое позволяет коммутатору отключить порт в результате ошибки.
Cat5500> (enable) set option errport disable Error port option is disabled Cat5500> (enable) show option errport Option errport : disabled
Команда show option errport отображает текущий режим функции error-disable. Команда set option errport enable не устраняет причину возникновения ошибок, она только не позволяет порту отключаться в результате этих ошибок. Также существует вероятность того, что порты errDisable могли повлиять на другие порты модуля, если эта ошибка осталась неразрешенной или усугубилась. Таким образом, эту команду следует использовать только при понимании того, что данные ошибки могут теоретически вызвать более серьезные проблемы в модуле коммутатора, и пользователь берет на себя эти риски.