- Broadcast Storm 또는 Broadcast Island -> Looping 발생 구간을 칭함
- Flooding으로 인한 Looping 발생 시 문제
1. 하나의 장비에 대해 2개 이상의 Port 존재 시
2. MAC-Address 불안정
Spanning Tree Protocol
물리적으로 2개 이상의 연결이 발생 시 논리적으로 하나를 제외한 모든 포트에 Blocking을 걸어 Looping을 막음
STP의 종류
1. CST(Common Spanning Tree, 802.1D)
Switch 한대당 하나의 Spanning Tree 동작, 표준 프로토콜로 802.1Q에서 동작
장점 : CPU 소모가 낮다.
단점 : VLAN별로 로드분산이 불가능
2. PVST(Per Vlan Spanning Tree, 802.1D)
VLAN 당 하나의 Spanning Tree 동작(최대 128개). Cisco 전용이므로 ISL에서만 동작, Native VLAN 사용불가
3. PVST+(Per Vlan Spanning Tree Plus, 802.1D)
PVST와 동작원리는 같지만 PVST와는 달리 ISL, 802.1Q에서 모두 동작, Cisco Switch의 Default 값
단점 : 속도가 느림(Disable→Blocking(20초)→Listening(15초)→Learning(15초)→Forwarding)
4. RSTP(Rapid Spanning Tree, 802.1W)
PVST+의 속도 단점 보완, 표준 프로토콜, ISL, 802.1Q에서 모두 동작
Port 상태(Discard → Learning(1초) → Forwarding)
단점 : Spanning Tree 128개까지 밖에 지원하지 않는다.
(Config)#Spanning-tree mode Rapid-pvst
5. MSTP(Multiple Spanning Tree, 802.1S)
표준 프로토콜이며, ISL, 802.1Q 모두 동작 Spanning Tree 갯수는 Config에 따라 달라짐
물리적으로 하나의 Spanning Tree를 논리적으로 여러개의 Spanning Tree를 동작 시킴
단점 : Block Port가 발생
6. Etherchannel(스패닝 트리x)
물리적으로 여러개의 Line을 논리적으로 하나로 만듬, 최대 8개 Line을 하나로 묶을 수 있음, 단 물리적으로 동일해야함
STP Blocking Port의 선출 순서
1. Root Bridge 선출
ⓐ Bridge-ID 낮은 순서(Bridge-ID = Priority + VLAN + MAC)
ⓑ Priority + Vlan 번호 낮은 순서
ⓒ MAC-Address 낮은 순서
2. Root Bridge의 모든 포트는 DP가 됨, DP는 Blocking이 되면 안됨
* DP(Designated Port) = BPDU를 송신하는 역할
* BPDU : Switch와 Switch간의 Looping이 없는 경로를 만들기 위해 주고 받는 Frame, 2초 Hello time , 20초 Max-age
└ 설정 BPDU : 일반 BPDU
└ TCN BPDU : 오류 발생시 오류를 알려주는 BPDU
Root Bridge-ID, Path cost, Port-Priority, Protocol Type, Hello Time, Max-age, Forward-time, MAC-Addres, Priority 등 포함
3. Non-Root Bridge에서 Root Bridge까지 가는 Port 중 Cost값이 작은 Port를 선출
PVST+ RSTP
-------------------------------------------
속도 Cost 속도 Cost
10G 2 10G 2000
1G 4 1G 20000
100M 19 100M 200000
10M 100 10M 2000000
4. Non-Root Bridge의 Port들이 Cost값이 같은 경우 Bridge-ID가 작은 Port를 선출
5. Non-Root Bridge의 Port들이 Cost값과 Bridge-ID가 같은 경우 Port-Priority가 작은 Port를 선출
6. 선출되지 못한 Non-Root Bridge의 Port는 Blocking 되며 Alternate Port 또는 Non-DP라고 부름. BPDU 수신은 하지만 Frame을 주고 받지는 못함
선출된 Non-Root Bridge의 Port는 BPDU를 수신하는 역할을 하며 RP(Root Port)라고 부름
- Priority 값 바꾸기 명령
Switch가 2대일 때
SW3(Config)#Spanning-tree vlan 1 Priority 4096의 배수
Switch가 3대 이상일 때 또는 Vlan이 여러개일때, 만약 SW2, SW3에서 Vlan 10, 20에 대해 Block되는 Port가 없어야할 때
SW3(Config)#Spanning-tree vlan 10 root primary
Spanning-tree vlan 20 root secondary
SW2(Config)#Spanning-tree vlan 20 root primary
Spanning-tree vlan 10 root secondary
Block Port를 바꾸고 싶을 때
ⓐ Cost 값 변경 (Config-if)#Spanning-tree vlan 1 cost 10
ⓑ Priority 값 변경 (Config-if)#Spanning-tree port-priority 160
* Switch의 5가지 Port 상태 변화
- Disable : interface shutdown, BPDU/Frame 전송 x
- Blocking : BPDU 전송 O, Frame 전송 x, Max-Age : 20초
- Listening : Block된 Port가 Forwarding이 되었을 때 Looping 발생 여부 확인
TCN(Topology Change Notification), TCA(Topology Change ACK), TC Aging-Time을 15초로 변경
- Learning : MAC-Address 학습, 15초
- Forwarding : 프레임 송수신 가능
* Switch의 Port Disable → Forwarding 까지 소요 시간 줄이기
(Config)# Spanning-tree vlan 10 Hello-time 1 (BPDU 주기 줄이기)
(Config)# Spanning-tree vlan 10 max-age 10 (MAX-AGE Time 줄이기)
(Config)# Spanning-tree vlan 10 Forward-time 7 (Listening-Learning Time 줄이기)
(Config)# Mac-address-table aging-time 300 (Aging Time 줄이기)
- Portfast : Switch에 PC나 Server 연결 시 Listening과 Learning을 하지 않음
1. (Config)# Spanning-tree portfast default - Access로 설정된 모든 Port에 자동적으로 Portfast가 걸린다
2. (Config-if)# Spanning-tree portfast
- Uplinkfast : 반드시 Non-Root Bridge에서 설정
Switch간 Block된 Port가 Forwarding 될 때 Listening/Learning을 하지 않음
(Config)# Spanning-tree uplinkfast
- Backbonefast : 어느 Switch에 설정해도 상관없다
Block된 Port를 가진 Switch의 장애가 아닌 다른 곳에서 장애 발생 시 MAX-AGE Time 생략
단 Listening, Learning은 한다.
(Config)# Spanning-tree backbonefast
* Port-Security = 해당 Interface에 MAC Address 저장 후 해당 MAC Address만 통신 가능하게 해줌
(Config)#Switchport port-security
(Config)#Switchport port-security maximum 숫자(맥주소숫자)
(Config)#Switchport port-secuirty mac-address AAAA.AAAA.AAAA(수동)/Stickey(자동)
(Config)#Switchport port-secuirty Violation Shutdown(셧다운)/Protect(해당MAC이 아니면 통신X)/Restrict(Protect에 Message 추가)
* Err Disable = Port-Security 등과 같이 Shutdown된 Interface를 자동 up 시켜주는 명령어
(Config)#Errdisable detect cause 원인(Loopguard, BPDUGuard, Port-Security 등) -> Detect 켜고 끄기
(Config)#Errdisable recovery cause 원인(Loopguard, BPDUGuard, Port-Security 등) -> 자동복구 켜고 끄기
(Config)#Errdisable recovery interval 150 -> 기본 복구시간 300초를 줄일 때
* BPDU Guard = BPDU Guard가 설정된 interface로 BPDU가 들어오면 해당 interface를 shutdown시킨다
단, Spanning-tree Portfast가 먼저 설정되어있어야 함.
(Config)#spanning-tree portfast bpdugurard default - Portfast가 설정된 모든 Interface에 적용
(Config-if)#spanning-tree bpduguard enable
* BPDU Filter = BPDU Filter가 설정된 interface로 BPDU를 주고 받지 않음
단, Spanning-tree Portfast가 먼저 설정되어있어야 함.
(Config)#spanning-tree portfast bpdufilter default
(Config-if)#Spanning-tree bpdufilter enable
* Root Guard = Root Guard가 설정된 Interface로 Root Bridge의 Bridge ID보다 작은 Bridge ID가 들어오면 해당 Interface를 Shutdown
(Config-if)#Spanning-tree guard root
* Loop Guard = Block된 Port에 BPDU가 들어오지 않아도 해당 Interface를 Forwarding 하지 않음
소프트웨어적인 문제시 Port 상태변경 X
물리적인 문제시 Port상태 변경, VLAN 기반
(Config-if)#Spanning-tree loop guard (Block된 Port에 설정)
* UDLD = 물리적인 Line에서 RX나 TX가 문제가 생기면 단방향통신을 하게 되는데 이 때 Looping이 발생할 수 있음
이러한 단방향 통신시 해당 Interface를 Shutdown 시킨다. 포트기반
- 정상모드 : Fiberoptic Cable에서 쓸 때
- 적극모드 : Ethernet Cable에서 쓸 떄
(Config)#udld enable (정상모드)
(Config)#udld aggressive (적극모드)
(Config-int)#udld port (정상모드)
(Config-int)#udld port aggressive (적극모드)
- Flooding으로 인한 Looping 발생 시 문제
1. 하나의 장비에 대해 2개 이상의 Port 존재 시
2. MAC-Address 불안정
Spanning Tree Protocol
물리적으로 2개 이상의 연결이 발생 시 논리적으로 하나를 제외한 모든 포트에 Blocking을 걸어 Looping을 막음
STP의 종류
1. CST(Common Spanning Tree, 802.1D)
Switch 한대당 하나의 Spanning Tree 동작, 표준 프로토콜로 802.1Q에서 동작
장점 : CPU 소모가 낮다.
단점 : VLAN별로 로드분산이 불가능
2. PVST(Per Vlan Spanning Tree, 802.1D)
VLAN 당 하나의 Spanning Tree 동작(최대 128개). Cisco 전용이므로 ISL에서만 동작, Native VLAN 사용불가
3. PVST+(Per Vlan Spanning Tree Plus, 802.1D)
PVST와 동작원리는 같지만 PVST와는 달리 ISL, 802.1Q에서 모두 동작, Cisco Switch의 Default 값
단점 : 속도가 느림(Disable→Blocking(20초)→Listening(15초)→Learning(15초)→Forwarding)
4. RSTP(Rapid Spanning Tree, 802.1W)
PVST+의 속도 단점 보완, 표준 프로토콜, ISL, 802.1Q에서 모두 동작
Port 상태(Discard → Learning(1초) → Forwarding)
단점 : Spanning Tree 128개까지 밖에 지원하지 않는다.
(Config)#Spanning-tree mode Rapid-pvst
5. MSTP(Multiple Spanning Tree, 802.1S)
표준 프로토콜이며, ISL, 802.1Q 모두 동작 Spanning Tree 갯수는 Config에 따라 달라짐
물리적으로 하나의 Spanning Tree를 논리적으로 여러개의 Spanning Tree를 동작 시킴
단점 : Block Port가 발생
6. Etherchannel(스패닝 트리x)
물리적으로 여러개의 Line을 논리적으로 하나로 만듬, 최대 8개 Line을 하나로 묶을 수 있음, 단 물리적으로 동일해야함
STP Blocking Port의 선출 순서
1. Root Bridge 선출
ⓐ Bridge-ID 낮은 순서(Bridge-ID = Priority + VLAN + MAC)
ⓑ Priority + Vlan 번호 낮은 순서
ⓒ MAC-Address 낮은 순서
2. Root Bridge의 모든 포트는 DP가 됨, DP는 Blocking이 되면 안됨
* DP(Designated Port) = BPDU를 송신하는 역할
* BPDU : Switch와 Switch간의 Looping이 없는 경로를 만들기 위해 주고 받는 Frame, 2초 Hello time , 20초 Max-age
└ 설정 BPDU : 일반 BPDU
└ TCN BPDU : 오류 발생시 오류를 알려주는 BPDU
Root Bridge-ID, Path cost, Port-Priority, Protocol Type, Hello Time, Max-age, Forward-time, MAC-Addres, Priority 등 포함
3. Non-Root Bridge에서 Root Bridge까지 가는 Port 중 Cost값이 작은 Port를 선출
PVST+ RSTP
-------------------------------------------
속도 Cost 속도 Cost
10G 2 10G 2000
1G 4 1G 20000
100M 19 100M 200000
10M 100 10M 2000000
4. Non-Root Bridge의 Port들이 Cost값이 같은 경우 Bridge-ID가 작은 Port를 선출
5. Non-Root Bridge의 Port들이 Cost값과 Bridge-ID가 같은 경우 Port-Priority가 작은 Port를 선출
6. 선출되지 못한 Non-Root Bridge의 Port는 Blocking 되며 Alternate Port 또는 Non-DP라고 부름. BPDU 수신은 하지만 Frame을 주고 받지는 못함
선출된 Non-Root Bridge의 Port는 BPDU를 수신하는 역할을 하며 RP(Root Port)라고 부름
- Priority 값 바꾸기 명령
Switch가 2대일 때
SW3(Config)#Spanning-tree vlan 1 Priority 4096의 배수
Switch가 3대 이상일 때 또는 Vlan이 여러개일때, 만약 SW2, SW3에서 Vlan 10, 20에 대해 Block되는 Port가 없어야할 때
SW3(Config)#Spanning-tree vlan 10 root primary
Spanning-tree vlan 20 root secondary
SW2(Config)#Spanning-tree vlan 20 root primary
Spanning-tree vlan 10 root secondary
Block Port를 바꾸고 싶을 때
ⓐ Cost 값 변경 (Config-if)#Spanning-tree vlan 1 cost 10
ⓑ Priority 값 변경 (Config-if)#Spanning-tree port-priority 160
* Switch의 5가지 Port 상태 변화
- Disable : interface shutdown, BPDU/Frame 전송 x
- Blocking : BPDU 전송 O, Frame 전송 x, Max-Age : 20초
- Listening : Block된 Port가 Forwarding이 되었을 때 Looping 발생 여부 확인
TCN(Topology Change Notification), TCA(Topology Change ACK), TC Aging-Time을 15초로 변경
- Learning : MAC-Address 학습, 15초
- Forwarding : 프레임 송수신 가능
* Switch의 Port Disable → Forwarding 까지 소요 시간 줄이기
(Config)# Spanning-tree vlan 10 Hello-time 1 (BPDU 주기 줄이기)
(Config)# Spanning-tree vlan 10 max-age 10 (MAX-AGE Time 줄이기)
(Config)# Spanning-tree vlan 10 Forward-time 7 (Listening-Learning Time 줄이기)
(Config)# Mac-address-table aging-time 300 (Aging Time 줄이기)
- Portfast : Switch에 PC나 Server 연결 시 Listening과 Learning을 하지 않음
1. (Config)# Spanning-tree portfast default - Access로 설정된 모든 Port에 자동적으로 Portfast가 걸린다
2. (Config-if)# Spanning-tree portfast
- Uplinkfast : 반드시 Non-Root Bridge에서 설정
Switch간 Block된 Port가 Forwarding 될 때 Listening/Learning을 하지 않음
(Config)# Spanning-tree uplinkfast
- Backbonefast : 어느 Switch에 설정해도 상관없다
Block된 Port를 가진 Switch의 장애가 아닌 다른 곳에서 장애 발생 시 MAX-AGE Time 생략
단 Listening, Learning은 한다.
(Config)# Spanning-tree backbonefast
* Port-Security = 해당 Interface에 MAC Address 저장 후 해당 MAC Address만 통신 가능하게 해줌
(Config)#Switchport port-security
(Config)#Switchport port-security maximum 숫자(맥주소숫자)
(Config)#Switchport port-secuirty mac-address AAAA.AAAA.AAAA(수동)/Stickey(자동)
(Config)#Switchport port-secuirty Violation Shutdown(셧다운)/Protect(해당MAC이 아니면 통신X)/Restrict(Protect에 Message 추가)
* Err Disable = Port-Security 등과 같이 Shutdown된 Interface를 자동 up 시켜주는 명령어
(Config)#Errdisable detect cause 원인(Loopguard, BPDUGuard, Port-Security 등) -> Detect 켜고 끄기
(Config)#Errdisable recovery cause 원인(Loopguard, BPDUGuard, Port-Security 등) -> 자동복구 켜고 끄기
(Config)#Errdisable recovery interval 150 -> 기본 복구시간 300초를 줄일 때
* BPDU Guard = BPDU Guard가 설정된 interface로 BPDU가 들어오면 해당 interface를 shutdown시킨다
단, Spanning-tree Portfast가 먼저 설정되어있어야 함.
(Config)#spanning-tree portfast bpdugurard default - Portfast가 설정된 모든 Interface에 적용
(Config-if)#spanning-tree bpduguard enable
* BPDU Filter = BPDU Filter가 설정된 interface로 BPDU를 주고 받지 않음
단, Spanning-tree Portfast가 먼저 설정되어있어야 함.
(Config)#spanning-tree portfast bpdufilter default
(Config-if)#Spanning-tree bpdufilter enable
* Root Guard = Root Guard가 설정된 Interface로 Root Bridge의 Bridge ID보다 작은 Bridge ID가 들어오면 해당 Interface를 Shutdown
(Config-if)#Spanning-tree guard root
* Loop Guard = Block된 Port에 BPDU가 들어오지 않아도 해당 Interface를 Forwarding 하지 않음
소프트웨어적인 문제시 Port 상태변경 X
물리적인 문제시 Port상태 변경, VLAN 기반
(Config-if)#Spanning-tree loop guard (Block된 Port에 설정)
* UDLD = 물리적인 Line에서 RX나 TX가 문제가 생기면 단방향통신을 하게 되는데 이 때 Looping이 발생할 수 있음
이러한 단방향 통신시 해당 Interface를 Shutdown 시킨다. 포트기반
- 정상모드 : Fiberoptic Cable에서 쓸 때
- 적극모드 : Ethernet Cable에서 쓸 떄
(Config)#udld enable (정상모드)
(Config)#udld aggressive (적극모드)
(Config-int)#udld port (정상모드)
(Config-int)#udld port aggressive (적극모드)
태그 : STP, Spanning-Tree



덧글