2 분 소요

STP

  • 이더넷 frame은 IP헤더에 있는 TTL(Time To Live) 필드와 같은 루프 방지 필드가 없다. 때문에 ring 구조의 스위치 네트워크에서 브로드캐스트 트래픽이 발생될 경우 순식간에 스위치가 다운될 수 있는데 이러한 루핑을 방지하는 것이 STP (Spanning-Tree Protocol)이다.

  • STP는 Ring 구조의 스위치 네트워크에서 특정포트를 논리적 차단상태로 변경하여 루프가 발생하는 것을 방지한다.

  • 또한 동작중이던 스위치 혹은 포트가 다운될 경우 논리적 차단상태였던 포트를 전송상태 로 변경하여 통신의 단절을 방지한다.


BPDU의 ConfigurationBPDU & TCN BPDU

image

  1. 설정 BPDU (Configuration BPDU) => type 필드 : 0x00
    • 스위치는 설정 BPDU를 사용하여 Root Switch를 선택하고, 각 스위치 포트의 역할을 정의. 이러한 설정 BPDU는 항상 루트 스위치가 생성한다.

    • 이 BPDU를 수신한 다른 스위치들은 이 BPDU를 다음 스위치에게 중계한다. 설정 BPDU 필드에서 Bridge ID, Path Cost, Port-ID가 각 스위치의 역할과 포트의 상태를 결정할 때 사용된다.

  • Bridge ID : Priority(2바이트) + MAC 주소(6바이트)로 구성되어 있다. MAC주소는 스위치의 수퍼바이저 모듈이나 Backplane에 미리 할당된 것을 사용한다. Bridge ID가 가장 낮은 스위치가 Root Switch로 선택된다.

  • Path cost : 각 포트의 속도별로 IEEE에서 미리 정한 값이다. BPDU의 경로값은 해당 스위치에서 Root Switch 까지의 합산이다. 각 스위치는 BPDU를 수신할 때 수신 인터페이스의 경로 값을 더하여 데이터베이스에 저장한다. BPDU를 전송할 경우에는 전송포트의 경로 값을 더하지 않는다.

  • Port ID : BPDU를 전송하는 스위치의 포트 우선순위와 포트번호로 구성. 포트 우선순위 기본값은 128 BPDU의 flag 필드는 네트워크의 변화가 생겼을 때 사용된다.

  1. TCN BPDU => type 필드 : 0x80
    • 스위치가 특정 링크의 변화를 Root Switch에게 알려줄 때 사용된다.

STP의 동작 방식

Ⅰ전체 스위치 네트워크에서 Root Switch를 선출한다. 

Ⅱ Root Switch가 아닌 모든 Switch에서 하나의 Root 포트를 선택한다. 

Ⅲ 하나의 segment 당 하나의 Designated(지정) 포트를 선택한다. 

Ⅳ 아무 역할도 부여받지 못한 포트는 alternate(대체) 포트가 되어 논리적으로 차단된다.


1. Root Switch 선출
 -> 전체 스위치 중 Bridge ID가 낮은 스위치가 Root Switch로 선택된다. 
 
2. Root 포트 선출
- Root Switch가 아닌 스위치에서 다음 조건을 비교하여 Root 포트를 선출한다.
 1) Root Switch의 ID가 가장 낮은 BPDU를 수신한 포트
 2) Path cost가 가장 작은포트
 3) 인접 스위치의 Bridge ID가 가장 낮은 포트
 4) 인접 스위치의 Port ID가 가장 낮은 포트
 5) 자신의 Port ID가 가장 낮은 포트

3. Designated 포트 선택
- 한 Segment 당 하나씩 선택한다. Root port는 지정포트가 될 수 없다. STP는 동작하지 않는 종단장치는 Designated 포트가 될 수 없다. 각 Segment마다 Root Switch에 좀 더 가까운 포트가 선출된다.
 1) Root Switch의 각 포트가 선출한다.
 2) 낮은 순위의 BPDU를 수신한 포트 (Root Switch 결정 직후)
 3) Path cost가 작은 스위치의 포트 (포트가 아니라 Switch 자체의 Path cost)
 4) Bridge ID가 낮은 스위치의 포트 
 5) Port ID가 낮은 포트 - 설정 BPDU는 항상 Root Switch에서 멀어지는 방향으로 전송. Designated 포트는 설정 BPDU를 송신하며, Root 포트는 수신만 한다. 차단상태인 Alternate 포트와 종단 장치가 접속된 포트에게도 BPDU가 전송된다.

STP 스위치 포트 상태

1.disable
포트의 모든 기능이 정지되어 있는 경우로서 shutdown과 같다. Data와 bpdu 모두 주고 받지 못한다.
2.block
Bpdu를 받을 수만 있고 data는 주고 받지 못한다. (disable과는 엄연히 다름)
3.Listening
Bpdu를 주고 받는다. 그러나 data는 주고 받지 못한다.
4.learing
Bpdu를 주고 받지만 data는 주고 받지 못한다. 그리고 mac주소를 학습한다.
5.forwarding
Bpdu와 data를 모두 주고 받는다. 

Block ->listening (20초) -max age
Listening->learning (15초) foward-delay 1차
Learning->forwarding (!5초) foward-delay 2차
총 50초 

TCN BPDU 동작

  1. 토폴로지가 변경되면 각 스위치는 TCN BPDU를 Root Switch에게 전송. 구체적인 정보가 아니라 단순히 변경되었다는 사실만을 전달.

  2. 중간에 있는 모든 스위치는 해당 TCN BPDU를 Root Switch에게 전달. TCN을 수신한 Root Switch는 TCA(flag값 0x80)로 수신을 확인시켜준다.

  3. Root Switch는 flag 필드에서 TC비트를 0x01로 설정하여 설정BPDU를 다른 스위치에게 topology 변경을 알려준다. 이 TC 역시 단순히 변경된 사실만을 알려준다. Root Switch는 35초(Max age(20초) + Forward Delay(15초))동안 TC가 설정된 설정BPDU를 전파한다.

  4. TC비트를 수신한 스위치들은 Topology의 변화를 인식하고 MAC address table의 aging time을 기본 300초에서 Forward Delay(15초)로 줄인다. 때문에 MAC address table의 변경시간이 단축되어 통신 복구가 빨라진다.


댓글남기기