Spanning Tree Protocol(STP) 1

 ## Spanning Tree Protocol(STP) ##


 - Switch Network에서 사용되는 Loop 방지 Solution

 - '가용성(Availability)' 확보를 위해 Switch를 이중화하는 경우 Ring 구조의 형태로 연결하게
   되면 Loop가 발생 할 수 있다. 때문에 관리자가 별도로 설정을 하지 않아도 Switch 스스로
   STP가 활성화되어 있기 때문에 Loop를 방지할 수 있다.

------------------------------------------------------------------------------------------------------------

** Configuration BPDU(설정 BPDU) **


 - Switch는 기본적으로 2초 주기로 'Configuration BPDU'를 교환하여 'Root Bridge'와 각 Port의
   역할을 결정하게 된다.
 - Configuration BPDU의 다음 3가지 값을 기준으로 Switch의 역할과 포트의 역할을 결정한다.

[1. Bridge ID]


 => Switch(혹은 Bridge)가 갖고 있는 고유한 식별자(ID)를 의미
      다음과 같이 구성된다.
      [ Bridge Priority(기본값: 32,768) + MAC 주소 ]

 => Bridge ID가 가장 낮은 Switch가 'Root Bridge'로 선출된다.   
 => 관리자가 임의적으로 Root Bridge를 변경할 경우, 해당 장비의 Bridge Priority 값을 낮게 조정하면 된다.

[2. Path Cost]


 => 해당 Switch에서 Root Bridge까지의 Link 속도를 값으로 변환한 값이다
 => 16bit Path Cost는 다음과 같다.
     -> 10Mbps : 100 / 100Mbps : 19 / 1Gbps : 4 / 10Gbps : 2
    

[3. Port ID]


 => Switch 포트마다 부여된 고유한 ID이다.
    일반적으로 기본값 128 뒤에 해당 포트의 번호를 붙여서 사용한다.
    (ex. Fa0/1 -> 128.1  ,  Fa0/10 -> 128.10  ,  Fa0/15 -> 128.15)

============================================================================================================

## STA(Spanning-Tree Algorithm) 동작 ##


 1. Bridge-ID가 가장 낮은 Switch를 'Root Bridge'로 선출

 2. Non-Root Bridge에서 다음 조건에 따라 하나의 포트를 'root 포트'로 선출한다.

    1) 자신의 Path Cost가 가장 낮은 포트
    2) 연결된 상대방의 Bridge ID가 가장 낮은 포트.
    3) 연결된 상대방의 Port ID가 가장 낮은 포트.

 3. 각 Segment 마다 다음 조건에 따라 하나의 Designated 포트를 선출한다.

    0) Root Bridge의 모든 포트.
    1) Switch 자체의 Path Cost가 작은 Switch의 포트.
    2) 자신의 Bridge ID가 낮은 Switch의 포트.
    3) 자신의 Port ID가 낮은 Switch 포트.

 4. 역할을 부여받지 못한 포트를 논리적인 Blocking 상태로 변환시킨다.
============================================================================================================

 ## STP Convergence Time(수렴 시간) 조정 ##


 - STP Timer의 기본값은 다음과 같다.
   1) Hello   :  2초
      => Configuration BPDU 교환 주기

   2) Max-age   : 20초
      => 간접 link 단절 시 Blocking 상태에서 대기하는 시간

   3) Forward-Delay  : 15초
      => Listening / Learning 상태에서 대기하는 시간

 - Blocking 상태의 포트가 Forwarding 상태로 전환되는 경우 다음과 같은 STP Convergence
   Time이 필요하다.
  
   1) 직접 Link 단절 시 => 30초
      [Listening(15초)] -> [Learning(15초)] -> [Forwarding] 

   2) 간접 Link 단절 시 => 50초
      [Blocking(20초)] -> [Listening(15초)] -> [Learning(15초)] -> [Forwarding]

 - 비활성화 상태(down)였던 Designated 포트 혹은 Root 포트가 활성화(up) 상태가 되면 역시
   [Listening(15초)] -> [Learning(15초)] -> [Forwarding] 즉, 30초의 Convergence Time이 지난 후
   Forwarding 상태로 변환된다.
============================================================================================================
 - 관리자가 설정을 통해 STP Convergence Time을 조정하는 것도 가능하다.
 - 근본적인 해결 방법은 RSTP(Rapid STP)를 사용하는 것이다.
   만약 RSTP를 사용할 수 없는 경우에 다음과 같은 방법으로 STP 수렴시간을 조정하는 것이
   가능하다.
------------------------------------------------------------------------------------------------------------

[1. Uplinkfast]


 - 직접 Link 단절 시 30초의 STP 수렴시간이 필요하다.
   [Listening(15초)] -> [Learning(15초)] -> [Forwarding]
 - 이 경우 Blocking 포트가 존재하는 Access Switch에서 Uplinkfast를 설정하게 되면 30초의
   Convergence Time을 생략하는 것이 가능하다.

<IOU4 => BLK 포트가 위치한 Switch>
conf t
spanning-tree uplinkfast

** 주의점 **
 -> Uplinkfast 설정시 해당 Switch의 Bridge Priority 값이 자동으로 증가하기 때문에 절대 Root
      Bridge에서는 Uplinkfast 명령어를 입력하면 안된다!!
     (Bridge ID가 높아지면서 Root Bridge 권한을 다른 Switch에게 뺏길 수 있다.)

 -> Uplinkfast는 BLK 포트가 위치한 Access Switch에서 사용하는 명령어이다.
------------------------------------------------------------------------------------------------------------

[2. Backbonefast]


 - 간접 Link 단절 시 50초의 STP 수렴시간이 필요하다.
   [Blocking(20초)] -> [Listening(15초)] -> [Learning(15초)] -> [Forwarding]
 - 이 경우 모든 Switch에 'Backbonefast'를 설정하게 되면 Blocking 상태에서 대기 시간인 Max-
   age(20초)를 생략하는 것이 가능하다.

<IOU1/2/3/4>
conf t
spanning-tree backbonefast

 - verify -
 => IOU3/IOU4에 [debug spanning-tree events] 명령어를 입력 후 IOU3의 e0/1을 shutdown 시키
      고 debug 메시지비교
------------------------------------------------------------------------------------------------------------

[3. Portfast]


 - 비활성화 상태(down)였던 Designated 포트 혹은 Root 포트가 활성화(up) 상태가 되면 역시
   [Listening(15초)] -> [Learning(15초)] -> [Forwarding] 즉, 30초의 Convergence Time이 지난 후
   Forwarding 상태로 변환된다.

 - PC와 같은 End Device가 연결되는 포트의 역할을 'Designated Port'가 된다.
   결과적으로 End Device에 전원을 키고 즉시 포트가 Forwarding 상태가 되는 것이 아니라
   Listening/Learning 즉 30초의 Convergence time 후 Forwarding 상태가 된다.

 - 하지만 End Device가 연결된 포트의 경우 Loop가 발생되지 않기 때문에 이 경우 Portfast를 설
   정하게 되면 즉시 Forwarding 상태로 변환이 가능하다.

<Switch>
en
conf t
 int range fa 0/1 - 20
 desc ##End_User_PC##
 spanning-tree portfast

 => Portfast 명령어 입력 후 해당 포트에 Switch 등의 장비를 연결할 경우 일시적인 loop가 발생
      할 수도 있다는 경고 로그가 발생된다.

------------------------------------------------------------------------------------------------------------

[4. STP Timer 조정]


 - 기본적인 STP Timer는 다음과 같다.

   1) Hello : 2초   (Configuration BPDU 교환 주기)
   2) Max-age : 20초   (Blocking 상태에서 대기 시간)
   3) Forward-delay : 15초  (Listening/Learning 상태에서 대기시간)

 - 위의 STP Timer는 Switch의 diameter가 7인 경우를 가정으로 사용하는 Timer이다.
 - 관리자가 STP Timer를 조정하는 것이 가능하다.
 -------------------------------------------------
| diameter       |  2  |  3  |  4  |  5  |  6  |  7  |    <-   Switch 개수 (diameter)
 -------------------------------------------------
|  Hello           |  2  |  2  |  2  |  2  |  2  |  2  |
 -------------------------------------------------
| Max-age      |  10 |  12 |  14 |  16 |  18 |  20 |
 -------------------------------------------------
| FWD-DLY  |  7  |  9  |  10 |  11 |  13 |  15 |

 -------------------------------------------------
 - 관리자가 실제 연결된 Switch의 숫자에 따라 위의 표를 참조하여 STP Timer를 변경하는 것도
   가능하다.

 - STP Timer는 Root Bridge의 Timer를 사용하기 때문에 Root Bridge에서 STP Timer를 조정해야
   한다.

<IOU1 => Root Bridge>
conf t
spanning-tree vlan 1 max-age 14
spanning-tree vlan 1 forward-time 10
 - [spanning-tree vlan 1 root primary diameter 4] 명령어를 사용해도 된다.
============================================================================================================

 ## STP 종류 ##


[1. CST(Common STP)]


 => 표준 방식의 STP로 모든 VLAN이 하나의 동일 STP 프로세스에 따라서 동작하는 방식을
      의미

[2. PVST(Per VLAN STP)]


 => Cisco 방식의 STP로 VLAN 마다 독립된 STP 프로세스를 갖고 동작하는 방식을 의미
 => Cisco 전용 Trunking 방식인 ISL에서만 동작

[3. PVST+]


 => 기존의 PVST가 확장된 형태로 ISL 뿐 아니라 dot1q에서도 사용이 가능하다.
 => 추가적으로 STP 보안 기술인 Root Guard/BPDU Guard 등의 기능도 추가되었다.
 => 오늘날 기본적인 Cisco Switch의 STP 동작 방식이다
    (다른 벤더 장비에서 지원되는 경우도 있다)

[4. RSTP(Rapid STP)]


 => IEEE 802.1w로 소개되었고, 추후 2004년 IEEE 802.1D-2004에서 STP 표준으로 정의되었다.
 => 기존 STP의 단점인 Convergence Time을 획기적으로 단축 시키는 것이 가능하다(1초 미만)
 => EtherSwitch 모듈에서는 지원되지 않는다.

[5. MSTP(Multiple STP)]


 => 다수의 VLAN을 instance로 묶어서 관리할 수 있는 STP 방식
 => EtherSwitch 모듈에서는 지원되지 않는다.

댓글

이 블로그의 인기 게시물

Inter Vlan / SVI

TCP/IP Model(= DoD Model)과 OSI 7 Layer Model 1