본문 바로가기

Ryu's Tech

STP [ Spanning Tree Protocol , 스패닝 트리 프로토콜]


  • STP [ Spanning Tree Protocol ]
    • 위의 그림과 같은 경우에서 스위치는 L2 장비이기 때문에 L3 장비인 라우터와 다르게 동작한다.
      • Router : 목적지를 모르는 패킷을 받으면 그냥 Drop 시켜버린다.
      • Switch : 목적지를 모르는 패킷을 받으면 패킷을 받은 포트를 제외하고 모든 포트에 Flood 한다.
        이렇게 무작적 Flood하게 되면 받은 패킷을 계속 Flooding 시키다 보면 Broadcast 때문에 네트워크가 죽어버리기도 한다. 이러한 상태를 Broadcast Storm 이라고 한다.
    • 위와 같은 이유로 스위치는 Looping을 방지하기 위한 알고리즘이 필요한데, 이것이 STP이다.
    • 스패닝 트리의 동작 순서
      • Network당 하나의 Root Bridge를 선정한다.
      • non-root bridge마다 하나의 root port를 선정한다. 즉, 루트 브릿지가 아니면 Root port를 가져야 하는데, Root port는 Root bridge로 향하는 포트를 말한다.
      • Segment별로 하나의 Designated Port를 선정한다.
      • BPDU(Bridge Protocol Data Unit)을 통해서 Root를 선정한다.
    • Root Bridge를 선출하는 기준
      • BID [ Bridge ID ] 와 Root Bridge 선출
        • 이는 모든 스위치에 존재한다.
        • Default Priority 값은 32768 이다. ( Priority 값은 4096의 배수로만 설정된다. )
        • BID는 Priority + Mac Address 를 사용하여 Root를 선출한다.
        • 만약 Priority가 같다면 Mac address가 낮은 값의 장비를 Root로 설정하게 되는데 이는 문제가 된다. 왜냐하면 기본적으로 MAC이 낮은 장비는 오래된 장비라는 말이 되기 때문이다.
        • backbone망의 스위치를 루트로 설정하는 것이 권장된다.
        • Root Bridge의 포트는 전부 Designated Port이다.
    • 각 Bridge의 포트
      • Root Port : Root Bridge로 가는 가장 좋은 경로를 가진 포트, BPDU를 수신하는 포트
      • Designated Port : BPDU를 Forwarding 하는 포트
      • Alternated Port : Port 선출에 실패한 포트 (Blocked)
      • Backup Port : Port 선출에 실패한 포트 ( 자신이 보낸 BPDU를 받을경우)
      • Root Port의 선출
        • non-root bridge들은 두개 이상의 Port에서 BPDU를 수신하면 하나의 Root port를 선출한다.
        • Root Bridge까지 가장 낮은 Cost 값을 가진 포트가 Root Port가 된다.
          • 10G = 2 , 1G = 4 , 100M = 19 , 10M = 100
        • Root Port는 Forwarding 상태를 갖는다.
      • Designated의 선출
        • Root port와 마찬가지로 하나의 Designated port가 존재한다.
        • Looping을 방지하기 위하여 Designated port를 제외하고는 Blocking 상태로 만든다.
        • Blocking 된 상태는 트래픽을 송수신하지 못하지만 BPDU는 수신이 가능하다.
      • 만약 네트워크의 변화로 Blocking Port에서 Forwarding Port로의 변화는 아래와 같다.
        • Blocking (20s) -> Listening (15s) -> Learning (15s) -> Forwarding
    • BDPU
      • 스위치의 정보교환을 위한 프레임이다.
      • 이패킷은 2초마다 뿌려진다.
      • 이는 Root Switch를 통해서만 생성된다. 그래서 Root가 성능이 좋지 않은 장비가 되지 말아야할 될 이유이다.
      • 스위치는 최초 부팅시 자신이 Root Bridge 상태로 부팅된다. 그래서 부팅 후 BPDU 패킷을 교환하고 Root Bridge를 찾는 것이다.