Introduction
This document describes the errdisabled state, how to recover from it, and provides examples of errdisable recovery. This document uses the terms errdisable and error disable interchangeably. Customers often contact Cisco Technical Support when they notice that one or more of their switch ports have become error disabled, which means that the ports have a status of errdisabled. These customers want to know why the error disablement happened and how they can restore the ports to normal.
Note: The port status of err-disabled displays in the output of the show interfaces interface_number status command.
Prerequisites
Requirements
There are no specific requirements for this document.
Components Used
To create the examples in this document, you need two Cisco Catalyst 4500/6500 Series Switches (or the equivalent) in a lab environment with cleared configurations. The switches must run Cisco IOS® Software and each switch must have two Fast Ethernet ports that are capable of EtherChannel and PortFast.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
Background Information
Platforms That Use Errdisable
The errdisable feature is supported on these Catalyst switches:
-
Catalyst switches that run Cisco IOS Software:
-
2900XL / 3500XL
-
2940 / 2950 / 2960 / 2970
-
3550 / 3560 / 3560-E / 3750 / 3750-E
- 3650 / 3850
-
4500 / 4503 / 4506 / 4507 / 4510 / 4500-X
-
6500 / 6503 / 6504 / 6506 / 6509
- 9200 / 9300 / 9400 / 9500
-
The way in which errdisable is implemented varies between software platforms. This document specifically focuses on errdisable for switches that run Cisco IOS Software.
Errdisable
Function of Errdisable
If the configuration shows a port to be enabled, but software on the switch detects an error situation on the port, the software shuts down that port. In other words, the port is automatically disabled by the switch operating system software because of an error condition that is encountered on the port.
When a port is error disabled, it is effectively shut down and no traffic is sent or received on that port. The port LED is set to the color orange and, when you issue the show interfaces command, the port status shows err-disabled. Here is an example of what an error-disabled port looks like from the command-line interface (CLI) of the switch:
cat6knative#show interfaces gigabitethernet 4/1 status Port Name Status Vlan Duplex Speed Type Gi4/1 err-disabled 100 full 1000 1000BaseSX
Or, if the interface has been disabled because of an error condition, you can see messages that are similar to these in both the console and the syslog:
%SPANTREE-SP-2-BLOCK_BPDUGUARD: Received BPDU on port GigabitEthernet4/1 with BPDU Guard enabled. Disabling port. %PM-SP-4-ERR_DISABLE: bpduguard error detected on Gi4/1, putting Gi4/1 in err-disable state
This example message displays when a host port receives the bridge protocol data unit (BPDU). The actual message depends on the reason for the error condition.
The error disable function serves two purposes:
-
It lets the administrator know when and where there is a port problem.
-
It eliminates the possibility that this port can cause other ports on the module (or the entire module) to fail.
Such a failure can occur when a bad port monopolizes buffers or port error messages monopolize interprocess communications on the card, which can ultimately cause serious network issues. The error disable feature helps prevent these situations.
Causes of Errdisable
This feature was first implemented in order to handle special collision situations in which the switch detected excessive or late collisions on a port. Excessive collisions occur when a frame is dropped because the switch encounters 16 collisions in a row. Late collisions occur because every device on the wire did not recognize that the wire was in use. Possible causes of these types of errors include:
-
A cable that is out of specification (either too long, the wrong type, or defective)
-
A bad network interface card (NIC) card (with physical problems or driver problems)
-
A port duplex misconfiguration
A port duplex misconfiguration is a common cause of the errors because of failures to negotiate the speed and duplex properly between two directly connected devices (for example, a NIC that connects to a switch). Only half-duplex connections can ever have collisions in a LAN. Because of the carrier sense multiple access (CSMA) nature of Ethernet, collisions are normal for half duplex, as long as the collisions do not exceed a small percentage of traffic.
There are various reasons for the interface to go into errdisable. The reason can be:
-
Duplex mismatch
-
Port channel misconfiguration
-
BPDU guard violation
-
UniDirectional Link Detection (UDLD) condition
-
Late-collision detection
-
Link-flap detection
-
Security violation
-
Port Aggregation Protocol (PAgP) flap
-
Layer 2 Tunneling Protocol (L2TP) guard
-
DHCP snooping rate-limit
-
Incorrect GBIC / Small Form-Factor Pluggable (SFP) module or cable
-
Address Resolution Protocol (ARP) inspection
-
Inline power
Note: Error-disable detection is enabled for all of these reasons by default. In order to disable error-disable detection, use the no errdisable detect cause command. The show errdisable detect command displays the error-disable detection status.
Determine If Ports Are in the Errdisabled State
You can determine if your port has been error disabled if you issue the show interfaces command.
Here is an example of an active port:
cat6knative#show interfaces gigabitethernet 4/1 status
!--- Refer to show interfaces status for more information on the command.
Port Name Status Vlan Duplex Speed Type
Gi4/1 Connected 100 full 1000 1000BaseSX
Here is an example of the same port in the error disabled state:
cat6knative#show interfaces gigabitethernet 4/1 status
!--- Refer to show interfaces status for more information on the command.
Port Name Status Vlan Duplex Speed Type
Gi4/1 err-disabled 100 full 1000 1000BaseSX
Note: When a port is error disabled, the LED on the front panel that is associated with the port is set to the color orange.
Determine the Reason for the Errdisabled State (Console Messages, Syslog, and the show errdisable recovery Command)
When the switch puts a port in the error-disabled state, the switch sends a message to the console that describes why it disabled the port. The example in this section provides two sample messages that show the reason for port disablement:
-
One disablement is because of the PortFast BPDU guard feature.
-
The other disablement is because of an EtherChannel configuration problem.
Note: You can also see these messages in the syslog if you issue the show log command.
Here are the sample messages:
%SPANTREE-SP-2-BLOCK_BPDUGUARD: Received BPDU on port GigabitEthernet4/1 with BPDU Guard enabled. Disabling port. %PM-SP-4-ERR_DISABLE: bpduguard error detected on Gi4/1, putting Gi4/1 in err-disable state %SPANTREE-2-CHNMISCFG: STP loop - channel 11/1-2 is disabled in vlan 1
If you have enabled errdisable recovery, you can determine the reason for the errdisable status if you issue the show errdisable recovery command. Here is an example:
cat6knative#show errdisable recovery ErrDisable Reason Timer Status ----------------- -------------- udld Enabled bpduguard Enabled security-violatio Enabled channel-misconfig Enabled pagp-flap Enabled dtp-flap Enabled link-flap Enabled l2ptguard Enabled psecure-violation Enabled gbic-invalid Enabled dhcp-rate-limit Enabled mac-limit Enabled unicast-flood Enabled arp-inspection Enabled Timer interval: 300 seconds Interfaces that will be enabled at the next timeout: Interface Errdisable reason Time left(sec) --------- --------------------- -------------- Fa2/4 bpduguard 273
Recover a Port from Errdisabled State
This section provides examples of how you can encounter an error-disabled port and how to fix it, as well as a brief discussion of a few additional reasons that a port can become error disabled. In order to recover a port from the errdisable state, first identify and correct the root problem, and then reenable the port. If you reenable the port before you fix the root problem, the ports just become error disabled again.
Correct the Root Problem
After you discover why the ports were disabled, fix the root problem. The fix depends on what triggered the problem. There are numerous things that can trigger the shutdown. This section discusses some of the most noticeable and common causes:
-
EtherChannel misconfiguration
In order for EtherChannel to work, the ports that are involved must have consistent configurations. The ports must have the same VLAN, the same trunk mode, the same speed, the same duplex, and so on. Most of the configuration differences within a switch are caught and reported when you create the channel. If one switch is configured for EtherChannel and the other switch is not configured for EtherChannel, the spanning tree process can shut down the channeled ports on the side that is configured for EtherChannel. The on mode of EtherChannel does not send PAgP packets to negotiate with the other side before channeling; it just assumes that the other side is channeling. In addition, this example does not turn on EtherChannel for the other switch, but leaves these ports as individual, unchanneled ports. If you leave the other switch in this state for a minute or so, Spanning Tree Protocol (STP) on the switch where the EtherChannel is turned on thinks that there is a loop. This puts the channeling ports in the errdisabled state.
In this example, a loop was detected and the ports were disabled. The output of the show etherchannel summary command shows that the Number of channel-groups in use is 0. When you look at one of the ports that are involved, you can see that the status is err-disabled:
%SPANTREE-2-CHNL_MISCFG: Detected loop due to etherchannel misconfiguration of Gi4/1 cat6knative#show etherchannel summary !--- Refer to show etherchannel for more information on the command. Flags: D - down P - in port-channel I - stand-alone s - suspended H - Hot-standby (LACP only) R - Layer3 S - Layer2 U - in use f - failed to allocate aggregator u - unsuitable for bundling Number of channel-groups in use: 0 Number of aggregators: 0 Group Port-channel Protocol Ports ------+-------------+-----------+-----------------------------------------------
The EtherChannel was torn down because the ports were placed in errdisable on this switch.
cat6knative#show interfaces gigabitethernet 4/1 status Port Name Status Vlan Duplex Speed Type Gi4/1 err-disabled 100 full 1000 1000BaseSX
In order to determine what the problem was, look at the error message. The message indicates that the EtherChannel encountered a spanning tree loop. As this section explains, this problem can occur when one device (the switch, in this case) has EtherChannel turned on manually with use of the on mode (as opposed to desirable) and the other connected device (the other switch, in this case) does not have EtherChannel turned on at all. One way to fix the situation is to set the channel mode to desirable on both sides of the connection, and then reenable the ports. Then, each side forms a channel only if both sides agree to channel. If they do not agree to channel, both sides continue to function as normal ports.
cat6knative(config-terminal)#interface gigabitethernet 4/1 cat6knative(config-if)#channel-group 3 mode desirable non-silent
-
Duplex mismatch
Duplex mismatches are common because of failures to autonegotiate speed and duplex properly. Unlike a half duplex device, which must wait until there are no other devices that transmit on the same LAN segment, a full-duplex device transmits whenever the device has something to send, regardless of other devices. If this transmission occurs while the half-duplex device transmits, the half-duplex device considers this either a collision (during the slot time) or a late collision (after the slot time). Because the full-duplex side never expects collisions, this side never realizes that it must retransmit that dropped packet. A low percentage rate of collisions is normal with half duplex, but is not normal with full duplex. A switch port that receives many late collisions usually indicates a duplex mismatch problem. Be sure that the ports on both sides of the cable are set to the same speed and duplex. The show interfaces interface_number command tells you the speed and duplex for Catalyst switch ports. Later versions of Cisco Discovery Protocol (CDP) can warn you about a duplex mismatch before the port is put in the error-disabled state.
In addition, there are settings on a NIC, such as autopolarity features, that can cause the problem. If you are in doubt, turn these settings off. If you have multiple NICs from a vendor and the NICs all appear to have the same problem, check the manufacturer website for the release notes and be sure that you have the latest drivers.
Other causes of late collisions include:
-
A bad NIC (with physical problems, not just configuration problems)
-
A bad cable
-
A cable segment that is too long
-
-
BPDU port guard
A port that uses PortFast must only connect to an end station (such as a workstation or server) and not to devices that generate spanning tree BPDUs, such as switches, or bridges and routers that bridge. If the switch receives a spanning tree BPDU on a port that has spanning tree PortFast and spanning tree BPDU guard enabled, the switch puts the port in errdisabled mode in order to guard against potential loops. PortFast assumes that a port on a switch cannot generate a physical loop. Therefore, PortFast skips the initial spanning tree checks for that port, which avoids the timeout of end stations at bootup. The network administrator must carefully implement PortFast. On ports that have PortFast enabled, BPDU guard helps ensure that the LAN stays loop-free.
This example shows how to turn on this feature. This example was chosen because creation of an error-disable situation is easy in this case:
cat6knative(config-if)#spanning-tree bpduguard enable !--- Refer to spanning-tree bpduguard for more information on the command.
In this example, a Catalyst 6509 switch is connected to another switch (a 6509). The 6500 sends BPDUs every 2 seconds (with use of the default spanning tree settings). When you enable PortFast on the 6509 switch port, the BPDU guard feature watches for BPDUs that come in on this port. When a BPDU comes into the port, which means that a device that is not an end device is detected on that port, the BPDU guard feature error disables the port in order to avoid the possibility of a spanning tree loop.
cat6knative(config-if)#spanning-tree portfast enable !--- Refer to spanning-tree portfast (interface configuration mode) !--- for more information on the command. Warning: Spantree port fast start can only be enabled on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc. to a fast start port can cause temporary spanning tree loops. %PM-SP-4-ERR_DISABLE: bpduguard error detected on Gi4/1, putting Gi4/1 in err-disable state.
In this message, the switch indicates that it received a BPDU on a PortFast-enabled port, and so the switch shuts down port Gi4/1.
cat6knative#show interfaces gigabitethernet 4/1 status Port Name Status Vlan Duplex Speed Type Gi4/1 err-disabled 100 full 1000 1000BaseSX
You need to turn off the PortFast feature because this port is a port with an improper connection. The connection is improper because PortFast is enabled, and the switch connects to another switch. Remember that PortFast is only for use on ports that connect to end stations.
cat6knative(config-if)#spanning-tree portfast disable
-
UDLD
The UDLD protocol allows devices that are connected through fiber-optic or copper Ethernet cables (for example, Category 5 cabling) to monitor the physical configuration of the cables and detect when a unidirectional link exists. When a unidirectional link is detected, UDLD shuts down the affected port and alerts the user. Unidirectional links can cause a variety of problems, which include spanning-tree topology loops.
Note: UDLD exchanges protocol packets between the neighboring devices. Both devices on the link must support UDLD and have UDLD enabled on the respective ports. If you have UDLD enabled on only one port of a link, it can also leave the end configured with UDLD to go to errdisable state.
Each switch port that is configured for UDLD sends UDLD protocol packets that contain the port device (or port ID) and the neighbor device (or port IDs) that are seen by UDLD on that port. The neighboring ports must see their own device or port ID (echo) in the packets that are received from the other side. If the port does not see its own device or port ID in the incoming UDLD packets for a specific duration of time, the link is considered unidirectional. Therefore, the respective port is disabled and a message that is similar to this is printed on the console:
PM-SP-4-ERR_DISABLE: udld error detected on Gi4/1, putting Gi4/1 in err-disable state.
For more information on UDLD operation, configuration, and commands, refer to the document Configuring UniDirectional Link Detection (UDLD).
-
Link-flap error
Link flap means that the interface continually goes up and down. The interface is put into the errdisabled state if it flaps more than five times in 10 seconds. The common cause of link flap is a Layer 1 issue such as a bad cable, duplex mismatch, or bad Gigabit Interface Converter (GBIC) card. Look at the console messages or the messages that were sent to the syslog server that state the reason for the port shutdown.
%PM-4-ERR_DISABLE: link-flap error detected on Gi4/1, putting Gi4/1 in err-disable state
Issue this command in order to view the flap values:
cat6knative#show errdisable flap-values !--- Refer to show errdisable flap-values for more information on the command. ErrDisable Reason Flaps Time (sec) ----------------- ------ ---------- pagp-flap 3 30 dtp-flap 3 30 link-flap 5 10
-
Loopback error
A loopback error occurs when the keepalive packet is looped back to the port that sent the keepalive. The switch sends keepalives out all the interfaces by default. A device can loop the packets back to the source interface, which usually occurs because there is a logical loop in the network that the spanning tree has not blocked. The source interface receives the keepalive packet that it sent out, and the switch disables the interface (errdisable). This message occurs because the keepalive packet is looped back to the port that sent the keepalive:
%PM-4-ERR_DISABLE: loopback error detected on Gi4/1, putting Gi4/1 in err-disable state
Keepalives are sent on all interfaces by default in Cisco IOS Software Release 12.1EA-based software. In Cisco IOS Software Release 12.2SE-based software and later, keepalives are not sent by default on fiber and uplink interfaces. For more information, refer to Cisco bug ID CSCea46385 (registered customers only) .
The suggested workaround is to disable keepalives and upgrade to Cisco IOS Software Release 12.2SE or later.
-
Port security violation
You can use port security with dynamically learned and static MAC addresses in order to restrict the ingress traffic of a port. In order to restrict the traffic, you can limit the MAC addresses that are allowed to send traffic into the port. In order to configure the switch port to error disable if there is a security violation, issue this command:
cat6knative(config-if)#switchport port-security violation shutdown
A security violation occurs in either of these two situations:
-
When the maximum number of secure MAC addresses is reached on a secure port and the source MAC address of the ingress traffic differs from any of the identified secure MAC addresses
In this case, port security applies the configured violation mode.
-
If traffic with a secure MAC address that is configured or learned on one secure port attempts to access another secure port in the same VLAN
In this case, port security applies the shutdown violation mode.
-
-
L2pt Guard
When the Layer 2 PDUs enter the tunnel or access port on the inbound edge switch, the switch overwrites the customer PDU-destination MAC address with a well-known Cisco proprietary multicast address (01-00-0c-cd-cd-d0). If 802.1Q tunneling is enabled, packets are also double-tagged. The outer tag is the customer metro tag and the inner tag is the customer VLAN tag. The core switches ignore the inner tags and forward the packet to all trunk ports in the same metro VLAN. The edge switches on the outbound side restore the proper Layer 2 protocol and MAC address information and forward the packets to all tunnel or access ports in the same metro VLAN. Therefore, the Layer 2 PDUs are kept intact and delivered across the service-provider infrastructure to the other side of the customer network.
Switch(config)#interface gigabitethernet 0/7 l2protocol-tunnel {cdp | vtp | stp}
The interface goes to errdisabled state. If an encapsulated PDU (with the proprietary destination MAC address) is received from a tunnel port or access port with Layer 2 tunneling enabled, the tunnel port is shut down to prevent loops. The port also shuts down when a configured shutdown threshold for the protocol is reached. You can manually reenable the port (issue a shutdown, no shutdown command sequence) or if errdisable recovery is enabled, the operation is retried after a specified time interval.
To recover the interface from errdisable state, reenable the port with the command errdisable recovery cause l2ptguard. This command is used to configure the recovery mechanism from a Layer 2 maximum rate error so that the interface can be brought out of the disabled state and allowed to try again. You can also set the time interval. Errdisable recovery is disabled by default; when enabled, the default time interval is 300 seconds.
-
Incorrect SFP cable
Ports go into errdisable state with the %PHY-4-SFP_NOT_SUPPORTED error message when you connect Catalyst 3560 and Catalyst 3750 Switches and use an SFP Interconnect Cable.
The Cisco Catalyst 3560 SFP Interconnect Cable (CAB-SFP-50CM=) provides for a low-cost, point-to-point, Gigabit Ethernet connection between Catalyst 3560 Series Switches. The 50-centimeter (cm) cable is an alternative to the SFP transceivers to interconnect Catalyst 3560 Series Switches through their SFP ports over a short distance. All Cisco Catalyst 3560 Series Switches support the SFP Interconnect Cable.
When a Catalyst 3560 Switch is connected to a Catalyst 3750 or any other type of Catalyst switch model, you cannot use the CAB-SFP-50CM= cable. You can connect both switches with a copper cable with SFP (GLC-T) on both devices instead of a CAB-SFP-50CM= cable.
-
802.1X Security Violation
DOT1X-SP-5-SECURITY_VIOLATION: Security violation on interface GigabitEthernet4/8, New MAC address 0080.ad00.c2e4 is seen on the interface in Single host mode %PM-SP-4-ERR_DISABLE: security-violation error detected on Gi4/8, putting Gi4/8 in err-disable state
This message indicates that the port on the specified interface is configured in single-host mode. Any new host that is detected on the interface is treated as a security violation. The port has been error disabled.
Ensure that only one host is connected to the port. If you need to connect to an IP phone and a host behind it, configure Multidomain Authentication Mode on that switchport.
The Multidomain authentication (MDA) mode allows an IP phone and a single host behind the IP phone to authenticate independently, with 802.1X, MAC authentication bypass (MAB), or (for the host only) web-based authentication. In this application, Multidomain refers to two domains — data and voice — and only two MAC addresses are allowed per port. The switch can place the host in the data VLAN and the IP phone in the voice VLAN, though they appear to be on the same switch port. The data VLAN assignment can be obtained from the vendor-specific attributes (VSAs) received from the AAA server within authentication.
For more information, refer to the Multidomain Authentication Mode section of Configuring 802.1X Port-Based Authentication.
Reenable the Errdisabled Ports
After you fix the root problem, the ports are still disabled if you have not configured errdisable recovery on the switch. In this case, you must reenable the ports manually. Issue the shutdown command and then the no shutdown interface mode command on the associated interface in order to manually reenable the ports.
The errdisable recovery command allows you to choose the type of errors that automatically reenable the ports after a specified amount of time. The show errdisable recovery command shows the default error-disable recovery state for all the possible conditions.
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 l2ptguard Disabled psecure-violation Disabled gbic-invalid Disabled dhcp-rate-limit Disabled mac-limit Disabled unicast-flood Disabled arp-inspection Disabled Timer interval: 300 seconds Interfaces that will be enabled at the next timeout:
Note: The default timeout interval is 300 seconds and, by default, the timeout feature is disabled.
In order to turn on errdisable recovery and choose the errdisable conditions, issue this command:
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 error disable 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 security-violation Enable timer to recover from 802.1x violation disable state udld Enable timer to recover from udld error disable state unicast-flood Enable timer to recover from unicast flood disable state
This example shows how to enable the BPDU guard errdisable recovery condition:
cat6knative(Config)#errdisable recovery cause bpduguard
A nice feature of this command is that, if you enable errdisable recovery, the command lists general reasons that the ports have been put into the error-disable state. In this example, notice that the BPDU guard feature was the reason for the shutdown of port 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 l2ptguard Disabled psecure-violation Disabled gbic-invalid Disabled dhcp-rate-limit 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
If any one of the errdisable recovery conditions is enabled, the ports with this condition are reenabled after 300 seconds. You can also change this default of 300 seconds if you issue this command:
cat6knative(Config)#errdisable recovery interval timer_interval_in_seconds
This example changes the errdisable recovery interval from 300 to 400 seconds:
cat6knative(Config)#errdisable recovery interval 400
Verify
-
show version—Displays the version of the software that is used on the switch.
-
show interfaces interface interface_number status—Shows the current status of the switch port.
-
show errdisable detect—Displays the current settings of the errdisable timeout feature and, if any of the ports are currently error disabled, the reason that they are error disabled.
Troubleshoot
-
show interfaces status err-disabled—Shows which local ports are involved in the errdisabled state.
-
show etherchannel summary—Shows the current status of the EtherChannel.
-
show errdisable recovery—Shows the time period after which the interfaces are enabled for errdisable conditions.
-
show errdisable detect—Shows the reason for the errdisable status.
For more information on how to troubleshoot switchport issues, refer to Troubleshooting Switch Port and Interface Problems.
Related Information
- Interface Is in errdisable Status Troubleshooting Hardware and Common Issues on Catalyst 6500/6000 Series Switches Running Cisco IOS System Software
- Spanning Tree PortFast BPDU Guard Enhancement
- Understanding EtherChannel Inconsistency Detection
- Troubleshooting Switch Port and Interface Problems
- LAN Product Support
- LAN Switching Technology Support
- Technical Support — Cisco Systems
Содержание
Введение
Предварительные условия
Требования
Используемые компоненты
Функция errDisable
Платформы, использующие функцию errDisable
Назначение errDisable
Причины errDisable
Восстановление из errDisable
Расширения errDisableВведение
Зачастую клиенты обращаются в службу технической поддержки Cisco, когда замечают, что один или несколько портов коммутатора отключены из-за ошибки, т.е. данные порты находятся в состоянии «errdisabled». Они не знают, почему это произошло и как можно восстановить нормальную работу портов. В этом документе описано, что такое состояние errDisable, как восстановить работу после такого отказа, и приводятся два примера восстановления. Внутри этого документа термины errDisable и error-disable обозначают одно и то же. (errDisable – статус порта, отображаемый командой show port, error-disable или error-disabled – это эквиваленты errDisable)
Предварительные условия
Требования
Для данного документа нет особых требований.
Используемые компоненты
Сведения, содержащиеся в данном документе, касаются следующих версий программного и аппаратного обеспечения. Это необходимо для создания примеров из этого документа:
Два коммутатора семейства Catalyst 4000/5000/6000 (или подобные им) без настройки конфигурации для работы в лабораторных условиях. Основной компьютер — Catalyst 5500, работающий с CatOS 5.4(2). Данное устройство должно быть подключено к коммутатору Catalyst 6509 под управлением 5.3(5a)CSX (также можно использовать любое устройство под управлением CatOS с поддержкой функций Ethernet-канала и PortFast).
Два перекрестных кабеля Ethernet с разъемом RJ-45.
CatOS 5.4(x) как минимум на одном коммутаторе.
Два порта FastEthernet в каждом коммутаторе поддерживают EtherChannel и portfast.
Терминальное подключение к одному или обоим коммутаторам.
Сведения, рассматриваемые в этом документе, получены в условиях изолированной лабораторной среды. Перед использованием любой из команд необходимо изучить ее потенциальное воздействие на сеть. На коммутаторе была введена команда clear config all для установки конфигурации по умолчанию. Если требуется воспроизвести ошибки для изучения их последствий, следует выполнять эту работу только в изолированной среде, чтобы не повлиять на реально используемую сеть. Приведенные ниже примеры даны лишь в качестве обучающих материалов. Выходные данные некоторых команд были сокращены, если они не интересны для обсуждения.
Данные, содержащиеся в документе, получены в специально созданных лабораторных условиях. Все устройства, описанные в данном документе, обладают ненастроенной (заданной по умолчанию) конфигурацией. При работе в действующей сети необходимо изучить все возможные последствия каждой команды.
errDisable
Платформы, использующие функцию errDisable
Функция errDisable поддерживается коммутаторами Catalyst под управлением CatOS (Catalyst 2948G, 4500/4000, 5500/5000 & 6500/6000), а также коммутаторами Catalyst под управлением Cisco IOS (Catalyst 2900XL/3500XL, 2950, 2970, 3550, 4500 & 65000). Способ реализации функции errDisable зависит от программного обеспечения. В данной статье акцент делается на функции отключения в результате ошибок у коммутаторов с программным обеспечением CatOS.
Назначение errDisable
Функция errDisable впервые была реализована в операционной системе CatOS версии 3.2(2). Если в настройках коммутатора показано, что порт должен быть во включенном состоянии, но легальное ПО коммутатора выявило на порте ситуацию, связанную с появлением ошибки, то в таком случае ПО коммутатора отключит данный порт. Т.е. порт был автоматически отключен программным обеспечением коммутатора, так как на порту было обнаружено состояние ошибки.
Когда порт отключается по причине ошибки, то отправка и прием трафика на нем не выполняются. Светодиод порта горит оранжевым цветом, при вводе команды show port статус порта меняется на errdisable. Далее приведен пример данных о порте в состоянии error-disabled, полученных через командную строку:
Cat5500> (enable) show port 11/1 Port Name Status Vlan Level Duplex Speed Type ----- ------------------ ---------- ---------- ------ ------ ----- ------------ 11/1 errdisable 1 normal auto auto 10/100BaseTXФункция отключения ошибок предназначена для двух целей. Во-первых, проинформируйте администратора о том, где и когда возникла проблема порта. Во-вторых, она устраняет возможность вызова данным портом сбоев в других портах модуля (или сбоя всего модуля) из-за монополизации буферов неисправным портом, сообщения об ошибках порта активно занимают межпроцессные взаимодействия в плате, даже если это приводит к серьезным проблемам сети. Функция отключения в результате ошибки дает возможность предотвратить вышеуказанные ситуации.
Причины errDisable
Сначала данная функция предназначалась для решения проблемных ситуаций, когда коммутатор выявлял в порту поздние либо избыточные коллизии. Избыточные коллизии происходят, после того, как кадр отбрасывается из-за 16 коллизий подряд. Поздние конфликты появляются, когда все устройства, подключенные к линии определили, что она занята. Ошибки этих типов могут быть вызваны параметрами кабеля, отличающимися от указанных в спецификации (слишком длинный, неверного типа, неисправный), или плохой картой сетевого интерфейса (NIC) (с физическими проблемами или с проблемами в драйвере), или неверной конфигурацией дуплексного соединения портов. Эта последняя причина широко распространена из-за сбоев в согласовании скорости и параметров дуплексной передачи между двумя непосредственно связанными устройствами (такими как сетевая интерфейсная карта, подключенная к коммутатору). Только у соединений, работающих в полудуплексном режиме могут происходить коллизии в LAN. Т.к. для технологии Ethernet характерен CSMA (множественный доступ с контролем несущей), для полудуплексных соединений коллизии являются рядовым явлением до тех пор пока на них приходится малая часть трафика.
Т. к. возможности CatOS расширились, появилось множество других причин возможных отключений портов Например, на Catalyst 6500 под управлением CatOS функция Errdisable поддерживается для следующих ошибок соединения:
Проверка ARP
Подавление широковещания
Защита портов BPDU
Неверная конфигурация канала
Перекрестный сбой
Несоответствие дуплексных режимов
Неверная конфигурация туннеля протокола уровня 2
Неверная конфигурация туннеля протокола уровня 2
UDLD
Функция error-disable позволяет коммутатору отключать порт в подобных ситуациях. Следует помнить, что отключение порта из-за ошибки не является причиной аварийного сигнала тревоги до тех пор, пока не будут определены и устранены основные причины ошибок. Отключенный в результате ошибки порт – симптом более серьезной проблемы, которую необходимо решить.
Восстановление из errDisable
Для выхода из состояния errDisable необходимо выполнить два действия:
Определите и устраните причину, по которой порты перешли в состояние «error-disabled» (кабель, NIC, EtherChannel и так далее).
Если вы не идентифицируете и не устраните основную проблему, вызвавшую отключение портов, то порты будут снова заблокированы при повторном ее возникновении. Некоторые ошибки могут происходить довольно часто (например, ошибка, обнаруживаемая защитой порта BPDU, может происходить каждые две секунды). При попытке повторного включения портов без исправления причины проблемы они снова будут выключены из-за ошибки.
Включите порт повторно.
Порты не будут включены снова даже при устранении источника проблемы. После устранения источника проблемы порты продолжают оставаться в отключенном состоянии (и светодиоды порта горят оранжевым цветом). Необходимо их включить повторно, прежде чем они станут активными. Раньше единственным способом отмены запрета порта был ручной ввод команды set port enable для соответствующих портов. Со временем появились дополнительные расширения, добавленные в функцию error-disable, сделавшие ее автоматической и более гибкой.
Примечание. Отключенные из-за ошибки порты — не единственная причина того, что индикатор порта горит оранжевым цветом. Это только одна из причин. Поэтому целесообразно проверять статус порта с помощью команды show port. Если ваша организация пользуется ИТ аутсорсингом сетевого оборудования, то лучше передать данную задачу профессиональным инженерам.
Расширения к errDisable
Set Option Errport – CatOS 4.2(2)
Некоторые пользователи хотят иметь возможность определять, следует ли отключить порт из-за особых конфликтных ситуаций, выявленных CatOS. Существовало несколько ситуаций, когда это требовалось — например, если соединение было магистральным, в котором отключение портов фактически хуже, чем обнаружение в них ошибок, то предпочтительнее оставить такие порты в рабочем состоянии до обнаружения причины проблемы, чем отключить их. Таким образом, в версии 4.2(2) к CatOS была добавлена новая команда set option errport, позволяющая администратору определить, какую процедуру выполнил маршрутизатор после обнаружения порта, имеющего данные конкретные конфликты. Исходным состоянием и состоянием по умолчанию является set option errport disable, в котором коммутатор переведет порт в состояние error-disabled при обнаружении специальных ошибок коллизий типа error-disable. Иначе, в случае использования команды set option errport enable, коммутатор оставит порты включенными даже в случае возникновения ошибок коллизий, которые обычно приводят к отключению этих портов.
Эта команда влияет на коммутатор глобально; она не может быть выполнена отдельным портом. Она не указана в справочнике по командам, но содержится в заметках о выпуске для 4.2(2). Обратите внимание, что данная команда представляет собой интуитивно-понятный счетчик, который должен активировать функцию errport для отключения функции err-disable (включенную по умолчанию). Имейте ввиду, чтобы избежать отключения порта в результате ошибки, просто задайте команду set option errport enable.
Использование команды set option errport рекомендуется только при условии полного осознания того, что это может повлиять на другие порты на модуле, если состояние, в котором произошла ошибка, будет продолжаться. Это только временная мера, а не «устранение» проблемы. Она только предотвращает отключение портов при обнаружении в них ошибки, до выяснения истинной причины проблемы. Используйте с осторожностью.
Задание errdisable-timeout — CatOS 5.4(1)
В версии CatOS 5.4(1) введена новая команда set errdisable-timeout. Эта команда является более усовершенствованной версией команды set option errport, рассмотренной ранее. Эта команда автоматически включает отключенный из-за ошибки (error-disabled) порт после того, как истечет настраиваемое количество времени (от 30 с до 24 ч, указанное в секундах). Она позволяет избежать необходимости включать такой порт вручную.
Эта команда влияет на все порты, включенные на коммутаторе текущей конфигурацией, но переведенные в состояние отключения в результате ошибки программным обеспечением CatOS. Использование команды show errdisable-timeout позволяет посмотреть текущий статус функции errdisable-timeout. Можно определить пять отдельных областей, в которых возможно включение данной функции: защита BPDU, неправильная настройка канала, несовпадение дуплексных режимов (со специальными ошибками коллизий, описанными выше), UDLD и другие. Таким образом может быть обеспечена постоянная защита от состояний error-disable в областях, где это необходимо. Это позволит выбирать области, в которых предпочтительнее оставлять порты работающими до устранения неполадок.
В программном обеспечении версии 5.2.1 и 5.2.2 для Catalyst 6000 есть дефект, который приводит к отключению сети, когда порт изменяет состояние на error-disabled. Если порт переходит в режим errDisable, коммутатор провоцирует случайную пересылку известного MAC-адреса на ошибочно отключенный порт. Это вызовет сбои в соответствующей сети VLAN. Это дефект ПО имеет идентификатор ошибки Cisco CSCdm48887. Проблема разрешена в ПО версий 5.2.3 и более поздних.
Краткосрочное обходное решение для предотвращения этой проблемы:
Введите команду set option errport, чтобы отключить функцию error-disabled.
Включите снова все отключенные из-за ошибки порты, используя команду set port speed mod_num/port_num.
Пример: set port enable 3/1
Очистите таблицу MAC-адресов с помощью команды clear cam dynamic для восстановления динамически полученных MAC-адресов.
Часть 2 Часть 3
Содержание
- Восстановление порта из состояния errdisabled
- Платформы, на которых используется отключение из-за ошибки
- Назначение состояния «Errdisabled»
- Причины возникновения состояния «Errdisabled»
- Проверка нахождения портов в состоянии «Errdisabled»
- Определение причины состояния «Errdisabled» (сообщения консоли, системный журнал и команда «show errdisable recovery»)
- Восстановление порта из состояния отключения из-за ошибки
- Исправление основной причины
- Повторное включение портов, отключенных из-за ошибки
- Проверка
- Устранение неполадок
Восстановление порта из состояния errdisabled
В этой статье мы рассмотрим определение состояния отключения из-за ошибки, опишем восстановление из этого состояния и предоставим примеры такого восстановления. В данной статье взаимозаменяемо используются термины «errdisabled» и «отключенный из-за ошибки».
Примечание: Состояние порта err-disabled отображается в выходных данных команды show interfaces interface_number status.
Для воспроизведения примеров, приведенных в данном документе, необходимы два коммутатора серии Cisco Catalyst 4500/6500 (или эквивалентных) в лабораторной среде с настройками, сброшенными до заводских. На коммутаторах должно быть установлено ПО Cisco IOS®, и у каждого коммутатора должно быть по два порта Fast Ethernet, поддерживающих функции EtherChannel и PortFast.
Данные сведения были получены в результате тестирования приборов в специфической лабораторной среде. В качестве начальной конфигурации для всех описанных в документе устройств использовались стандартные (заводские) настройки. В условиях реально действующей сети при использовании каждой команды необходимо четко понимать, какие последствия может иметь применение той или иной команды.
Платформы, на которых используется отключение из-за ошибки
Функция отключения из-за ошибки поддерживается на следующих коммутаторах Catalyst:
- коммутаторы Catalyst со следующим программным обеспечением Cisco IOS:
- 2900XL / 3500XL
- 2940 / 2950 / 2960 / 2970
- 3550 / 3560 / 3560-E / 3750 / 3750-E
- 4000 / 4500
- 6000 / 6500
- коммутаторы Catalyst со следующим программным обеспечением Catalyst (CatOS):
- 2948G
- 4500 / 4000
- 5500 / 5000
- 6500 / 6000
Способ реализации функции отключения из-за ошибки зависит от программной платформы. В этом документе особое внимание уделяется функции отключения из-за ошибки на коммутаторах с программным обеспечением Cisco IOS.
Состояние «Errdisabled»
Назначение состояния «Errdisabled»
Если в конфигурации отображается порт, который должен быть включен, но программное обеспечение на коммутаторе обнаружило порт в состояние ошибки, то программное обеспечение отключит этот порт. Другими словами, порт автоматически отключается операционной системой коммутатора, так как порт обнаружен в состоянии ошибки.
Когда порт отключается из-за ошибки, он фактически выключается, а прием и отправка трафика через него не выполняются. Цвет индикатора порта становится оранжевым, а при выполнении команды show interfaces отображается состояние порта err-disabled . Ниже приводится пример вывода данных о порте в состоянии error-disabled из интерфейса командной строки коммутатора:
cat6knative#show interfaces gigabitethernet 4/1 status
Port | Name | Status | Vlanv | Duplex | Speed | Type |
Gi4/1 | err-disabled | 100 | full | 1000 | 1000BaseSX |
Или, если данный интерфейс отключен из-за состояния ошибки, и в консоли, и в системном журнале можно увидеть сообщения, подобные следующим:
%SPANTREE-SP-2-BLOCK_BPDUGUARD:
Received BPDU on port GigabitEthernet4/1 with BPDU Guard enabled. Disabling port.
%PM-SP-4-ERR_DISABLE:
bpduguard error detected on Gi4/1, putting Gi4/1 in err-disable state
Сообщение данного примера отображается, когда порт хоста принимает блок BPDU. Фактический вид сообщения зависит от причины состояния ошибки.
Функция отключения из-за ошибки решает две задачи.
- Она позволяет администраторам знать, когда и где возникла проблема с портом.
- Она исключает возможность того, что данный порт может вызвать сбой других портов модуля (или всего модуля).
Такой сбой может произойти, когда «неисправный» порт монополизирует буферы или сообщения об ошибках порта монополизируют связи между процессами на плате, что может в итоге вызвать серьезные сетевые проблемы. Функция отключения из-за ошибки помогает предотвратить такие ситуации.
Причины возникновения состояния «Errdisabled»
Эта функция была первоначально реализована для обработки особых конфликтных ситуаций, когда коммутатор обнаруживал в порту избыточные или поздние конфликты. Избыточные конфликты возникают, когда кадр отбрасывается из-за обнаружения 16 конфликтов подряд. Поздние конфликты возникают, когда каждое из подключенных к линии устройств определило, что линия занята. Ниже перечислены некоторые возможные причины ошибок данных типов:
- кабель, не соответствующий спецификациям (слишком длинный, неправильного типа или поврежденный);
- неисправная сетевая интерфейсная плата (с физическими неполадками или проблемами драйверов);
- неправильная конфигурация дуплексного режима порта.
Неправильная конфигурация дуплексного режима порта является распространенной причиной ошибок из-за невозможности правильного согласования скорости и дуплексного режима между двумя напрямую соединенными устройствами (например, сетевой адаптер, подключенный к коммутатору). Только у полудуплексных соединений могут возникать конфликты в ЛВС. Так как для Ethernet характерен множественный доступ с контролем несущей (CSMA), конфликты являются обычным явлением для полудуплексных соединений, пока они составляют малую часть трафика.
Интерфейс может перейти в состояние «errdisabled» по различным причинам. Среди таких причин могут быть следующие:
- Несоответствие дуплексных режимов
- неправильная конфигурация каналов портов
- нарушение защиты BPDU
- состояние обнаружения однонаправленной связи (UDLD)
- обнаружение поздних конфликтов
- обнаружение переброски канала
- нарушение безопасности
- переброска по протоколу агрегации портов (PAgP)
- защита протокола туннелирования уровня 2 (L2TP)
- ограничение скорости DHCP-отслеживания
- неисправный модуль GBIC, подключаемый модуль малого форм-фактора (SFP) или кабель
- проверка протокола ARP
- встроенное питание
Примечание: По умолчанию для всех таких причин включено обнаружение отключения из-за ошибки. Чтобы отключить обнаружение отключения из-за ошибки, выполните команду no errdisable detect cause. Команда show errdisable detect отображает состояние обнаружения отключения из-за ошибки.
Проверка нахождения портов в состоянии «Errdisabled»
Чтобы определить, был ли порт отключен из-за ошибки, выполняется команда show interfaces.
Пример данных об активном порте:
cat6knative#show interfaces gigabitethernet 4/1 status
Port | Name | Status | Vlan | Duplex | Speed | Type |
Gi4/1 | Connected | 100 | full | 1000 | 1000BaseSX |
Ниже приводится пример данных о том же порте в состоянии отключения из-за ошибки:
cat6knative#show interfaces gigabitethernet 4/1 status
Примечание: Если порт отключен из-за ошибки, индикатор на передней панели, соответствующей данному порту, будет выключен.
Определение причины состояния «Errdisabled» (сообщения консоли, системный журнал и команда «show errdisable recovery»)
Когда коммутатор переводит порт в состояние отключения из-за ошибки, он отправляет консоли сообщение с описанием причины отключения порта. В данном разделе приведены два примера сообщений с причинами отключения портов.
- В первом случае отключение вызвано функцией защиты PortFast BPDU.
- Во втором случае отключение вызвано ошибкой в конфигурации EtherChannel.
Примечание: Эти сообщения можно также увидеть в системном журнале, если выполнить команду show log .
Вот примеры сообщений:
%SPANTREE-SP-2-BLOCK_BPDUGUARD:
Received BPDU on port GigabitEthernet4/1 with BPDU Guard enabled. Disabling port.
%PM-SP-4-ERR_DISABLE:
bpduguard error detected on Gi4/1, putting Gi4/1 in err-disable state
%SPANTREE-2-CHNMISCFG: STP loop — channel 11/1-2 is disabled in vlan 1
Если выполнена команда errdisable recovery, можно определить причину состояния «errdisabled» с помощью команды show errdisable recovery.
Ниже представлен пример:
cat6knative#show errdisable recovery
ErrDisable Reason | Timer Status |
udld | Enabled |
bpduguard | Enabled |
security-violatio | Enabled |
channel-misconfig | Enabled |
pagp-flap | Enabled |
dtp-flap | Enabled |
link-flap | Enabled |
2ptguardl | Enabled |
psecure-violation | Enabled |
gbic-invalid | Enabled |
mac-limit | Enabled |
unicast-flood | Enabled |
arp-inspection | Enabled |
Timer interval: 300 seconds
Interfaces that will be enabled at the next timeout:
Interface | Errdisable reason | Time left(sec) |
Fa2/4 | bpduguard | 273 |
Восстановление порта из состояния отключения из-за ошибки
В этом разделе предоставляются примеры способов обнаружения портов, отключенных из-за ошибки, и их восстановления, а также краткое обсуждение некоторых дополнительных причин отключения портов из-за ошибки. Чтобы восстановить порт из состояния «errdisabled», сначала необходимо установить и устранить основную причину проблемы, а затем включить порт. Если включить порт, не устранив причину проблемы, он снова будет отключен из-за ошибки.
Исправление основной причины
После обнаружения причин отключения портов устраните основную причину проблемы. Устранение зависит от проблемы, вызвавшей состояние. Завершение работы может быть инициировано по самым разным причинам. В данном разделе обсуждаются некоторые из наиболее заметных и распространенных случаев.
- Неверная конфигурация EtherChannel
Порты, задействованные в работе EtherChannel, должны обладать согласованными конфигурациями. У портов должны быть одинаковые сети VLAN, режим магистрали, скорость, дуплексный режим и т.д. Большинство отличий конфигураций в рамках одного коммутатора выявляются и заносятся в отчет при создании канала. Если на одной стороне коммутатор настроен для EtherChannel, а на другой — нет, процесс STP может отключить объединенные в канал порты на стороне, настроенной для поддержки режима EtherChannel. В режиме EtherChannel перед объединением портов в канал PAgP-пакеты не отправляются другой стороне для согласования; предполагается, что на другой стороне режим объединения в канал также поддерживается. Кроме того, в данном примере режим EtherChannel не включается на другом коммутаторе, однако соответствующие порты оставляются отдельными, не задействованными в каналах портами. Если оставить другой коммутатор в этом состоянии примерно на минуту, протокол STP коммутатора с включенным режимом EtherChannel считает, что образовалась петля. В результате объединенные в канал порты переводятся в состояние отключения из-за ошибки.
В данном примере обнаружена петля и отключены порты. В выходных данных команды show etherchannel summary указывается, что Number of channel-groups in use (Число используемых групп каналов) равно 0. Если обратить внимание на один из вовлеченных портов, можно заметить, что он находится в состоянии err-disabled:
%SPANTREE-2-CHNL_MISCFG: Detected loop due to etherchannel misconfiguration
of Gi4/1
cat6knative#show etherchannel summary
Flags: D — down P — in port-channel
I — stand-alone s — suspended
H — Hot-standby (LACP only)
R — Layer3 S — Layer2
U — in use f — failed to allocate aggregator u — unsuitable for bundling
Number of channel-groups in use: 0
Number of aggregators: 0
Режим EtherChannel отключен, так как на данном коммутаторе порты были переведены в состояние «errdisable».
cat6knative#show interfaces gigabitethernet 4/1 status
Port | Name | Status | Vlan | Duplex | Speed | Type |
Gi4/1 | err-disabled | 100 | full | 1000 | 1000BaseSX |
Чтобы определить характер проблемы, см. соответствующее сообщение об ошибке. В сообщении указывается, что функция EtherChannel обнаружила петлю в дереве STP. В этом разделе описывается возникновение данной проблемы, когда на одном устройстве (в этом случае коммутатор) канал EtherChannel вручную переведен в режим «Включено» (в противоположность режиму согласования), а на другом подключенном устройстве (в этом случае другой коммутатор) канал EtherChannel вообще не включен. Один из способов разрешения этой ситуации заключается в переводе режима канала в состояние «desirable» на обеих сторонах соединения с последующим повторным включением портов. В результате обе стороны формируют канал только после взаимного согласования. Если создание канала не согласовано, обе стороны продолжают функционировать как обычные порты.
cat6knative(config-terminal)#interface gigabitethernet 4/1
cat6knative(config-if)#channel-group 3 mode desirable non-silent
Несоответствие дуплексных режимов
Несоответствие дуплексных режимов встречается довольно часто из-за неудачного автоматического согласования скорости и дуплексного режима. В отличие от полудуплексного устройства, которому приходится дожидаться освобождения своего сегмента ЛВС другими передающими устройствами, дуплексное устройство при необходимости выполняет передачу независимо от других устройств. Если эта передача выполняется одновременно с передачей полудуплексного устройства, данное устройство будет рассматривать это как конфликт (в течение данного временного интервала) или как поздний конфликт (по истечении данного временного интервала). Так как дуплексное устройство никогда не ожидает конфликтов, на этой стороне никогда не допускается необходимость повторной передачи отброшенных пакетов. Низкий процент конфликтов характерен для полудуплексного режима, но не для дуплексного. Регистрация на порте коммутатора слишком большого количества конфликтов обычно указывает на несоответствие дуплексных режимов. Убедитесь, что на обеих сторонах кабеля порты настроены на одинаковые скорость и дуплексный режим. Команда show interfaces interface_number предоставляет данные о скорости и дуплексном режиме портов коммутатора Catalyst. Более поздние версии протокола обнаружения Cisco (CDP) могут предупреждать о несоответствии дуплексных режимов перед переводом порта в состояние отключения из-за ошибки.
Кроме того, в сетевом адаптере есть настройки, такие как автополярность, которые могут вызвать данную проблему. В случае сомнений отключите такие настройки. Если есть несколько сетевых адаптеров одного производителя и на всех таких сетевых адаптерах проявляется та же проблема, посетите веб-узел производителя, чтобы прочитать заметки о выпуске и получить драйверы последних версий.
Ниже перечислены другие возможные причины поздних конфликтов:
- неисправный сетевой адаптер (с физическими неполадками, а не просто с ошибками конфигурации);
- неисправный кабель
- слишком длинный сегмент кабеля
В режиме PortFast порт должен подключаться только к конечной станции (рабочей станции или серверу), а не к устройствам, генерирующим BPDU-блоки дерева STP, таким как коммутаторы, мосты или маршрутизаторы, формирующие мостовые соединения. При приеме BPDU-блока дерева STP через порт с включенной STP-функцией PortFast и защитой от пакетов BPDU дерева STP коммутатор переводит порт в состояние «err-disable», чтобы защитить сеть от возможного возникновения петель. Функция PortFast предполагает, что порт коммутатора не может сформировать физическую петлю. Поэтому PortFast пропускает первоначальные проверки протокола STP для данного порта, чтобы избежать тайм-аута конечных станций при загрузке. Сетевые администраторы должны тщательно реализовывать функцию PortFast. На портах с включенной функцией PortFast защита BPDU препятствует образованию петель в ЛВС.
В следующем примере показано, как включить эту функцию. Этот пример выбран из-за простоты создания ситуации отключения из-за ошибки в данном случае:
cat6knative(config-if)#spanning-tree bpduguard enable
В этом примере коммутатор Catalyst 6509 подключен к другому коммутатору (серии 6509). Коммутатор Catalyst 6500 отправляет блоки BPDU каждые 2 секунды (при использовании настроек STP по умолчанию). При включении режима PortFast для порта коммутатора 6509 функция защиты BPDU отслеживает поступающие в этот порт блоки BPDU. Поступление блока BPDU в порт означает, что устройство не является конечным. В этом случае функция защиты BPDU отключает данный порт во избежание возможного образования петли в дереве STP.
cat6knative(config-if)#spanning-tree portfast enable
Warning: Spantree port fast start should only be enabled on ports connected
to a single host. Connecting hubs, concentrators, switches, bridges, etc. to
a fast start port can cause temporary spanning tree loops.
%PM-SP-4-ERR_DISABLE: bpduguard error detected on Gi4/1, putting Gi4/1 in
err-disable state.
В этом сообщении коммутатор сообщает о поступлении блока BPDU в порт с поддержкой PortFast, из-за чего коммутатор отключает порт Gi4/1.
cat6knative#show interfaces gigabitethernet 4/1 status
Port | Name | Status | Vlan | Duplex | Speed | Type |
Gi4/1 | err-disabled | 100 | full | 1000 | 1000BaseSX |
Функцию PortFast необходимо отключить, так как данный порт является портом с непригодным соединением. Соединение является непригодным, так как включена функция PortFast, а коммутатор подключается к другому коммутатору. Необходимо помнить, что функция PortFast используется только на портах, подключенных к конечным станциям.
cat6knative(config-if)#spanning-tree portfast disable
Протокол обнаружения однонаправленной связи (UDLD) позволяет устройствам, подключенным с помощью оптоволоконных или медных кабелей Ethernet (например кабелей категории 5), отслеживать физическую конфигурацию кабелей и обнаруживать появление однонаправленных соединений. При обнаружении однонаправленного соединения протокол UDLD отключает соответствующий порт и создает сообщение предупреждения для пользователя. Однонаправленные соединения могут вызвать множество проблем, включая петли в топологии STP.
Примечание: Работа UDLD основана на обмене пакетами протокола между соседними устройствами. Устройства на обеих сторонах соединения должны поддерживать протокол UDLD. Этот же протокол должен поддерживаться на соответствующих портах. Если UDLD включен только на одном порте, на этом конце соединения может быть настроен переход UDLD в состояние «err-disable».
Каждый порт коммутатора, настроенный на UDLD, отправляет пакеты протокола UDLD, в которых указывается устройство порта (или идентификатор порта) и соседнее устройство (или идентификаторы портов), которые видны UDLD на данном порте. В полученных с другой стороны пакетах соседние порты должны видеть свои собственные устройство или идентификатор порта (эхо). Если порт не видит собственного устройства или идентификатора порта во входящих UDLD-пакетах в течение заданного времени, такое соединение считается однонаправленным. В результате соответствующий порт отключается, а в консоли печатается сообщение примерно такого содержания:
PM-SP-4-ERR_DISABLE: udld error detected on Gi4/1, putting Gi4/1 in err-disable state.
Ошибка неустойчивости соединения (link-flap)
Неустойчивость соединения означает постоянное подключение и отключение интерфейса. Если число таких ошибок за 10 секунд больше пяти, интерфейс переводится в состояние «err-disable». Распространенной причиной неустойчивости соединения являются проблемы первого уровня (L1), такие как неисправность кабеля, несоответствие дуплексных режимов или неисправная плата GBIC. Просмотрите сообщения консоли или сообщения, отправленные на сервер системного журнала, в которых сообщается причина отключения портов.
%PM-4-ERR_DISABLE: link-flap error detected on Gi4/1, putting Gi4/ 1 in err-disable state
Чтобы просмотреть данные об ошибках неустойчивости соединения, выполните следующую команду:
cat6knative#show errdisable flap-values
ErrDisable Reason | Flaps | Time (sec) |
pagp-flap | 3 | 30 |
dtp-flap | 3 | 30 |
link-flap | 5 | 10 |
Ошибка обратной петли (loopback)
Ошибка обратной петли возникает, когда пакет запроса keepalive возвращается обратно к отправившему его порту. По умолчанию коммутатор отправляет запросы keepalive всем интерфейсам. Устройство может отправлять пакеты обратно исходному интерфейсу по петле, которая обычно возникает из-за наличия в сети логической петли, не заблокированной протоколом STP. Исходный интерфейс принимает отправленный им пакет сообщения keepalive, а коммутатор отключает данный интерфейс (errdisable). Когда пакет keepalive возвращается обратно к отправившему его порту, появляется следующее сообщение:
%PM-4-ERR_DISABLE: loopback error detected on Gi4/1, putting Gi4/1 in err-disable state
По умолчанию в ПО на базе Cisco IOS версии 12.1EA сообщения keepalive отправляются всеми интерфейсами. В программном обеспечении на базе Cisco IOS 12.2SE или более поздней версии сообщения keepalive по умолчанию не отправляются оптоволоконными и восходящими интерфейсами. Предлагаемый обходной путь заключается в отключении запросов keepalive и обновлении до ПО Cisco IOS 12.2SE или более поздней версии.
Нарушение защиты порта
Защиту порта можно использовать вместе со статическими и динамически получаемыми MAC-адресами, чтобы ограничить входящий трафик порта. Чтобы ограничить трафик, можно ограничить MAC-адреса, которым разрешено отправлять трафик данному порту. Чтобы настроить порт коммутатора на отключение из-за ошибки при нарушении безопасности, выполните следующую команду:
cat6knative(config-if)#switchport port-security violation shutdown
Нарушение безопасности происходит в следующих двух ситуациях:
- Когда на защищенном порте число защищенных MAC-адресов достигло максимума, а исходный MAC-адрес входящего трафика не совпадает ни с одним из идентифицированных защищенных MAC-адресов.
В этом случае защитой порта применяется настроенный режим нарушения. - Если трафик с защищенным MAC-адресом, настроенный или полученный на одном защищенном порте, пытается получить доступ к другому защищенному порту в той же сети VLAN.
В этом случае защита порта применяет режим нарушения завершения работы.
Когда блоки PDU уровня 2 входят в туннель или порт доступа на входящем пограничном коммутаторе, коммутатор заменяет пользовательский MAC-адрес PDU-назначения хорошо известным проприетарным адресом многоадресной рассылки Cisco: 01-00-0c-cd-cd-d0. Если включено туннелирование 802.1Q, пакеты также помечаются двумя тегами. Внешний тег является пользовательским тегом муниципальной сети, а внутренний тег — пользовательским тегом сети VLAN. Основные коммутаторы игнорируют внутренние теги и пересылают пакет всем магистральным портам в одной муниципальной сети VLAN. Пограничные коммутаторы на исходящей стороне восстанавливают данные о необходимом протоколе уровня 2 и MAC-адресе и пересылают пакеты всем туннельным портам или портам доступа внутри одной муниципальной сети VLAN. Поэтому блоки PDU уровня 2 сохраняются неизмененными и через инфраструктуру сервис-провайдера доставляются на другую сторону сети заказчика.
Switch(config)#interface gigabitethernet 0/7
l2protocol-tunnel
Интерфейс переходит в состояние отключения из-за ошибки. Если инкапсулированный блок PDU (с собственным MAC-адресом назначения) получен из туннельного порта или порта доступа с включенным туннелированием уровня 2, туннельный порт отключается, чтобы предотвратить появление петель. Этот порт также отключается, когда достигается пороговое значение завершения работы для данного протокола. Порт можно снова включить вручную (выполнив последовательность команд shutdown, no shutdown), или если включено восстановление из состояния «errdisabled», данная операция повторяется через указанный интервал времени.
Интерфейс можно восстановить из состояния «errdisabled» включив порт с помощью команды errdisable recovery cause l2ptguard. Эта команда используется для настройки механизма восстановления после ошибки «максимальной скорости» уровня 2, чтобы интерфейс можно было вывести из отключенного состояния и попытаться снова использовать. Можно также задать временной интервал. Восстановление из состояния «errdisabled» по умолчанию отключено; при включении временной интервал по умолчанию равен 300 секундам.
Порты переходят в состояние «errdisabled» с сообщением об ошибке %PHY-4-SFP_NOT_SUPPORTED при подключении коммутаторов Catalyst 3560 и Catalyst 3750 с помощью соединительного SFP-кабеля.
Соединительный SFP-кабель для коммутаторов Cisco Catalyst 3560 (CAB-SFP-50CM=) является бюджетным решением для соединений Gigabit Ethernet типа «точка-точка» между коммутаторами серии Catalyst 3560. 50-сантиметровый кабель является альтернативой использованию трансивера SFP при соединении коммутаторов серии Catalyst 3560 через SFP-порты на небольших расстояниях. Все коммутаторы серии Cisco Catalyst 3560 поддерживают соединительные SFP-кабели.
При подключении коммутатора Catalyst 3560 к коммутатору Catalyst 3750 или любой другой модели коммутатора Catalyst нельзя использовать кабель CAB-SFP-50CM=. Два коммутатора можно соединить с помощью медного кабеля с SFP (GLC-T) на обоих устройствах вместо кабеля CAB-SFP-50CM=.
Повторное включение портов, отключенных из-за ошибки
После устранения причины проблемы порты остаются отключенными, если на коммутаторе не настроено восстановление из состояния «errdisabled». В этом случае необходимо включить порты вручную. Выполните команду shutdown, а затем — команду интерфейсного режима no shutdown на соответствующем интерфейсе, чтобы вручную включить порты.
Команда errdisable recovery позволяет выбрать тип ошибок, после которых порты снова автоматически включаются через указанный промежуток времени. Команда show errdisable recovery показывает состояние по умолчанию после восстановления из состояния отключения из-за ошибки для всех возможных условий.
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 error disable |
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:
Если разрешено любое из условий восстановления из состояния «errdisabled», порты с таким условием снова включаются через 300 секунд. Это значение по умолчанию (300 секунд) можно изменить, выполнив следующую команду:
cat6knative(Config)#errdisable recovery interval timer_interval_in_seconds
В следующем примере длительность интервала восстановления из состояния «errdisabled» изменяется с 300 на 400 секунд:
cat6knative(Config)#errdisable recovery interval 400
Проверка
- show version— отображение версии программного обеспечения, используемого на данном коммутаторе.
- show interfaces interface interface_number status— отображение текущего состояния порта коммутатора.
- show errdisable detect— отображение текущих настроек функции тайм-аута состояния «err-disable» и, если в данный момент есть порты, отключенные из-за ошибки, причины их отключения.
Устранение неполадок
- show interfaces status err-disabled— отображение локальных портов в состоянии отключения из-за ошибки.
- show etherchannel summary— отображение текущего состояния EtherChannel.
- show errdisable recovery— отображение периода времени, по истечении которого интерфейсы восстанавливаются из состояния «errdisabled».
- show errdisable detect— отображение причины состояния «err-disable».
Есть вопросы?
Обращайтесь в «Аквилон-А», чтобы узнать подробности и получить именно то, что вам требуется.
Источник
Errdisable is a feature that automatically disables a port on a Cisco Catalyst switch. When a port is error disabled, it is effectively shut down and no traffic is sent or received on that port.
The error disabled feature is supported on most Catalyst switches running the Cisco IOS software. Including all the following models:
- Catalyst 2940 / 2950 / 2960 / 2960S
- Catalyst 3550 / 3560 / 3560-E / 3750 / 3750-E
- Catalyst 4000 / 4500 / 4507R
- Catalyst 6000 / 6500
The Errdisable error disable feature was designed to inform the administrator when there is a port problem or error. The reasons a catalyst switch can go into Errdisable mode and shutdown a port are many and include:
-
Duplex Mismatch
-
Loopback Error
- Link Flapping (up/down)
- Port Security Violation
- Unicast Flodding
- UDLD Failure
- Broadcast Storms
- BPDU Guard
When a port is in error-disabled state, it is effectively shut down and no traffic is sent or received on that port. The port LED is set to the orange color and, when you issue the show interfaces command, the port status shows as Errdisabled.
Following is an example of what an error-disabled port looks like:
2960G# show interface gigabit0/7
GigabitEthernet0/7 is down, line protocol is down (err-disabled)
Hardware is Gigabit Ethernet, address is 001b.54aa.c107 (bia 001b.54aa.c107)
MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
reliability 234/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Auto-duplex, Auto-speed, media type is 10/100/1000BaseTX
input flow-control is off, output flow-control is unsupported
ARP type: ARPA, ARP Timeout 04:00:00
Last input 18w5d, output 18w5d, output hang never
Last clearing of «show interface» counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
1011 packets input, 862666 bytes, 0 no buffer
Received 157 broadcasts (0 multicast)
0 runts, 0 giants, 0 throttles
3021 input errors, 2 CRC, 0 frame, 0 overrun, 0 ignored
0 watchdog, 144 multicast, 0 pause input
0 input packets with dribble condition detected
402154 packets output, 86290866 bytes, 0 underruns
0 output errors, 0 collisions, 1 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier, 0 PAUSE output
0 output buffer failures, 0 output buffers swapped out
To recover a port that is in an Errdisable state, manual intervention is required, and the administrator must access the switch and configure the specific port with ‘shutdown‘ followed by the ‘no shutdown‘ command. This command sequence will enable the port again, however, if the problem persists expect to find the port in Errdisable state again soon.
Understanding and Configuring Errdisable AutoRecovery
As outlined above, there are a number of reasons a port can enter the Errdisable state. One common reason is the Port Security error, also used in our example below.
Of all the errors, Port Security is more a feature rather than an error. Port Security allows the restriction of MAC Addresses on an interface configured as a layer 2 port. This effectively prevents others connecting unwanted hubs or switches on the network. Port Security allows us to specify a single MAC Address to be connected to a specific port, thus restricting access to a specific computer.
In the case of a violation, Port Security will automatically disable the port. This is the behaviour of the default port security policy when enabling Port Security. Following is a configuration example of port security:
2960G(config)# interface GigabitEthernet0/48
2960G(config-if)# switchport access vlan 2
2960G(config-if)# switchport mode access
2960G(config-if)# switchport port-security
2960G(config-if)# spanning-tree portfast
Once a host is connected to the port, we can get more information on its port-security status and actions that will be taken when a violation occurs:
2960G# show port-security interface GigabitEthernet 0/48
Port Security : Enabled
Port Status : Secure-up
Violation Mode : Shutdown
Aging Time : 0 mins
Aging Type : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses : 1
Total MAC Addresses : 1
Configured MAC Addresses : 0
Sticky MAC Addresses : 0
Last Source Address:Vlan : 001b.54aa.c107
Security Violation Count : 0
Note that the Violation Mode is set to Shutdown. This means that when a violation is detected, the switch will place gigabitethernet 0/48 in the err-disable shutdown state as shown below:
%PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0031.f6ac.03f5 on port GigabitEthernet0/48
While it’s almost always necessary to know when a port security violation occurs there are some circumstances where autorecovery is a desirable feature, especially durng accidental violations.
The following commands enable the autorecovery feature 30 seconds after a port security violation:
2960G(config)# errdisable recovery cause psecure-violation
2960G(config)# errdisable recovery interval 30
Determine the Reason for the Errdisabled State
To view the Errdisabled reasons, and see for which reason the autorecovery feature has been enabled, use the show Errdisable recovery command:
2960G# show errdisable recovery
ErrDisable Reason Timer Status
—————— —————
udld Disabled
bpduguard Disabled
security-violatio Disabled
channel-misconfig Disabled
vmps Disabled
pagp-flap Disabled
dtp-flap Disabled
link-flap Disabled
secure-violation Enabled
sfp-config-mismat Disabled
gbic-invalid Disabled
dhcp-rate-limit Disabled
unicast-flood Disabled
storm-control Disabled
loopback Disabled
Timer interval: 30 seconds
Interfaces that will be enabled at the next timeout.
We have now confirmed that autorecovery is enabled for port-security violations. If it is required to enable the Errdisable autorecovery feature for all supported reasons, use the following command:
2960G(config)# errdisable recovery cause all
To test our configuration we forced a port security violation, causing the switch to place the offending port in the shutdown state. Notice we’ve enabled autorecovery for all Errdisable reasons and the time left to enable the interfaces placed in shutdown state by the port security violation:
2960G# show errdisable recovery
ErrDisable Reason Timer Status
—————— —————
udld Enabled
bpduguard Enabled
security-violatio Enabled
channel-misconfig Enabled
vmps Enabled
pagp-flap Enabled
dtp-flap Enabled
link-flap Enabled
psecure-violation Enabled
sfp-config-mismat Enabled
gbic-invalid Enabled
dhcp-rate-limit Enabled
unicast-flood Enabled
storm-control Enabled
loopback Enabled
Timer interval: 30 seconds
Interfaces that will be enabled at the next timeout:
Interface Errdisable reason Time left(sec)
——— —————— —————
Gi0/48 security-violation 17
Seventeen seconds later, the switch automatically recovered from the port security violation and re-enabled the interface:
%PM-4-ERR_RECOVER: Attempting to recover from secure-violation err-disable state on gigabitethernet0/48
18w4d: %LINK-3-UPDOWN: Interface GigabitEthernet0/48, changed state to up
18w4d: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/48, changed state to up
Disabling The Errdisable Feature
There are cases where it might be necessary to disable the Errdisable mechanism for specific supported features in order to overcome constant interface shutdowns and auto recoveries. While the Catalyst IOS does not allow disabling all features we can still fine-tune the mechanism and selectively disable a few.
To view the Errdisable reasons monitored by the switch, use the show Errdisable detect command:
2960G# show errdisable detect
ErrDisable Reason Detection Mode
----------------- --------- ----
bpduguard Enabled port
channel-misconfig Enabled port
community-limit Enabled port
dhcp-rate-limit Enabled port
dtp-flap Enabled port
gbic-invalid Enabled portinline-power Enabled port
invalid-policy Enabled port
link-flap Enabled port
loopback Enabled port
lsgroup Enabled port
mac-limit Enabled port
pagp-flap Enabled portport-mode-failure Enabled port
secure-violation Enabled port/vlan
security-violation Enabled portsfp-config-mismatch Enabled port
small-frame Enabled port
storm-control Enabled port
udld Enabled port
vmps Enabled port
As shown, the command lists all supported Errdisable reasons. For our example, let’s assume we want to disable the inline-power Errdisable feature.
To achieve this, we simply use the following command:
2960G(config)# errdisable recovery cause all
And verify that Errdisable has been disabled for the feature:
2960G# show errdisable detect
ErrDisable Reason Detection Mode
----------------- --------- ----
bpduguard Enabled port
channel-misconfig Enabled port
community-limit Enabled port
dhcp-rate-limit Enabled port
dtp-flap Enabled port
gbic-invalid Enabled portinline-power Disabled port
invalid-policy Enabled port
link-flap Enabled port
loopback Enabled port
lsgroup Enabled port
mac-limit Enabled port
pagp-flap Enabled portport-mode-failure Enabled port
psecure-violation Enabled port/vlan
security-violation Enabled portsfp-config-mismatch Enabled port
small-frame Enabled port
storm-control Enabled port
udld Enabled port
vmps Enabled port
Overall, the Errdisable feature is an extremely useful tool if configured and monitored correctly. Take the necessary time to play around with the supported options of your Cisco Catalyst switch and fine-tune it to suit your network needs.
Back to Cisco Switches Section
Повторное включение портов, отключенных из-за ошибки
После устранения причины проблемы порты остаются отключенными, если на коммутаторе не настроено восстановление из состояния «errdisabled». В этом случае необходимо включить порты вручную. Выполните команду shutdown , а затем — команду интерфейсного режима no shutdown на соответствующем интерфейсе, чтобы вручную включить порты, если не поможет — команду reload для перезагрузки (иногда помогает)
Содержание
Введение
Предварительные условия
Требования
Используемые компоненты
Условные обозначения
Общие сведения
Платформы, на которых используется отключение из-за ошибки
Состояние «Errdisabled»
Назначение состояния «Errdisabled»
Причины возникновения состояния «Errdisabled»
Проверка нахождения портов в состоянии «Errdisabled»
Определение причины состояния «Errdisabled» (сообщения консоли, системный журнал и команда «show errdisable recovery»)
Восстановление порта из состояния отключения из-за ошибкиСвязанные обсуждения сообщества поддержки Cisco
Дополнительные сведения
Введение
В данном документе дается определение состояния отключения из-за ошибки, описывается восстановление из этого состояния и предоставляются примеры такого восстановления. В данном документе взаимозаменяемо используются термины «errdisabled» и «отключенный из-за ошибки». Зачастую клиенты обращаются в службу технической поддержки Cisco, когда замечают, что один или несколько портов коммутатора отключены из-за ошибки, т.е. данные порты находятся в состоянии «errdisabled». Такие клиенты хотят знать, почему произошло отключение из-за ошибки и как восстановить нормальное состояние портов.
Примечание: Состояние порта err-disabled отображается в выходных данных команды show interfaces interface_number status .
Предварительные условия
Требования
Для данного документа нет особых требований.
Используемые компоненты
Для воспроизведения примеров, приведенных в данном документе, необходимы два коммутатора серии Cisco Catalyst 4500/6500 (или эквивалентных) в лабораторной среде с настройками, сброшенными до заводских. На коммутаторах должно быть установлено ПО Cisco IOS®, и у каждого коммутатора должно быть по два порта Fast Ethernet, поддерживающих функции EtherChannel и PortFast.
Данные сведения были получены в результате тестирования приборов в специфической лабораторной среде. В качестве начальной конфигурации для всех описанных в документе устройств использовались стандартные (заводские) настройки. В условиях реально действующей сети при использовании каждой команды необходимо четко понимать, какие последствия может иметь применение той или иной команды.
Условные обозначения
Более подробные сведения о применяемых в документе обозначениях см. в документе Cisco Technical Tips Conventions (Условные обозначения, используемые в технической документации Cisco).
Общие сведения
Платформы, на которых используется отключение из-за ошибки
Функция отключения из-за ошибки поддерживается на следующих коммутаторах Catalyst:
-
коммутаторы Catalyst со следующим программным обеспечением Cisco IOS:
-
2900XL / 3500XL
-
2940 / 2950 / 2960 / 2970
-
3550 / 3560 / 3560-E / 3750 / 3750-E
-
4000 / 4500
-
6000 / 6500
-
-
коммутаторы Catalyst со следующим программным обеспечением Catalyst (CatOS):
-
2948G
-
4500 / 4000
-
5500 / 5000
-
6500 / 6000
-
Способ реализации функции отключения из-за ошибки зависит от программной платформы. В этом документе особое внимание уделяется функции отключения из-за ошибки на коммутаторах с программным обеспечением Cisco IOS.
Состояние «Errdisabled»
Назначение состояния «Errdisabled»
Если в конфигурации отображается порт, который должен быть включен, но программное обеспечение на коммутаторе обнаружило порт в состояние ошибки, то программное обеспечение отключит этот порт. Другими словами, порт автоматически отключается операционной системой коммутатора, так как порт обнаружен в состоянии ошибки.
Когда порт отключается из-за ошибки, он фактически выключается, а прием и отправка трафика через него не выполняются. Цвет индикатора порта становится оранжевым, а при выполнении команды show interfaces
отображается состояние порта err-disabled. Ниже приводится пример вывода данных о порте в состоянии error-disabled из интерфейса командной строки коммутатора:
cat6knative#show interfaces gigabitethernet 4/1 status Port Name Status Vlan Duplex Speed Type Gi4/1 err-disabled 100 full 1000 1000BaseSX
Или, если данный интерфейс отключен из-за состояния ошибки, и в консоли, и в системном журнале можно увидеть сообщения, подобные следующим:
%SPANTREE-SP-2-BLOCK_BPDUGUARD: Received BPDU on port GigabitEthernet4/1 with BPDU Guard enabled. Disabling port. %PM-SP-4-ERR_DISABLE: bpduguard error detected on Gi4/1, putting Gi4/1 in err-disable state
Сообщение данного примера отображается, когда порт хоста принимает блок BPDU. Фактический вид сообщения зависит от причины состояния ошибки.
Функция отключения из-за ошибки решает две задачи.
-
Она позволяет администраторам знать, когда и где возникла проблема с портом.
-
Она исключает возможность того, что данный порт может вызвать сбой других портов модуля (или всего модуля).
Такой сбой может произойти, когда «неисправный» порт монополизирует буферы или сообщения об ошибках порта монополизируют связи между процессами на плате, что может в итоге вызвать серьезные сетевые проблемы. Функция отключения из-за ошибки помогает предотвратить такие ситуации.
Причины возникновения состояния «Errdisabled»
Эта функция была первоначально реализована для обработки особых конфликтных ситуаций, когда коммутатор обнаруживал в порту избыточные или поздние конфликты. Избыточные конфликты возникают, когда кадр отбрасывается из-за обнаружения 16 конфликтов подряд. Поздние конфликты возникают, когда каждое из подключенных к линии устройств определило, что линия занята. Ниже перечислены некоторые возможные причины ошибок данных типов:
-
кабель, не соответствующий спецификациям (слишком длинный, неправильного типа или поврежденный);
-
неисправная сетевая интерфейсная плата (с физическими неполадками или проблемами драйверов);
-
неправильная конфигурация дуплексного режима порта.
Неправильная конфигурация дуплексного режима порта является распространенной причиной ошибок из-за невозможности правильного согласования скорости и дуплексного режима между двумя напрямую соединенными устройствами (например, сетевой адаптер, подключенный к коммутатору). Только у полудуплексных соединений могут возникать конфликты в ЛВС. Так как для Ethernet характерен множественный доступ с контролем несущей (CSMA), конфликты являются обычным явлением для полудуплексных соединений, пока они составляют малую часть трафика.
Интерфейс может перейти в состояние «errdisabled» по различным причинам. Среди таких причин могут быть следующие:
-
Несоответствие дуплексных режимов
-
неправильная конфигурация каналов портов
-
нарушение защиты BPDU
-
состояние обнаружения однонаправленной связи (UDLD)
-
обнаружение поздних конфликтов
-
обнаружение переброски канала
-
нарушение безопасности
-
переброска по протоколу агрегации портов (PAgP)
-
защита протокола туннелирования уровня 2 (L2TP)
-
ограничение скорости DHCP-отслеживания
-
неисправный модуль GBIC, подключаемый модуль малого форм-фактора (SFP) или кабель
-
проверка протокола ARP
-
встроенное питание
Примечание: По умолчанию для всех таких причин включено обнаружение отключения из-за ошибки. Чтобы отключить обнаружение отключения из-за ошибки, выполните команду no errdisable detect cause . Команда show errdisable detect отображает состояние обнаружения отключения из-за ошибки.
Проверка нахождения портов в состоянии «Errdisabled»
Чтобы определить, был ли порт отключен из-за ошибки, выполняется команда show interfaces .
Пример данных об активном порте:
cat6knative#show interfaces gigabitethernet 4/1 status
!--- Refer to show interfaces status for more information on the command.
Port Name Status Vlan Duplex Speed Type
Gi4/1 Connected 100 full 1000 1000BaseSX
Ниже приводится пример данных о том же порте в состоянии отключения из-за ошибки:
cat6knative#show interfaces gigabitethernet 4/1 status
!--- Refer to show interfaces status for more information on the command.
Port Name Status Vlan Duplex Speed Type
Gi4/1 err-disabled 100 full 1000 1000BaseSX
Примечание: Если порт отключен из-за ошибки, индикатор на передней панели, соответствующей данному порту, будет выключен.
Определение причины состояния «Errdisabled» (сообщения консоли, системный журнал и команда «show errdisable recovery»)
Когда коммутатор переводит порт в состояние отключения из-за ошибки, он отправляет консоли сообщение с описанием причины отключения порта. В данном разделе приведены два примера сообщений с причинами отключения портов.
-
В первом случае отключение вызвано функцией защиты PortFast BPDU.
-
Во втором случае отключение вызвано ошибкой в конфигурации EtherChannel.
Примечание: Эти сообщения можно также увидеть в системном журнале, если выполнить команду show log .
Вот примеры сообщений:
%SPANTREE-SP-2-BLOCK_BPDUGUARD: Received BPDU on port GigabitEthernet4/1 with BPDU Guard enabled. Disabling port. %PM-SP-4-ERR_DISABLE: bpduguard error detected on Gi4/1, putting Gi4/1 in err-disable state %SPANTREE-2-CHNMISCFG: STP loop - channel 11/1-2 is disabled in vlan 1
Если выполнена команда errdisable recovery, можно определить причину состояния «errdisabled» с помощью команды
show errdisable recovery
. Ниже представлен пример:
cat6knative#show errdisable recovery ErrDisable Reason Timer Status ----------------- -------------- udld Enabled bpduguard Enabled security-violatio Enabled channel-misconfig Enabled pagp-flap Enabled dtp-flap Enabled link-flap Enabled l2ptguard Enabled psecure-violation Enabled gbic-invalid Enabled dhcp-rate-limit Enabled mac-limit Enabled unicast-flood Enabled arp-inspection Enabled Timer interval: 300 seconds Interfaces that will be enabled at the next timeout: Interface Errdisable reason Time left(sec) --------- --------------------- -------------- Fa2/4 bpduguard 273
Восстановление порта из состояния отключения из-за ошибки
В этом разделе предоставляются примеры способов обнаружения портов, отключенных из-за ошибки, и их восстановления, а также краткое обсуждение некоторых дополнительных причин отключения портов из-за ошибки. Чтобы восстановить порт из состояния «errdisabled», сначала необходимо установить и устранить основную причину проблемы, а затем включить порт. Если включить порт, не устранив причину проблемы, он снова будет отключен из-за ошибки.
Исправление основной причины
После обнаружения причин отключения портов устраните основную причину проблемы. Устранение зависит от проблемы, вызвавшей состояние. Завершение работы может быть инициировано по самым разным причинам. В данном разделе обсуждаются некоторые из наиболее заметных и распространенных случаев.
-
Неверная конфигурация EtherChannel
Порты, задействованные в работе EtherChannel, должны обладать согласованными конфигурациями. У портов должны быть одинаковые сети VLAN, режим магистрали, скорость, дуплексный режим и т.д. Большинство отличий конфигураций в рамках одного коммутатора выявляются и заносятся в отчет при создании канала. Если на одной стороне коммутатор настроен для EtherChannel, а на другой — нет, процесс STP может отключить объединенные в канал порты на стороне, настроенной для поддержки режима EtherChannel. В режиме EtherChannel перед объединением портов в канал PAgP-пакеты не отправляются другой стороне для согласования; предполагается, что на другой стороне режим объединения в канал также поддерживается. Кроме того, в данном примере режим EtherChannel не включается на другом коммутаторе, однако соответствующие порты оставляются отдельными, не задействованными в каналах портами. Если оставить другой коммутатор в этом состоянии примерно на минуту, протокол STP коммутатора с включенным режимом EtherChannel считает, что образовалась петля. В результате объединенные в канал порты переводятся в состояние отключения из-за ошибки.
В данном примере обнаружена петля и отключены порты. В выходных данных команды show etherchannel summary указывается, что Number of channel-groups in use (Число используемых групп каналов) равно 0. Если обратить внимание на один из вовлеченных портов, можно заметить, что он находится в состоянии err-disabled:
%SPANTREE-2-CHNL_MISCFG: Detected loop due to etherchannel misconfiguration of Gi4/1 cat6knative#show etherchannel summary !--- Refer to show etherchannel for more information on the command. Flags: D - down P - in port-channel I - stand-alone s - suspended H - Hot-standby (LACP only) R - Layer3 S - Layer2 U - in use f - failed to allocate aggregator u - unsuitable for bundling Number of channel-groups in use: 0 Number of aggregators: 0 Group Port-channel Protocol Ports ------+-------------+-----------+-----------------------------------------------
Режим EtherChannel отключен, так как на данном коммутаторе порты были переведены в состояние «errdisable».
cat6knative#show interfaces gigabitethernet 4/1 status Port Name Status Vlan Duplex Speed Type Gi4/1 err-disabled 100 full 1000 1000BaseSX
Чтобы определить характер проблемы, см. соответствующее сообщение об ошибке. В сообщении указывается, что функция EtherChannel обнаружила петлю в дереве STP. В этом разделе описывается возникновение данной проблемы, когда на одном устройстве (в этом случае коммутатор) канал EtherChannel вручную переведен в режим «Включено» (в противоположность режиму согласования), а на другом подключенном устройстве (в этом случае другой коммутатор) канал EtherChannel вообще не включен. Один из способов разрешения этой ситуации заключается в переводе режима канала в состояние «desirable» на обеих сторонах соединения с последующим повторным включением портов. В результате обе стороны формируют канал только после взаимного согласования. Если создание канала не согласовано, обе стороны продолжают функционировать как обычные порты.
cat6knative(config-terminal)#interface gigabitethernet 4/1 cat6knative(config-if)#channel-group 3 mode desirable non-silent
-
Несоответствие дуплексных режимов
Несоответствие дуплексных режимов встречается довольно часто из-за неудачного автоматического согласования скорости и дуплексного режима. В отличие от полудуплексного устройства, которому приходится дожидаться освобождения своего сегмента ЛВС другими передающими устройствами, дуплексное устройство при необходимости выполняет передачу независимо от других устройств. Если эта передача выполняется одновременно с передачей полудуплексного устройства, данное устройство будет рассматривать это как конфликт (в течение данного временного интервала) или как поздний конфликт (по истечении данного временного интервала). Так как дуплексное устройство никогда не ожидает конфликтов, на этой стороне никогда не допускается необходимость повторной передачи отброшенных пакетов. Низкий процент конфликтов характерен для полудуплексного режима, но не для дуплексного. Регистрация на порте коммутатора слишком большого количества конфликтов обычно указывает на несоответствие дуплексных режимов. Убедитесь, что на обеих сторонах кабеля порты настроены на одинаковые скорость и дуплексный режим. Команда show interfaces interface_number
предоставляет данные о скорости и дуплексном режиме портов коммутатора Catalyst. Более поздние версии протокола обнаружения Cisco (CDP) могут предупреждать о несоответствии дуплексных режимов перед переводом порта в состояние отключения из-за ошибки.Кроме того, в сетевом адаптере есть настройки, такие как автополярность, которые могут вызвать данную проблему. В случае сомнений отключите такие настройки. Если есть несколько сетевых адаптеров одного производителя и на всех таких сетевых адаптерах проявляется та же проблема, посетите веб-узел производителя, чтобы прочитать заметки о выпуске и получить драйверы последних версий.
Ниже перечислены другие возможные причины поздних конфликтов:
-
неисправный сетевой адаптер (с физическими неполадками, а не просто с ошибками конфигурации);
-
неисправный кабель
-
слишком длинный сегмент кабеля
-
-
защита портов BPDU
В режиме PortFast порт должен подключаться только к конечной станции (рабочей станции или серверу), а не к устройствам, генерирующим BPDU-блоки дерева STP, таким как коммутаторы, мосты или маршрутизаторы, формирующие мостовые соединения. При приеме BPDU-блока дерева STP через порт с включенной STP-функцией PortFast и защитой от пакетов BPDU дерева STP коммутатор переводит порт в состояние «err-disable», чтобы защитить сеть от возможного возникновения петель. Функция PortFast предполагает, что порт коммутатора не может сформировать физическую петлю. Поэтому PortFast пропускает первоначальные проверки протокола STP для данного порта, чтобы избежать тайм-аута конечных станций при загрузке. Сетевые администраторы должны тщательно реализовывать функцию PortFast. На портах с включенной функцией PortFast защита BPDU препятствует образованию петель в ЛВС.
В следующем примере показано, как включить эту функцию. Этот пример выбран из-за простоты создания ситуации отключения из-за ошибки в данном случае:
cat6knative(config-if)#spanning-tree bpduguard enable !--- Refer to spanning-tree bpduguard for more information on the command.
В этом примере коммутатор Catalyst 6509 подключен к другому коммутатору (серии 6509). Коммутатор Catalyst 6500 отправляет блоки BPDU каждые 2 секунды (при использовании настроек STP по умолчанию). При включении режима PortFast для порта коммутатора 6509 функция защиты BPDU отслеживает поступающие в этот порт блоки BPDU. Поступление блока BPDU в порт означает, что устройство не является конечным. В этом случае функция защиты BPDU отключает данный порт во избежание возможного образования петли в дереве STP.
cat6knative(config-if)#spanning-tree portfast enable !--- Refer to spanning-tree portfast (interface configuration mode) !--- for more information on the command. Warning: Spantree port fast start should only be enabled on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc. to a fast start port can cause temporary spanning tree loops. %PM-SP-4-ERR_DISABLE: bpduguard error detected on Gi4/1, putting Gi4/1 in err-disable state.
В этом сообщении коммутатор сообщает о поступлении блока BPDU в порт с поддержкой PortFast, из-за чего коммутатор отключает порт Gi4/1.
cat6knative#show interfaces gigabitethernet 4/1 status Port Name Status Vlan Duplex Speed Type Gi4/1 err-disabled 100 full 1000 1000BaseSX
Функцию PortFast необходимо отключить, так как данный порт является портом с непригодным соединением. Соединение является непригодным, так как включена функция PortFast, а коммутатор подключается к другому коммутатору. Необходимо помнить, что функция PortFast используется только на портах, подключенных к конечным станциям.
cat6knative(config-if)#spanning-tree portfast disable
-
UDLD
Протокол обнаружения однонаправленной связи (UDLD) позволяет устройствам, подключенным с помощью оптоволоконных или медных кабелей Ethernet (например кабелей категории 5), отслеживать физическую конфигурацию кабелей и обнаруживать появление однонаправленных соединений. При обнаружении однонаправленного соединения протокол UDLD отключает соответствующий порт и создает сообщение предупреждения для пользователя. Однонаправленные соединения могут вызвать множество проблем, включая петли в топологии STP.
Примечание: Работа UDLD основана на обмене пакетами протокола между соседними устройствами. Устройства на обеих сторонах соединения должны поддерживать протокол UDLD. Этот же протокол должен поддерживаться на соответствующих портах. Если UDLD включен только на одном порте, на этом конце соединения может быть настроен переход UDLD в состояние «err-disable».
Каждый порт коммутатора, настроенный на UDLD, отправляет пакеты протокола UDLD, в которых указывается устройство порта (или идентификатор порта) и соседнее устройство (или идентификаторы портов), которые видны UDLD на данном порте. В полученных с другой стороны пакетах соседние порты должны видеть свои собственные устройство или идентификатор порта (эхо). Если порт не видит собственного устройства или идентификатора порта во входящих UDLD-пакетах в течение заданного времени, такое соединение считается однонаправленным. В результате соответствующий порт отключается, а в консоли печатается сообщение примерно такого содержания:
PM-SP-4-ERR_DISABLE: udld error detected on Gi4/1, putting Gi4/1 in err-disable state.
Дополнительные сведения о работе, конфигурации и командах протокола обнаружения однонаправленной связи (UDLD) см. в документе Настройка обнаружения однонаправленной связи (UDLD).
-
Ошибка неустойчивости соединения (link-flap)
Неустойчивость соединения означает постоянное подключение и отключение интерфейса. Если число таких ошибок за 10 секунд больше пяти, интерфейс переводится в состояние «err-disable». Распространенной причиной неустойчивости соединения являются проблемы первого уровня (L1), такие как неисправность кабеля, несоответствие дуплексных режимов или неисправная плата GBIC. Просмотрите сообщения консоли или сообщения, отправленные на сервер системного журнала, в которых сообщается причина отключения портов.
%PM-4-ERR_DISABLE: link-flap error detected on Gi4/1, putting Gi4/ 1 in err-disable state
Чтобы просмотреть данные об ошибках неустойчивости соединения, выполните следующую команду:
cat6knative#show errdisable flap-values !--- Refer to show errdisable flap-values for more information on the command. ErrDisable Reason Flaps Time (sec) ----------------- ------ ---------- pagp-flap 3 30 dtp-flap 3 30 link-flap 5 10
-
Ошибка обратной петли (loopback)
Ошибка обратной петли возникает, когда пакет запроса keepalive возвращается обратно к отправившему его порту. По умолчанию коммутатор отправляет запросы keepalive всем интерфейсам. Устройство может отправлять пакеты обратно исходному интерфейсу по петле, которая обычно возникает из-за наличия в сети логической петли, не заблокированной протоколом STP. Исходный интерфейс принимает отправленный им пакет сообщения keepalive, а коммутатор отключает данный интерфейс (errdisable). Когда пакет keepalive возвращается обратно к отправившему его порту, появляется следующее сообщение:
%PM-4-ERR_DISABLE: loopback error detected on Gi4/1, putting Gi4/1 in err-disable state
По умолчанию в ПО на базе Cisco IOS версии 12.1EA сообщения keepalive отправляются всеми интерфейсами. В программном обеспечении на базе Cisco IOS 12.2SE или более поздней версии сообщения keepalive по умолчанию не отправляются оптоволоконными и восходящими интерфейсами. Дополнительные сведения см. в описании ошибки с идентификатором CSCea46385
(registered customers only)
.Предлагаемый обходной путь заключается в отключении запросов keepalive и обновлении до ПО Cisco IOS 12.2SE или более поздней версии.
-
Нарушение защиты порта
Защиту порта можно использовать вместе со статическими и динамически получаемыми MAC-адресами, чтобы ограничить входящий трафик порта. Чтобы ограничить трафик, можно ограничить MAC-адреса, которым разрешено отправлять трафик данному порту. Чтобы настроить порт коммутатора на отключение из-за ошибки при нарушении безопасности, выполните следующую команду:
cat6knative(config-if)#switchport port-security violation shutdown
Нарушение безопасности происходит в следующих двух ситуациях:
-
Когда на защищенном порте число защищенных MAC-адресов достигло максимума, а исходный MAC-адрес входящего трафика не совпадает ни с одним из идентифицированных защищенных MAC-адресов.
В этом случае защитой порта применяется настроенный режим нарушения.
-
Если трафик с защищенным MAC-адресом, настроенный или полученный на одном защищенном порте, пытается получить доступ к другому защищенному порту в той же сети VLAN.
В этом случае защита порта применяет режим нарушения завершения работы.
Дополнительные сведения о защите порта см. в документе Настройка защиты порта.
-
-
Защита L2pt
Когда блоки PDU уровня 2 входят в туннель или порт доступа на входящем пограничном коммутаторе, коммутатор заменяет пользовательский MAC-адрес PDU-назначения хорошо известным проприетарным адресом многоадресной рассылки Cisco: 01-00-0c-cd-cd-d0. Если включено туннелирование 802.1Q, пакеты также помечаются двумя тегами. Внешний тег является пользовательским тегом муниципальной сети, а внутренний тег — пользовательским тегом сети VLAN. Основные коммутаторы игнорируют внутренние теги и пересылают пакет всем магистральным портам в одной муниципальной сети VLAN. Пограничные коммутаторы на исходящей стороне восстанавливают данные о необходимом протоколе уровня 2 и MAC-адресе и пересылают пакеты всем туннельным портам или портам доступа внутри одной муниципальной сети VLAN. Поэтому блоки PDU уровня 2 сохраняются неизмененными и через инфраструктуру сервис-провайдера доставляются на другую сторону сети заказчика.
Switch(config)#interface gigabitethernet 0/7 l2protocol-tunnel {cdp | vtp | stp}
Интерфейс переходит в состояние отключения из-за ошибки. Если инкапсулированный блок PDU (с собственным MAC-адресом назначения) получен из туннельного порта или порта доступа с включенным туннелированием уровня 2, туннельный порт отключается, чтобы предотвратить появление петель. Этот порт также отключается, когда достигается пороговое значение завершения работы для данного протокола. Порт можно снова включить вручную (выполнив последовательность команд shutdown, no shutdown
), или если включено восстановление из состояния «errdisabled», данная операция повторяется через указанный интервал времени.Интерфейс можно восстановить из состояния «errdisabled» включив порт с помощью команды errdisable recovery cause l2ptguard. Эта команда используется для настройки механизма восстановления после ошибки «максимальной скорости» уровня 2, чтобы интерфейс можно было вывести из отключенного состояния и попытаться снова использовать. Можно также задать временной интервал. Восстановление из состояния «errdisabled» по умолчанию отключено; при включении временной интервал по умолчанию равен 300 секундам.
-
Неисправный SFP-кабель
Порты переходят в состояние «errdisabled» с сообщением об ошибке %PHY-4-SFP_NOT_SUPPORTED при подключении коммутаторов Catalyst 3560 и Catalyst 3750 с помощью соединительного SFP-кабеля.
Соединительный SFP-кабель для коммутаторов Cisco Catalyst 3560 (CAB-SFP-50CM=) является бюджетным решением для соединений Gigabit Ethernet типа «точка-точка» между коммутаторами серии Catalyst 3560. 50-сантиметровый кабель является альтернативой использованию трансивера SFP при соединении коммутаторов серии Catalyst 3560 через SFP-порты на небольших расстояниях. Все коммутаторы серии Cisco Catalyst 3560 поддерживают соединительные SFP-кабели.
При подключении коммутатора Catalyst 3560 к коммутатору Catalyst 3750 или любой другой модели коммутатора Catalyst нельзя использовать кабель CAB-SFP-50CM=. Два коммутатора можно соединить с помощью медного кабеля с SFP (GLC-T) на обоих устройствах вместо кабеля CAB-SFP-50CM=.
Повторное включение портов, отключенных из-за ошибки
После устранения причины проблемы порты остаются отключенными, если на коммутаторе не настроено восстановление из состояния «errdisabled». В этом случае необходимо включить порты вручную. Выполните команду shutdown
, а затем — команду интерфейсного режима no shutdown на соответствующем интерфейсе, чтобы вручную включить порты.
Команда errdisable recovery позволяет выбрать тип ошибок, после которых порты снова автоматически включаются через указанный промежуток времени. Команда show errdisable recovery показывает состояние по умолчанию после восстановления из состояния отключения из-за ошибки для всех возможных условий.
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 l2ptguard Disabled psecure-violation Disabled gbic-invalid Disabled dhcp-rate-limit 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 error disable 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 security-violation Enable timer to recover from 802.1x 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 l2ptguard Disabled psecure-violation Disabled gbic-invalid Disabled dhcp-rate-limit 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
Проверка
-
show version— отображение версии программного обеспечения, используемого на данном коммутаторе.
-
show interfaces interface interface_number status— отображение текущего состояния порта коммутатора.
-
show errdisable detect— отображение текущих настроек функции тайм-аута состояния «err-disable» и, если в данный момент есть порты, отключенные из-за ошибки, причины их отключения.
Устранение неполадок
-
show interfaces status err-disabled— отображение локальных портов в состоянии отключения из-за ошибки.
-
show etherchannel summary— отображение текущего состояния EtherChannel.
-
show errdisable recovery— отображение периода времени, по истечении которого интерфейсы восстанавливаются из состояния «errdisabled».
-
show errdisable detect— отображение причины состояния «err-disable».
Дополнительные сведения об устранении неполадок с портами коммутаторов см. в документе Устранение интерфейсных проблем и неполадок портов коммутатора.
http://www.cisco.com/cisco/web/support/RU/10/105/105416_errdisable_recovery.html
Errdisable is a feature that automatically disables a port on a Cisco Catalyst switch and is supported on most Catalyst switches running the Cisco IOS software.
The Errdisable error disable feature was designed to inform the administrator when there is a port problem or error. The reasons a catalyst switch can go into Errdisable mode and shutdown a port are many and include:
-
Duplex Mismatch
-
Loopback Error
- Link Flapping (up/down)
- Port Security Violation
- Broadcast Storms
- etc
When a port is in error-disabled state, it is effectively shut down and no traffic is sent or received on that port. The port LED is set to the orange color and, when you issue the show interfaces command, the port status shows as Errdisabled.
To enable err-disabled ports on Cisco 3750 switch series. Follow the below . . .
First make telnet connection with the switch
telnet 10.0.0.1
(change the ip as required,)
Enter Password to continue.
To view Disabled Ports:
show interfaces status err-disabled
e.g:
NOC_SWITCH>show int status err-disabled
Port Name Status Reason Err-disabled Vlans
Gi2/0/10 err-disabled link-flapNOC_SWITCH>
To Enable Port:
enable
config t
int G2/0/10
no switchport port-security (< You probably dont need this line, its just to disable pot security feature, I used it to perform various tests)
shut
no shut
exit
Change the interface name to match your. In above example I had two 3750-e models in stack mode. so its showing G2, you may get G1 if you have single switch.
TIP1 :
Link flap means that the specific port continuously goes up and down. The port is put into the errdisabled state if it flaps more than four-five times in few seconds. The common cause of link flap is a Layer 1 issue such as a bad cable, duplex mismatch.
TIP2:
Firewalls that are equipped with a Hardware Switch (like a Fortigate 80E), the ports member of the hardware switch will be sending BPDUs as if its a switch. This can be unexpected as typical routers/firewalls are typically DTE. But just in case you come across issue with a switchport on a switch that is keep on going into errdisabled state. Check the port if the bdpuguard is enabled and just disable it.
sh run
…
interface GigabitEthernet1/0/1
switchport mode access
switchport nonegotiate
spanning-tree bpduguard enable
(config-if)#spanning-tree bpduguard disable
For more detailed and brief descriptions, please visit
https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/69980-errdisable-recovery.html
http://www.firewall.cx/cisco-technical-knowledgebase/cisco-switches/883-cisco-switches-errdisable-autorecovery.html
Troubleshoot Err-disable recovery
Continuing on part 1.1c of the CCNP SWITCH 300-115 exam blueprint, we have Err-disable state, the configuration for detection, troubleshooting and recovery process of a switchport or more than one switchport from this condition.
Platforms that use Errdisable feature
Switches running Cisco IOS Software:
2900XL / 3500XL, 2940 / 2950 / 2960 / 2970, 3550 / 3560 / 3560-E / 3750 / 3750-E, 4000 / 4500, 6000 / 6500
Switches running CatOS software:
2948G, 4500 / 4000, 5500 / 5000, 6500 / 6000
The way in which errdisable is implemented varies between software platforms, I’ll be covering on errdisable for switches that run Cisco IOS Software only.
Function of Errdisable
If the configuration shows a port to be enabled, but software on the switch detects an error situation on the port, the software shuts down that port. The port is automatically disabled by the switch IOS because of an error condition that is encountered on the port.
When a port is error disabled, it is effectively shut down and no traffic is sent or received on that port. The port LED is set to the color orange and, when you issue the show interfaces command, the port status shows err-disabled. Here is an example of what an error-disabled port looks like from the command-line:
Switch# show interfaces gigabitethernet 4/1 status Port Name Status Vlan Duplex Speed Type Gi4/1 err-disabled 100 full 1000 1000BaseSX
If the interface has been disabled because of an error condition, you can see log messages that are similar to these in both the console and the syslog:
%SPANTREE-SP-2-BLOCK_BPDUGUARD: Received BPDU on port GigabitEthernet4/1 with BPDU Guard enabled. Disabling port. %PM-SP-4-ERR_DISABLE: bpduguard error detected on Gi4/1, putting Gi4/1 in err-disable state
This message is displayed when a host port receives the BPDU. The actual message depends on the reason for the error condition. The error disable function serves two purposes:
1- It lets the administrator know when and where there is a port problem.
2- It eliminates the possibility that this port can cause other ports on the module (or the entire module) to fail.
Such a failure can occur when a bad port monopolizes buffers or port error messages monopolize interprocess communications on the card, which can ultimately cause serious network issues. The error disable feature helps prevent these situations.
Causes of Errdisable Condition
This feature was first implemented to handle special collision situations in which the switch detected excessive or late collisions on a port. Excessive collisions occur when a frame is dropped because the switch encounters 16 collisions in a row. Late collisions occur after every device on the wire should have recognized that the wire was in use. Possible causes of these types of errors include:
- A cable that is out of specification (either too long, the wrong type, or defective)
- A bad network interface card with physical problems or driver problems
- A port duplex misconfiguration
A port duplex misconfiguration is a common cause of the errors because of failures to negotiate the speed and duplex properly between two directly connected devices. Only half-duplex connections should have collisions in a LAN. Because of the carrier sense multiple access (CSMA) nature of Ethernet, collisions are normal for half duplex, as long as the collisions do not exceed a small percentage of traffic.
There are various reasons for the interface to go into errdisable status:
- Duplex mismatch
- Port channel misconfiguration
- BPDU guard violation
- UniDirectional Link Detection (UDLD) condition
- Late-collision detection
- Link-flap detection
- Security violation
- Port Aggregation Protocol (PAgP) flap
- Layer 2 Tunneling Protocol (L2TP) guard
- DHCP snooping rate-limit
- Incorrect GBIC / SFP module or cable
- ARP inspection
- Inline power
Note: Error-disable detection is enabled for all of these reasons by default. In order to disable error-disable detection, use the no errdisable detect cause command. The show errdisable detect command displays the error-disable detection status.
Managing Error Conditions on a Switch Port
A network-management application can be used to detect a serious error condition on a switch port. A switch can be polled periodically with SNMP so that its port error counters can be examined to see whether an error condition has occurred. If so, an alert can be issued so that someone can take action to correct the problem. Switches can detect error conditions automatically, without any further help. If a serious error occurs on a switch port, that port can be shut down automatically until someone manually enables the port again, or until a predetermined time has elapsed.
Detecting Error Conditions
By default, a switch detects an error condition on every switch port for every possible cause. If an error condition is detected, the switch port is put into the “errdisable” state and is disabled. You can tune this behavior so that only certain causes trigger any port being disabled. Use the following command in global configuration mode, here is the command syntax: Switch(config)# [no] errdisable detect cause [all | cause-name]
You can repeat this command to enable or disable more than one cause. One of the following triggers the errdisable state:
– all: Detects every possible cause
– arp-inspection: Detects errors with dynamic ARP inspection
– bpduguard: Detects when a spanning-tree bridge protocol data unit (BPDU) is received on a port configured for STP PortFast
– dhcp-rate-limit: Detects an error with DHCP snooping
– dtp-flap: Detects when trunking encapsulation is changing from one type to another
– gbic-invalid: Detects the presence of an invalid GBIC or SFP module
– inline-power: Detects an error with offering PoE inline power
– l2ptguard: Detects an error with Layer 2 Protocol Tunneling
– link-flap: Detects when the port link state is “flapping” between the up and down states
– loopback: Detects when an interface has been looped back
– pagp-flap: Detects when an EtherChannel bundle’s ports no longer have consistent configurations
– pppoe-ia-rate-limit: Detects errors with PPPoE Intermediate Agent rate limiting
– psecure-violation: Detects conditions that trigger port security configured on a port
– psp: Detects an error related to protocol storm protection
– security-violation: Detects errors related to 802.1X security
– sfp-config-mismatch: Detects errors related to SFP configuration mismatches
– small-frame: Detects errors when VLAN-tagged packets are too small and arrive above a certain rate
– storm-control: Detects when a storm control theshhold has been exceeded on a port
– udld: Detects when a link is seen to be unidirectional (data passing in only one direction)
Determine If Ports Are in the Errdisabled State
You can determine if a port has been error disabled using the show interfaces command. Here is an example of an active port:
Switch# show interfaces gigabitethernet 4/1 status Port Name Status Vlan Duplex Speed Type Gi4/1 Connected 100 full 1000 1000BaseSX
And here is an example of the same port in the error disabled state:
Switch# show interfaces gigabitethernet 4/1 status Port Name Status Vlan Duplex Speed Type Gi4/1 err-disabled 100 full 1000 1000BaseSX
Note: When a port is error disabled, the LED on the front panel that is associated with the port is off.
Determine the Reason for the Errdisabled State (Console Messages, Syslog, and the show errdisable recovery Command)
When the switch puts a port in the error-disabled state, the switch sends a message to the console that describes why it disabled the port. The example in this section provides two sample messages that show the reason for port disablement:
One disablement is because of the PortFast BPDU guard feature. The other disablement is because of an EtherChannel configuration problem.
Here are the sample messages:
%SPANTREE-SP-2-BLOCK_BPDUGUARD: Received BPDU on port GigabitEthernet4/1 with BPDU Guard enabled. Disabling port. %PM-SP-4-ERR_DISABLE: bpduguard error detected on Gi4/1, putting Gi4/1 in err-disable state %SPANTREE-2-CHNMISCFG: STP loop - channel 11/1-2 is disabled in vlan 1
If you have enabled errdisable recovery, you can determine the reason for the errdisable status with the following command:
Switch# show errdisable recovery ErrDisable Reason Timer Status ----------------- -------------- udld Enabled bpduguard Enabled security-violatio Enabled channel-misconfig Enabled pagp-flap Enabled dtp-flap Enabled link-flap Enabled l2ptguard Enabled psecure-violation Enabled gbic-invalid Enabled dhcp-rate-limit Enabled mac-limit Enabled unicast-flood Enabled arp-inspection Enabled Timer interval: 300 seconds Interfaces that will be enabled at the next timeout: Interface Errdisable reason Time left(sec) --------- --------------------- -------------- Fa2/4 bpduguard 273
Recover a Port from Errdisabled State
This section provides examples of how you can encounter an error-disabled port and how to fix it, as well as a brief of a few additional reasons that a port can become error disabled. In order to recover a port from the errdisable state, first identify and correct the root problem, and then reenable the port. If you reenable the port before you fix the root problem, the ports just become error disabled again.
Correct the Root Problem
After discovering why the ports were disabled, fix the root problem. The fix depends on the triggering problem. There are numerous things that can trigger the shutdown. Some of the most noticeable and common causes:
EtherChannel misconfiguration
In order for EtherChannel to work, the ports that are involved must have consistent configurations. The ports must have the same VLAN, the same trunk mode, the same speed, the same duplex, and so on. Most of the configuration differences within a switch are caught and reported when you create the channel. If one switch is configured for EtherChannel and the other switch is not configured for EtherChannel, the spanning tree process can shut down the channeled ports on the side that is configured for EtherChannel.
The ON mode of EtherChannel does not negotiate or send PAgP packets to negotiate with the other side before channeling, it just assumes that the other side is channeling. In addition, this example does not turn on EtherChannel for the other switch, but leaves these ports as individual, unchanneled ports. If you leave the other switch in this state for a minute or so, Spanning Tree Protocol on the switch where the EtherChannel is turned on thinks that there is a loop. This puts the channeling ports in the errdisabled state.
A loop was detected and the ports were disabled. The output of the show etherchannel summary command shows that the Number of channel-groups in use is 0. When you look at one of the ports that are involved, you can see that the status is err-disabled:
%SPANTREE-2-CHNL_MISCFG: Detected loop due to etherchannel misconfiguration
of Gi4/1
Switch# show etherchannel summary
Flags: D - down P - in port-channel
I - stand-alone s - suspended
H - Hot-standby (LACP only)
R - Layer3 S - Layer2
U - in use f - failed to allocate aggregator
u - unsuitable for bundling
Number of channel-groups in use: 0
Number of aggregators: 0
Group Port-channel Protocol Ports
------+-------------+-----------+------------------------
The EtherChannel was torn down because the ports were placed in errdisable on this switch.
Switch# show interfaces gigabitethernet 4/1 status
Port Name Status Vlan Duplex Speed Type
Gi4/1 err-disabled 100 full 1000 1000BaseSX
In order to determine what the problem was, look at the syslog error message. The message indicates that the EtherChannel encountered a spanning tree loop. This problem can occur when one device has EtherChannel turned on manually with use of the on mode and the other connected device does not have EtherChannel turned on at all. One way to fix the situation is to set the channel mode to desirable on both sides of the connection, and then reenable the ports. Then, each side forms a channel only if both sides agree to channel. If they do not agree to channel, both sides continue to function as normal ports.
Switch(config-terminal)# interface gigabitethernet 4/1 Switch(config-if)# channel-group 3 mode desirable non-silent
Duplex mismatch
Duplex mismatches are common because of failures to autonegotiate speed and duplex properly. Unlike a half duplex device, which must wait until there are no other devices that transmit on the same LAN segment, a full-duplex device transmits whenever the device has something to send, regardless of other devices.
If this transmission occurs while the half-duplex device transmits, the half-duplex device considers this either a collision or a late collision. Because the full-duplex side never expects collisions, this side never realizes that it must retransmit that dropped packet. A low percentage rate of collisions is normal with half duplex but is not normal with full duplex. A switch port that receives many late collisions usually indicates a duplex mismatch problem.
Be sure that the ports on both sides of the cable are set to the same speed and duplex. The show interfaces interface_number command tells you the speed and duplex for Catalyst switch ports. Later versions of Cisco Discovery Protocol (CDP) can warn you about a duplex mismatch before the port is put in the error-disabled state.
There are also settings on a NIC, autopolarity features, that can cause the problem. If you are in doubt, turn these settings off. If you have multiple NICs from a vendor and the NICs all appear to have the same problem, check the manufacturer website for the release notes and be sure that you have the latest drivers.
Other causes of late collisions with Half-Duplex nics include:
- A bad NIC (with physical problems, not just configuration problems)
- A bad cable
- A cable segment that is too long
BPDU port guard
A port that uses PortFast must only connect to an end station and not to devices that generate spanning tree BPDUs, such as switches, or bridges and routers that do bridging.
If the switch receives a spanning tree BPDU on a port that has spanning tree PortFast and spanning tree BPDU guard enabled, the switch puts the port in errdisabled mode in order to guard against potential loops. PortFast assumes that a port on a switch cannot generate a physical loop. Therefore, PortFast skips the initial spanning tree checks for that port, which avoids the timeout of end stations at bootup. The network administrator must carefully implement PortFast. On ports that have PortFast enabled, BPDU guard helps ensure that the LAN stays loop-free.
This example shows how to turn on this feature:
Switch(config-if)# spanning-tree bpduguard enable
A Catalyst switch is connected to another switch. One of the switches sends BPDUs every 2 seconds (default spanning tree settings). When you enable PortFast on the switch port, the BPDU guard feature watches for BPDUs that come in on this port. When a BPDU comes into the port, which means that a device that is not an end device, is detected on that port, the BPDU guard feature error disables the port in order to avoid the possibility of a spanning tree loop.
Switch(config-if)# spanning-tree portfast enable Warning: Spantree port fast start should only be enabled on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc. to a fast start port can cause temporary spanning tree loops. %PM-SP-4-ERR_DISABLE: bpduguard error detected on Gi4/1, putting Gi4/1 in err-disable state.
Note: In this message, the switch indicates that it received a BPDU on a PortFast-enabled port, and so the switch shuts down port Gi4/1.
Switch# show interfaces gigabitethernet 4/1 status Port Name Status Vlan Duplex Speed Type Gi4/1 err-disabled 100 full 1000 1000BaseSX
Note: You need to turn off the PortFast feature because the connection is improper duo to PortFast being enabled, and the switch connects to another switch. PortFast is only for use on ports that connect to end stations.
Switch(config-if)# spanning-tree portfast disable
UDLD
UDLD protocol allows devices that are connected through fiber-optic or copper Ethernet cables to monitor the physical configuration of the cables and detect when a unidirectional link exists. When a unidirectional link is detected, UDLD shuts down the affected port and alerts the user. Unidirectional links can cause a variety of problems, which include spanning-tree topology loops.
Note: UDLD works by exchanging protocol packets between the neighboring devices. Both devices on the link must support UDLD and have UDLD enabled on the respective ports. If you have UDLD enabled on only one port of a link, it can also leave the end configured with UDLD to go to errdisable state.
Each switch port that is configured for UDLD sends UDLD protocol packets that contain the port device (or port ID) and the neighbor device (or port IDs) that are seen by UDLD on that port. The neighboring ports must see their own device or port ID (echo) in the packets that are received from the other side. If the port does not see its own device or port ID in the incoming UDLD packets for a specific duration of time, the link is considered unidirectional. Therefore, the respective port is disabled and a message that is similar to this is printed on the console:
PM-SP-4-ERR_DISABLE: udld error detected on Gi4/1, putting Gi4/1 in err-disable state.
Link-flap error
Link flap is one common error found in production environments specially in edge networks connected to provider edge but also common in datacenters top of racks. It means that the interface continually goes up and down. The interface is put into the errdisabled state if it flaps more than five times in 10 seconds.
The common cause of link flap is a Layer 1 issue such as a bad cable, duplex mismatch, or bad GBIC) card or SFP module. Look at the console messages or the messages that were sent to the syslog server that state the reason for the port shutdown.
%PM-4-ERR_DISABLE: link-flap error detected on Gi4/1, putting Gi4/ 1 in err-disable state
You can check the flap values with:
Switch# show errdisable flap-values ErrDisable Reason Flaps Time (sec) ----------------- ------ ---------- pagp-flap 3 30 dtp-flap 3 30 link-flap 5 10
Loopback error
A loopback error occurs when the keepalive packet is looped back to the port that sent the keepalive. The switch sends keepalives out all the interfaces by default. A device can loop the packets back to the source interface, which occurs because there is a logical loop in the network that the spanning tree has not blocked.
The source interface receives the keepalive packet that it sent out, and the switch disables the interface (errdisable). This message occurs because the keepalive packet is looped back to the port that sent the keepalive:
%PM-4-ERR_DISABLE: loopback error detected on Gi4/1, putting Gi4/1 in
err-disable state
Note: The suggested workaround is to disable keepalives and/or upgrade to IOS Release 12.2SE or later.
Port security violation
You can use port security with dynamically learned and static MAC addresses in order to restrict the ingress traffic of a port. In order to restrict the traffic, you can limit the MAC addresses that are allowed to send traffic into the port. In order to configure the switch port to error disable if there is a security violation, issue this command:
Switch(config-if)# switchport port-security violation shutdown
A security violation occurs in either of these two situations:
- When the maximum number of secure MAC addresses is reached on a secure port and the source MAC address of the ingress traffic differs from any of the identified secure MAC addresses. In this case, port security applies the configured violation mode.
- If traffic with a secure MAC address that is configured or learned on one secure port attempts to access another secure port in the same VLAN, In this case, port security applies the shutdown violation mode.
L2pt guard
When the Layer 2 PDUs enter the tunnel or access port on the inbound edge switch, the switch overwrites the customer PDU-destination MAC address with a well-known Cisco proprietary multicast address (01-00-0c-cd-cd-d0). If 802.1Q tunneling is enabled, packets are also double-tagged. The outer tag is the customer metro tag and the inner tag is the customer VLAN tag.
The core switches ignore the inner tags and forward the packet to all trunk ports in the same metro VLAN. The edge switches on the outbound side restore the proper Layer 2 protocol and MAC address information and forward the packets to all tunnel or access ports in the same metro VLAN. Therefore, the Layer 2 PDUs are kept intact and delivered across the service-provider infrastructure to the other side of the customer network.
Switch(config)# interface gigabitethernet 0/7 l2protocol-tunnel {cdp | vtp | stp}
The interface goes to errdisabled state. If an encapsulated PDU (with the proprietary destination MAC address) is received from a tunnel port or access port with Layer 2 tunneling enabled, the tunnel port is shut down to prevent loops. The port also shuts down when a configured shutdown threshold for the protocol is reached. You can manually reenable the port (by issuing a shutdown, no shutdown command sequence) or if errdisable recovery is enabled, the operation is retried after a specified time interval.
Incorrect SFP cable
Ports go into errdisable state with the %PHY-4-SFP_NOT_SUPPORTED error message when you connect Catalyst 3560 and Catalyst 3750 Switches using an SFP Interconnect Cable.
The Cisco Catalyst 3560 SFP Interconnect Cable (CAB-SFP-50CM=) provides for a low-cost, point-to-point, Gigabit Ethernet connection between Catalyst 3560 Series Switches. The 50-centimeter (cm) cable is an alternative to using SFP transceivers when interconnecting Catalyst 3560 Series Switches through their SFP ports over a short distance. All Cisco Catalyst 3560 Series Switches support the SFP Interconnect Cable.
When a Catalyst 3560 Switch is connected to a Catalyst 3750 or any other type of Catalyst switch model, you cannot use the CAB-SFP-50CM= cable. You can connect both switches using a copper cable with SFP (GLC-T) on both devices instead of a CAB-SFP-50CM= cable
802.1X Security Violation
DOT1X-SP-5-SECURITY_VIOLATION: Security violation on interface GigabitEthernet4/8, New MAC address 0080.ad00.c2e4 is seen on the interface in Single host mode %PM-SP-4-ERR_DISABLE: security-violation error detected on Gi4/8, putting Gi4/8 in err-disable state
This message indicates that the port on the specified interface is configured in single-host mode. Any new host that is detected on the interface is treated as a security violation. The port has been error disabled. Ensure that only one host is connected to the port. If you need to connect to an IP phone and a host behind it, configure Multidomain Authentication Mode on that switchport.
The Multidomain authentication (MDA) mode allows an IP phone and a single host behind the IP phone to authenticate independently, with 802.1X, MAC authentication bypass (MAB), or (for the host only) web-based authentication. In this application, Multidomain refers to two domains — data and voice — and only two MAC addresses are allowed per port.
Reenable the Errdisabled Ports
After you fix the root problem, the ports are still disabled if you have not configured errdisable recovery on the switch. In this case, you must reenable the ports manually. Issue the shutdown and then the no shutdown command on the associated interface in order to manually reenable the ports.
The errdisable recovery command allows you to choose the type of errors that automatically reenable the ports after a specified amount of time. The show errdisable recovery command shows the default error-disable recovery state for all the possible conditions.
Switch# 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
l2ptguard Disabled
psecure-violation Disabled
gbic-invalid Disabled
dhcp-rate-limit Disabled
mac-limit Disabled
unicast-flood Disabled
arp-inspection Disabled
Timer interval: 300 seconds
Interfaces that will be enabled at the next timeout:
Note: The default timeout interval is 300 seconds and, by default, the timeout feature is disabled. In order to turn on errdisable recovery and choose the errdisable conditions, issue this command:
Switch# 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 error
disable 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
security-violation Enable timer to recover from 802.1x violation disable
state
udld Enable timer to recover from udld error disable state
unicast-flood Enable timer to recover from unicast flood disable state
This example explains how to enable the BPDU guard errdisable recovery condition:
Switch(Config)# errdisable recovery cause bpduguard
A nice feature of this command is that, if you enable errdisable recovery, the command lists general reasons that the ports have been put into the error-disable state. In this example, notice that the BPDU guard feature was the reason for the shutdown of port 2/4:
Switch# 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 l2ptguard Disabled psecure-violation Disabled gbic-invalid Disabled dhcp-rate-limit 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
If any one of the errdisable recovery conditions is enabled, the ports with this condition are reenabled after 300 seconds. You can also change this default of 300 seconds if you issue this command:
Switch(Config)# errdisable recovery interval timer_interval_in_seconds
This example changes the errdisable recovery interval from 300 to 400 seconds:
Switch(Config)# errdisable recovery interval 400
Summary Commands
Verify
- show version — Displays the version of the software that is used on the switch.
- show interfaces interface interface_number status — Shows the current status of the switch port.
- show errdisable detect — Displays the current settings of the errdisable timeout feature and, if any of the ports are currently error disabled, the reason that they are error disabled.
Troubleshoot
- show interfaces status err-disabled — Shows which local ports are involved in the errdisabled state.
- show etherchannel summary — Shows the current status of the EtherChannel.
- show errdisable recovery — Shows the time period after which the interfaces are enabled for errdisable conditions.
- show errdisable detect — Shows the reason for the errdisable status.
Hope this helps anybody else.
Errdisable is a feature that automatically disables a port on a Cisco Catalyst switch and is supported on most Catalyst switches running the Cisco IOS software. Including all the following models:
- Catalyst 2940 / 2950 / 2960 / 2960S
- Catalyst 3550 / 3560 / 3560-E / 3750 / 3750-E
- Catalyst 4000 / 4500 / 4507R
- Catalyst 6000 / 6500
The Errdisable error disable feature was designed to inform the administrator when there is a port problem or error. The reasons a catalyst switch can go into Errdisable mode and shutdown a port are many and include:
-
Duplex Mismatch
-
Loopback Error
- Link Flapping (up/down)
- Port Security Violation
- Unicast Flodding
- UDLD Failure
- Broadcast Storms
- BPDU Guard
When a port is in error-disabled state, it is effectively shut down and no traffic is sent or received on that port. The port LED is set to the orange color and, when you issue the show interfaces command, the port status shows as Errdisabled.
Following is an example of what an error-disabled port looks like:
2960G# show interface gigabit0/7
GigabitEthernet0/7 is down, line protocol is down (err-disabled)
Hardware is Gigabit Ethernet, address is 001b.54aa.c107 (bia 001b.54aa.c107)
MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
reliability 234/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Auto-duplex, Auto-speed, media type is 10/100/1000BaseTX
To recover a port that is in an Errdisable state, manual intervention is required, and the administrator must access the switch and configure the specific port with ‘shutdown‘ followed by the ‘no shutdown‘ command. This command sequence will enable the port again, however, if the problem persists expect to find the port in Errdisable state again soon.
Understanding and Configuring Errdisable AutoRecovery
As outlined above, there are a number of reasons a port can enter the Errdisable state. One common reason is the Port Security error, also used in our example below.
Of all the errors, Port Security is more a feature rather than an error. Port Security allows the restriction of MAC Addresses on an interface configured as a layer 2 port. This effectively prevents others connecting unwanted hubs or switches on the network. Port Security allows us to specify a single MAC Address to be connected to a specific port, thus restricting access to a specific computer.
In the case of a violation, Port Security will automatically disable the port. This is the behaviour of the default port security policy when enabling Port Security. Following is a configuration example of port security:
2960G(config)# interface GigabitEthernet0/48
2960G(config-if)# switchport access vlan 2
2960G(config-if)# switchport mode access
2960G(config-if)# switchport port-security
2960G(config-if)# spanning-tree portfast
Once a host is connected to the port, we can get more information on its port-security status and actions that will be taken when a violation occurs:
2960G# show port-security interface GigabitEthernet 0/48
Note that the Violation Mode is set to Shutdown. This means that when a violation is detected, the switch will place gigabitethernet 0/48 in the err-disable shutdown state as shown below:
Port Security : Enabled
Port Status : Secure-up
Violation Mode : Shutdown
Aging Time : 0 mins
Aging Type : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses : 1
Total MAC Addresses : 1
Configured MAC Addresses : 0
Sticky MAC Addresses : 0
Last Source Address:Vlan : 001b.54aa.c107
Security Violation Count : 0%PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0031.f6ac.03f5 on port GigabitEthernet0/48
While it’s almost always necessary to know when a port security violation occurs there are some circumstances where autorecovery is a desirable feature, especially durng accidental violations.
The following commands enable the autorecovery feature 30 seconds after a port security violation:
2960G(config)# errdisable recovery cause psecure-violation
2960G(config)#
errdisable recovery interval 30
Determine the Reason for the Errdisabled State
To view the Errdisabled reasons, and see for which reason the autorecovery feature has been enabled, use the show Errdisable recovery command:2960G# show errdisable recovery
ErrDisable Reason Timer Status
----------------- --------------
udld Disabled
bpduguard Disabled
security-violatio Disabled
channel-misconfig Disabled
vmps Disabled
pagp-flap Disabled
dtp-flap Disabled
link-flap Disabled
psecure-violation Enabled
sfp-config-mismat Disabled
gbic-invalid Disabled
dhcp-rate-limit Disabled
unicast-flood Disabled
storm-control Disabled
loopback Disabled
Timer interval: 30 seconds
Interfaces that will be enabled at the next timeout:
We have now confirmed that autorecovery is enabled for port-security violations. If it is required to enable the Errdisable autorecovery feature for all supported reasons, use the following command:
2960G(config)# errdisable recovery cause all
To test our configuration we forced a port security violation, causing the switch to place the offending port in the shutdown state. Notice we’ve enabled autorecovery for all Errdisable reasons and the time left to enable the interfaces placed in shutdown state by the port security violation:
2960G# show errdisable recovery
ErrDisable Reason Timer Status
----------------- --------------
udld Enabled
bpduguard Enabled
security-violatio Enabled
channel-misconfig Enabled
vmps Enabled
pagp-flap Enabled
dtp-flap Enabled
link-flap Enabled
psecure-violation Enabled
sfp-config-mismat Enabled
gbic-invalid Enabled
dhcp-rate-limit Enabled
unicast-flood Enabled
storm-control Enabled
loopback Enabled
Timer interval: 30 seconds
Interfaces that will be enabled at the next timeout:
Interface Errdisable reason Time left(sec)
--------- ----------------- --------------
Gi0/48 security-violatio 17
Seventeen seconds later, the switch automatically recovered from the port security violation and re-enabled the interface:
%PM-4-ERR_RECOVER: Attempting to recover from psecure-violation err-disable state on gigabitethernet0/48
18w4d: %LINK-3-UPDOWN: Interface GigabitEthernet0/48, changed state to up
18w4d: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/48, changed state to up
Disabling The Errdisable Feature
There are cases where it might be necessary to disable the Errdisable mechanism for specific supported features in order to overcome constant interface shutdowns and auto recoveries. While the Catalyst IOS does not allow disabling all features we can still fine-tune the mechanism and selectively disable a few.
To view the Errdisable reasons monitored by the switch, use the show Errdisable detect command:
2960G# show errdisable detect
ErrDisable Reason Detection Mode
----------------- --------- ----
bpduguard Enabled port
channel-misconfig Enabled port
community-limit Enabled port
dhcp-rate-limit Enabled port
dtp-flap Enabled port
gbic-invalid Enabled portinline-power Enabled port
invalid-policy Enabled port
link-flap Enabled port
loopback Enabled port
lsgroup Enabled port
mac-limit Enabled port
pagp-flap Enabled portport-mode-failure Enabled port
psecure-violation Enabled port/vlan
security-violation Enabled portsfp-config-mismatch Enabled port
small-frame Enabled port
storm-control Enabled port
udld Enabled port
vmps Enabled port
As shown, the command lists all supported Errdisable reasons. For our example, let’s assume we want to disable the inline-power Errdisable feature.
To achieve this, we simply use the following command:
2960G(config)# no errdisable detect cause inline-power
And verify that Errdisable has been disabled for the feature:
2960G# show errdisable detect
ErrDisable Reason Detection Mode
----------------- --------- ----
bpduguard Enabled port
channel-misconfig Enabled port
community-limit Enabled port
dhcp-rate-limit Enabled port
dtp-flap Enabled port
gbic-invalid Enabled port
invalid-policy Enabled port
link-flap Enabled port
loopback Enabled port
lsgroup Enabled port
mac-limit Enabled port
pagp-flap Enabled portport-mode-failure Enabled port
psecure-violation Enabled port/vlan
security-violation Enabled portsfp-config-mismatch Enabled port
small-frame Enabled port
storm-control Enabled port
udld Enabled port
vmps Enabled port
Overall, the Errdisable feature is an extremely useful tool if configured and monitored correctly. Take the necessary time to play around with the supported options of your Cisco Catalyst switch and fine-tune it to suit your network needs.