[학습 목표]
1.RSTP가 필요한 이유
2.STP와 RSTP의 포트 역할과 상태변화 차이점
3.Proposal,Agreement,Syncronization 메커니즘
4.STP와 RSTP의 BPDU 필드 차이점
5.토폴로지 변화와 Mac table 변경
1. RSTP가 필요한 이유
STP(Spanning Tree Protocol)의 한계
1)느린 컨버전스 시간
장애 발생 시, 네트워크가 새로운 경로를 복구하기까지 30~50초가 소요된다.
Max Age (20초) + Forward Delay (15초) x 2 = 최대 50초
이는 실시간 애플리케이션에서 문제가 될 수 있다.
2) 2단계 TCN(Topology Change Notification)
STP는 토폴로지 변화 시 TCN을 루트 브리지까지 전송한 뒤, 네트워크 전체로 BPDU를 브로드캐스트하여 MAC 주소 테이블을 갱신하는 데 시간이 걸린다.
RSTP의 필요성
1) 빠른 복구 (Fast Convergence)
장애 발생 시 1초 이내에 네트워크 경로를 복구하여 다운타임을 최소화한다.
2) 빠른 토폴로지 변화 처리
간소화된 BPDU 메커니즘과 효율적인 MAC 테이블 업데이트로 빠르게 대응한다.
2. STP와 RSTP 포트 상태와 역할의 차이점
STP와 RSTP 모두 스패닝 트리 알고리즘을 사용해 네트워크 루프를 방지하지만, 포트 상태와 역할에서 차이점이 있다. RSTP는 STP의 단점을 보완해 빠른 복구와 효율적인 경로 전환을 가능하게 만든다.
1) STP와 RSTP의 포트 상태
STP 포트 상태
Blocking
프레임 전송/수신 불가, MAC 주소 학습도 하지 않음.
루프 방지를 위해 기본적으로 비활성 상태.
Listening
프레임 전송/수신 불가, MAC 주소 학습도 하지 않음.
BPDU를 수신하며 네트워크 안정화 확인.
Learning
프레임 전송/수신 불가, MAC 주소 학습은 가능.
데이터 전송 준비 단계.
Forwarding
프레임 전송/수신 가능, MAC 주소 학습도 가능.
데이터 전송을 허용하는 활성 상태.
Disabled
관리자가 비활성화한 상태.
RSTP 포트 상태
Discarding
STP의 Blocking, Listening, Disabled 상태를 통합한 상태.
데이터 전송/수신 불가, MAC 주소 학습 불가.
루프 방지 및 초기화 상태.
Learning
프레임 전송/수신 불가, MAC 주소 학습 가능.
Forwarding 상태로 전환하기 전 준비 단계.
Forwarding
프레임 전송/수신 가능, MAC 주소 학습도 가능.
데이터 전송을 허용하는 활성 상태.
차이점
RSTP는 STP의 Listening 상태를 제거하고 Discarding 상태로 통합해 간소화했다.
상태 전환이 빠르게 이루어져 컨버전스 속도가 개선됨.
2) STP와 RSTP의 포트 역할
STP 포트 역할
Root Port
루트 브리지로 가는 최단 경로의 포트.
루트 브리지와 직접 연결된 포트 또는 경로 비용이 가장 낮은 포트.
Designated Port
특정 세그먼트에서 프레임을 전달하는 역할.
루프 방지를 위해 한 세그먼트에 하나만 존재.
Non-Designated Port
루프를 방지하기 위해 차단된 포트.
Disabled Port
관리적으로 비활성화된 포트.
RSTP 포트 역할
Root Port
루트 브리지로 가는 최단 경로의 포트.
STP와 동일.
Designated Port
세그먼트에서 데이터 프레임을 전달하는 역할.
STP와 동일.
Alternate Port
루트 포트를 대체할 수 있는 백업 경로.
루트 포트에 문제가 생기면 즉시 활성화.
Backup Port
Designated 포트를 대체할 수 있는 포트.
같은 세그먼트에서 Designated 포트에 문제가 생기면 활성화.
Disabled Port
관리적으로 비활성화된 포트.
차이점
RSTP는 Alternate Port와 Backup Port를 추가해 대기 경로를 활용하고 빠른 복구를 지원한다.
STP의 Non-Designated Port는 RSTP의 Alternate Port와 Backup Port로 세분화됨.
3. Proposal, Agreement, Synchronization 메커니즘 (feat. RSTP 링크 종류)
RSTP는 STP와 달리 컨버전스 과정을 Proposal, Agreement, Synchronization 메커니즘으로
최적화하여 빠른 복구를 제공한다.
지정포트는 엣지포트와 p2p 링크로 동작할 때 즉시 전송상태로 변경된다.
# RSTP 링크 종류
p2p link : full duplex로 동작하는 포트
shared link : half duplex로 동작하는 포트
peer : RSTP가 아닌 프로토콜로 연결된 포트(ex RSTP와 STP가 호환된 링크)
edge : PC같은 종단 장비가 연결되 STP가 동작하지 않는 포트(portfast 적용)
# SW1에서 스패닝트리 정보를 확인했을 때
e0/0 Type을 보면 종단장치에 연결되있어 p2p Edge로 표기되고
e1/0 Type을 보면 SW2가 STP로 설정되 있기 때문에 p2p Peer(STP)로 표기 되 있는 것을 확인할 수 있다.
1) Proposal (제안)
초기 활성화 컨버전스나 네트워크 변동시 스위치가 자신이 지정포트가 되겠다고 Proposal(제안)한다.
스위치는 자신이 인식한 루트 브리지 정보를 BPDU에 포함하여 전송한다.
상대 스위치는 해당 정보를 기반으로 자신이 루트 포트를 재설정할 필요가 있는지 판단한다.
2) Agreement (동의)
BPDU를 수신한 스위치가 제안된 경로를 수락하면 Agreement BPDU를 송신한다.
이 과정으로 스위치들은 서로 동의하여 루트 경로를 빠르게 확정하고 포트를 Forwarding 상태로 전환한다.
3) Synchronization (동기화)
Proposal(제안)을 받은 뒤 Agreement(동의)를 하는 포트를 제외하고, 스위치는 자신의 나머지 포트를 Blocking(Discarding) 상태로 전환하여 네트워크 루프를 방지한다.
이후, 나머지 포트에 대해 동일한 Proposal/Agreement 과정을 진행한다.
이 메커니즘은 스위치 간 경로 설정을 빠르게 동기화하여 네트워크 안정성을 보장한다.
4. STP와 RSTP의 BPDU 필드 차이점
STP와 RSTP는 모두 BPDU를 사용하지만, RSTP는 추가적인 정보를 포함하여 동작 속도와 효율성을 높였다.
[STP BPDU 필드]
필드 | 바이트 | 내용 |
프로토콜 ID | 2 | 0 |
버전 | 1 | STP:0 / RSTP:2 / MSTP:3 |
타입 | 1 | 0x00:설정 BPDU |
플래그 | 1 | 0x01:TC / 0x80:TCA |
루트 브리지 ID | 8 | 루트 스위치 ID |
경로값 | 4 | 루트 스위치까지의 경로값 |
브리지 ID | 8 | 루트 스위치로 가는 다음 스위치 |
포트 ID | 2 | 포트 ID |
메시지 에이지 | 2 | 루트 스위치까지의 스위치 수 |
맥스 에이지 | 2 | BPDU 정보를 저장하는 시간 |
헬로 타임 | 2 | BPDU 전송주기 |
포워드 딜레이 | 2 | 청취->학습 / 학습->전송 |
[RSTP BPDU 필드 추가/변경 사항]
필드 | 바이트 | 내용 |
프로토콜 ID | 2 | 0 |
버전 | 1 | STP:0 / RSTP:2 / MSTP:3 |
타입 | 1 | 항상 2 |
루트 브리지 ID | 8 | 루트 스위치 ID |
경로값 | 4 | 루트 스위치까지의 경로값 |
브리지 ID | 8 | 루트 스위치로 가는 다음 스위치 |
포트 ID | 2 | 포트 ID |
메시지 에이지 | 2 | 루트 스위치까지의 스위치 수 |
맥스 에이지 | 2 | BPDU 정보를 저장하는 시간 |
헬로 타임 | 2 | BPDU 전송주기 |
포워드 딜레이 | 2 | 폐기->학습 / 학습->전송 |
버전 1 길이 | 1 | 항상 0 |
RSTP 플래그 |
비트 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
TC | Proposal | 포트 역할 | 학습 | 전송 | Agreement | TCA |
# 2,3 비트 00(미정),01(대체포트),10(루트포트),11(지정포트)
# RSTP에서는 TCN BPDU를 사용하지 않지만 STP와 호환성을 위해 7번 비트 TCA가 존재한다.
# SW4에서 e2/0(좌 STP),e3/0(우 RSTP) 포트를 와이어샤크로 떠보면 위 BPDU flags의 다른 부분을 확인할 수 있다.
5. 토폴로지 변화와 MAC 주소 테이블 변경
RSTP는 STP처럼 루트스위치를 거쳐 다시 통보하는 2단계를 거치지 않고
각 스위치가 즉각 토폴로지 변화를 알리고, 에지포트와 변화를 알려준 포트를 제외하고 MAC table을 초기화 한다.
1) 토폴로지 변화 탐지
RSTP는 토폴로지 변화 시, 빠르게 변화를 감지하고 BPDU를 통해 이를 네트워크에 전파한다.
변화 발생 시 스위치는 Topology Change Notification(TCN) BPDU를 생성하지 않고, 기존 BPDU에 TC 플래그를 1로 설정하여 변경 사실을 알린다.(아래 그림 참조)
# BPDU flags 필드를 보면 기존에 0이였던 Topology Change가 1로 바뀐걸 확인할 수 있다.
# 토폴로지 변화를 위해 SW2 e1/0을 비활성화 시켜봤다. STP에서는 Max age(20초) 후에 SW1(루트스위치)가 살아 있음을 확인하지만 RSTP에서는 위 사진과 같이 비활성화와 동시에 알 수 있는 모습이다.
#SW2 e1/0 비활성화와 거의 동시에 바뀐 SW4 e2/0 와 e3/0 포트 변화 events이다.
RSTP로 p2p링크 되있는 e3/0은 바로 루트포트로 변환되고
STP로 p2p(peer) 되있는 e2/0은 차단 15초,학습 15초 총 30초 후 변경 되는 모습니다.
2) MAC 주소 테이블 초기화
네트워크 경로가 변경되면 기존의 MAC 주소 테이블은 유효하지 않을 수 있다.
영향을 받는 포트 또는 전체 네트워크에서 MAC 주소 테이블을 초기화 한다.
특정 포트에서 학습된 MAC 주소만 삭제 (부분 초기화).
루트스위치 변경 시, 네트워크 전체의 MAC 주소 테이블 초기화 (전체 초기화).
3) 새로운 경로 학습
포트는 학습단계에서 새로운 경로를 학습하여 MAC 주소 테이블을 업데이트한다.
Key point
Proposal,agreement 메커니즘을 통한 빠른 통신유지 및 복구
'네트워크' 카테고리의 다른 글
HSRP(Hot Standby Routing Protocol) (0) | 2024.11.19 |
---|---|
Etherchannel (0) | 2024.11.17 |
MST(Multiple Spanning Tree) (0) | 2024.11.09 |
STP(Spanning Tree Protocol) (0) | 2024.10.09 |
VLAN/트렁킹/VTP (0) | 2024.07.06 |