이 문서에서는 UDLD(Unidirectional Link Detection) 프로토콜이 스위치드 네트워크에서 포워딩 루프와 트래픽 블랙홀링을 방지하는 데 어떻게 도움이 되는지 설명합니다.
이 문서에 대한 특정 요건이 없습니다.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
STP(Spanning-Tree Protocol)는 이중화된 물리적 토폴로지를 루프가 없는 트리 같은 포워딩 토폴로지로 해결합니다.
이 작업은 하나 이상의 포트를 차단하여 수행됩니다. 하나 이상의 포트를 차단하면 포워딩 토폴로지에 루프가 없습니다. STP는 BPDU(Bridge Protocol Data Units)의 수신 및 전송에 의존합니다. 차단 포트가 있는 스위치에서 실행되는 STP 프로세스가 포트의 업스트림(지정된) 스위치에서 BPDU의 수신을 중지하면 STP는 결국 포트에 대한 STP 정보를 타임아웃하여 포워딩 상태로 이동합니다. 이렇게 하면 포워딩 루프 또는 STP 루프가 생성됩니다.
패킷은 루프된 경로를 따라 무기한 순환하기 시작하며, 점점 더 많은 대역폭을 소비합니다. 이로 인해 네트워크 중단이 발생할 수 있습니다.
포트가 작동 중일 때 스위치가 BPDU 수신을 중지하려면 어떻게 해야 합니까? 이유는 단방향 링크입니다. 다음과 같은 경우 링크는 단방향으로 간주됩니다.
링크가 연결의 양쪽에 있습니다. 원격 측에서 로컬 측에서 전송한 패킷을 수신하는 동안 로컬 측에서 원격 측에서 전송한 패킷을 수신하지 않습니다.
이 시나리오를 고려해 보십시오. 화살표는 STP BPDU의 흐름을 나타냅니다.
정상 작동 중에 브리지 B는 B-C 링크에 지정됩니다. 브리지 B는 BPDU를 C로 전송하여 포트를 차단합니다. C에서 해당 링크의 B에서 BPDU를 확인하는 동안 포트가 차단됩니다.
이제 링크 B-C가 C의 방향으로 실패할 경우 어떻게 되는지 고려하십시오. B는 C에서 트래픽을 수신하지만 B는 여전히 C에서 트래픽을 수신합니다.
C는 B-C 링크의 BPDU 수신을 중지하고 마지막 BPDU와 함께 받은 정보를 사용합니다. maxAge STP 타이머에 따라 최대 20초가 소요됩니다. STP 정보가 포트에 오래되면 해당 포트는 차단 상태에서 수신, 학습, 그리고 결국 전달 STP 상태로 전환됩니다. 이렇게 하면 삼각형 A-B-C에 차단 포트가 없으므로 전달 루프가 생성됩니다. 경로를 따라 패킷 순환(B는 C에서 패킷 수신)을 수행하여 링크가 완전히 채워질 때까지 추가 대역폭을 사용합니다. 그러면 네트워크가 다운됩니다.
단방향 링크로 인해 발생할 수 있는 또 다른 문제는 트래픽 블랙홀링입니다.
포워딩 루프가 생성되기 전에 단방향 링크를 탐지하기 위해 Cisco는 UDLD 프로토콜을 설계하고 구현했습니다.
UDLD는 L2(Layer 2) 프로토콜로서 L1(Layer 1) 메커니즘과 함께 작동하여 링크의 물리적 상태를 결정합니다. 레이어 1에서는 자동 협상이 물리적 신호 및 결함 탐지를 처리합니다. UDLD는 네이버의 ID를 탐지하고 잘못 연결된 포트를 종료하는 등 자동 협상이 수행할 수 없는 작업을 수행합니다. 자동 협상과 UDLD를 모두 활성화하면 레이어 1 및 레이어 2 탐지가 함께 작동하여 물리적 및 논리적 단방향 연결과 다른 프로토콜의 오작동을 방지합니다.
UDLD는 네이버 디바이스 간에 프로토콜 패킷을 교환하는 방식으로 작동합니다. UDLD가 작동하려면 링크의 두 디바이스가 모두 UDLD를 지원하고 각 포트에서 활성화되어야 합니다.
UDLD에 대해 구성된 각 스위치 포트는 포트의 자체 디바이스/포트 ID를 포함하는 UDLD 프로토콜 패킷과 해당 포트에서 UDLD에 의해 표시되는 네이버의 디바이스/포트 ID를 전송합니다. 인접 포트는 다른 쪽에서 수신한 패킷에서 자체 디바이스/포트 ID(에코)를 확인해야 합니다.
포트가 특정 기간 동안 수신 UDLD 패킷에 고유한 디바이스/포트 ID를 표시하지 않으면 링크가 단방향으로 간주됩니다.
이 에코 알고리즘은 다음 문제를 탐지할 수 있습니다.
링크는 양쪽에 있지만 패킷은 한 쪽으로만 수신됩니다.
수신 및 전송 파이버를 원격 측의 동일한 포트에 연결하지 않을 때 배선 오류가 발생합니다.
UDLD에서 단방향 링크를 탐지하면 각 포트가 비활성화되고 이 메시지가 콘솔에 인쇄됩니다.
UDLD-3-비활성화: 포트 1/2에서 단방향 링크가 탐지되었습니다. 포트가 비활성화됨
UDLD에 의한 포트 종료는 수동으로 다시 활성화될 때까지 또는 errdisable 시간 초과가 만료될 때까지(구성된 경우) 비활성화된 상태로 유지됩니다.
UDLD는 다음 두 가지 모드에서 작동할 수 있습니다. 정상 및 공격적.
일반 모드에서 포트의 링크 상태가 양방향으로 확인되었고 UDLD 정보가 시간 초과된 경우 UDLD에서 어떤 작업도 수행하지 않습니다. UDLD의 포트 상태가 확인되지 않은 것으로 표시됩니다. 포트는 STP 상태에 따라 작동합니다.
적극적인 모드에서 포트의 링크 상태가 양방향으로 확인되고 포트의 링크가 작동 중인 동안 UDLD 정보가 시간 초과되는 경우 UDLD는 포트 상태를 재설정하려고 시도합니다. 성공하지 못하면 포트가 errdisable 상태로 전환됩니다.
UDLD 정보의 에이징은 UDLD를 실행하는 포트가 대기 시간 동안 네이버 포트에서 UDLD 패킷을 수신하지 않을 때 발생합니다. 포트의 보류 시간은 원격 포트에 의해 지정되며 원격 측의 메시지 간격에 따라 달라집니다. 메시지 간격이 짧을수록 보류 시간이 짧아지거나 탐지 속도가 빠릅니다. UDLD의 최근 구현에서는 메시지 간격 구성을 허용합니다.
일부 물리적 문제 또는 이중 불일치로 인해 포트의 높은 오류 속도로 인해 UDLD 정보가 에이징될 수 있습니다. 이러한 패킷 삭제는 링크가 단방향임을 의미하지 않으며 정상 모드에서 UDLD는 이러한 링크를 비활성화하지 않습니다.
적절한 탐지 시간을 보장하기 위해 적절한 메시지 간격을 선택할 수 있어야 합니다. 메시지 간격은 포워딩 루프가 생성되기 전에 단방향 링크를 탐지할 만큼 빨라야 하지만 스위치 CPU를 오버로드해서는 안 됩니다. 기본 메시지 간격은 15초이며, 기본 STP 타이머로 전달 루프가 생성되기 전에 단방향 링크를 감지할 수 있을 만큼 빠릅니다. 탐지 시간은 메시지 간격의 약 3배입니다.
예를 들면 다음과 같습니다. 탐지 ~ message_interval x3
기본 메시지 간격(15초)에 대해 45초입니다.
단방향 링크 장애 시 STP가 다시 통합되려면 Treconvergence=max_age + 2x forward_delay가 필요합니다. 기본 타이머에서는 20+2x15=50초가 소요됩니다.
적절한 메시지 간격을 선택하여 Tedetection < Treconvergence를 유지하는 것이 좋습니다.
적극적인 모드에서 정보가 에이징되면 UDLD는 초당 8초 동안 패킷을 전송하여 링크 상태를 재설정하려고 시도합니다. 링크 상태가 아직 확인되지 않으면 링크가 비활성화됩니다.
적극적인 모드에서는 다음 상황을 추가로 탐지할 수 있습니다.
포트가 한 쪽에 있으면 포트가 전송되거나 수신되지 않지만 링크가 양쪽에 모두 작동됩니다.
링크는 한 쪽에 있고 다른 쪽에 있습니다. 이 문제는 파이버 포트에서 확인될 수 있습니다. 로컬 포트에서 전송 파이버의 플러그를 뽑으면 링크는 로컬 측에서 계속 작동합니다. 그러나 원격 쪽에 있습니다.
가장 최근에 파이버 FastEthernet 하드웨어 구현에는 이러한 상황의 양쪽에서 링크를 중단시키기 위해 FFI(Far End Fault Indication) 기능이 구현되었습니다. 기가비트 이더넷에서는 링크 협상을 통해 유사한 기능을 제공합니다. 일반적으로 구리 포트는 이더넷 링크 펄스를 사용하여 링크를 모니터링하므로 이러한 유형의 문제에 취약하지 않습니다. 두 경우 모두 포트 간에 연결이 없으므로 포워딩 루프가 발생하지 않습니다. 그러나 링크가 한 쪽에 있고 다른 쪽에 있으면 트래픽 블랙홀이 발생할 수 있습니다. 공격적 UDLD는 이를 방지하기 위해 설계되었습니다.
UDLD는 다음 항목에 대해 일반 모드에서 사용할 수 있습니다.
Catalyst 4500/4000, 5500/5000 및 6500/6000 제품군 스위치용 Catalyst OS 버전 5.1.1 이상
Catalyst 2900XL 및 3500XL 스위치용 Cisco IOS® Software 릴리스 12.0(5)XU 이상
Catalyst 2940 스위치용 Cisco IOS Software 릴리스 12.1(13)AY 이상
Catalyst 2950 스위치용 Cisco IOS Software 릴리스 12.0(5)WC(1) 이상
Catalyst 2955 스위치용 Cisco IOS Software 릴리스 12.1(12c)EA1 이상
Catalyst 2970 스위치용 Cisco IOS Software 릴리스 12.1(11)AX 이상
Catalyst 3550 스위치용 Cisco IOS Software 릴리스 12.1(4)EA1 이상
Catalyst 3560 스위치용 Cisco IOS Software 릴리스 12.1(19)EA1 이상
Catalyst 3750 스위치용 Cisco IOS Software 릴리스 12.1(11)AX 이상
Cisco IOS 시스템 소프트웨어를 실행하는 Catalyst 6500/6000 스위치용 Cisco IOS Software 릴리스 12.1(2)E 이상
Cisco IOS를 실행하는 Catalyst 4500/4000 스위치용 Cisco IOS Software 릴리스 12.1(8a)EW 이상
적극적인 모드는 다음 소프트웨어 버전부터 구현됩니다.
Catalyst 4500/4000, 5500/5000 및 6500/6000 제품군 스위치용 Catalyst OS 버전 5.4.3 이상
Cisco IOS 시스템 소프트웨어를 실행하는 Catalyst 6500/6000 스위치용 Cisco IOS Software 릴리스 12.1(3a)E3 이상
Catalyst 2950 스위치용 Cisco IOS Software 릴리스 12.1(6)EA2 이상
Catalyst 2955 스위치용 Cisco IOS Software 릴리스 12.1(12c)EA1 이상
Catalyst 2970 스위치용 Cisco IOS Software 릴리스 12.1(11)AX 이상
Catalyst 3550 스위치용 Cisco IOS Software 릴리스 12.1(4)EA1 이상
Catalyst 3750 스위치용 Cisco IOS Software 릴리스 12.1(11)AX 이상
이 명령은 CatOS를 실행하는 Catalyst 스위치의 UDLD 컨피그레이션에 대해 자세히 설명합니다. UDLD는 먼저 다음 명령을 사용하여 전역적으로 활성화되어야 합니다(기본값은 비활성화됨).
Vega> (enable) set udld enable UDLD enabled globally
다음 명령을 실행합니다. UDLD가 활성화되었는지 확인합니다.
Vega> (enable) show udld UDLD: enabled Message Interval: 15 seconds
또한 다음 명령을 사용하여 필요한 포트에서 UDLD를 활성화해야 합니다.
Vega> (enable) set udld enable 1/2 UDLD enabled on port 1/2
show udld port 명령을 실행하여 포트에서 UDLD가 활성화 또는 비활성화되었는지, 링크 상태가 무엇인지 확인합니다.
Vega> (enable) show udld port UDLD : enabled Message Interval : 15 seconds Port Admin Status Aggressive Mode Link State -------- ------------ --------------- ---------------- 1/1 enabled disabled undetermined 1/2 enabled disabled bidirectional
set udld aggressive-mode enable <module/port> 명령을 사용하여 포트별로 적극적인 UDLD가 활성화됩니다.
Vega> (enable) set udld aggressive-mode enable 1/2 Aggressive UDLD enabled on port 1/2. Vega> (enable) show udld port 1/2 UDLD : enabled Message Interval : 15 seconds Port Admin Status Aggressive Mode Link State -------- ------------ --------------- ---------------- 1/2 enabled enabled undetermined
메시지 간격을 변경하려면 다음 명령을 실행합니다.
Vega> (enable) set udld interval 10 UDLD message interval set to 10 seconds
간격의 범위는 7~90초이며 기본값은 15초입니다.
IOS UDLD 컨피그레이션에 대한 자세한 내용은 다음 문서를 참조하십시오.
Cisco IOS 시스템 소프트웨어를 실행하는 Catalyst 6500/6000 스위치의 경우 UDLD 구성을 참조하십시오.
Catalyst 2900XL/3500XL 스위치의 경우 스위치 포트 구성의 UniDirectional Link Detection 구성 섹션을 참조하십시오.
Catalyst 2940 스위치의 경우 UDLD 구성을 참조하십시오.
Catalyst 2950/2955 스위치의 경우 UDLD 구성을 참조하십시오.
Catalyst 2970 스위치의 경우 UDLD 구성을 참조하십시오.
Catalyst 3550 스위치의 경우 UDLD 구성을 참조하십시오.
Catalyst 3560 스위치의 경우 UDLD 구성을 참조하십시오.
Cisco IOS를 실행하는 Catalyst 4500/4000의 경우 UDLD 구성을 참조하십시오.
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
09-Jul-2007 |
최초 릴리스 |