네트워크.보안

VLAN 설정 한 걸음씩 따라하기 (2) - 트렁크 포트 설정하기

다음 조건을 만족하도록 설정하세요.

그림. 가상랜과 트렁크 설정

그림. 가상랜과 트렁크 설정

  • PC가 연결된 포트는 access mode로 지정
  • 스위치와 스위치 간 연결 포트는 trunk mode로 지정
  • VLAN 10, VLAN 20 만들고 스위치간 같은 VLAN끼리 트래픽 전달 확인

스위치1 설정하기

VLAN 설정

Switch1> enable
Switch1# configure terminal
Switch1(config)# vlan 10
Switch1(config)# name TEST1
Switch1(config-vlan)# vlan 20
Switch1(config-vlan)# name TEST2
Switch1(config-vlan)# end
Switch1# show vlan brief

인터페이스 vlan에 추가하기

Switch1# configure terminal
Switch1(config)# interface range fastethernet 0/1-10
Switch1(config-range)# Switchport mode access
Switch1(config-range)# Switchport access vlan 10
Switch1(config-range)# interface range fastethernet 0/11-20
Switch1(config-range)# Switchport mode access
Switch1(config-range)# Switchport access vlan 20
Switch1(config-range)# end
Switch1# show vlan brief

설정저장

Switch1# copy running-config startup-config

트렁크 포트 설정

Switch1# configure terminal
Switch1(config)# interface fastethernet 0/24
Switch1(config-if)# switchport mode trunk
Switch1(config-if)# end
Switch1# show interfaces trunk

스위치2 설정하기

VLAN 설정

Switch2> enable
Switch2# configure terminal
Switch2(config)# vlan 10
Switch2(config)# name TEST1
Switch2(config-vlan)# vlan 20
Switch2(config-vlan)# name TEST2
Switch2(config-vlan)# end
Switch2# show vlan brief

인터페이스 vlan에 추가하기

Switch2# configure terminal
Switch2(config)# interface fastethernet 0/1
Switch2(config-if)# Switchport mode access
Switch2(config-if)# Switchport access vlan 10
Switch2(config-if)# interface fastethernet 0/2
Switch2(config-if)# Switchport mode access
Switch2(config-if)# Switchport access vlan 20
Switch2(config-if)# end
Switch2# show vlan brief

설정저장

Switch2# copy running-config startup-config

트렁크 포트 설정

Switch2# configure terminal
Switch2(config)# interface fastethernet 0/24
Switch2(config-if)# switchport mode trunk
Switch2(config-if)# end
Switch2# show interfaces trunk

다음 조건에 맞도록 설정하세요.

조건.

  1. 스위치의 포트 fa0/1, fa0/2, fa0/11, fa0/12에 각각 PC 4대를 연결하세요.
  2. VLAN을 2개 추가하고 각각 VLAN ID를 10과 20으로 지정하세요.
  3. VLAN 10에 fa0/1~fa0/10, VLAN 20에 fa0/11~fa0/20를 추가하세요.
  4. PC에 192.168.0.1 ~ 4까지 IP를 설정하고 각각 ping 테스트를 해보세요.

그림. 스위치와 PC 연결

그림. 스위치와 PC 연결


풀이

VLAN 설정

Switch> enable
Switch# configure terminal
Switch(config)# vlan 10
Switch(config)# name TEST1
Switch(config-vlan)# vlan 20
Switch(config-vlan)# name TEST2
Switch(config-vlan)# end
Switch# show vlan brief

인터페이스 vlan에 추가하기

Switch# configure terminal
Switch(config)# interface range fastethernet 0/1-10
Switch(config-range)# switchport mode access
Switch(config-range)# switchport access vlan 10
Switch(config-range)# interface range fastethernet 0/11-20
Switch(config-range)# switchport mode access
Switch(config-range)# switchport access vlan 20
Switch(config-range)# end
Switch# show vlan brief

설정저장

Switch# copy running-config startup-config

가상랜(VLAN) 설정하기

2009. 5. 6. 03:19

가상랜(VLAN) 설정하기

강의는 재미와 유익을 주어야 한다는 생각을 가지고 "재미있으면서 유익한" 글을 써보려는 시도로 작성해 본 글입니다. 이 글을 읽고 있는 여러분께 조금이라도 도움이 되었다면 질문이나 오타나 오류를 발견했을 때 서슴없이 댓글을 달아 알려주세요.

VLAN의 개념

스위치의 모든 인터페이스는 동일 브로드캐스트 도메인에 포함되어 있으나 VLAN을 적용할 경우 스위치의 일부 인터페이스를 하나의 브로드캐스트 도메인으로 구성하고, 다른 인터페이스를 또다른 브로드캐스트 도메인으로 구성하여 여러 개의 브로드캐스트 도메인을 만들 수 있다. 이렇게 스위치에 의해 만들어진 브로드캐스트 도메인을 VLAN이라고 한다.

VLAN을 사용하는 일반적 이유

  • 사용자를 물리적인 위치 대신 작업 그룹별로 묶는 유연한 설계를 제공한다.
  • 더 작은 LAN(브로드캐스트 도메인)으로 분리해 VLAN의 각 호스트에서 일어나는 오버헤드를 줄인다.
  • VLAN을 하나의 액세스 스위치로 제한함으로써 STP에 대한 작업 부담을 줄인다.
  • 별도의 VLAN으로 나누어 중요한 데이터를 처리하는 호스트를 분리하여 보안을 강화한다.
  • IP 전화기의 트래픽과 PC의 트래픽을 분리한다.

트렁킹

여러 대의 스위치가 서로 연결되어 있는 네트워크에서 VLAN을 사용할 때 스위치는 서로 VLAN 정보를 주고 받아야 하며, 스위치간 연결된 포트간 세크먼트를 VLAN 트렁킹(VLAN trunking)을 사용하여 해결한다. VLAN 트렁킹이 만들어지면 스위치는 VLAN 태깅(VLAN tagging)이라는 과정을 이용한다. VLAN 태깅 과정에서 스위치는 VLAN ID 필드를 이용하여 VLAN 정보를 교환한다.

ISL(Inter-Switch Link)

시스코 전용 트렁킹 프로토콜이다. 원래의 이더넷 프레임을 캡슐화하기 때문에 원래의 이더넷 프레임은 변경하지 않은 채로 그대로 남는다.

IEEE 802.1Q

IEEE에서 만든 트렁킹 프로토콜로 원래의 프레임 이더넷 헤더에 4byte의 VLAN 헤더를 추가한다. 캡슐화되는 ISL과 달리 프레임에는 원래의 출발지 및 목적지 MAC 주소가 그대로 들어있다.

가상랜(VLAN)을 설정해보자.

앞서 배운대로 가상랜(VLAN)은 하나의 스위치에 가상으로 별개의 스위치가 여러 개 있는 것과 같은 효과를 주는 기능입니다. 그럼 왜 스위치를 가상으로 여러 조각으로 나눠야할까요? 그건 바로 브로드캐스팅이라고 하는 녀석 때문입니다. 스위치는 충돌 도메인(colision domain)을 막아서 스위치 포트로 프레임 데이터가 홍수처럼 흘러넘치는 것을 막아줍니다.

가상랜 만들기
VLAN ID 10을 만들고 MARKETING이란 이름을 붙인다.

Switch# configure termianl
Switch(config)# vlan 10
Switch(config-vlan)# name MARKETING
Switch(config-vlan)# end
Switch# show vlan brief

만들어진 VLAN ID 10에 스위치 포트 1/0을 access 모드로 설정하여 포함시킨다.

Switch# configure terminal
Switch(config)# interface fastethernet 0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# end
Switch# show vlan brief

트렁킹(Trunking) : 스위치와 스위치 사이에서 여러 개의 VLAN 전달하기

만일 트렁킹이 지원되지 않는다면 스위치에 만들어진 VLAN의 갯 수만큼 스위치끼리 링크가 필요할 것입니다. 하지만 트렁킹을 통해 여러 VLAN이 전달되어 스위치의 포트를 아낄 수 있도록 합니다. 트렁킹 프로토콜은 각 프레임 마다 ID를 붙여서 각 VLAN을 구분합니다. VLAN을 만들 때 VLAN ID를 사용했던 것이 기억나죠? 이 VLAN ID가 바로 트렁킹 프로토콜에서 VLAN을 구분하는 용도로 사용되는 겁니다. 이렇게 VLAN에 ID를 붙여서 구분하는 방법을 프레임 태깅(Frame Tagging)이라고 합니다. 이더넷에서 사용하는 가장 대표적인 프레임 태깅 기술은 다음과 같습니다.

  • ISL(Inter-switch link) - 시스코 전용 트렁킹 프로토콜. 카탈리스트 1700과 같이 예전 스위치 모델에서만 지원합니다.
  • IEEE 802.1Q - IEEE 표준 트렁킹 프로토콜. 대부분의 카탈리스트 스위치 모델에서 지원합니다.

트렁크 포트 설정하기

Switch(config)# interface fastethernet 0/24
Switch(config-if)# switchport mode trunk
Switch(config-if)# end
Switch# show interfaces trunk

DTP(Dynamic Trunk Protocol) : 트렁크 자동 협상하기

시스코 스위치는 ISL이나 802.1Q 중에서 어떤 트렁킹을 사용할 것인지 직접 설정할 수 있습니다. 기본적으로 스위치는 DTP를 사용해 트렁크의 다른 쪽에 있는 스위치와 협상해서 어떤 종류의 트렁킹을 사용할 것인지를 결정합니다. 인터페이스에 특정 트렁킹을 지원하기 위해 switchport trunk encapsulation {dot1q | isl | negotiate} 인터페이스 하위 명령을 사용합니다. 하지만 2960을 포함하여 최근에 나온 시스코 스위치는 IEEE 802.1Q 트렁킹만을 지원하므로 트렁킹은 무조건 switchport trunk encapsulation dot1q 입니다.

그리고 관리 모드의 설정 값은 인터페이스에서 트렁킹의 사용 여부를 나타내며 인터페이스의 관리 모드(administrative mode)를 사용해 트렁킹의 사용 여부를 결정합니다. switchport mode 인터페이스 하위 명령으로 설정합니다.

표. switchport mode 명령어의 트렁크 설정
인터페이스 하위 명령어 옵션 명령 설명
access 트렁킹 사용을 막고, 포트가 항상 access 포트로 사용되게 한다.
trunk 항상 트렁킹 포트로 사용한다.
dynamic desirable 협상 메시지를 보내고 응답하며, 협상을 통해 트렁킹 사용 여부를 동적으로 선택한다. 만약 이웃 포트가 trunk, desirable, auto 모드로 설정되어 있다면 트렁크 포트로 설정된다. access일 경우 액세스 포트로 설정된다.
dynamic auto 트렁크 협상 메시지를 수신하며, 협상 메시지에 반응해 트렁킹의 사용 여부를 선택한다. 만약 이웃 포트가 trunk, desirable 모드라면 트렁크 포트로 설정된다. 패스트와 기가비트 이더넷 포트에서 디폴트 모드이다. access나 auto일 경우 액세스 포트로 설정된다.

RSTP(Rapid Spanning Tree Protocol) IEEE 802.1w

RSTP는 네트워크 토폴로지가 변화할 때, STP가 30초 또는 50초정도 걸리는 스패닝 트리의 컨버전스 타입(수렴 시간)을 빠르게 하기 위해 설계되었다. RSTP는 대체(Aternative) 포트와 백업(Backup) 포트의 역할을 추가하고 폐기(discarding), 학습(Learning), 전송(Forwarding)으로 포트 상태를 정의한다.

RSTP가 루트 브리치를 선택하고, 루트 포트와 지정 포트를 결정하는 방식은 STP와 동일하다. 즉 BID가 낮은 스위치가 루트 브리치가 되고, 포트 역할을 결정할 때 BPDU내의 루트 브리지 BID, 경로 비용(path cost), 브리지의 BID, 포트 ID를 차례로 비교하여 가장 낮은 값을 갖는 포트가 루트(root) 포트와 지정(designated) 포트로 선택된다.

RSTP 링크의 종류

  • 에지 방식(Edge)
  • 점대점 방식(Point-to-point)
  • 링크 공유 방식(Shared Link)

그림1. RSTP 포트의 종류

그림1. RSTP 포트의 종류

① 에지 링크(edge link)는 PC나 서버 등 BPDU를 발생시키지 않는 종단 장치(end system)가 접속된 포트를 말한다. 카탈리스크 스위치에서는 포트 패스트(portfast)를 설정해야만 에지 링크로 동작한다. 해당 포트에 포트 패스트를 설정하지 않을 경우 종단 장치의 동작 상태에 따라 공유(shared)나 점대점(point-to-point)로 동작한다.

② 포트 패스트가 설정되지 않은 포트에 연결된 PC는 공유 링크로 동작한다.

② 점대점 링크(point-to-point link)는 전이중 방식(full duplex)으로 동작하는 링크이다.

③ STP로 동작하면서 전이중 링크는 점대점 피어(point-to-point peer)로 동작한다.

④ RSTP로 동작하는 스위치는 점대점 링크로 동작한다.

⑤ 공유 링크(shared link)는 반이중 방식(half duplex)로 동작하는 링크이다. 만약 RSTP가 동작하는 스위치가 반이중 방식으로 설정되어 있다면 공유 링크라도 spanning-tree link-type 명령을 사용하여 점대점 링크로 바꿀 수 있다. 이는 RSTP가 에지 링크나 점대점 링크에서만 수렴시간을 줄이기 때문에 스위치와 스위치 사이에 허브가 연결되어 있을 경우 유용하게 사용할 수 있다. 하지만 최근의 네트워크에서는 허브를 사용하지 않기 때문에 실제로 문제가 되지 않는다.

Switch3# configure terminal
Switch3(config)# spanning-tree mode papid-pvst

Switch2# cofigure terminal
Switch2(config)# spanning-tree mode rapid-pvst
Switch2(config)# interface fastethernet 0/1
Switch2(config-if)# spanning-tree portpast
Switch2(config-if)# ^Z
Switch2# show spanning-tree vlan 1

Switch#show spanning-tree interface fastEthernet 0/1 portfast
VLAN0001 enabled
Switch2#show spanning-tree vlan 1
VLAN0001
  Spanning tree enabled protocol rstp
  Root ID    Priority 32769
             Address 0004.9ADA.34D9
             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 0004.9ADA.34D9
             Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
             Aging Time 20

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- ----------------------------
Fa0/1            Desg FWD 19        128.1    Edge Shr
Fa0/2            Desg FWD 19        128.2    Shr
Fa0/3            Desg FWD 19        128.3    P2p Peer(STP)
Fa0/4            Desg FWD 19        128.4    Shr
Fa0/5            Desg FWD 19        128.5    P2p

Switch2#

그림2. RSTP 포트 종류 실습

그림2. RSTP 포트 종류 실습

※ Cisco Packet Tracer 5.1로 테스트해본 결과 위의 결과와는 다른 출력을 보여주는데, 포트 타입은 STP 형식으로 출력되며 포트 패스트가 지정된 포트도 P2p로 표시됩니다. 시뮬의 한계인가 봅니다.^^; 기회가 되는대로 dynamips에서도 테스트해서 올리도록 하겠습니다.

Switch#show spanning-tree interface fastEthernet 0/1 portfast
VLAN0001 enabled
Switch2#show spanning-tree vlan 1
VLAN0001
  Spanning tree enabled protocol rstp
  Root ID    Priority 32769
             Address 0004.9ADA.34D9
             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 0004.9ADA.34D9
             Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
             Aging Time 20

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- ----------------------------
Fa0/1            Desg FWD 19        128.1    P2p
Fa0/2            Desg FWD 19        128.2    P2p
Fa0/3            Desg FWD 19        128.3    P2p
Fa0/4            Desg FWD 19        128.4    Shr
Fa0/5            Desg FWD 19        128.5    P2p

Switch2#

RSTP의 포트 상태

RSTP는 포트의 상태를 차단(discarding), 학습(learning), 전송(forwarding) 상태로 구분한다. 데이터 프레임의 스위칭은 전송 상태에서 가능해진다.

표. RSTP와 STP의 포트 상태 비교
STP(802.1d) RSTP(802.1w) BPDU 수신 BPDU 송신 MAC 주소 학습 데이터 프레임 전달
차단(Blocking) 포기(Discarding) 가능. 송신 못함. 학습 안됨. 전달 안됨.
청취(Listening) 포기(Discarding) 가능. 송신 못함.(*) 학습 안됨. 전달 안됨.
학습(Learning) 학습(Learning) 가능. 가능. 학습 가능. 전달 안됨.
전송(Forwarding) 전송(Forwarding) 가능. 가능. 학습 가능. 전달 가능.
비활성(Disabled) 포기(Discarding) 수신 못함. 송신 못함. 학습 안됨. 전달 안됨.

(*) STP는 청취 상태부터 BPDU 송신 가능.

RSTP의 포트 역할

RSTP의 포트 역할은 루트 포트(RP; Root Port), 지정 포트(DP; Designated Port), 대체 포트(AP; Alternate Port), 백업 포트(BP; Backup Port), 비활성 포트(Disabled Port)로 구분한다.

표. RSTP와 STP의 포트 역할 비교
RSTP STP 설명
루트 포트(RP) 루트 포트(RP) STP의 루트 포트와 동일하다. 특정 스위치에서 루트 브리지 방향으로 데이터 프레임이 전송되는 유일한 포트이다. 루트 스위치가 아닌 스위치를 대상으로 한 개의 루트 포트가 선택되며 스위치는 이 포트를 통해서 수신된 모든 BPDU 중에서 최상의 BPDU를 청취한다.
지정 포트(DP) 지정 포트(DP) STP의 지정 포트와 동일하다. 특정 세그먼트에서 루트 브리치 방향으로 데이터 프레임이 전송되는 유일한 포트이다. 최상의 BPDU를 광고하는 포트이다.
대체 포트(AP) - 차선의 BPDU를 광고하는 포트로 루트 포트가 다운되면 그 역할을 이어받는 포트이다. 대체 포트는 RSTP에서 비활성 포트이므로 차단 상태에 있다.
백업 포트(BP) - DP가 아닌 포트 중에서 동일한 세그먼트에 연결되어 있는 또 다른 포트다. 지정 포트가 다운되면 그 역할을 이어받는다. 백업 포트는 허브와 복수 개의 링크로 접속할 때 생긴다. 비활성 포트이므로 차단 상태에 있다.
비활성(disabled) 비활성(disabled) 관리자에 의해 다운되거나 다른 이유로 작동 불가능 상태인 포트다.

RSTP 컨버전스(수렴)

그림3. RSTP 포트 역할

그림3. RSTP 포트 역할

그림4. RSTP 포트 역할 실습

그림4. RSTP 포트 역할 실습

참고자료
Easy & Complete LAN 스위칭
Cisco Networking Academy Program CCNA 3 and 4 Companion Guide
CCNA ICND2 Official Exam Ceritification Guide

STP(Spanning Tree Protocol) IEEE 802.1d

토폴로지 이중화

대체 토폴로지

스위치간 이중 경로를 구성하여 네트워크 장애가 발생하였을 경우 대체 경로를 이용하여 네트워크 장애를 대비하는 것이다.

대체 스위치드 토폴로지

여분의 스위치로 이중 경로를 구성하여 스위치 고장에 의한 네트워크 장애를 대비하는 것이다.

브로트캐스트 폭풍(Broadcast Storm)

브로드캐스트와 멀티캐스트에 의해 루프를 따라 트래픽을 복사하여 스위치의 장애를 유발시켜서 네트워크가 다운되거나 극단적으로 느려지는 현상이다.

다중 프레임 전송

유니캐스트 전송시 복수의 경로를 통해 프레임의 사본이 수신되는 현상이다.

불안정한 MAC 데이터베이스

스위치가 복수의 경로로 인해 잘못된 포트에 일치하지 않는 MAC 주소를 학습하는 현상이다.

스패닝 트리

스패닝 트리 알고리즘

  1. STP는 루트 브리지를 선출한다. 루트 브리지는 가장 낮은 BID를 갖는 브리지가 된다. STP는 루트 브리지에서 사용 중인 모든 인터페이스를 지정 포트(DP; Designated Port)가 되고 전달(forward) 상태로 둔다.
  2. 비 루트 브리지를 대상으로 루트 포트(RP; Root Port)가 된다. 루트 포트는 각 브리지와 루트 브리지 사이에 최소 관리 비용이 부여된 인터페이스이며 전달 상태로 둔다.
  3. 이더넷 세그먼트 당 하나의 지정 포트가 되며, 지정 포트는 가장 작은 루트 도달 비용을 갖는 인터페이스로 브리지 사이에 전달되는 BPDU의 필드 값 중 루트 도달 비용을 보고 결정한다.
  4. 루트 포트도 아니고 지정 포트도 아닌 포트는 차단(block)된다.

STP Bridge ID와 Hello BPDU

스패닝 트리 알고리즘은 가장 먼저 루트 브리지를 선출한다. 루트 브리지를 선출하기 위해 각 브리지는 8byte 길이의 브리지ID(BID; Bridge ID)를 가지며 BID는 2byte 길이의 우선 순위 필드(priority)와 6byte 길이의 시스템 ID 필드로 구성되어 있다. 우선 순위는 0 ~ 65535사이에서 4096의 배수 값을 가질 수 있으며, 기본값은 32768이다. 시스템 ID는 각 브리지의 MAC 주소를 기반으로 한다.

STP는 BPDU(Bridge Protocol Data Unit)이라는 메시지를 정의하며, 브리지는 서로 BPDU를 사용하여 정보를 교환한다. 그중 Hello BPDU는 송신 브리지의 BID와 현재 루트 브리지의 BID 등 정보를 보여준다.

표2. STP Hello BPDU의 주요 필드
필드 설명
루트 브리지의 BID 현재 Hello BPDU 송신 브리지가 루트 브리지라고 믿는 브리의 BID
송신 브리지의 BID Hello BPDU를 전송하는 브리지의 BID
루트 도달 비용 현재 브리지와 루트 브리지 사이의 STP 경로 비용(Path cost)
루트 브리지의 타이머 값들 Hello Timer(디폴트 2초), Max Age Timer(디폴트 20초), Forward Delay Timer(디폴트 15초)

경로 비용

포트의 속도별로 지정된 값을 말한다.

표. Path Cost
속도/대역폭(bandwidth) 경로 비용 (Path cost)
10Mbps (Ethernet) 100
100Mbps (FastEhernet) 19
1Gbps (GigabitEthernet) 4
10Gbps (10GigabitEthernet) 2

포트 ID

BPDU를 전송하는 스위치의 포트 우선순위와 포트 번호로 구성되어 있다. 포트 우선 순위의 기본값은 128이고 포트 번호가 붙어서 128.25와 같은 형식으로 표시된다.

스패닝 트리 만들기

루트 브리지 선출

브리지는 BPDU의 BID를 기반으로 루트 브리지를 선출한다. BID의 값이 가장 낮은 브리지가 루트 브리지가 된다. 대개 우선 순위 필드는 32768로 동일하며 브리지의 MAC 주소로 결정되는데 필요에 의해 우선 순위 값을 변경함으로써 루트 브리지의 선출에 영향을 줄 수 있다. 보통 스패닝 트리의 루트 브리지에 대부분의 트래픽이 전달되므로 좀 더 고성능의 스위치가 루트 브리지로 선출되록 하기 위함이다.

루트 브리치의 선출은 모든 스위치가 Hello BPDU를 보내어 가장 낮은 BID를 갖는 스위치를 루트 브리치로 선출하고 비 루트 브리치들은 루트 브리치의 BID와 루트 경로 비용, 자신의 BID를 알린다.

각 스위치의 루트 포트(RP; Root Port) 선택

각 스위치는 포트 별로 루트 스위치에 도달하기 위한 경로 비용을 계산하여 가자 낮은 비용의 포트를 루트 포트로 선택한다. 경로 비용의 계산을 위해 수신한 Hello BPDU의 Path cost에 수신한 포트의 경로 비용을 더한다.

각 LAN 세그먼트에서 지정 포트 선택(DP; Designated Port) 선택

LAN 세그먼트에서 가장 낮는 경로 비용을 Hello BPDU에 담아 광고하는 포트가 지정 포트로 선택된다. Hello BPDU에는 송신한 스위치의 경로 비용이 담겨 있으며 세그먼트 내의 스위치 포트들은 경로 비용을 서로 비교한다.

차단 포트 선택

루트 포트나 지정 포트로 선택받지 못한 나머지 포트들은 차단(Blocking) 상태가 된다.

STP 포트의 상태 변화

비활성(Disabled)

스위치가 꺼져 있거나, 관리자가 shutdown 시킨 상태.

차단 상태(Blocking)

데이터 프레임 송수신 없음. BPDU 수신. 상대측 스위치로부터 Max Age동안 BPDU를 수신하지 못하거나 상대측 스위치로부터 열등 BPDU(기존 루트 브리지의 BID보다의 BID보다 높은 루트 브리지의 BID를 포함한 BPDU)를 수신할 경우 청취 상태로 변경된다.

청취 상태(Listening)

루프 발생을 방지하기 위해 BPDU 전송. 데이터 프레임 송수신 없음. 상대측 포트로부터 전송 지연 시간(기본 15초)동안 BPDU를 수신하지 못하거나 열등 BPDU를 수신하면 학습 상태로 변경된다.

학습 상태(Learning)

데이터 프레임 송수신 없음. MAC 주소 학습 개시. 전송 지연 시간내에 상대 포트로부터 BPDU 수신 받지 못하거나 열등 BPDU를 수신하는 경우 전송 상태가 된다.

전송 상태(Forwarding)

데이터 프레임 송수신. MAC 주소 학습.

BPDU와 토폴로지 변화

BPDU는 설정(configuration) BPDU와 TCN(Topology Change Notification) BPDU 두 종류가 있다. 스위치는 설정 BPDU를 이용하여 루트 브리치를 선출하고, 스위치 포트의 역할을 지정한다. 설정 BPDU는 항상 루트 브리치가 만들며, 다른 스위치들은 이 설정 BPDU를 다음 스위치에게 중계한다. 설정 BPDU는 Hello BPDU라고도 한다. 랜 토플로지에 변화가 발생하면 이것을 감지한 스위치는 TCN BPDU를 루트 포트를 통해 인접 스위치에게 전송하고 TCN BPDU를 수신한 스위치는 Flag 필드의 값을 TCA(Topology Change Acknowledgement)로 변경하여 TCN BPDU를 송신한 스위치에게 설정 BPDU를 전송하여 TCN BPDU 수신 확인을 알린다. 그리고 역시 루트 포트로 인접 스위치에게 TCN BPDU를 전송한다. 이렇게 전송된 TCN BPDU는 최종적으로 루트 브리치에게 전송되고, 루트 브리지는 설정 BPDU의 Flag 필드를 TC(Topology Change)로 변경하여 지정 포트를 통하여 변화를 알린다. 설정 BPDU를 수신한 스위치는 자신의 MAC 주소 테이블에 있는 MAC 주소를 삭제하고 다시 지정 포트를 통하여 TC가 설정된 설정 BPDU를 전송한다. 결과적으로 변경된 토폴로지에 따라 MAC 주소 테이블이 다시 만들어지게 된다.

표1. 설정 BPDU의 필드 및 내용
필드

크기
(byte)

내용
Protocol ID 2 항상 0값을 가짐.
Version 1 BPDU의 버전. STP: 0, RSTP: 2, MST: 3
Type 1 BPDU의 종류. 기본값 0x00: 설정 BPDU
Flag 1 토플로지 변화 표시. 0x01: TC, 0x80: TCA
Root Bridge ID 8 루트 스위치의 BID.
Path cost 4 루트 스위치까지의 경로 값.
Bridge ID 8 루트 스위치로 가는 경로상 직전 스위치의 BID.
Port ID 2 포트 ID.
Message Age 2 루트 스위치가 현 BPDU를 만들고 경과된 시간.
Max Age 2 BPDU 정보의 유효 시간. 디폴트 20초.
Hello time 2 BPDU 전송 주기. 디폴트 2초.
Forward Delay 2 Listening(정취) 상태와 Learning(학습) 상태 유지 시간. 디폴트 15초.

표3. TCN BPDU 필드 및 내용
필드 크기
(byte)
내용
Protocol ID 2 항상 0값을 가짐.
Version 1 BPDU의 버전. STP: 0, RSTP: 2, MST: 3
Type 1 BPDU의 종류. 기본값 0x80: TCN BPDU

컨버전스(수렴) 시간 조정

일반적으로 스위치를 켜면 포트가 전송 상태가 되기까지 청취 상태와 학습 상태를 거치므로 30초가량의 수렴시간이 요구된다. 또한 복수의 경로 존재시 한 경로가 다운되면 STP에 의해 복구되기까지 차단 상태, 청취 상태, 학습 상태를 거치쳐서 전송 상태가 되므로 50초 가량의 수렴시간이 필요하게 된다. 이렇게 비교적 장시간이 요구되는 수렴 시간을 줄이기 위해 시스코에서는 포트 패스트(portfast), 업링크 패스트(uplinkfast), 백본 패스트(backbonefast)라는 기술을 제공한다. 그리고 컨버전스 시간에 영향을 미치는 Hello time, Max Age, 전송 지영 시간을 직접 조정하는 방법이 있다. IEEE 표준은 RSTP(Rapid STP)와 MSTP(Multiple STP)를 제공하여 컨버젼스 시간을 획기적으로 단축할 수 있다.

포트 패스트

PC 등과 같이 스위칭을 하지 않는 종단 장비와 연결된 포트는 스위치 부팅시 바로 전송 모드로 지정하는 방법이다. 글로벌 설정 모드에서 spanning-tree portfast default 명령을 사용하거나 인터페이스 설정 모드에서 개별 인터페이스 별로 spanning-tree portfast 명령을 사용한다.

업링크 패스트

직접 연결된 링크의 장애 발생시 차단 상태에 있는 포트를 바로 전송 상태로 변경시키는 방법이다. 글로벌 설정 모드에서 spanning-tree uplinkfast 명령을 사용한다.

백본 패스트

직전 연결되지 않는 간접 링크의 다운시 차단 상태를 Max Age(기본 20초)를 생략하고 바로 청취 상태로 변경시킨다. 모든 스위치에 대해 글로벌 설정 모드에서 spanning-tree backbonefast 명령을 사용한다.

+ Recent posts