Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 IT일지

STP 본문

네트워크/Cisco

STP

세레프 2023. 5. 1. 14:55

 네트워크를 형성할 때, 장치의 장애로 인한 네트워크 기능상실을 막기 위해서 스위치 이중화로 구성하고 경로를 2개로 연결하는 경우가 있다. 이를 "redundant topology"라고 하는데, 이럴 경우에 발생하는 문제점이 있다.

  • Broadcast storms : broadcast 신호를 송신했을 경우, switch와 switch사이에서 frame이 지속적으로 looping되는 현상
  • Multiple frame copies : 신호를 송신했을 경우, 해당 목적지에 중복된 frame이 도착하는 현상
  • MAC address table 불안전 : looping으로 인해 MAC address table이 계속해서 갱신되는 현상

Broadcast storms Multiple frame copies 

 

 이러한 현상을 막기위해 사용하는 STP프로토콜을 사용한다. STP 다중화로 구성된 스위치일 경우 looping을 방지하기 위해 스위치의 우선순위에 따라 하나의 경로를 정하며, 사용되던 경로에 이상이 생길 경우 차단한 경로를 사용하도록 하는 프로토콜로, 해당 프로토콜은 스위치가 종료하기 전까지 계속 실행된다.

 STP는 여러 개의 스위치 사이에서 우선순위를 정한 뒤, 최우선순위의 스위치(루트 스위치)를 중심으로 경로가 정해진다. 그렇다면 어떤 기준으로 우선순위가 결정되는 것일까?

 스위치의 우선순위를 결정하기 위해서는 서로 간의 정보인 BPDU가 필요하다. BPDU 스위치(브릿지)간에 정보를 교환하기 위한 frame으로 주로 Bridge ID, Path Cost, Port ID의 값을 바탕으로 루트 스위치를 1개를 선정한다.

  •  Bridge ID : 브릿지나 스위치가 통신 할 때 서로를 확인 하기 위한 ID
    1. 2byte의 Bridge Priority와 6byte의 MAC 주소로 구성
    2. Bridge Priority의 범위는 0~65,535이며, 기본값은 32,768이다. 
    3. Bridge ID가 가장낮은 스위치가 루트 스위치로 선정된다.
  • Path Cost : 다른 스위치와 연결된 경로가 어떤 속도로 연결되어 있는지 알기 위한 값
    1. BPDU에서 사용하는 Path cost는 해당 스위치에서 루트 스위치까지의 경로를 합한 값이다..
    2. IEEE에서 미리 정한 값을 사용하며, 속도가 빠를수록 경로값이 낮다.
속도 path cost(경로값)
10Mb Ethernet 100
100MB FastEthernet (일반적인 Ethernet) 19
1GB Ethernet 4
10Gigabit Ethernet 2
  • Port ID : BPDU를 전송하는 Switch의 Port 번호와 Port 우선순위로 구성 (default : 128)

show spanning-tree 명령어를 통해 BPDU를 확인

 이때, Bridge Priority가 32,769인 것을 확인 할 수 있는데, 이는 기본값 32,768에 VLAN 번호를 합친 값이 출력된 것이다.

 

 만약 루트 스위치를 임의적으로 변경해야 하는 경우가 있을 경우, Bridge Priority값을 낮게 설정하면 해당 스위치가 루트 스위치로 선정받게 된다.

  • spanning-tree vl [번호] priority [수정 값] : 해당 VLAN의 priority 값을 변경하는 명령어
  • spanning-tree vl [번호] root primary : 해당 VLAN에서 연결된 스위치들중 가장 낮은 priority값을 설정
  • spanning-tree vl [번호] root secondary : 해당 VLAN에서 연결된 스위치들중 두번째로 낮은 priority값을 설정
Switch(config)#spanning-tree vl 1 priority 4096
Switch(config)#do sh sp
Switch(config)#do sh sp
VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    4097
             Address     00E0.B0B8.49A7
             This bridge is the root
             Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    4097  (priority 4096 sys-id-ext 1)
             Address     00E0.B0B8.49A7
             Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  20

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/2            Desg LSN 19        128.2    P2p
Fa0/1            Desg FWD 19        128.1    P2p
Fa0/24           Desg FWD 19        128.24   P2p

 

 이렇게 루트 스위치가 선정했으면, 나머지 스위치의 포트에서 root port를 선정해야 하는데, root port는 루트 스위치를 제외한 스위치 1개당 1개로 배정된다.

  1. Root 스위치의 ID가 가장 낮은 BPDU를 수신한 port
  2. Path cost가 가장 작은 Port
  3. 인접 Switch의 Bridge ID가 가장 낮은 port
  4. 인접 Switch의 Port ID가 가장 낮은 port
  5. 자신의 Port ID가 가장 낮은 port

 쉽게 정리하면, root 스위치 방향인 경로는 root port로 선정 되는 것이다.

 

 마지막으로 root port가 선정 되었으면, 나머지 포트 중 사용할 포트인 "designated port"와 사용하지 않을 포트인 "nondesignated port"를 결정해야 한다. 이때 하나의 경로(세그먼트)에는 하나의 "designated port"가 있어야 하며, 루트 스위치의 모든 포트는 "designated port"로 설정 되어 있다.

  1. 낮은 순위의 BPDU를 수신한 port
  2. Path cost가 가장 낮은 port
  3. Bridge ID가 가장 낮은 port
  4. Port ID가 가장 낮은 port

//switch 5 (root)
Switch#sh sp
VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     0003.E4CE.E743
             This bridge is the root
             Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     0003.E4CE.E743
             Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  20

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/2            Desg FWD 19        128.2    P2p
Fa0/1            Desg FWD 19        128.1    P2p


//switch 6
Switch#sh sp
VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     0003.E4CE.E743
             Cost        19
             Port        1(FastEthernet0/1)
             Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     0060.7059.8DE5
             Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  20

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1            Root FWD 19        128.1    P2p
Fa0/2            Altn BLK 19        128.2    P2p

 즉, Bridge ID가 제일 작은 스위치가 root스위치가 되며, root 스위치와 같은 세그먼트로 연결되어 있는 다른 스위치의 포트는 "root port"가 된다. 마지막으로 Bridge ID, Path Cost, Port ID의 값이 제일 큰 스위치의 포트가 "nondesignated port"가 된다.

 

스위치 포트 상태

 스위치를 실행하고 기기와 연결하더라도 바로 연결이 되지 않고 일정 시간이 지난 후에 연결이 되며, 이 시간은 스위치와 기기간의 데이터를 주고 받기 위한 준비 작업을 하는 단계이다. 특히 스위치와 스위치를 연결하는 경우 스위치간의 우선순위를 결정하는 시간이 된다.

  1. Blocking state : frame의 송수신이 불가능한 상태, BPDU만 수신 가능, blocking상태에서 unblocking상태로 전환하는 경우 최대 20초의 소요시간
  2. Listening state : Forwarding 상태로 변경하기 위한 스위치간 우선순위 확인하는 상태, 15초의 소요시간(forwarding 딜레이)
  3. Learning state : Forwarding 상태로 변경하기 위한 MAC address table 작성하는 상태, 15초의 소요시간(forwarding 딜레이)
  4. Forwarding state : frame의 송수신이 가능한 상태

 즉, 새로운 기기를 연결하는 경우 listening, learning, forwarding순으로 변경되는 시간이 30초이며, 원래 통신하던 경로에 문제가 발생할 경우, 대기하고 있던 경로의 blocking을 해제하고 listening, learning, forwarding으로 변경되는 시간이 총 50초가 소요된다.

 

Etherchannel

 원래 경로에 문제가 생겨 예비경로를 사용하는 경우 걸리는 시간은 50초이며, 이는 네트워크에서는 엄청 긴 시간이다. 그래서 이를 해결하기 위해 개발된 기술 중 하나가 Etherchannel이다.

 Etherchannel이란 여러 개의 경로를 하나의 경로처럼 동작하게 하는 기술로, 평소에는 묶은 경로에 따른 속도를 낼 수 있는 이원화 기능이 있으며, 만일 원래 경로에 문제가 생길 경우, 예비 작업없이 경로를 유지 할 수 있다.

 Etherchannel은 8개의 포트로 1개의 채널을 만들 수 있으며, 총 6개의 채널을 구성 가능하다. 이때, 채널에 구성되는 포트의 프로토콜은 동일해야 한다.

  1. 묶을 경로의 포트들 설정 : interface range fa[포트번호]-[포트번호]
  2. 포트의 모드를 static모드로 변경 : switchport mode trunk  ==> static모드는 trunk모드와 access모드가 있다.
  3. 채널의 모드를 설정 후 그룹에 소속 : channel-group [그룹 번호] mode [옵션]
옵션
1. active : 상대 포트가 LACP(국제 표준 프로토콜) 사용(passive)할 경우, 해당 채널은 LACP를 사용해서 활성화

2. passive : 상대 포트가 LACP이며, 해당 프로토콜의 모드와 상관없이  LACP(국제 표준 프로토콜)사용

3. desirable : 상대 포트가 PAgP(Cisco 전용 프로토콜) 사용(auto)하는 경우, 해당 채널는 PAgP를 사용해서 활성화

4. auto : 상대 포트가 PAgP이며, 해당 프로토콜의 모드와 상관없이 PAgP(Cisco 전용 프로토콜) 사용

5. on : 상대 포트의 모드가 on인 경우, 프로토콜 상관 없이 항상 포트 활성화

 

//switch 5
Switch(config)#int ra fa0/1-2
Switch(config-if-range)#switch mode trunk
Switch(config-if-range)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to down

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to up
	
Switch(config-if-range)#channel-group 1 mode on
Switch(config-if-range)#
Creating a port-channel interface Port-channel 1

%LINK-5-CHANGED: Interface Port-channel1, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to up


//switch 6
Switch(config)#int ra fa0/1-2
Switch(config-if-range)#switch mode trunk
Switch(config-if-range)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to down

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to up
	
Switch(config-if-range)#channel-group 1 mode on
Switch(config-if-range)#
Creating a port-channel interface Port-channel 1

%LINK-5-CHANGED: Interface Port-channel1, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to up

 

 

 

 

 

'네트워크 > Cisco' 카테고리의 다른 글

라우터  (0) 2023.05.13
L3 스위치  (0) 2023.05.07
스위치  (0) 2023.05.01
VLAN 연결  (0) 2023.04.30
VLAN 개념과 생성  (0) 2023.04.27
Comments