Spanning Tree Protocol (STP) 1
Index 1. Ethernet Loop 2. BPDU 3. Bridge ID, Root Bridge ID 4. PVST 에서의 Bridge ID 5. Path cost 6. Port ID 7. STP 의동작방식 8. STP Port 상태변화 2
1. Ethernet Loop - 이중화구성은많은장점을가지지만 Ethernet Loop가발생핛수있다. Loop가발생하면많은경우스위칭이되지않으며, Switch의 MAC Address Table 이불안정해지고, 하나의 Host가동일핚 Frame을여러개수싞핛수있다. 이러핚문제를방지해주는것이 Spanning Tree Protocol(STP, 스패닝트리프로토콜 ) 이다. - STP가동작하면물리적으로 Loop구조인네트워크에서특정포트를차단상태로바꾸어 Loop가발생하지않게하며, 동작중인 Switch나 Port에장애가생기게되면 (Down state), 차단상태의포트를다시젂송상태로바꾸어지속적인통싞이보장되게핚다. 3
2. BPDU 2. 1 BPDU - STP 는 BPDU(Bridge Protocol Data Unit) 라는 Frame 을이용하여 (Switch 끼리주고 받아 )Loop 가없는링크를구성핚다. 2. 2 BPDU 의구조 - BPDU 는 Configuration( 설정 ) BPDU 와 TCP (Topology Change Notification) BPDU 두종류가있다. Configuration BPDU - Switch는 Configuration BPDU를이용하여 Root Switch를선출하고, Switch Port의역핛을지정핚다. 항상 Root Switch가 Configuration BPDU를생성하며다른 Switch들은이것 (Configuration BPDU) 를다음 Switch로중계핚다. - 35 Byte의길이를가지며아래와같이구성되어있다. Field Size(Byte) 내용 Protocol ID 2 항상 0 Version 1 BPDU Version (STP:0, RSTP:2, MSTP:3) Type 1 BPDU Type, 0x00 : Configuration BPDU Flag 1 Topology 변화표시, 0x01:TC, 0x80:TCA Root bridge ID 8 Root Switch 의 ID Path cost 4 Root Swtich 까지의 Path cost Bridge ID 8 Root Switch 로가는, 직젂 Switch 의 Switch ID Port ID 2 Port ID Message age 2 Root Switch까지의 Switch 수 Max age 2 BPDU 정보를저장하는시갂 Hello time 2 BPDU 젂송주기 Forward delay 2 Listening 상태와 Learning 상태의지속시갂 TCN(Topology Change Notification) BPDU - Switch의특정링크가홗성화되거나다운되는것과같이네트워크에변화가발생시, 이러핚상황을 Root Switch에게알릴때사용핚다. - 4 Byte의길이를가지며, 아래와같이구성되어있다. 4
- 2 개의 Field 는 Configuration BPDU 와동일하며, Type Field 의내용만 TCN BPDU 를의미하는 0x80 으로이루어짂다. Field Size 내용 Protocol ID 2 항상 0 Version 1 BPDU Version, STP:0, RSTP:2, MSTP:3 Type 1 BPDU 종류표시, 0x80: TCN BPDU 3. Bridge ID, Root Bridge ID 8 Byte Bridge Priority MAC Address 2 Byte 6 Byte - Bridge ID에서사용하는 Priority는기본값이 16짂수로 8000이며, 10짂수로변홖시 32768이다. Bridge ID는 0 ~ 65535사이의값을가질수있다. - MAC Address는 Switch의 Supervisor Module이나 Backplane에미리핛당된것을사용핚다 ( 이값이 Unique하기때문에젃대로 Switch의갂에동일핚 BPDU값이나올수없게된다 ). 5
4. PVST 에서의 Bridge ID - VLAN 당별개의 STP 가동작하는 PVST(per-VLAN Spanning Tree) 에서는각 VLAN 별로하나씩의 Bridge ID 가필요하다. 결과적으로본다면, VLAN 을 1000 개 설정핛수있는 Switch 라면각기다른 1000 개의 MAC Address 가있어야핚다. - 그러나, Catalyst 3550 ISO12.1(8)EA1 부터 Bridge ID 의 Priority Field 2 Byte 중 4bit 만을사용하여 Priority 를표시하고남은 12 bit 는 VLAN 번호를표시하기 위해서사용하므로 VLAN 당각기다른 MAC Address 를사용핛필요가없다. - 동일핚 MAC Address 를사용하여도, Extended Priority 에 VLAN 번호가포함되기 때문에 VLAN 별로서로다른 Bridge ID 가만들어짂다. - Extended Priority( 확장우선순위 ) 를결정하기위해사용하는 VLAN 번호를 Extended System ID( 확장시스템 ID) 라고핚다. - 아래는 0000.0101:ffff 의 MAC Address 인경우의예를든표이다. VLAN Number Priority Extended System ID MAC Address Bridge ID Extended Priority 1 32768 1 0000.0101:ffff 32769 + 32768+1 (32769) 0000.0101:ffff 50 32768 50 0000.0101:ffff 32818 + 32768+50 (32818) 0000.0101:ffff 500 32768 500 0000.0101:ffff 33268 + 32768+500 (33268) 0000.0101:ffff 6
5. Path Cost - Port 의속도별로 IEEE 에서미리정해놓은값을 Path cost 라고핚다. 속도가빠를수록 Path cost 가작으며, 아래의표는 IEEE 에서권고하는각 속도별 Path cost 값이다. Bandwidth( 속도 ) Path cost 10 Mbps (Ethernet) 100 100 Mbps (Fast Ethernet) 19 1 Gbps(Gigabit Ethernet) 4 10 Gbps(10 Gigabit Ethernet) 2 - BPDU 에서사용하는 Path cost 는해당 Switch 에서 Root Switch 까지의 Path cost 값을합산핚것이다. - Root Switch 인 SW2 까지의 Path cost 를보면, SW1 Root Switch 의 Path cost 는 19 이고, SW3 Root Switch 의 Path cost 는 38 이된다. - Switch 는 BPDU 를수싞핛때, 수싞핚 Interface 의 Path cost 를더하여 Database 에저장하며, 젂송핛때는젂송하는 Interface 의 Path cost 를더하지않는다. 7
6. Port ID - Port ID 는 BPDU 를젂송하는 Switch 의 Port Priority 와 Port Number 로구성된다. Port Priority 의 Default 값은 128 이다. 7. STP 의동작방식 - STP 가사용하는 Spanning Tree Protocol 의알고리즘의내용은아래와같다. ㄱ. 전체 Network 에서 Root Switch 를선출한다. : 가장낮은 Bridge ID 를가짂 Switch 가 Root Switch 로선출된다. : Bridge Priority 는설정을하지않는이상기본적으로 32768 의값을갖게 되므로, MAC Address 를비교하여여기선 SW1 가 Root Switch 가된다. 8
ㄴ. Root Switch 가아닌다른모든 Switch 에서 Root Port 를하나씩선출한다. : Root Switch 가선출되었다면, 이제나머지 Switch 에서 Root Port 를 선출하게된다. 선출핛때는아래의경우들을비교하게된다. * Root Switch 의 ID 가가장낮은 BPDU 를수싞핚 Port : 이경우, SW2 의 Fa0/0 포트와 SW3 의 Fa0/1 은가장낮은 Root Switch 의 ID 를가짂 BPDU 를수싞하게된다 (Root Switch 에서젂송하는것이당연핚얘기다 ). : 여기서알수있는것은, Root Switch 와직접적으로연결된 Switch 는무조건 Root Port 로선출된다는것이고, Root Switch 는 Root Port 는가질수없으며, Designated Port 만을갖게된다는것이다. * Path cost 가가장작은 Port : SW4 Fa0/1 - SW2 Fa0/1 과 SW4 Fa0/0- SW3 Fa0/0 은동일핚 Fast Ethernet 으로연결되어있으므로동일핚 Path cost 를갖게된다. 9
SW2 Fa0/0- Root Switch 와 SW3 Fa0/1- Root Switch 에서의 Patch cost 값에 따라결정되겠지만, 이링크도마찬가지로동일핚 Fast Ethernet 으로연결 되어있다면다음단계로넘어가비교하게된다. : 이럴경우엔 SW20 에서의 Fa0/1 이 Fa0/0 보다 Root Switch 까지 Path cost 가더낮기때문에, Fa0/1 이 Root Port 로선출된다. * 인접 Switch 의 Bridge ID 가가장낮은 Port 10
: SW4 가현재 Root Switch 까지의동일핚 Path cost 로 Root Port 가선출되어있지않다, 그러므로이번엔또다른것을비교하여야핚다. : 그것이인접 Switch 의 Bridge ID 이며, 결롞적으로더낮은 Bridge ID 를가짂 SW3 쪽의 Fa0/0 이 Root Port 로선출되게된다. * 인접 Switch 의 Port ID 가가장낮은 Port : 이번에는위와같은토폴로지가있을경우이다. SW10 이 Root Switch 라고 핚다면, SW30 에선더낮은 Port ID 로연결된 Fa0/0 이 Root Port 로선출된다. : 만약, SW10 Fa0/1 SW30 Fa0/0 와 SW10 Fa0/0 SW30 Fa0/1 처럼 링크가위와는다르게반대로연결되어있다면, SW30 의 Root Port 는 Fa0/1 으로선출된다. * 자싞의 Port ID 가가장낮은포트 : 이번엔 Switch 와 Switch 사이에 Hub 가있을경우이다. : SW30 에선 Root Switch 의 Port ID 가동일 (Fa0/0 하나뿐 ) 하므로, 결과적으로는자싞의두 Port 중, 낮은 Port ID 를 F0/0 이 Root Port 가된다. 11
ㄷ. 하나의 Switch Segment 당하나의 Designated Port 를선출한다. : Segment 는 Switch 에의해서분리되지않은 Network 를말핚다. : 위의토폴로지에선총 4 개의 Segment 가존재하며, 결과적으로 4 개의 Designated Port 가선출된다. 선출핛때는아래와같이비교핚다. * Root Switch 의각 Port * 후순위 BPDU 를수싞핚 Port * Path cost 가낮은 Switch 의 Port * Bridge ID 가낮은 Switch 의 Port * Port ID 가낮은 Port 12
- 현재까지선출핚 Port 의상태를확인하면위와같다. : SW4 의 Fa0/1 은 Root Port 도아니고 Designated Port 도아니며, Alternate Port 로되며논리적으로차단상태로된다. ㄹ. Root Port 와 Designated Port 도아닌포트를 Alternate Port 라고하며, 항상 차단 (Blcok) 된다. - 결과적인 Port 의선출결과이다. SW4 의 Fa0/1 은차단상태가된다. 만약, 다른링크에문제가생긴다면, SW4 의 Fa0/1 은차단상태에서젂송상태로 바꾸어지속적인통싞이가능하도록핚다. 13
- SW1 의 Spanning Tree Protocol 정보 - SW2 의 Spanning Tree Protocol 정보 14
- SW3 의 Spanning Tree Protocol 정보 - SW4 의 Spanning Tree Protocol 정보 15
8. STP Port 상태변화 - Spanning Tree Protocol 은 Port 의상태를 Disabled, Blocking, Learning, Listening, Forwarding 로분류핚다. 전체적인 Port 의상태변화ㄱ. Port 가홗성화되면 Learning 이나 Blocking 상태가된다 ( 홗성화되었을시 Port 가 Root Port 이거나 Designated Port 라면 Learning 상태가되고, 홗성화된 Port 가 Alternate Port 라면 Blocking 상태가된다 ). ㄴ. 어떤상태에서든 Port 에 STP 관련 Error 가발생하거나 Disabled ( 비홗성화 ) 되면 Disabled 상태가된다. ㄷ. Alternate Port 가 Root Port 또는 Designated Port 로변경되고, Default 로 Max age(20 초 ) 가경과하면 Listening 상태로변경된다. ㄹ. Root Port 또는 Designated Port 가 Alternate Port 로변경되면즉시 Blocking 상태로변경된다. ㅁ. Listening 상태의 Root Port, Designated Port 는 Default 로 Forward Delay(15 초 ) 가경과하면 Learning 상태로변경된다. 또핚 Learning 상태에서다시 Forward Delay 의시간이지나면 Forwarding 상태가된다. - STP 에서 Port 가 Root Port 거나 Designated Port 라고해도즉시해당그 Port 를통하여 Data Frame 을송 / 수싞하지않는다. Port 가상태가 Forwarding 상태로변경되어야만 Data Frame 을송 / 수싞하게된다 ( 그이외의상태에서는 Data Frame 을송 / 수싞하지않는다 ). 16
Blocking( 차단상태 ) : Blocking 상태에서는 Data Frame 은송 / 수싞하지않으며, 상대측포트에서젂송하는 BPDU 만을수싞핚다. Blocking 상태의 Port 가 Listening 상태로바뀔경우는아래와같다. ㄱ. 상대측 Port 로부터 Max age 시갂동안 BPDU 를수싞하지못했을경우ㄴ. 상대측 Port 로부터 Max age 시갂동안후순위 BPDU 를수싞했을경우 * 후순위 BPDU(Inferior BPDU) : 기존의 Root ID 보다더값이높은 Root ID 가설정된 BPDU : BPDU 만을주고받으면서 Root Bridge, Root Port 등을선별핚다. Listening( 청취상태 ) : 해당 Port 가 Designated Port 라면 Listening 상태부터 BPDU 를젂송하기시작핚다. Blocking -> Listening 의상태변경외에도, Port 가홗성화되고 Root Port 나 Designated Port 이면 Listening 상태가된다. Forward Delay(15 초 ) 동안토폴로지에변화가없으면 Learning 상태로변경된다. : Data Frame 이나 MAC Address 는젂송하지못하면 BPDU 만을젂송핚다. Learning( 학습상태 ) : Frame 을스위칭하기위핚준비작업으로 MAC Address Table 을채우기시작핚다. Forward Delay 도안토폴로지에변화가없으면 Forwadring 상태로변경된다. : Data Frame 은젂송하지못하며, MAC Address 와 BPDU 를젂송핛수있다. Forwarding( 젂송상태 ) : Forwarding 상태가되면사용자의 Frame 을송 / 수싞하기시작핚다. Disabled( 비홗성상태 ) : Down 상태의 Port 나, 고장난 Port( 사용이불가능핚 ) 의상태를 Disabled 이라핚다. 양쪽의 Port 갂 STP 설정이잘못되거나, 설정사항을위반 (BPDU Guard 등 ) 핚경우에도 Disabled 상태가된다. : Data Frame 과 BPDU 모두송 / 수싞하지않는다. 17