Switch
## Switch
# Hub
-Layer 1의 대표장비
-자신이 포함된 동일 네트워크에 존재하는 장비와 통신시 사용되는 장비
-전기적인 신호를 사용하여 데이터를 Forwarding실시 (전기적인 신호를 증폭하는 장비)
-Collision Domain을 공유하는 장비이다.
# Switch
-Layer 2의 대표장비
-자신이 포함된 동일 네트워크에 존재하는 장비와 통신시 사용되는 장비
-Ethernet Header에 포함된 Mac-address를 사용하여 통신을 실시 (16진수 , 48bit : HH-HH-HH-HH-HH-HH)
-Switch는 데이터가 입려되면 Layer2 Header(Ethernet Header)의
목적지 Mac-address를 근거로 Mac-address Table을 참조하여 Forwarding실시
-Collision Domain을 분할하며 Broadcast Domaind을 공유하는 장비이다.
-Cisco IOS에 의존하는 하드웨어 기반 장비
# Router
-Layer 3의 대표장비
-자신이 포함되지 않은 다른 네트워크로 통신시 사용되는 장비
-IP Header에 포함된 IP Address를 사용하여 데이터를 전송 (10진수 , 32bit)
-Router는 데이터가 입려되면 Layer3 Header (IP Header)의 목적지 IP 주소를 근거로 Routing Table을 참조하여 Forwarding실시
-Broadcast Domain을 분할하는 장비
-Cisco IOS에 의존하는 소프트웨어 기반 장비
=========================================================================================================================
## Switch의 동작원리
-Unknown Unicast Frame
-Unknown Multicast Frame (Multicast Frame)
-Broadcast Frame에 대해서 Flooding을 실시
.Learning
.Flooding
.Filtering
.Forwarding
======================================================================================================================
## VLAN (Virtual-LAN)
-Switch는 Collision Domain을 분할하지만 Broadcast Domain을 공유한다.
-문제 : Host가 증가할수록 Broadcast Traffic도 함께증가.
-이유 : 해당 Switch의 모든 Port는 하나의 VLAN에 포함되어진다. (Default VLAN : VLAN 1)
-해결 : VLAN을 사용하여 물리적인 분할이 아닌 논리적으로 네트워크를 분할할수있다.
-장점 : Broadcast Traffic을 분할하여 효율적인 LAN을 구성하여 통신이 가능하며
위치적 , 물리적으로 제한없이 연결이 가능하다.
-VLAN은 12bit로 구성된다 (0 ~ 4095)
.0 , 4095는 System에서 사용되도록 예약되어져있기때문에 사용가능한 VLAN은 1~4094까지이다.
-VLAN은 용도에따라서 Standard VLAN과 Extended VLAN으로 사용이 가능
.Standard VLAN : 1~1005 (1 , 1002 , 1003 , 1004 , 1005은 예약된 VLAN)
.Extended VLAN : 1006 ~ 4094
.CISCO Switch는 Standard VLAN을 기본적으로 지원하며
Extended VLAN은 장비 시리즈나 IOS에 따라서 장비에따라서 지원 유/무가 다르다.
======================================================================================================================
## VLAN 생성
EX1) SW1에 VLAN 10을 생성하시오
SW1(config)# vlan 10
정보확인
SW1#show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- ------------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5, Fa0/6, Fa0/7, Fa0/8
10 VLAN0010 active <--- VLAN 10 생성확인
EX2) SW1에 VLAN 10,20,30을 생성하시오
SW1(config)# vlan 10,20,30
정보확인
SW1# show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -----------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5, Fa0/6, Fa0/7, Fa0/8
10 VLAN0010 active <--- VLAN 10 생성확인
20 VLAN0020 active <--- VLAN 20 생성확인
30 VLAN0030 active <--- VLAN 30 생성확인
EX3) SW1에 VLAN 10~30을 생성하시오
SW1(config)# vlan 10-30
정보확인
SW1# show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -----------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5, Fa0/6, Fa0/7, Fa0/8
10 VLAN0010 active <--- VLAN 10 생성확인
11 VLAN0011 active <--- VLAN 11 생성확인
.................................
.................................
29 VLAN0029 active <--- VLAN 29 생성확인
30 VLAN0030 active <--- VLAN 30 생성확인
EX4) 아래의 조건에 맞게 설정을 실시하시오
.VLAN 10 , 20 , 30을 생성하시오
.VLAN 10의 Name을 VLAN_A로 설정하시오
.VLAN 20의 Name을 VLAN_B로 설정하시오
.VLAN 30의 Name을 VLAN_C로 설정하시오
SW1(config)# vlan 10
SW1(config-vlan)# name VLAN_A
!
SW1(config)# vlan 20
SW1(config-vlan)# name VLAN_B
!
SW1(config)# vlan 30
SW1(config-vlan)# name VLAN_C
!
정보확인
SW1# show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -----------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5, Fa0/6, Fa0/7, Fa0/8
10 VALN_A active
20 VLAN_B active
30 VLAN_C active
======================================================================================================================
# Switchport
-Access Mode
.하나의 Switchport로 하나의 VLAN을 사용하여 통신
.PC , Server와 같은 단말 장비 , VLAN을 지원하지 않는 장비가 연결되는 Port
-Trunk Mode
.하나의 Switchport로 다수의 VLAN을 사용하여 통신
.Switch , IP Phone과 같은 VLAN을 지원하는 장비가 연결되는 Port
======================================================================================================================
## Switchport에 VLAN할당
EX1) 아래의 조건에 맞게 설정을 실시하시오
.VLAN 10,20을 생성하시오
.FastEthernet 0/1을 VLAN 10에 할당하시오
.FastEthernet 0/2를 VLAN 20에 할당하시오
SW1(config)# vlan 10
SW1(config)# vlan 20
!
SW1(config)# interface fastethernet 0/1
SW1(config-if)# switchport mode access
SW1(config-if)# switchport access vlan 10
!
SW1(config)# interface fastethernet 0/2
SW1(config-if)# switchport mode access
SW1(config-if)# switchport access vlan 20
!
정보확인
SW1# show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/3, Fa0/4, Fa0/5, Fa0/6
Fa0/7, Fa0/8, Fa0/9, Fa0/10
Fa0/11, Fa0/12, Fa0/13, Fa0/14
Fa0/15, Fa0/16, Fa0/17, Fa0/18
Fa0/19, Fa0/20, Fa0/21, Fa0/22
Fa0/23, Fa0/24
10 VLAN0010 active Fa0/1
20 VLAN0020 active Fa0/2
======================================================================================================================
## 'Range' Command
-동일한 설정을 다수의 Interface에 반복적으로 설정하는경우
'Range'command를 사용하여 동시에 다수의 Interface에 접속하여 설정하는 기능
EX1) 아래의 조건에 맞게 설정을 실시하시오
.VLAN 10 : Fa 0/1 , Fa 0/2 , Fa 0/3 , Fa 0/4 , Fa 0/5
.VLAN 20 : Fa 0/6 , Fa 0/7 , Fa 0/8 , Fa 0/9 , Fa 0/10
SW(config)# vlan 10
SW(config)# vlan 20
!
SW(config)# interface range fa0/1 - 5
SW(config-if)# switchport mode access
SW(config-if)# switchport access vlan 10
!
SW(config)# interface range fa0/6 - 10
SW(config-if)# switchport mode access
SW(config-if)# switchport access vlan 20
!
정보확인
SW# show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- --------------
1 default active Fa0/11, Fa0/12, Fa0/13, Fa0/14
Fa0/15, Fa0/16, Fa0/17, Fa0/18
Fa0/19, Fa0/20, Fa0/21, Fa0/22
Fa0/23, Fa0/24
10 VLAN0010 active Fa0/1, Fa0/2, Fa0/3, Fa0/4, Fa0/5
20 VLAN0020 active Fa0/6, Fa0/7, Fa0/8, Fa0/9, Fa0/10
EX2) 아래의 조건에 맞게 설정을 실시하시오
.VLAN 30 : Fa 0/1 , Fa 0/3 , Fa 0/5 , Fa 0/7
.VLAN 40 : Fa 0/2 , Fa 0/4 , Fa 0/6 , Fa 0/8
SW(config)# vlan 30
SW(config)# vlan 40
!
SW(config)# interface range fa0/1 , fa0/3 , fa0/5 , fa0/7
SW(config-if)# switchport mode access
SW(config-if)# switchport access vlan 30
!
SW(config)# interface range fa0/2 , fa0/4 , fa0/6 , fa0/8
SW(config-if)# switchport mode access
SW(config-if)# switchport access vlan 40
!
정보확인
SW# show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- ------------
1 default active Fa0/9, Fa0/10, Fa0/11, Fa0/12
Fa0/13, Fa0/14, Fa0/15, Fa0/16
Fa0/17, Fa0/18, Fa0/19, Fa0/20
Fa0/21, Fa0/22, Fa0/23, Fa0/24
30 VLAN0030 active Fa0/1, Fa0/3, Fa0/5, Fa0/7
40 VLAN0040 active Fa0/2, Fa0/4, Fa0/6, Fa0/8
EX3) 아래의 조건에 맞게 설정을 실시하시오
.VLAN 50 = Fa 0/1 , Fa 0/2 , Fa 0/3 , Fa 0/4 , Fa 0/9 , Fa 0/10 , Fa 0/11 , Fa 0/12
.VLAN 60 = Fa 0/5 , Fa 0/6 , Fa 0/7 , Fa 0/8 , Fa 0/13 , Fa 0/14 , Fa 0/15 , Fa 0/16
SW(config)# vlan 50
SW(config)# vlan 60
!
SW(config)# interface range fa0/1 - 4 , fa0/9 - 12
SW(config-if)# switchport mode access
SW(config-if)# switchport access vlan 50
!
SW(config)# interface range fa0/5 - 8 , fa0/13 - 16
SW(config-if)# switchport mode access
SW(config-if)# switchport access vlan 60
!
정보확인
SW#sh vlan br
VLAN Name Status Ports
---- -------------------------------- --------- -------------
1 default active Fa0/17, Fa0/18, Fa0/19, Fa0/20
Fa0/21, Fa0/22, Fa0/23, Fa0/24
50 VLAN0050 active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/9, Fa0/10, Fa0/11, Fa0/12
60 VLAN0060 active Fa0/5, Fa0/6, Fa0/7, Fa0/8
Fa0/13, Fa0/14, Fa0/15, Fa0/16
======================================================================================================================
## Switchport Mode
-Access Mode
.하나의 Port로 하나의 VLAN을 사용하여 통신하는 Mode
.PC , Server와 같은 단말장비 , VLAN을 지원하지 않는 장비가 연결되는 Port이다.
-Trunk Mode
.하나의 Port로 다수의 VLAN을 사용하여 통신하는 Mode
.Switch , IP Phone과 같은 VLAN을 지원하는 장비가 연결되는 Port이다.
-Dynamic Mode : DTP(Dynamic Trunking Protocol) Message를 사용하여 Switch간 협상에의해 Trunk연결
.desirable : DTP Message를 송/수신을 실시하는 Mode이다.
.auto : DTP Message를 송신은 실시하지 않으며 수신만 실시하는 Mode
======================================================================================================================
## Trunk
-Switch와 Switch간 연결시 Access mode를 사용하게되면 사용하는 VLAN수만큼의
Link를 연결하여 사용해야하기때문에 비 효율적인 연결을 하게된다
하지만 Trunk Mode를 사용하여 연결하게되면 하나의 Link를 사용하여 다수의 VLAN을 사용한 통신이 가능하다.
## Trunk
-Switch와 Switch간 연결시 Access mode를 사용하게되면 사용하는 VLAN수만큼의
Link를 연결하여 사용해야하기때문에 비 효율적인 연결을 하게된다
하지만 Trunk Mode를 사용하여 연결하게되면 하나의 Link를 사용하여 다수의 VLAN을 사용한 통신이 가능하다.
-Trunk는 구성 방식에따라 IEEE.802.1Q와 ISL을 사용하여 설정이 가능하다.
.IEEE.802.1Q : IEEE에서 지정한 LAN구간 표준 Trunk Protocol
.ISL : Cisco Switch전용 Trunk Protocol
[설정 방법]
-하나의 Switchport로 다수의 VLAN이 통신 가능한 Mode이다.
-VLAN을 지원하는 Switch , IP Phone과 같은 장비 연결시 사용된다.
-Trunk는 IEEE.802.1Q와 ISL로 구성이 가능하다.
.IEEE.802.1Q : IEEE에서 지정한 LAN 구간 표준 Trunk Protocol이다.
.ISL : CISCO Switch 전용 Trunk Protocol이다.
Fa0/24 Fa0/24
SW1-------------------------------------SW2
# IEEE.802.1Q
# SW1 , SW2
interface fastethernet 0/24
switchport trunk encapsulation dot1q
switchport mode trunk
!
# ISL
# SW1 , SW2
interface fastethernet 0/24
switchport trunk encapsulation isl
switchport mode trunk
!
# 2950시리즈 이하급 장비 [2950시리즈 이하급 장비는 IEEE.802.1Q만 지원]
# SW1 , SW2
interface fastethernet 0/24
switchport mode trunk
!
-IEEE.802.1Q와 ISL의 가장큰 차이점은 Native VLAN의 지원 유/무이다.
-IEEE.802.1Q는 Native VLAN을 지원하지만 ISL은 지원하지않는다.
-IEEE.802.1Q는 입력되는 트래픽에 VLAN정보가 포함되지 않게되면
해당 정보를 Native VLAN(Default = VLAN 1)으로 처리한다.
-ISL은 입력되는 트래픽에 VLAN정보가 포함되지 않게되면
자신의 내부 정보가 아닌걸로 간주하여 해당 정보를 Drop실시
-Tagging
: Ethernet Frame이 IEEE.802.1Q Trunk port로 데이터 전송시 4Byte의 Header가 확장된다.
Ethernet (Access mode에서 Ethernet Header)
-----------------------------------------------------------------
| Destination Source Type | Data |
| Mac-address Mac-address | |
-----------------------------------------------------------------
Ethernet (IEEE.802.1Q Trunk mode에서 Ethernet Header)
--------------------------------------------------------------------------
| Destination Source Tagging Type | Data |
| Mac-address Mac-address 4Byte | |
--------------------------------------------------------------------------
-4Byte (32bit)
.EtherType (16bit) : 0x8100 (IEEE.802.1Q임을 표기)
.Priority (3bit) : 우선순위값 표기 (8가지 우선순위값을 사용하여 차등화 서비스 제공시 사용)
.CFI (1bit) : 0 = Ethernet , 1 = Token-ring
.VLAN-ID (12bit) : VLAN 정보 표기 (0 ~ 4095) , VLAN정보가 표기되지 않는환경에서는 Native-VLAN으로 처리한다.
----------------------------------------------------------------------------------------
## 'Allowed' command
-Switch간 Trunk로 연결을 실시하게되면 해당 Switch가 지원하는 모든 VLAN이 Forwarding되어진다.
하지만 특정 VLAN만을 Forwarding하거나 또는 특정 VLAN을 제외한 나머지
VLAN만을 Forwarding할경우에는 'Allowed' command를 사용할수 있다.
interface fa 0/x
switchport trunk encapsulation [dot1q | isl]
switchport mode trunk
switchport trunk allowed vlan all [Default로 Enable되어있다.]
!
EX1) SW1 , SW2구간 사이에서는 VLAN 1,10,20,30만을 사용하고 있다.
SW1 , SW2구간 사이에서 현재 사용하는 VLAN 만 Forwarding되도록 설정을 실시하시오
<VLAN 1,10,20,30>
Fa 0/23 Fa 0/23 Fa 0/21 Fa 0/21
SW1------------------------SW2------------------------SW3
# SW1 , SW2
vlan 10,20,30
!
interface fa 0/23
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan 1,10,20,30
!
정보확인
SW1#show interface trunk [Allowed 설정 전]
Port Mode Encapsulation Status Native vlan
Fa0/23 on 802.1q trunking 1
Port Vlans allowed on trunk
Fa0/23 1-4094
SW1#show interface trunk [Allowed 설정 후]
Port Mode Encapsulation Status Native vlan
Fa0/23 on 802.1q trunking 1
Port Vlans allowed on trunk
Fa0/23 1,10,20,30 <--- 설정후 VLAN 1,10,20,30으로 제한
EX2) SW1 , SW2구간 사이에서는 VLAN 40을 추가적으로 사용할 예정이다.
SW1 , SW2구간 사이에서는 VLAN 1,10,20,30,40만 Trunk Port로 Forwarding이 실시되어져야 한다.
<VLAN 1,20,30,40>
Fa 0/20 Fa 0/20 Fa 0/21 Fa 0/21
SW1------------------------SW2------------------------SW3
# SW1 , SW2
interface fa 0/23
switchport trunk allowed vlan add 40
!
정보확인
SW1#show interface trunk
Port Mode Encapsulation Status Native vlan
Fa0/23 on 802.1q trunking 1
Port Vlans allowed on trunk
Fa0/23 1,10,20,30,40 <--- 위에서 허용된 VLAN에 40이 추가
Port Vlans allowed and active in management domain
Fa0/23 1,10,20,30
EX3) SW1 , SW2구간 사이에서는 VLAN 1,10,20,30,40을 사용하고있다
SW1 , SW2구간 사이에서 VLAN10을 사용하지 않을 예정이다.
사용되는 VLAN만 허용되도록 설정을 실시하시오
<VLAN 1,20,30,40>
Fa 0/20 Fa 0/20 Fa 0/21 Fa 0/21
SW1------------------------SW2------------------------SW3
# SW1 , SW2
interface fa 0/23
switchport trunk allowed vlan remove 10
!
정보확인
SW1#show interface trunk
Port Mode Encapsulation Status Native vlan
Fa0/23 on 802.1q trunking 1
Port Vlans allowed on trunk
Fa0/23 1,20,30,40 <--- 위에서 허용된 VLAN중 VLAN 10이 삭제
Port Vlans allowed and active in management domain
Fa0/23 1,20,30
EX4) SW2 , SW3구간 사이에서는 VLAN 100을 제외한 나머지 모든 VLAN에 대해서
Forwarding을 실시하려고 한다.
<VLAN 1,20,30,40> <1-99,101-1005>
Fa 0/20 Fa 0/20 Fa 0/21 Fa 0/21
SW1------------------------SW2------------------------SW3
# SW2 , SW3
interface fa 0/21
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan 1-99,101-4094
!
------ OR -------
# SW2 , SW3
interface fa 0/21
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan except 100
!
정보확인
SW2#sh interfaces trunk
Port Mode Encapsulation Status Native vlan
Fa0/21 on 802.1q trunking 1
Fa0/23 on 802.1q trunking 1
Port Vlans allowed on trunk
Fa0/21 1-99,101-4094
Fa0/23 1,20,30,40
Port Vlans allowed and active in management domain
Fa0/21 1,10,20,30
Fa0/23 1,20,30
Port Vlans in spanning tree forwarding state and not pruned
Fa0/21 1,10,20,30
Fa0/23 1,20,30
EX4-1) SW2 , SW3구간 사이에서는 VLAN 100,200을 제외한 나머지 모든 VLAN에 대해서
Forwarding을 실시하려고 한다.
<VLAN 1,20,30,40> <1-99,101-1005>
Fa 0/20 Fa 0/20 Fa 0/21 Fa 0/21
SW1------------------------SW2------------------------SW3
# SW2 , SW3
interface fa 0/21
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan 1-99,101-199,201-1005
!
------ OR -------
# SW2 , SW3
interface fa 0/21
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan except 100,200
!
==================================================================================================
## VTP (VLAN Trunking Protocol)
-Cisco에서 VLAN Database 동기화를 목적으로 개발된 Protocol이다.
다수의 Switch나 VLAN을 사용할경우 각각의 Switch에서 VLAN을 생성,수정,삭제하는
번거로움을 해결하기위해서 개발된 Protocol이다
즉 하나의 Switch에서 VLAN을 생성하거나 수정 또는 삭제를 실시하게되면
연결된 모든 Switch에서 VLAN Database table을 동기화하게된다.
-VTP를 사용하기위한 조건
.Switch간 Trunk로 연결되어야한다.
.VTP Domain일치
.VTP Password일치
-VTP의 Mode
.Server Mode : VLAN 생성(O) , 삭제(O) , 수정(O) , 전파(O) , 일치(O) , 중계(O)
.Client Mode : VLAN 생성(X) , 삭제(X) , 수정(X) , 전파(X) , 일치(O) , 중계(O)
.Transparent Mode : VLAN 생성(O) , 삭제(O) , 수정(O) , 전파(X) , 일치(X) , 중계(O)
.VTP를 사용하여 VLAN을 동기화 하기위해서는 전파 , 일치 권한 중 한개 이상의 권한이 부여되어야한다.
.VLAN 생성 : VLAN을 생성할 수 있는 권한
.VLAN 삭제 : VLAN을 삭제할 수 있는 권한
.VLAN 수정 : VLAN의 정보를 변경할 수 있는 권한
.VLAN 전파 : 해당 Switch에서 생성,삭제,수정한 VLAN 정보를 Trunk로 연결된 장비로의 전파 권한
.VLAN 일치 : Trunk로 연결된 Switchport로 수신된 VLAN정보의 동기화 유/무
.VLAN 중계 : Trunk port로 수신된 VLAN정보를 Trunk port로의 재 동기화 유/무
-VLAN의 범위는 0~4095까지이지만 0,4095는 System에서 사용되도록 예약되어져있기때문에
사용가능한 VLAN은 1~4094까지이다.
[장비에따라서 0~4095 , 0~1005까지 지원한다.]
-VLAN은 용도에따라서 Standard VLAN과 Extended VLAN으로 사용이 가능
.Standard VLAN : 1~1005 (1,1002,1003,1004,1005은 예약된 VLAN)
.Extended VLAN : 1006 ~ 4094 (Transparent Mode에서만 생성 가능)
-VTP Mode 변경
Switch(config)# vtp mode server
Device mode already VTP SERVER.
Switch(config)# vtp mode client
Setting device to VTP CLIENT mode.
Switch(config)# vtp mode transparent
Setting device to VTP TRANSPARENT mode.
-VTP Domain 설정
Switch(config)# vtp domain [WORD]
: VTP Domain은 하나의 Switch에서 설정을 실시하게되면 모든 Switch로 전파된다.
-VTP Password 설정
Switch(config)# vtp password [WORD]
: VTP Password는 모든 Switch에서 각각의 설정을 실시해야한다.
# VTP가 사용하는 Message
-Summary-Advertise
.VTP Server가 자신의 VLAN Database 변경시에 Revision Number를 전파 실시
VLAN Database에 변경이 없게되면 Revision Number를 5분을 주기로 전파를 실시
-Advertise-Request
.Summary-Advertise를 수신한 Switch는 자신보다 높은 Revision Number를 확인하게되면
해당 VLAN에 대한 상세 정보를 Advertise-Request를 사용하여 요청을 실시
-Subset-Advertise
.Subset-Advertise는 VLAN Database정보로써 Advertise-Request 송신한 Swtich에게
Subset-Advertise를 사용하여 VLAN Database 정보 전파를 실시한다.
==============================================================================================
### STP (Spanning-Tree Protocol)
-망의 안정화를 위해서 장비간의 이중화를 구현하는것이 효율적이다.
-하지만 Switch간 이중화 이상을 연결하게되면 통신의 특성상 Loop가 발생하게된다
.Broadcast-Storm
.중복된 Frame 수신
.불안정한 Mac-address Table생성 현상에의해 Loop가 발생한다.
-이러한 Loop를 방지하는 알고리즘이 STP이다.
## IEEE.802.1D (PVST : Per-VLAN Spanning-Tree)
-PVST는 하나의 VLAN당 하나의 STP를 지원하는 기능이다.
Spanning-Tree 동작순선
Fa 0/20 [DP] Fa 0/20 [RP]
SW1============================SW2
Fa 0/21 [DP] Fa 0/21 [AP]
32768 32768
1111.1111.1111 2222.2222.2222
-Switch간 Connect되면 상호간 BPDU를 송/수신하게된다.
*BPDU
.Bridge-ID (VLAN Priority , Mac-address)
.Cost (10M = 100 , 100M = 19 , 1G = 4 , 10G = 2)
.Port-prioriyt : 128.x (x = port번호)
.Hello-time : 2초
.Max-age : 20초
.Forward-delay : 15초
1.Root-bridge를 선출 (선출기준 : Bridge-ID)
a.Priority (32768 + VLAN 번호)가 낮은 Switch가 Root-bridge로 선출
b.Mac-address가 낮은 Switch가 Root-bridge로 선출
2.Port 선출
.DP(Designated Port) : BPDU를 송신하는 Port
.RP(Root Port) : BPDU를 수신하는 Port
* Root-bridge의 모든 Port는 DP로 선출되어지며
모든 Switch는 하나의 Segment당 하나의 DP를 갖는다.
* Root-brige를 제외한 나머지 모든 Switch는 한개의 RP(Root Port)를 갖게된다.
: 해당 Switch에서 Root-bridge로가는 가장 최단경로를 의미하며 실제 통신이 실시되는 Port이다.
3.AP(Alternated Port)선출 (Block Port)
a.Cost값이 큰 Port가 Blockport로 선출된다.
b.Sender Bridge-ID값이큰 Port가 Blockport로 선출
c.Port-priority값이 큰 Port가 Blockport로 선출 [Root-bridge의 Port-Priority기준]
-----------------------------------------------------------------------------------------
## Priority값을 사용한 Root-bridge변경
<VLAN 10,20,30,40>
Fa 0/23 Fa 0/23
SW1=======================================SW2
Fa 0/24 Fa 0/24
32768 32768
1111.1111.1111 2222.2222.2222
[설정방법]
SWX(config)# vlan 10,20,30,40
!
SWX(config)# interface range fa 0/23 - 24
SWX(config-if)# switchport trunk encapsulation dot1q
SWX(config-if)# switchport mode trunk
!
SWX(config)# spanning-tree vlan x priority [4096의 배수]
EX1) SW2가 VLAN 10,20,30,40에 대해서 Root-bridge를 수행해야 한다.
# SW2
SW2(config)# spanning-tree vlan 10,20,30,40 priority 4096
정보확인
SW1# show spanning-tree vlan 1,10,20,30,40 [설정후 Blockport가 SW1으로 변경]
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --
Fa0/23 Root FWD 19 128.20 P2p
Fa0/24 Altn BLK 19 128.21 P2p
## 다음 실습을 위해서 VLAN Priority설정 삭제 실시
SW2(config)# no spanning-tree vlan 10,20,30,40 priority 4096
EX2) SW1은 VLAN 10,20에 대해서 Root-bridge를 수행해야 하며
SW2는 VLAN 30,40에 대해서 Root-bridge를 수행해야 한다.
# SW1
SW1(config)# spanning-tree vlan 10,20 priority 4096
# SW2
SW2(config)# spanning-tree vlan 30,40 priority 4096
정보확인
-SW1에서 'show spanning-tree vlan 10,20'command를 사용하여
정보확인을 실시하게되면 Fa0/23 , Fa0/24 Port가 모든 FWD로 확인되어지며
'show spanning-tree vlan 30,40'command를 사용하여
정보확인을 실시하게되면 Fa0/24 Port가 BLK로 확인되어진다.
SW1#show spanning-tree vlan 10,20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- --------
Fa0/23 Desg FWD 19 128.23 P2p
Fa0/24 Desg FWD 19 128.24 P2p
SW1# show spanning-tree vlan 30,40
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- --------
Fa0/23 Root FWD 19 128.23 P2p
Fa0/24 Altn BLK 19 128.24 P2p
-SW2에서 'show spanning-tree vlan 30,40'command를 사용하여
정보확인을 실시하게되면 Fa0/23 , Fa0/24 Port가 모든 FWD로 확인되어지며
'show spanning-tree vlan 10,20'command를 사용하여
정보확인을 실시하게되면 Fa0/24 Port가 BLK로 확인되어진다.
SW2# show spanning-tree vlan 30,40
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- --------
Fa0/23 Desg FWD 19 128.23 P2p
Fa0/24 Desg FWD 19 128.24 P2p
SW2# show spanning-tree vlan 10,20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- --------
Fa0/23 Root FWD 19 128.23 P2p
Fa0/24 Altn BLK 19 128.24 P2p
---------------------------------------------------------------------------------------
## Cost값을 사용한 Block Port변경
-Cost값을 설정할경우에는 Block port를 가진 Swithc, Root-bridge에서 더 멀리떨어진 Switch에서 설정
Cost값은 송신시에는 0으로 전송되며 수신시 해당 Cost값이 더해진다.
<VLAN 10,20,30,40>
Fa 0/23 Fa 0/23
SW1=======================================SW2
Fa 0/24 Fa 0/24
32768 32768
1111.1111.1111 2222.2222.2222
EX1) SW1이 VLAN 10,20,30,40에 대해서 Root-bridge를 수행하며
VLAN 10,20은 Fa 0/23Port를 사용하여 통신을 해당 Port에 장애 발생시 Fa 0/24경로를 사용해야하며
VLAN 30,40은 Fa 0/24Port를 사용하여 통신을 해당 Port에 장애 발생시 Fa 0/23경로를 사용해야한다.
# SW2
interface fastethernet 0/23
spanning-tree vlan 30,40 cost 100
!
----- OR ------
# SW2
interface fastethernet 0/24
spanning-tree vlan 30,40 cost 10
!
정보확인
SW2#sh spanning-tree vlan 10,20 (Block port를 갖은 Switch에서 확인)
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- --------
Fa0/23 Root FWD 19 128.23 P2p
Fa0/24 Altn BLK 19 128.24 P2p
SW2#sh spanning-tree vlan 30,40 (Block port를 갖은 Switch에서 확인)
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- --------
Fa0/23 Altn BLK 100 128.23 P2p
Fa0/24 Root FWD 19 128.24 P2p
---------------------------------------------------------------------------------------
## Port-priority값을 사용한 Block Port변경
-Port-priority설정은 Root-bridge에서 설정을 실시
-Blockport선출시 Port-priority값은 Root-brige의 Port-priority값에의해 결정되어진다.
Block port변경시에는 Root-bridge이 Port-priority값을 변경해야한다.
<VLAN 10,20,30,40>
Fa 0/23 Fa 0/23
SW1=======================================SW2
Fa 0/24 Fa 0/24
32768 32768
1111.1111.1111 2222.2222.2222
[설정방법]
SWX(config)# interface fastethernet 0/x
SWX(config-if)# spanning-tree vlan x port-priority [16의 배수]
EX1) SW1이 VLAN 10,20,30,40에 대해서 Root-bridge를 수행하며
VLAN 10,20은 Fa 0/23Port를 사용하여 통신을 해당 Port에 장애 발생시 Fa 0/24경로를 사용해야하며
VLAN 30,40은 Fa 0/24Port를 사용하여 통신을 해당 Port에 장애 발생시 Fa 0/23경로를 사용해야한다.
# SW1
interface fastethernet 0/23
spanning-tree vlan 30,40 port-priority 192
!
----- OR ------
# SW1
interface fastethernet 0/24
spanning-tree vlan 30,40 port-priority 64
!
정보확인
-설정완료후 'show spanning-tree'command를 사용하여 정보확인을 실시
-SW1에서는 VLAN 30,40에 대해서 Fa0/23 port의 Port-priority값이 192.23으로 확인되어진다.
SW1# show spanning-tree vlan 30
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- --------
Fa0/23 Desg FWD 19 192.25 P2p <--- Port-priority변경 확인
Fa0/24 Desg FWD 19 128.26 P2p
-SW2에서는 Block port가 Fastethernet 0/23으로 변경 확인
SW2# show spanning-tree vlan 30
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/23 Altn BLK 19 128.25 P2p
Fa0/24 Root FWD 19 128.26 P2p
----------------------------------------------------------------------------------------------------
# Spanning-Tree의 5가지 상태
-Disable
.Switchport가 동작하지 않는 상태 (Port가 "shutdown"상태 이거나 , No Cable인 상태)
.BPDU 송/수신 : X
.Mac-address 학습 : X
.데이터 전송 : X
-Blocking
.Switch가 Loop를 방지하기위해서 Port를 논리적으로 차단한 상태
.BPDU 수신 : O
.Mac-address 학습 : X
.데이터 전송 : X
-Listening
.Blocking상태인 Port가 Designated Port , Root-port로 전환시 Listening상태로 전환되어진다.
.Switchport로 통신 장비가 연결되거나 , Blockport가 사용하던 경로에 장애 발생으로 인해
활성화 상태로 전환되는 첫번째 단계이며 15초간 진행된다.
.BPDU 수신 : O
.Mac-address 학습 : X
.데이터 전송 : X
-Learning
.Listening에서 15초의 시간을 유지한후 Loop가 감지되지 않으면Learning 상태로 전환되며
Mac-address를 Mac-address table에 등록이 가능한 상태이다 역시 15초간 진행된다.
.BPDU 수신 : O
.Mac-address 학습 : O
.데이터 전송 : X
-Forwarding
.Disable , Blocking상태에서 Listening , Learning상태를 거쳐 Forwarding상태로 전환되며데이터 통신이 가능한 상태
.BPDU 수신 : O
.Mac-address 학습 : O
.데이터 전송 : O
----------------------------------------------------------------------------------------------------
#### Root-brige와 Non Root-bridge 구간 장애 발생시 동작과정
## 장애 발생시 동작과정 확인
-Block (장애발생시) [BLK]
-Listening : (15초) [LIS]
-Learning : (15초) [LRN]
-Forward : 총 30초 소요 [FWD]
SW1# debug spanning-tree events
Spanning Tree event debugging is on
SW1(config)# interface fa0/24
SW1(config-if)# shutdown
**** SW1에서 Debug 정보 확인 ****
03:15:40: STP: VLAN0001 new root port Fa0/20, cost 38 <-- Fa0/24장애 발생시 Fa0/20가 Root-port로 전환
03:15:40: STP: VLAN0001 Fa0/20 -> listening <--- Blockport가 해당 Port를 Forwarding실시전 Loop체크
03:15:55: STP: VLAN0001 Fa0/20 -> learning <--- 데이터 통신을위한 Mac-address 학습
03:16:10: STP: VLAN0001 Fa0/20 -> forwarding <--- 해당 Port가 Forwarding상태로 전환
## 장애 복구시 동작과정 확인
SW1(config)# interface fa0/24
SW1(config-if)# no shutdown
**** SW1에서 Debug 정보 확인 ****
00:46:46: set portid: VLAN0001 Fa0/24: new port id 801A
00:46:46: STP: VLAN0001 Fa0/24 -> listening
00:46:47: STP: VLAN0001 new root port Fa0/24, cost 19
00:46:47: STP: VLAN0001 sent Topology Change Notice on Fa0/24
00:46:47: STP: VLAN0001 Fa0/20 -> blocking
00:47:01: STP: VLAN0001 Fa0/24 -> learning
00:47:16: STP: VLAN0001 Fa0/24 -> forwarding
=============================================================================================================================
# Root-brige와 Backup Root-bridge 구간 장애 발생시 동작과정
-Block (20간 유지 : Max-age) [BLK]
-Listening : (15초) [LIS]
-Learning : (15초) [LRN]
-Forward : 총 50초 소요 [FWD]
SW1# debug spanning-tree events
Spanning Tree event debugging is on
SW2(config)# interface fa0/22
SW2(config-if)# no shutdown
**** SW1에서 Debug 정보 확인 ****
00:58:08: STP: VLAN0001 heard root 16385-000f.248a.3480 on Fa0/20
00:58:10: STP: VLAN0001 heard root 16385-000f.248a.3480 on Fa0/20
00:58:12: STP: VLAN0001 heard root 16385-000f.248a.3480 on Fa0/20
00:58:14: STP: VLAN0001 heard root 16385-000f.248a.3480 on Fa0/20
00:58:16: STP: VLAN0001 heard root 16385-000f.248a.3480 on Fa0/20
00:58:18: STP: VLAN0001 heard root 16385-000f.248a.3480 on Fa0/20
00:58:20: STP: VLAN0001 heard root 16385-000f.248a.3480 on Fa0/20
00:58:22: STP: VLAN0001 heard root 16385-000f.248a.3480 on Fa0/20
00:58:24: STP: VLAN0001 heard root 16385-000f.248a.3480 on Fa0/20
00:58:26: STP: VLAN0001 Fa0/20 -> listening
00:58:26: STP: VLAN0001 heard root 16385-000f.248a.3480 on Fa0/20
00:58:26: STP: VLAN0001 Topology Change rcvd on Fa0/20
00:58:26: STP: VLAN0001 sent Topology Change Notice on Fa0/24
00:58:41: STP: VLAN0001 Fa0/20 -> learning
00:58:56: STP: VLAN0001 sent Topology Change Notice on Fa0/24
00:58:56: STP: VLAN0001 Fa0/20 -> forwarding
Switch(config)# spanning-tree vlan x hello-time [초 : Default 2초]
Switch(config)# spanning-tree vlan x forward-time [초 : Default 15초]
Switch(config)# spanning-tree vlan x max-age [초 : Default 20초]