이 문서에서는 타이머를 조정하기 위해 따라야 하는 STP(Spanning Tree Protocol) 타이머와 규칙에 대해 설명합니다.
참고: 이 문서에서는 일반 802.1D 스패닝 트리의 STP 타이머를 조정하는 방법에 대해서만 설명합니다.이 문서에서는 RSTP(Rapid STP)(IEEE 802.1w) 또는 MST(Multiple Spanning Tree) 프로토콜(IEEE 802.1s)에 대해 다루지 않습니다. RSTP 및 MST에 대한 자세한 내용은 다음 문서를 참조하십시오.
이 문서는 STP에 대한 올바른 이해를 전제로 합니다.STP 작업에 대한 자세한 내용은 Catalyst 스위치에서 STP(Spanning Tree Protocol) 이해 및 구성을 참조하십시오.
주의: 이 문서를 사용하여 네트워킹 문제를 해결할 수 있지만, 이 프로세스에 익숙하거나 이 프로세스에 익숙한 사람이 귀하에게 지시한 경우에만 사용할 수 있습니다.STP에 익숙하지 않은 경우, 변경한 내용으로 인해 다음 항목이 발생할 수 있습니다.
기능
애플리케이션 지연
CPU 스파이크
LAN 용해
802.1D - IEEE 표준(로컬 및 대도시 영역 네트워크) 참조:MAC(Media Access Control) 브리지 (Clause 8) - 이 문서에서 설명하는 모든 매개변수에 대한 추가 세부 정보와 참조를 제공합니다.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
이 목록에 나와 있는 것처럼 여러 STP 타이머가 있습니다.
hello—hello time은 포트에서 전송되는 각 BPDU(bridge protocol data unit) 간 시간입니다.이 시간은 기본적으로 2초(초)와 같지만 1초에서 10초 사이의 시간을 조정할 수 있습니다.
forward delay - 전달 지연은 수신 및 학습 상태에서 소요된 시간입니다.이 시간은 기본적으로 15초이지만 4~30초 사이의 시간을 조정할 수 있습니다.
max age - 최대 사용 기간 타이머는 브리지 포트에서 구성 BPDU 정보를 저장하기 전에 통과하는 최대 시간을 제어합니다.이 시간은 기본적으로 20초이지만 6~40초 사이의 시간을 조정할 수 있습니다.
각 컨피그레이션 BPDU에는 이러한 세 가지 매개변수가 포함되어 있습니다.또한 각 BPDU 컨피그레이션에는 메시지 기간이라고 하는 다른 시간 관련 매개변수가 포함되어 있습니다.메시지 기간이 고정 값이 아닙니다.메시지 페이지에는 루트 브리지가 처음 BPDU를 시작한 이후 경과한 시간이 포함됩니다.루트 브리지는 메시지 수명 값이 0인 모든 BPDU를 전송하며, 모든 후속 스위치는 이 값에 1을 추가합니다.이 값에는 BPDU를 수신할 때 루트 브리지에서 얼마나 멀리 떨어져 있는지에 대한 정보가 포함됩니다.다음 다이어그램은 개념을 보여줍니다.
포트에 기록된 정보와 같거나 더 나은 새 컨피그레이션 BPDU가 수신되면 모든 BPDU 정보가 저장됩니다.Age 타이머가 실행되기 시작합니다.기간 타이머는 해당 컨피그레이션 BPDU에서 수신되는 메시지 페이지에서 시작됩니다.타이머를 새로 고치는 다른 BPDU가 수신되기 전에 이 에이징 타이머가 최대 기간에 도달하면 해당 포트에 대한 정보가 오래됩니다.
이 섹션의 다이어그램에 적용되는 예는 다음과 같습니다.
스위치 B와 C는 메시지 에이즈가 0인 스위치 A에서 컨피그레이션 BPDU를 수신합니다. A로 이동하는 포트에서 정보의 타임아웃(최대 수명 - 0)초.이 시간은 기본적으로 20초입니다.
스위치 D와 E는 메시지 에이지가 1인 스위치 B에서 BPDU를 수신합니다. A로 이동하는 포트에서 정보의 타임아웃(최대 수명 - 1)초.이 시간은 기본적으로 19초입니다.
스위치 F는 메시지 에이즈가 2인 스위치 E에서 BPDU를 수신합니다. E로 이동하는 포트에서 정보의 타임아웃이 (최대 수명 - 2) 초 내에 발생합니다.이 시간은 기본적으로 18초입니다.
IEEE 802.1D는 STP를 정의합니다.IEEE는 Spanning Tree Protocol Timers 섹션에서 설명하는 타이머 외에도 STP와 관련된 다음 매개변수를 정의합니다.
STP 도메인(dia)의 지름 - 이 값은 엔드 스테이션의 두 지점 간 최대 브리지 수입니다.IEEE는 기본 STP 타이머에 대해 최대 지름 7개를 고려하는 것이 좋습니다.
bridge transit delay (transit delay)—이 값은 브리지에 의한 동일한 프레임의 수신과 전송 사이에 경과된 시간입니다.이는 논리적으로 브리지를 통과하는 레이턴시입니다.IEEE는 최대 브리지 전송 지연으로 1초를 고려하는 것이 좋습니다.
BPDU 전송 지연(bpdu_delay) - 이 값은 포트에서 BPDU를 수신하는 시간과 구성 BPDU가 효과적으로 다른 포트로 전송되는 시간 사이의 지연입니다.IEEE는 최대 BPDU 전송 지연으로 1초를 권장합니다.
message age increment overfit (msg_goverfit) - 이 값은 BPDU를 전달하기 전에 각 브리지가 메시지 기간에 추가되는 증가값입니다.Spanning Tree Protocol Timers 섹션에 따르면, Cisco 스위치(및 모든 스위치)는 스위치가 BPDU를 전달하기 전에 메시지 기간에 1초를 추가합니다.
lost message (lost_msg)—이 값은 BPDU가 브리징 네트워크의 한쪽 끝에서 다른 쪽 끝으로 이동할 때 손실될 수 있는 BPDU의 수입니다.IEEE 권장 사항은 3개를 분실할 수 있는 BPDU 수로 사용하는 것입니다.
transmit halt delay (Tx_halt_delay) - 이 값은 포트를 차단해야 한다는 결정 후 브리지가 포트를 효과적으로 차단 상태로 이동하는 데 필요한 최대 시간입니다.IEEE 권장 사항은 이 매개 변수에 1초를 사용하는 것입니다.
medium access delay (med_access_delay)—이 값은 디바이스에서 초기 전송을 위해 미디어에 액세스하는 데 필요한 시간입니다.CPU에서 프레임을 전송하기로 결정한 시점부터 프레임이 브리지를 효과적으로 나가기 시작하는 시점까지의 시간입니다.IEEE 권장 사항은 최대 시간으로 0.5초를 사용하는 것입니다.
이러한 매개변수에서 다른 값을 계산할 수 있습니다.이 목록은 추가 매개변수 및 계산을 제공합니다.이 계산에서는 모든 매개변수에 대해 권장되는 기본 IEEE 값을 사용하는 것으로 가정합니다.
엔드 투 엔드 BPDU 전파 지연 - 이 값은 BPDU가 네트워크의 한쪽 끝에서 다른 쪽 끝까지 이동하는 데 필요한 시간입니다.지름이 7홉이고, 3개의 BPDU가 손실될 수 있으며, hello 시간은 2초라고 가정합니다.이 경우 공식은 다음과 같습니다.
End-to-end_BPDU_propa_delay = ((lost_msg + 1) x hello) + ((BPDU_Delay x (dia – 1)) = ((3 + 1) x hello) + ((1 x (dia – 1)) = 4 x hello + dia – 1 = 4 x 2 + 6 = 14 sec
Message age-verofit - 이 매개변수의 목적은 시작된 이후 BPDU의 사용 기간을 계산하는 것입니다.각 브리지가 BPDU 메시지 수명을 1초 늘렸다고 가정합니다.공식은 다음과 같습니다.
Message_age_overestimate = (dia – 1) x overestimate_per_bridge = dia – 1 = 6
Maximum frame lifetime(최대 프레임 수명) - 이 값은 이전에 브리지 네트워크로 전송한 프레임이 해당 대상에 도달하기 전에 네트워크에 남아 있는 최대 시간입니다.공식은 다음과 같습니다.
Maximum_frame_lifetime = dia x transit_delay + med_access_delay = dia + 0.5 = 7.5 = 8 (rounded)
Maximum transmission halt delay(최대 전송 중단 지연) - 이 값은 차단을 결정한 후 포트를 효과적으로 차단하기 위해 필요한 시간입니다.IEEE는 이 이벤트의 최대값으로 1초를 계산합니다.공식은 다음과 같습니다.
Maximum_transmission_halt_delay = 1
이 섹션에서는 각 매개변수에 대해 권장 값을 사용하는 경우 최대 기간 및 전달 지연의 기본값을 사용하는 방법에 대해 자세히 설명합니다.권장되는 값은 지름 7과 hello 시간 2초입니다.
네트워크 주변에 있는 스위치가 안정적인 조건(즉, 루트가 아직 살아있는 경우)에서 루트 정보를 시간 초과하지 않는다는 사실을 감안하여 최대 기간이 적용됩니다. 최대 사용 기간 값은 총 BPDU 전파 지연 및 메시지 사용 기간 초과를 고려해야 합니다.따라서 최대 연령을 위한 공식은 다음과 같습니다.
max_age = End-to-end_BPDU_propa_delay + Message_age_overestimate = 14 + 6 = 20 sec
이 계산은 IEEE가 최대 사용 기간에 대한 기본 권장 값에 도달하는 방법을 보여줍니다.
포트가 수신 대기 상태로 이동되면 활성 STP 토폴로지에 변경 사항이 있으며 포트가 차단에서 포워딩으로 전환됨을 나타냅니다.따라서 전달 지연이 실행되는 수신 및 학습 기간은 이 연속 기간을 포함해야 합니다.
첫 번째 브리지 포트가 수신 상태(그리고 후속 재구성을 통해 해당 상태 유지)로 들어간 시점부터 브리지 LAN의 마지막 브리지가 활성 토폴로지의 변경 내용을 듣는 시점까지의 시간
또한 최대 사용 기간을 계산하는 데 사용하는 동일한 지연 시간을 계산해야 합니다(메시지 사용 기간 과대 및 BPDU 전파 지연).
이전 토폴로지에서 수신된 전달 프레임을 중지하는 마지막 브리지의 시간(최대 전송 중단 지연 시간)입니다. 이전 토폴로지에서 전달된 마지막 프레임이 사라집니다(최대 프레임 수명).
중복된 프레임을 가져오지 않도록 하려면 이 시간이 필요합니다.
따라서 전달 지연 시간의 2배(수신 시간 + 학습 시간)에는 이러한 모든 매개변수가 포함됩니다.공식은 다음과 같습니다.
2 x forward delay = end-to-end_BPDU_propagation_delay + Message_age_overestimate + Maximum_frame_lifetime + Maximum_transmission_halt_delay = 14 + 6 + 7.5 + 1 = 28.5 forward_delay = 28.5 /2 = 15 (rounded)
이러한 모든 매개변수 중에서 조정할 수 있는 것은 다음과 같습니다.
참고: 이러한 매개변수를 조정하는 기능은 네트워크에 따라 달라집니다.
hello - 1~6
최대 연령
전달 지연
diameter - 네트워크에 따라 다릅니다.
이 목록의 값을 수정하지 마십시오.다음 값을 권장 IEEE 값으로 유지합니다.
lost_msg = 3
translation_delay = 1
bpdu_delay = 1
msg_verofit = 1
Tx_halt_delay = 1
med_access_delay = 0.5
maximum_transmission_halt_delay = 1
이러한 값은 3개의 BPDU가 손실되지 않거나 스위치를 통해 한 프레임에 대해 1초의 지연 시간이 발생하지 않는 현대 네트워크에서 매우 보수적으로 보일 수 있습니다.그러나 이러한 값은 다음과 같은 스트레스 조건에서 발생할 수 있는 STP 루프를 방지하기 위해 존재합니다.
매우 높은 CPU 사용률
오버로드된 포트
따라서 이러한 매개변수를 고정 값으로 고려해야 합니다.Default Values of Spanning Tree Protocol Timers 섹션에 표시되는 공식을 사용할 경우 다음 항목이 표시됩니다.
max_age = End-to-end_BPDU_propa_delay + Message_age_overestimate = ((lost_msg + 1) x hello) + ((BPDU_Delay x (dia – 1)) + (dia – 1) x overestimate_per_ bridge = (4 x hello) + dia – 1 + dia – 1 = (4 x hello) + (2 x dia) – 2 forward_delay = (End-to-end_BPDU_propa_delay + Message_age_overestimate + Maximum_frame_lifetime + Maximum_transmission_halt_delay ) / 2 = ((lost_msg + 1) x hello) + ((BPDU_Delay x (dia – 1)) + ((dia – 1) x overestimate_per_bridge) + (dia x transit_delay) + med_access_delay + Maximum_transmission_halt_delay) / 2 = ((4 x hello) + dia – 1 + dia – 1 + dia + 0.5 + 1) / 2 = ((4 x hello) + (3 x dia) – 0.5) / 2
이러한 계산을 사용하면 다음과 같은 두 개의 최종 공식을 사용할 수 있습니다(0.5 값을 반올림하는 경우).
max_age = (4 x hello) + (2 x dia) – 2 forward_delay = ((4 x hello) + (3 x dia)) / 2
더 나은 통합 시간을 얻기 위해 STP 타이머를 조정하려는 경우 이 두 수식을 엄격하게 따라야 합니다.
이제 DDoS 공격의 실제 사례를 살펴보겠습니다.브리지 네트워크에 대해 지름이 4개인 경우 다음 매개변수를 사용해야 합니다.
hello = 2 (default) then max_age = 14 sec forward_delay = 10 sec If hello = 1 then max_age = 10 sec forward_delay = 8 sec
참고: hello = 1이 가장 낮은 값입니다.지름이 4인 경우 이 매개변수를 최대 사용 기간에 대해 10초 미만, 전방 지연에 대해 8초 미만으로 조정할 수 있는 방법은 없습니다.
hello 시간을 1초로 줄이는 것이 STP 매개변수를 줄이는 가장 쉽고 안전한 방법입니다.그러나 hello 시간을 2초에서 1초로 줄이면 각 브리지에서 전송/수신하는 BPDU의 수를 두 배로 늘린다는 점을 기억하십시오.이렇게 증가하면 CPU에 추가 부하가 발생하며, BPDU의 2배에 달하는 처리량이 필요합니다.여러 VLAN과 트렁크가 있는 경우 이 부하가 문제가 될 수 있습니다.
지름은 네트워크 설계에 전적으로 의존합니다.최악의 경우 지름은 브리징 네트워크의 두 스위치(소스 및 대상 포함)를 연결하기 위해 교차하는 최대 스위치 수입니다.지름을 결정할 때 동일한 스위치를 두 번 교차하지 않습니다.이 문서의 Spanning Tree Protocol Timers 섹션의 다이어그램에서 지름 5(경로 F-E-B-A-C)를 확인할 수 있습니다.
이제 이 섹션의 다이어그램을 보십시오.이 다이어그램에는 두 개의 디스트리뷰션 스위치(스위치 A와 B)에 연결되는 일부 액세스 스위치(스위치 C, D, E)가 포함되어 있습니다. 디스트리뷰션 스위치와 코어 사이에는 레이어 3(L3) 경계가 있습니다.배포 스위치에서 브리지 도메인이 중지됩니다.STP 지름은 5입니다.
C-A-D-B-E
D-A-C-B-E
다이어그램에서 5보다 큰 지름을 제공하는 스위치 쌍이 없다는 것을 확인할 수 있습니다.
Spanning Tree Protocol Timers 섹션에서 언급했듯이 각 BPDU에는 hello, forward delay 및 max age STP 타이머가 포함됩니다.IEEE 브리지는 타이머 값의 로컬 컨피그레이션에 대해 우려하지 않습니다.IEEE 브리지는 브리지가 수신하는 BPDU의 타이머 값을 고려합니다.사실상 STP의 루트 브리지에 구성된 타이머만 중요합니다.루트가 손실되면 새 루트가 전체 네트워크에 로컬 타이머 값을 적용하기 시작합니다.따라서 전체 네트워크에서 동일한 타이머 값을 구성할 필요가 없더라도 루트 브리지 및 백업 루트 브리지에서 적어도 타이머 변경 사항을 구성해야 합니다.
Catalyst OS(CatOS) 소프트웨어를 실행하는 Cisco 스위치를 사용하는 경우 루트를 설정하고 공식에 따라 매개변수를 조정할 수 있는 매크로가 있습니다.지름 및 hello 시간을 설정하려면 set spantree root vlan dia diameter hello_time 명령을 실행합니다.예를 들면 다음과 같습니다.
Taras> (enable) set spantree root 8 dia 4 hello 2 VLAN 8 bridge priority set to 8192. VLAN 8 bridge max aging time set to 14. VLAN 8 bridge hello time set to 2. VLAN 8 bridge forward delay set to 10. Switch is now the root switch for active VLAN 8.
STP 네트워크 지름이 구성된 경우 구성된 지름 값이 컨피그레이션 또는 show 명령의 출력에 표시되지 않습니다.