스위치

이연중·2021년 11월 23일
0

Network

목록 보기
6/7
post-thumbnail

스패닝 트리 프로토콜


스위치나 브리지에서 발생하는 루핑을 막아주기 위한 프로토콜

출발지에서 목적지로 가는 경로가 2개 이상 존재할 떄 1개의 경로만을 남겨두고 나머지는 모두 끊었다가, 사용하던 경로에 문제가 생기면 끊었던 경로를 하나씩 살림


두 가지 개념

  1. 브리지ID: 브리지나 스위치들이 통신 시 서로를 확인하기 위한 고유 번호

    • 브리지 ID 생성 방법
      • 16비트의 브리지 우선순위와 48비트의 맥 어드레스로 만들어짐
        • 브리지 우선순위에 올 수 있는 수는 0~2^16-1까지(아무런 구성도 하지 않을 시 디폴트는 중간값인 32768)
        • 그 뒤의 자신의 고유 맥 어드레스가 옴
  2. Path Cost

    • 한 스위치에서 다른 스위치로 가는 데 드는 비용

    • Path Cost 계산 방법

      • Path Cost는 속도가 빠를수록 값이 작음

      • 속도에 따른 Path Cost 표

        • BandwidthPath Cost
          4Mbps250
          10Mbps100
          16Mbps62
          45Mbps39
          100Mbps19
          155Mbps14
          622Mbps6
          1Gbps4
          10Gbps2
        • ex) 스위치 A와 스위치 B가 10Mbps 링크로 연결되어 있으면, Path Cost= 1000


세 가지 기본적인 동작

  1. 네트워크당 하나의 루트 브리지를 갖음
    • 하나의 브로드캐스트 도메인에 하나씩의 루트 브리지가 있음
    • 루트 브리지는 스패닝 트리 프로토콜 수행 시 기준이 되는 브리지(스위치)
    • 루트 브리지 선정
      • BID가 가장 낮은 값이 루트 브리지가 됨
        • ex) 스위치 A,B,C가 있다고 가정, 스위치 A의 BID= 32768.1111.1111.1111, 스위치 B의 BID= 32768.2222.2222.2222, 스위치 C의 BID= 32768.3333.3333.3333
        • 먼저, 스위치 B, C 부팅 -> BPDU(Bridge Protocol Data Unit. 스패닝 트리에 대한 여러가지 정보를 담고 있으면서 2초에 한 번 뿌려지는 프레임) 공유(초기 Sender BID는 자신의 BID, 루트 브리지의 BID는 자신의 BID) -> 자신의 BPDU에 있는 루트 브리지 BID가 상대방의 루트 브리지 BID보다 작으면 BPDU의 BID를 변경
        • 스위치 A 부팅 -> 초기 BPDU를 뿌림(Sender BID가 자신의 BID, 루트 브리지의 BID가 자신의 BID인) -> 다같이 BPDU 공유 -> BPDU의 루트 브리지의 BID는 BID가 제일 작은 스위치 A의 BID가 됨
  2. 루트 브리지가 아닌 나머지 모든 브리지는 무조건 하나씩의 루트 포트를 갖음
    • 루트 포트란 루트 브리지에 가장 빨리 갈 수 있는 포트
    • 루트 브리지가 아닌 브리지들은 루트 브리지 쪽과 가장 가까이 있는 루트 포트를 하나씩 지정해주어야 함
    • 루트 포트 선정
      • Root Path Cost(루트 브리지까지의 Path Cost)가 가장 작은 포트가 루트 포트
  3. 세그먼트당 하나씩의 Designated 포트를 갖음
    • 세그먼트란 브리지 또는 스위치 간 서로 연결된 링크
    • 이 링크에서 반드시 한 포트는 Designated 포트로 선출되어야 함
    • Designated 포트 선정
      • 링크 양끝에 달려있는 두 포트 중 Root Path Cost가 작은 포트가 Designated 포트가 됨
      • 루트 브리지의 모든 포트들은 항상 Designated 포트가 됨(Root Path Cost가 0이기때문)
      • 두 포트의 Root Path Cost가 같다면?
        • 1단계: 누가 더 작은 Root BID를 가졌는지
        • 2단계: Root Path Cost 값은 누가 더 작은지
        • 3단계: 누구의 BID가 더 낮은지
        • 4단계: 누구의 포트 ID가 더 낮은지

스패닝 트리 프로토콜은 위 세가지 규칙을 적용해 어느 쪽 링크를 살려두고, 어느 쪽 링크를 끊을지 결정(루트 포트나 Designated 포트가 아닌 포트는 다 끊음)


5가지 상태 변화

이렇게 스패닝 트리 프로토콜을 구현해 나가는 과정에서 모든 스위치나 브리지의 포트들을 5가지 상태로 변한다.

  • Disabled: 포트가 고장나서 사용할 수 없거나 네트워크 관리자가 포트를 일부러 Shut Down 시켜놓은 것
    • 데이터 전송 x
    • 맥 어드레스 학습 x
    • BPDU 공유 x
  • Blocking: 스위치를 맨 처음 켤 때, 또는 Disabled 되어 있는 포트를 관리자가 다시 켰을 때
    • 데이터 전송 x
    • 맥 어드레스 학습 x
    • BPDU 공유 o
  • Listening: Blocking 상태에 있던 스위치 포트가 루트 포트나 Designated 포트로 선정되면, Listening 상태로 변화
    • 데이터 전송 x
    • 맥 어드레스 학습 x
    • BPDU 공유 o
  • Learning: Listening 상태에 있던 스위치 포트가 포워딩 딜레이 디폴트 시간인 15초 동안 상태를 유지하면, Learning 상태로 넘어감
    • 데이터 전송 x
    • 맥 어드레스 학습 o
    • BPDU 공유 o
  • Forwarding: 스위치 포트가 Learning 상태에서 다른 상태로 넘어가지 않고 다시 포워딩 딜레이 디폴트 시간인 15초 동안 상태를 유지하면, Forwarding 상태로 넘어감
    • 데이터 전송 o
    • 맥 어드에스 학습 o
    • BPDU 공유 o

Listening, Learning, Forwarding 상태에 있던 포트도 루트 포트나 Designated 포트에서 탈락되면, Blocking 상태로 넘어갈 수 있음

또한, 포트의 고장이나 사용자에 의한 Shut Down으로 인해 Disabled 상태로 넘어갈 수 있음

이제 Root Port와 Designated Port는 Forwarding 상태, Non Designated Port는 Blocking 상태가 되어 출발 노드에서 도착 노드로 가는 경로가 하나만 존재하게 됨

루트 브리지가 어디로 선정되냐와 링크의 속도가 얼마나 빠르냐에 따라 어떤 링크가 살고, 어떤 링크가 죽을지 결정 됨


스패닝 트리 재편성


필수 용어

  • Hello Time: 루트 브리지가 얼마 만에 한 번씩 헬로 BPDU를 보내는지에 대한 시간(디폴트 헬로 타임은 2초)
  • Max Age: 브리지들이 루트 브리지로부터 헬로 패킷을 받지 못하면 맥스 에이지 시간 동안 기다린 후 스패닝 트리 구조 변경 시작
  • Forwarding Delay: 브리지 포트가 블로킹 상태에서 포워딩 상태로 넘어갈 때까지 걸리는 시간(디폴트 15초)

스패닝 트리 재편성

  • 루트 브리지는 자신과 연결된 나머지 브리지들에게 헬로 패킷을 매 2초(디폴트 헬로 타임)마다 뿌림
  • 이 패킷을 받은 브리지들은 자신의 Designated 포트로 다시 그 헬로 패킷 전달
  • 만약 헬로 패킷을 받는 포트쪽의 링크 연결이 끊어졌다면, 맥스 에이지 시간동안 기다림(디폴트 20초)
  • 맥스 에이지 시간 동안에도 헬로 패킷이 오지 않는다면, 스패닝 트리 변경 시작
  • 블로킹 상태에 있는 포트 중 헬로 패킷을 받고 있는 포트를 Designated 포트로 재선정하고(Forwarding 상태로 변경), 연결이 끊긴 포트를 Blocking 상태로 변경(디폴트 30초= 15+15)

=> 대략 50초 정도 소요(생각보다 오래 걸림)


카타리스트 스위치


CISCO에서 만든 스위치의 한 종류

Cisco Catalyst 2960-24PC-L

24는 포트 수 즉, 24개의 포트

P= PoE를 지원하는 스위치

C= Dual Purpose Uplink(오른쪽 네개 포트중 위 두 포트는 SFP포트(광케이블) 아래 2 포트는 10/100/1000 Base T 포트. 두 방식 중 선택해서 사용(UTP). 동시 사용은 불가)


Cisco Catalyst 2960-48PST-L

48은 포트 수 즉, 48개의 포트

P= PoE를 지원하는 스위치(PoE= Power over Ethernet. 이더넷 케이블 위에 데이터뿐만 아니라 전원까지 같이 보냄, IP 전화기, AP 무선 랜 장비, IP 감시 카메라 등에 전원까지 같이 제공해야 함)

ST= SFP와 TP 방식의 업링크 포트를 제공한다는 뜻(TP는 UTP 방식. SFP는 광케이블용 접속 방식, 속도는 1Gbps)


카타리스트 스위치 구성


디폴트 구성

  • show interface status: 스위치에서 각 포트들의 현재 상황을 볼 수 있는 명령
  • 각 포트들의 상태는 아직 연결되어 있지 않음
  • 모두 Vlan 1번으로 구성
  • Duplex는 Auto(상대방의 상태에 맞추겠다(Full Duplex와 Half Duflex 중))
  • Speed는 Auto(상대방에 맞추겠다(10Mbps와 100Mbps 중))
  • IP 주소나 패스워드는 세팅을 하지 않았으니 없음
  • 스패닝 트리 프로토콜은 자동으로 활성화되어 있어, 루핑 방지 중

IP 주소 세팅(선택 사항. 권장 사항)

  • IP 주소 세팅은 스위치를 제대로 관리하기 위해 필요(스위치 구성을 확인하거나 변경하고자 할 때 텔넷을 이용한 접속이 가능+NMS 같은 장비에서 스위치 관리하는데도 필요)
  • 스위치 자체에 하나의 IP 주소만을 부여
  • enable 명령을 통해 privileged 모드로 접속
  • configure terminal 명령으로 구성 모드로 접속
  • vlan 1 인터페이스에서 IP 주소 세팅
    • interface vlan 1
    • ip address 192.168.100.1 255.255.255.0
  • privileged 모드에서 show interface vlan 1 명령으로 세팅 확인
  • 디폴트 게이트웨이 구성
    • configure terminal
    • ip default-gateway 192.168.1.1
    • vlan 인터페이스가 아닌 일반 구성 모드에서 하면 됨

스위치 포트 속도와 Duplex 세팅

  • configure terminal 명령으로 privileged 모드로 들어감

  • interface fastethernet 0/1 명령으로 변경해주고자 하는 인터페이스로 들어감

  • speed 10 명령으로 스위치 포트 속도를 10mbps로 세팅

  • duplex half 명령으로 duplex를 half duplex로 세팅

  • show interface fastethernet 0/1 명령으로 세팅 확인

profile
Always's Archives

0개의 댓글