스위치의 기능 및 동작 방식
# 스위치는 IEEE 802.1D 의 규정에 따라 동작하는데 트랜스패런트 브리징과 스패닝 트리 프로토콜이 있다.
# STP는 2대 이상의 스위치가 복수개의 링크로 연결되어 있을 때 이중성을 유지하면서 루프가 발생하지 않도록 하는 방식이다.
# 트랜스패런트 브리징은 스위치가 MAC 주소 테이블을 만들고 유지하며 이를 참조하여 수신 프레임을 목적지 포트로 전송하는 방식. 스위치는 MAC 주소 테이블을 보고 프레임을 스위칭한다
# 리피터
- 전기적인 신호만 증폭시켜 먼 거리까지 도달 할 수 있도록 한다.
# 허브
- 리티어뫄 마찬가지로 전기적인 신호를 증폭시켜 LAN의 전송거리를 연장시키고 여러 장비를 LAN에 접속할 수 있도록 해준다.
- LAN 에서 사용하는 CAT 5는 전송거리가 100m이다. 허브를 연결하면 전송거리를 연장할 수 있다.
- 프레임을 수신하면 연결된 모든 장비로 플임을 Flooding 한다.
- PC가 많을수록 충돌위험도 많고 Half Duplex 로만 동작한다.
- 허브는 하나의 Collision Domain 이다.
# 브리지
- 포트는 보통 4개 이하이고, 속도가 느리다. 확장된 개념은 스위치
- 신호를 증폭시키는 것이 아니라 Frame 을 재생한다. 즉 수신한 Frame 을 다시 만들어 전송한다.
- MAC 주소를 보고 포트를 결정하므로 레이어 2장비라고 한다.
# 스위치
- MAC 주소 테이블을 가지고 있고 목적지 MAC 주소를 가진 장비가 연결된 포트로만 Frame 을 전송한다.
- 각각의 포트가 하나의 Collison Domain 이다. 즉 충돌이 감소
- 스위치에 연결된 모든 장비는 하나의 Broadcast Domain 이다.
- 스위치에 연결된 장비가 많을수록 Broadcast 트래픽도 증가해 네트워크 성능저하가 심각해 진다.
- 해결책 VLAN 구성. 같은 스위치도 VLAN 이 다르면 Broadcast 프레임을 차단한다.
# 라우터
- 네트워크 주소가 다른 장비들을 연결해준다.
- VLAN 이 서로 다른 장비들간의 통신은 라우터를 통해야만 가능
- WAN 구간의 장거리 통신이 가능하다.
# L3 스위치
- 라우터의 속도 한계를 극복하고 VLAN 간의 고속 라우팅을 지원
- VLAN 포트간에 스위칭 기능을 제공, 다른 VLAN 포트간에는 라우팅 기능을 제공한다.
- 라우터보다 라우팅 속도가 빠르지만 장거리 통신망을 연결하는 포트가 없다.
# L2 스위치의 동작 원리
- 이더넷에 전송되는 트래픽은 모두 MAC 주소를 기반으로 동작함 스위치는 입력된 트래픽을 처리할때 MAC 주소를 참조해 처리
- 어떤 포트에서 트래픽이 수신되면 출발/목적지 MAC 주소를 확인해 목적지 MAC 주소는 어떤 포트로 보낼 것인지 결정, 출발지 MAC
주소는 해당 MAC 주소가 있는 포트를 기억해 다른 포트에 해당 MAC 주소를 찾는 트래픽이 들어오면 그 포트로 보내는데 사용한다.
- MAC Address Table을 사용한다.
# L3 스위치의 동작 원리
- 3계층 스위치는 입력된 패킷의 목적지 IP 를 보고 어떤 포트로 전송할 것인가를 결정한다.
- Routing Table 이라는 것을 기본적으로 가지고 있으며 이 정보를 참조해 트래픽을 처리한다.
1) Dynamic Routing Table
- 대형 네트워크에서 모든 장비의 라우팅 테이블을 하나씩 관리하기는 매우 어렵다. 때문에 장비들간에 정보를 주고받을 수 있도록 자동으로 라우팅 정보를 관리하는 기능
2) Source Routing
- 보통 프레임을 네트웍을 경유할때 각 라우터들은 목적지 IP를 확인하고 다음 경유지를 선택한다.
- 소스 라우팅은 프레임을 보내는 쪽에서 라우터의 도움 없이 어떤 경로로 가야하는지 설정해 주는 것이다.
3) Routing Cache
- 라우팅을 처리하는 장비들은 자신이 라우팅 테이블을 참조해 처리한 패킷의 경로를 기억한다. 이를 라우팅 캐시라고 한다.
- 패킷이 입력되면 부하가 많은 라우팅 테이블을 매번 참조하지 않고 메모리에 있는 라우팅 캐시 테이블에서 해당 패킷 정보가 있는지 먼저 확인한다. 이정보는 일정시간 동안 참조되지 않으면 삭제한다.
# Transparent Bridging
- 라우터가 라우팅 테이블을 참조해 패킷을 라우팅 시키는 것처럼
- 스위치는 스위칭 테이블, 즉 MAC 주소 테이블을 보고 패킷을 스위칭 시킨다.
- 이처럼 테이블을 만들어 이를 참조해 프레임을 스위칭하는 방식을 트랜스패런트 브리징이라고 한다.
- Learning : 이더넷 프레임을 수신하면 스위치는 자신의 MAC 주소를 확인한다. 이때 발신지 MAC 주소가 없으면 수신 포트와번호와 발신지 MAC 주소를 자신의 MAC 주소 테이블에 기록한다.
- Aging : MAC 주소 테이블에 해당 주소가 있으면 에이징 타이머를 리셋시킨다. 기본 5분. 이 시간이 경과하면 제거한다.
- Flooding : 목적지 주소가 Broadcast 주소이거나 자신의 MAC 주소 테이블에 발신지 MAC 주소가 없을 경우 수신포트를 제외하고 모든 포트로 해당 프레임을 전송
- Filtering : 프레임을 수신한 포트로 다시 송신되지 않게 포트를 차단한다.
- Forwarding : 목적지 주소가 MAC테이블에 존재하는 유니캐스트 프레임을 수신하면 목적지로 프레임을 전송한다.
스위치 기본 설정 및 동작 확인
# IOS 도움말 기능은 물음표 (?) 를 이용한 명렁어 안내와 화면에 에러 메시지를 표시해 주는 것으로 구분할 수 있다.
설정 커맨드 창에서 ? 를 입력하면 현재 단계에서 사용할 수 있는 모든 명령어를 표시해 준다.
# 이용자 모드 : 스위치의 모드에는 이용자 모드, 관리자 모드, 설정모드로 구분할 수 있다. 이용자 모드는 처음 스위치에 접속 했을때 들어가는 모드이며, 기본적인 정보확인 및 기본테스트만 가능하다.
# 관리자 모드 : 이용자 모드에서 『 enable 』명령어를 사용하여 들어갈 수 있다. 관리자 모드는 show 명령어를 이용한 정보확인 debug, copy, telnet, ping 등의 명령어를 사용할 수 있다.
『 en 』 을 입력한후 TAB 키를 누르면 명령어가 완성된다. 또한 ? 를 입력하면 en 으로 시작하는 명령어를 볼 수 있다.
# 설정모드 : 관리자 모드에서 Configure Terminal 을 입력하며 들어갈 수 있는데 통상 줄여서 Conf t 를 입력한다. 설정모드에서는 관리자용 패스워드 및 스위치의 이름 등 스위치 관련 설정이 시작되는 모드이다.
# 설정시 유용한 팁
1. 리플래시 : 명령어를 입력하는 도중 인터페이스의 상태가 변하면 상태변화를 알려주는 메시지와 명령어가 섞이는데 이를 방지해준다.
Switch(config)# line console 0
Switch(config-line)# logging synchronous <- 줄여서 logging sync
2. 콘솔 대기 시간 삭제 : 일정시간이 지나도 설정창이 대기모드로 돌아가는걸 방지해준다.
Switch(config)# line console 0
Switch(config-line)# exec-timeout 0 0
3. DNS 서버 요청 단계 삭제 : 오타를 입력했을 때 장비가 DNS 서버를 찾는 시간을 줄일 수 있다.
Switch(config)# no ip domain-lookup
# IP 부여하기 : L2 스위치에 IP 를 부여하는 목적은 원격 접속으로 스위치를 관리하기 위해서이다. IP 를 부여하기 위해서는 VLAN 인터페이스 설정모드로 들어가야 한다.
Switch(config)# int vlan 1
Switch(config)# ip add 17.17.1.1 255.255.255.0
Switch(config)# no shutdown
# 스위치 접속을 실시할때 패스워드 단계 설정
1. 콘솔(Console) 패스워드 설정
Switch(config)# line console 0
Switch(config-line)# password cisco
Switch(config-line)# login
Switch(config-line)# exit
2. 옥스(Aux) 패스워드 설정
Switch(config)# line aux 0
Switch(config-line)# password cisco
Switch(config-line)# login
Switch(config-line)# exit
3. 텔넷(VTY) 패스워드 설정 <= 패스워드 설정을 하지 않으면, 원격지에 텔넷 접속이 불가능하다.
Switch(config)# line vty 0 15
Switch(config-line)# password ciscotel
Switch(config-line)# login
4. 스위치 패스워드 설정
secret 는 패스워드를 암호화 되어서 저장한다. password 는 패스워드가 암호화 되지 않는다. secret, password 둘다 설정했을 경우 패스워드는 secret 로 변경된다.
Switch(config)# enable secret cisco1
Switch(config)# enable password cisco2
이럴경우 스위치 패스워드는 cisco1 로 등록된다.
# 모든 패스워드를 암호화하는 방법
Switch(config)# service password-encryption
# 전체 설정내용 확인 : 현재 적용된 전체 설정을 보기 위해서는 show running-config (줄여서 show run) 을 사용하면 된다.
설정파일의 크기, OS 버전, 스위치 이름, 인터페이스의 설정내용, 패스워드 설정등을 볼 수 있다.
Switch# show run
# 인터페이스 설정내용 확인 : 특정 인터페이스에 대한 설정을 확인하려면 show run interface 명령어를 사용하면 된다.
Switch# show running-config interface FastEthernet0/1 <= 줄여서 show run int fa0/1
# 인터페이스의 IP 정보확인 : 인터페이스에 설정된 IP 주소와 레이어 1, 2계층의 상태를 확인하려면 show ip int brief 를 사용한다.
Switch# show ip int brief
Interface IP-Address OK? Method Status Protocol
VLAN1 unassigned YES unset down down
VLAN2 17.17.1.1 YES manual up up
FastEthernet0/1 17.17.2.1 YES manual up up
트랜스패런트 브리징 및 ARP 동작과정
# 트랜스패런트 브리징은 스위치파트의 기초라고도 할 수 있지만 아주 중요한 부분이다. 반드시 동작과정을 이해 해야만 한다.
# 통신에서 트랜스패런트(투명한) 라는 용어가 자주 나온다. 그럼 왜 투명한가? 눈으로 확인을 할 수 없기 때문이다. 너무나 빨라서일 수 도 있고 디버깅으로도 확인을 할 수 없다. 하지만 동작과정을 암기가 아닌 이해를 하고 있어야 한다.
# 트랜스패런트 브리징 : 라우터가 라우팅 테이블을 참조하는 것 처럼 스위치는 스위칭 테이블을 확인해 프레임을 스위칭 한다.
이더넷 스위치가 MAC 주소 테이블을 만들고, 유지.. 이를 참조해 프레임을 스위칭하는 방식을 말한다.
# 트랜스패런트 동작과정 : 스위치는 프레임을 수신하면 제일 먼저 프레임의 출발지 MAC 주소를 확인하는 작업을 하게 된다.
이때 자신의 MAC 주소 테이블에 출발지 MAC 주소가 존재한다면 Aging 타임을 리셋 시킨다. Aging 타임의 기본값은 300초이다. 만약 300초동안 자신이 가지고 있는 MAC 주소의 프레임을 수신하지 못한다면 스위치는 MAC 주소 테이블에서 해당 MAC 주소를 삭제 하게 된다. 이러한 이유는 스위치는 MAC 주소를 무한정 가지고 있을 수 없기 때문이다.
출발지 MAC 주소가 자신의 MAC 주소 테이블에 없다면 다음 단계로 Learning 을 하게 된다.
즉 학습을 하는 것인데 출발지 MAC 주소와 해당 포트를 자신의 MAC 주소 테이블에 기록을 하는 과정을 말한다.
다음으로 스위치는 목적지 MAC 주소를 확인한다. 목적지 MAC 주소 테이블에 해당 프레임의 목적지 MAC 주소가 존재할 경우 스위치는 송 / 수신 포트를 확인을 한다. 만약 송 / 수신 포트가 동일하다면 스위치는 프레임을 차단하는데 이를 Filtering 이라 한다. 만약 송 / 수신 포트가 일치 하지 않는다면 스위치는 유니캐스트로 프레임을 Forwarding 하게 된다.
목적지 MAC 주소가 자신의 MAC 주소 테이블에 존재 하지 않을경우 스위치는 수신한 포트를 제외한 모든 포트로 브로드캐스팅을 날리게 되는데 이를 Flooding 이라고 한다.
# ARP 동작 과정 : L2 계층 장비인 스위치는 데이터 통신을 하기 위해서는 필수조건으로 MAC 주소를 알아야만 통신이 가능하다.
목적지 MAC 주소를 모를 경우 통신이 불가능하다는 말이다. 하지만 그렇다고 통신을 안할 수도 없는 노릇이다.
이러한 상황에 사용할 수 있는 프로토콜이 ARP(Address Resolution Protocol) 이다. ARP 는 목적지 IP 주소를 이용해 목적지 MAC 주소를 찾아 통신이 이루어지도록 동작한다.
# PC1이 PC2에게 데이터를 전송하려고 하는데 PC2 의 MAC 주소를 모른다고 할 경우 PC1은 목적지 MAC 주소를 브로드캐스트 주소로 하는 ARP를 요청하게 된다.
# 이때 출발지 MAC 주소는 자신의 MAC 주소를 사용하고 목적지 IP는 PC2의 IP를 출발지 IP는 자신의 IP를 포함한 프레임을 보내게 되는 것이다.
# 스위치에는 10대의 PC가 물려 있다고 한다면 ARP 요청 프레임을 수신한 스위치는 PC1에 해당하는 포트를 제외한 나머지 9개의 포트로 ARP 요청 프레임을 전송하게 되는 것이다.
# 하지만 PC2에 해당하는 포트를 제외한 나머지 포트는 자신에게 온 메세지가 아니란것을 확인후 해당 프레임을 드롭시킨다.
# PC2는 자신에게 온 프레임이란걸 확인하고 PC1에게 자신의 MAC주소를 유니캐스트로 전송한다. PC1은 유니캐스트 프레임을 수신후 목적지 MAC 주소를 이용해 PC2와 데이터 통신을 할 수 있게 되는 것이다.
# 서로다른 네트워크에 속한 PC의 ARP 동작 과정을 살펴보면 위에서 설명한 비슷하게 동작하게 된다. 하지만 L3 장비는 브로드캐스트 프레임을 차단시키는 기능을 사용한다.
# PC1은 자신이 속한 세그먼트에 목적지 MAC 주소가 없다는걸 확인한후 Default Gateway 로 설정된 주소로 ARP를 요청한다.
# L3장비 (라우터 혹은 L3 스위치) 는 프레임을 수신하고 자신의 테이블에 목적지 MAC 주소가 없다는걸 확인하면 Default Gateway로 ARP 프레임을 송신하는데 이때 출발지 MAC 주소는 PC1의 MAC 주소가 아닌 L3장비 (라우터 혹은 L3 스위치) 자신의 MAC 주소로 변경해서 송신하게 된다.
# ARP 프레임을 수신한 PC2는 자신의 MAC 주소를 유니캐스트로 전송하게 되는 것이다.
VLAN, 트렁킹 및 VTP
# VLAN이란 논리적으로 분할된 스위치 네트워크를 뜻하는데 VLAN을 설정하는 이유는 브로드캐스트를 나눠 네트워크의 성능저하를 방지하고 보안성을 강화하기 위해서 사용한다.
# VLAN 의 장점 : LAN 구간 이더넷 환경에서 증가되는 브로드캐스트 트래픽의 플러딩 범위를 최소화하여 브로드캐스트양을 줄인다.
서로 다른 VLAN 은 다른 브로드캐스트 도메인이기 때문에 접근이 차단되며 보안을 유지할 수 있다.
관리상 효율적이며, 이동성이 강하기 때문에 장소의 제한이 없다.
# 브로드캐스트 도메인이 커진다는 뜻은 브로드캐스트 트래픽이 많이 발생해 장비 및 네트워크의 성능을 저하 시킨다는 말이다. 스위치에 연결된 PC가 브로드캐스트 프레임을 전송하면 모든 스위치의 모든 포트로 이 프레임이 플러딩되지만 논리적으로 VLAN 을 나누면 이런 브로드캐스트 프레임을 플러딩 하지 않고 차단한다.
# 서로다른 VLAN에 접속된 장비들은 상호간에 통신을 하기 위해서는 L3 장비를 통해야만 통신이 가능하다.
# DTP : DTP는 스위치끼리 트렁크와 관련된 내용을 주고 받을 때 사용하는 프로토콜이다. 스위치 끼리 연결 되어있다면 DTP 모드를 설정 하기위해 서로 DTP 프레임을 주고 받게 된다. DTP 모드에는 4가지가 있는데 Access, Trunk, Desirable, Auto 이다. 이중 실제로 동작하는 것은 Access 와 Trunk 두가지이다.
# Access 모드 : 자신의 인터페이스에 스위치 포트를 Access 모드로 설정하면 상대방 포트와 상관없이 Access 모드로 동작한다.
Switch1(config)# int fa1/0
Switch1(config)# switchport mode access
# Trunk 모드 : Trunk 모드로 설정하려면 Encapsulation 방식을 지정해야 하는데 Encapsulation 방식에는 dot1q, isl, negotiate 3가지 방식이 있다. 여기서 기억해야 할건 Trunk 로 연결하려면 양쪽 포트가 같은 Encapsulation 방식을 사용해야 한다.
아래와 같이 Encapsulation 방식을 정하고 Trunk 모드로 설정하면 상대방 포트와 상관없이 Trunk 모드로 동작한다.
Switch1(config)# int fa1/0
Switch1(config)# switchport trunk encapsulation dot1q (혹은 isl)
Switch1(config)# switchport mode trunk
# IEEE 802.1q는 표준 프로토콜, ISL은 Cisco 전용 프로토콜이다.
# Desirable 모드 : 스위치포트의 디폴트 DTP모드가 바로 Dynamic Desirable이다. Dynamic Desirable은 상대방 포트에서 DTP 프레임을 받아 상대방 포트모드에 따라 자신의 모드가 결정되어 지는 것이다. 예를들어 서로 연결된 2개의 포트가 모두 디폴트 Dynamic Desirable로 동작하고 있을때 한쪽의 DTP 모드를 Access로 바꾸면 나머지 한쪽도 Access로 변경된다.
또한 한쪽포트가 Trunk모드로 설정되었다면 나머지 한쪽도 Trunk 모드로 동작하게 된다. 뿐만 아니라 Desirable, Auto 모드로 설정되어도 Trunk 모드로 동작하게 된다.
# 쉽게 말하자면 자신이 Desirable 모드 이면 상대방이 Access 모드 일때만 자신도 Access 모드가 되는 것이다.
# 자신이 Desirable 모드 이면 상대방이 Trunk, Desirable, Auto 모드 일때 자신은 Trunk 모드가 되는 것이다.
Switch1(config)# int fa1/0
Switch1(config)# switchport mode dynamic desirable
# Auto 모드 : Auto 모드는 Desirable 모드와 비슷하게 동작한다. 자신이 Auto 일때 상대방이 Auto, Access 이면 자신도 Access로 동작 자신이 Auto 일때 상대방이 Trunk, Desirable 이면 자신은 Trunk 로 동작한다.
Swtich1(config)# int fa1/0
Switch1(config)# switchport mode dynamic auto
# Nonegotiate : Nonegotiate는 Trunk 모드 일때 상대방에세 DTP 프레임을 보내지 말라는 옵션이다. 만약 두 스위치에 포트가 모드 Trunk 로 설정되어 있다면 DTP 프레임을 보낼 필요가 없다. 하지만 한쪽 혹은 양쪽 모두 Dynamic Desirable이나 Auto로 설정되면 DTP 프레임을 보내서 서로 마춰야 한다. 그래서 이 Nonegotiate는 Dynamic 모드에서는 사용이 불가능하다.
# Trunk 에서 VLAN 설정 : 일반적으로 Trunk는 모든 VLAN을 지나다닐수 있다. 하지만 여기에 모든 VLAN이 아닌 특정 VLAN만 지나다닐 수 있도록 할 수 있다.
Switch1(config)# int fa1/0
Switch1(config)# switchport trunk allowed vlan [번호, add 번호, except 번호, none, remove 번호]
add : Trunk사용가능 VLAN 리스트에 특정 VLAN을 추가할때 사용하는 옵션
except : 모든 VLAN을 사용 가능하게 하고 특정 VLAN 만 제외할때 사용하는 옵션
none : 어떤 VLAN 도 사용하지 못하게 할때 사용하는 옵션
remove : 사용가능한 VLAN 리스트중 특정 VLAN을 제거할때 사용하는 옵션
# VTP(Vlan Trunking Protocol) : VTP는 여러개의 스위치들이 서로 VLAN정보를 주고받을 때 사용하는 프로토콜이다. 한 스위치에서 VLAN설정을 하면 다른 스위치들이 VLAN정보를 받아가 설정는데 편리함은 있지만 VLAN정보가 다 지워지는 문제점도 있다.
# VTP는 Cisco에서 개발한 프로토콜로 Cisco스위치에서만 동작한다.
# VTP의 동작원리 : VTP 동작원리는 간단하다. 로컬 스위치에서 VLAN 정보를 변경하면 우선 순위 카운트(Configuration Revision)을 1씩 증가하여 다른 스위치에거 전송한다. 이때 Trunk 로 연결된 다른 스위치가 VTP 정보를 수신할때 우선순위가 자신보다 높으면 VLAN 정보를 일치시키지만 자신의 우선순위와 동일하면 무시하고, 자신의 우선순위보다 낮으면 자신의 VTP 정보를 로컬 스위치에게 전송한다.
VTP를 사용하기 위한 3가지 조건
# 스위치간에는 Trunk로 구성해야 한다.
# VTP 도메인이 동일해야 한다.
# VTP 정보를 교환할때 인증을 실시할 경우 패스워드가 동일해야 한다.
# VTP도메인 이름과 패스워드가 일치하면 다음과 같이 VTP 모드를 활용하여 VLAN 정보를 공유한다. 각각의 모드에는 서버, 클라이언트, 트랜스패런트가 있으며 스위치 VLAN 정보가 초기화되면 기본으로 서버 모드로 동작한다.
# VTP 서버 모드 : 모든 스위치가 처음에 기본적으로 사용하는 모드
VLAN 생성, 삭제, 수정이 가능, VLAN 데이터베이스 관리 권한이 있다.
VLAN 정보를 전파(광고)가 가능하다.
VLAN 정보를 일치(대체)가 가능하다.
VLAN 정보를 전달(중계)가 가능하다.
Standard VLAN(1~1005)만 사용 가능하다.
# VTP 클라이언트 모드 : VLAN 생성, 삭제, 수정이 불가능 하며 서버에게 요청을 실시하여 VLAN 정보를 공유한다.
VLAN 정보를 전파(광고)가 불가능하다.
VLAN 정보를 일치(대체)가 가능하다.
VLAN 정보를 전달(중계)가 가능하다.
우선순위가 자신보다 높으면 일치시키고 비슷하거나 낮으면 무시한다.
# VTP 트랜스패런트 모드 : VLAN 생성, 삭제, 수정이 가능, VLAN 데이터베이스 관리 권한이 있다.
VLAN 정보를 전파(광고)가 불가능하다.
VLAN 정보를 일치(대체)가 불가능하다.
VLAN 정보를 전달(중계)가 가능하다.
Standard VLAN(1~1005) 및 Extended VLAN(1006~4094) 까지 생성이 가능하다.
VLAN Configuration Revision 카운트는 항상 '0' 이다.
# CISO IOS 기반에서는 Global Exec 모드에서 설정한다.
Switch1(config)# vtp domain CISCONAME <= VTP 도메인을 'CISCONAME' 으로 설정
Switch1(config)# vtp password CISCO <= VTP 패스워드를 'CISCO' 로 설정
Switch1(config)# vtp mode [ server | client | transparent ]
Switch1(config)# vtp pruning <= 트렁크로 불필요하게 실시되는 브로드케스트 차단 기능 실시
# CatOS 기반에서는 VLAN Database 설정 모드에서 설정한다. 'exit' 로 나가야 한다.
Switch1# vlan database
Switch1(vlan)# vtp domain CISCONAME
Switch1(vlan)# vtp password CISCO
Switch1(vlan)# vtp [ server | client | transparent ]
Switch1(vlan)# vtp pruning
Switch1(vlan)# exit
Switch1# show vtp status
VTP Version : 2
Configuration Revision : 3
Maximum VLANs supported locally : 256
Number of existing VLANs : 9
VTP Operating Mode : Server
VTP Domain Name : CISCONAME
VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
MD5 digest : 0x68 0x25 0xED 0x5F 0xA4 0x5C 0x8E 0x9B
Configuration last modified by 13.13.11.1 at 3-1-02 00:33:28
Local updater ID is 13.13.11.1 on interface Vl11 (lowest numbered VLAN interface found)
Switch2# show vtp status
VTP Version : 2
Configuration Revision : 0
Maximum VLANs supported locally : 256
Number of existing VLANs : 7
VTP Operating Mode : Transparent
VTP Domain Name : CCNANAME
VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
MD5 digest : 0x99 0xD8 0x2F 0x33 0x0A 0x8F 0x4D 0x33
Configuration last modified by 13.13.11.2 at 3-1-02 00:31:54
# VTP 설정 초기화 : S1에는 VLAN11, VLAN12 가 설정되어 있고 VTP 설정 번호는 8이라고 한다.
만약 VTP 설정 번호가 10이고 VLAN1만 설정되어 있는 S2를 S1과 연결할 경우 S1은 자신보다 VTP 설정 번호가 높은 S2의 VLAN 정보를 받고 자신의 VLAN번호 11, 12를 삭제해 버린다.
결과적으로 S1은 자신의 VLAN이 없어지고 다운이 되버린다.
이같은 사태를 방지하기위해 새로운 스위치를 추가할때는 VTP 설정 번호를 초기화 시켜야 한다.
# VTP 설정 번호를 초기화 시키기 위해서는 VTP 모드는 트랜스패런트로 설정했다 다시 서버나, 클라이언트로 변경하면 된다.
Switch1(config)# vtp mode transparent
Switch1(config)# vtp mode [ server | client ]
STP
# STP가 동작하면 물리적으로 루프 구조인 네트워크에서 특정 포트를 차단 상태로 바꾸어 루프가 발생하지 않게 한다. 그러다가 동작중인 스위치나 포트가 다운되면 차단 상태의 포트를 다시 전송 상태로 바꾸어 전체 네트워크가 다운되는 것을 막아준다.
# 루프르 방지하는 원리는 스위치 특정 포트를 논리적으로 동작 못하게 블락킹하는 것이다. 그러나 대규모 네트워크 환경에서는 사용자가 직접적으로 루프의 위치를 감지하고 블락킹 포트를 선정하는 것은 무리이며 네트워크 환경에 대한 변화를 알아내는 것은 쉽지 않다.
# 이런 문제를 해결하기 위해서 STP는 스위치들간에 BPDU프레임을 멀티케스트 방식으로 교환하여 스위치들간에 물리적인 연결상태와 네트워크에 대한 변경 사항 및 루프의 위치를 결정하며 최종적으로 블락킹 포트를 자동으로 선정한다.
# 스위치의 CPU 부하 확인하기
S1# show process cpu
# STP가 동작하지 않으면 CPU 사용율은 99%까지 올라가고 스위치가 다운된다. 이렇게 스위치에 루프가 발생하면 심각한 상황이 되므로 스위치 네트워크를 조정할 때는 항상 주의해야 한다. 이중화 네트워크에서는 STP가 제대로 동작하지 않으면 생길수 있는 또 다른 문제는 특정 호스트가 동일한 프레임을 중복해서 수신할 수도 있다.
# BPDU - 스위치들은 설정 BPDU를 교환하여 루트 브릿지를 선출하고 각각의 스위치 해당 포트를 지정포트(Designated Port)와 루트포트(Root Port)로 선정한다. 이때 설정 BPDU는 항상 루프 브릿지가 생성하여 전송한다. 만약 네트워크 환경이 변경되면 루트 브릿지가 아닌 다른 스위치들도 TCN BPDU를 생성하여 루프브릿지에게 토폴로지 변경 사항을 알린다. (2초 주기로 멀티케스팅)
# 루트 브릿지 선정과정
1. Bridge ID의 우선순위가 가장 작은 스위치가 루트 브릿지로 선출되며 우선순위가 동일한 경우 MAC 주소가 가장 작은 스위치가 선출
2. 루트 브릿지가 선출된 이후 나머지 스위치들은 RP를 선정한다. 여기서 RP란 BPDU를 수신하는 포트이며 루트 브릿지에게 가장 가까운 포트로 선정된다.
3. 스위치와 스위치가 연결된 세그먼트 구간에는 DP와RP가 쌍으로 있어야 한다. 여기서 DP는 BPDU를 송싱하는 포트이며 보통 루트포트 반대편에 위치해 있다. 또한 루트 브릿지가 선출되면 루트 브릿지가 BPDU를 생성하여 전송하기 때문에 기본적으로 루트 브릿지의 포트들은 DP로 선정된다.
4. 루트 브릿지가 선출되고 DP 및 RP가 선정되면 최종적으로 남은 포트를 대체 포트로 선정하여 블락킹 상태로 차단한다. 이러한 대체 포트를 갖고 있는 스위치를 Non 루트 브릿지라고 한다.
# STP 우선순위 변경 방법
SW1(config)# spanning-tree vlan 1 priority 4096
# Blocking 과정
1. Root-Bridge 선출
1) Bridge-ID 우선순위가 가장 낮은 스위치
2) Bridge-ID MAC 주소가 가장 낮은 스위치
2. 포트 선정
1) RP(Root Port) : BPDU 수신 포트
2) DP(Designated Port) : BPDU 송신 포트
3.Blocking 포트 선정
1) 루트 브릿지에서 Cost값이 높은 포트 차단
2) Sender-Bridge-ID가 높은 구간 포트 차단
3) Port-ID가 높은 구간 포트 차단
# BPDU(Bridge Protocol Data Unit)
- STP가 동작하는 스위치간에 2초 주기로
멀티케스트를 하여 교환하는 메세지
- BPDU (Configuration BPUD)
1. Bridge-ID
2. Cost
(10M : 100, 100M : 19, 1G = 4, 10G = 2)
3. Port-ID : 128.포트번호
----------------------/ 비교&조건 단위
4. Hello-Time : 2초
5. Forward-Delay-Time : 15초
6. Max-Age-Time : 20초
IEEE 8021.d STP 포트 상태
# Blocking(BLK) - 포트가 논리적으로 차단된 상태이며 이 상태에서는 프레임 송수신이 불가능하며 오로지 BPDU 수신만 가능하다. 또한 블락킹 상태는 상대방 스위치로부터 MAX 에이지(20초) 동안 BPDU 를 수신하지 못하면 발생된다.
- 포트 차단 상태
- BPDU만 수신 가능(BPDU 송신 X, 프레임 송수신 X)
# Listening(LIS) - 블락킹 상태의 다음 단계이며 해당포트를 Forwarding 상태로 변경하기 위해서 루프 검사를 하는 상태이다. 이상태에서는 BPDU 전송이 가능하며 블락킹 상태 다음 단계로 진생될 수 있거나 또는 포트에 PC, 라우터, 스위치가 연결되면 Listening 단계부터 시작된다. 기본 15초 동안 실시
- 루프 체크 단계
- BPDU만 수신 가능(BPDU 송신 X, 프레임 송수신 X)
- Blocking 포트가 열릴때 & 사용하지 않은 포트에 노드를 연결할때 시작
- 15초 (Forward-Delay-Time)
# Learning(LRN) - Listening 상태의 다음 단계이며 해당 포트를 Forwarding 상태로 변경하기 위해서 MAC 주소를 학습하여 MAC 주소 테이블을 생성하는 상태이다.
- MAC 주소 학습 단계
- BPDU 송수신 가능(프레임 송수신 X)
- Listening 다음에 시작
- 15초 (Forward-Delay-Time)
# Forwarding(FWD) - Learning 상태의 다음 단계이며 해당 포트를 이용하여 프레임 송수신이 가능한 상태이다.
- 프레임 송수신 가능 상태
- BPDU 송수신 가능, 프레임 송수신 가능
STP의 동작원리
# STP의 동작원리
STP의 동작 원리를 이해하기 위해서는 3가지를 아셔야 합니다. 3가지는 바로 루트(Root) 스위치, 루트 포트, designnated 포트 입니다.
루트 스위치는 하나의 STP가 동작하는 스위치 네트워크 상에서는 하나의 루트 스위치가 선출된다.
이렇게 루트 스위치가 선출되고 나면, 다른 스위치들은 각각 자신의 포트 중에서 루트 포트를 하나씩 선출하게 됩니다.
루트 스위치와 루트 포트를 선출하고 나서, 마지막으로 스위치들의 나머지 포트들 중에서 한 세그먼트(segment)당 하나의 designtaed 포트가 선출이 됩니다.
세그먼트는 스위치와 스위치 사이를 연결하는 라인이라고 보시면 됩니다.
여기까지 하고도 남은 포트가 있으면 그 나머지 포트들은 자동적으로 대체 포트(alternate port)가 되는데, 이 포트들은 자동으로 차단됩니다.
이렇게 위와 같은 과정을 거치게되면, 자동적으로 루프 문제가 해결되며 하나의 스위치 네트워크상에서 모든 스위치끼리 통신이 원활히 이루어지게 됩니다. 이제부터 하나씩 선출과정을 알아보겠습니다.
먼저 아래와 같이 하나의 스위치 네트워크를 구성해 보았습니다.
<그림 10-1>
1) 루트 스위치 선출하기
먼저 루트 스위치에 선출과정에 대해서 알아보겠습니다.
우선 하나의 스위치 네트워크 상에서 모든 스위치가 루트 스위치가 될 수 있는 자격이 있습니다. 그럼 누가 루트 스위치가 될까요?
바로 브리지ID가 낮은 스위치가 루트 스위치로 선출이 됩니다.
브리지ID에서 priority 값을 비교하는데 기본으로 32768입니다. 이 값이 똑같으면 그 다음 비교하는게 MAC주소 입니다.
MAC주소 역시 가장 낮은 주소를 가진 스위치가 바로 루트 스위치가 되는 것입니다.
그럼 위 그림10-1에서 MAC주소를 비교해 보면 어떤 스위치가 루트 스위치가 될까요?
<그림 10-2>
바로 MAC주소가 가장 낮은 스위치1이 루트 스위치로 선출되었습니다. 이 루트 스위치에서 BPDU 프레임을 모든 스위치로 뿌립니다.
이제 다음 단계인 루트 포트 선출하는 과정을 알아볼까요??^^
2) 루트 포트 선출하기
루트 포트는 루트 스위치가 아닌 다른 모든 스위치에서 의무적으로 하나씩 선출해야 합니다.
선출하는 기준은 ① 루트 스위치 ID ② 경로값(path cost) ③ 브리지 ID ④ 포트 ID 이렇게 4가지 순서를 차례로 비교해 가장 낮은 값을 가진 스위치의 포트가 루트 포트로 선출되게 됩니다.
그럼 다시 그림10-2에서 보면, 루트 스위치인 스위치1을 제외한 스위치2,3에서 하나씩 루트 포트를 선출하겠죠?
그럼 우선 스위치2를 먼저 볼까요?
루트 포트를 선출하는 순서 중에서 경로값을 제외한, 루트 스위치 ID, 브리지 ID, 포트 ID는 어제 배운 BPDU에 들어있는 정보입니다.
그러므로 이 스위치 네트워크 상에서는 루트 스위치인 스위치1만 BPDU를 뿌려주므로 스위치2의 fa0/23 포트나 fa0/21 포트가 똑같은 값을 가지게 됩니다. 결국 여기선 경로값을 가지고 루트 포트를 선출하게 되겠네요.
이 스위치 네트워크는 모두 패스트 이더넷 구간이니 경로값이 19가 되겠죠?
그럼 루트 스위치까지 가는 경로값의 합을 구해야 되는데 어느 경로가 더 값이 작을까요?
<그림 10-3>
fa0/23 포트로 가면 19이고, fa0/21 포트로 가면 19 + 19 = 38 이 되죠~ 그러므로 fa0/23 포트가 루트 포트로 선출되었습니다.
그럼 스위치3도 똑같겠죠? 스위치3은 fa0/19 포트가 루트 포트가 된다는 걸 아실겁니다.
3) designated 포트 선출하기
designated 포트는 하나의 세그먼트 당 하나씩 뽑는다.. 세그먼트는 스위치끼리 연결된 라인이다..
그럼 그림10-3에서 보면, 스위치1-2 사이, 스위치1-3사이, 스위치2-3사이 이렇게 3구간에서 각각 designated 포트를 선출해야겠네요.
스위치1-2사이에선 스위치2쪽이 루트 포트로 선출되었으니 나머지 스위치1쪽의 포트가 자동으로 designated 포트로 선출 될 것입니다.
마찬가지로 스위치1-3사에서도 스위치3쪽 포트가 루트 포트 이므로, 스위치1쪽의 포트가 자동으로 designated 포트로 선출되겠죠~
그럼 마지막 스위치2-3구간만 남았네요.. 여기선 양쪽 모두 아무 포트도 선출되지 않았으므로 양쪽 다 designated 포트가 되기 위한 후보가 될 수 있겠네요~
designated 포트도 루트 포트와 똑같은 기준으로 선출과정을 거칩니다.
즉, ① 루트 스위치 ID ② 경로값(path cost) ③ 브리지 ID ④ 포트 ID 이 4가지 과정을 순서대로 비교해서 선출하는 것입니다.
그럼 스위치2-3을 비교해 볼까요?
우선 루트 스위치 ID는 동일하고, 경로값 또한 38로 똑같습니다. 세번째인 브리지ID도 priority 값은 32768로 같은데, 아! MAC주소가 다르군요~
그럼 어느 MAC주소가 더 작은지.. 비교해보면 designated 포트가 선출되겠네요?^^
<그림 10-4>
바로 스위치2의 fa0/21 포트가 designated 포트로 선출되었습니다.
마지막으로 남은 스위치3의 fa0/21 포트는 자동적으로 대체 포트로 선출이 되겠죠?^^
그리고 대체 포트는 자동적으로 차단이 되는 것까지 알 수 있겠습니다.
아래 그림10-5가 바로 대체 포트까지 선출된 완전한 STP가 동작하는 모습입니다.
<그림 10-5>
BPDU는 루트 스위치로부터 그림과 같이 화살표 방향으로 전파 됩니다.
이처럼 완전한 STP가 동작하게 되면 루프가 없는 스위치 네트워크가 구성이 되며, 만약 스위치3의 fa0/19 포트가 차단된다면 대체 포트인 fa0/21 포트가 차단이 해지되어 스위치 네트워크 상의 중단없는 원활한 흐름을 계속 가져갈 수 있게 해줄 것입니다.
STP 포트의 상태변화
# STP 포트의 상태 변화
루트 스위치와 루트 포트, designated 포트를 모두 선출 하였습니다. 그래서 루트 스위치가 다른 모든 스위치들에게 BPDU를 전파 한다고도 했었구요.. 그럼 여기서, 스위치의 포트가 로트 포트 또는 designated 포트가 되었다면 바로 루트 스위치로 부터 BPDU를 받거나, 아니면 데이타 프레임 같은 정보를 받을 수 있을까요?
결론부터 말씀 드리자면,
스위치는 5단계를 거쳐 데이타를 주고 받을 수 있는 Forwarding 상태가 됩니다.
이 5가지 단계는 Disabled -> Blocking -> Listening -> Learning -> Forwarding 과 같은 상태 변화를 거쳐 최종적으로 Forwarding 상태에 이르게 됩니다.
데이타 프레임과는 다르게, BPDU 정보는 처음 상태인 disabled 상태만 아니면 나머지 4단계 상태에서는 루트 스위치로 부터 받을 수 있습니다.
그럼 이 5가지 상태의 변화를 천천히 하나씩 알아보겠습니다.
1. Disabled 상태
포트가 고장났거나 shut down된 경우. 이 상태에서는 데이타와 BPDU 모두 주고 받을 수 없으며, MAC주소 또한 배우지 못합니다.
2. Blocking 상태
shut down 된 포트를 살리거나 스위치를 재부팅 시킨 경우에 해당됩니다. 이 상태에서는 데이타는 주고받지 못하고, BPDU를 받을 수만 있습니다. 하지만 MAC주소는 여전히 배울 수가 없습니다. 어제 배운 루트 스위치를 선출하고 루트 포트, designated 포트를 선출하는 과정이 바로 이 Blocking 상태에서 일어나는 것입니다.
3. Listening 상태
2단계인 Blocking 상태에서 루트 포트나 designated 포트를 선출하면 스위치 포트는 바로 Listening 상태로 넘어가게 됩니다.
Blocking 상태에서 Listening 상태로 넘어오기 위해서는 에이징 타임은 20초를 기다려야 비로소 바뀌게 됩니다.
이때에도 아직은 데이타의 전송은 불가능하며, BPDU만 주고 받을 수 있습니다. 이 Listening 상태가 되야 루트 스위치가 드디어 BPDU를 보내기 시작하는 것입니다. 하지만 MAC주소는 아직은 배우지 못하고 있습니다.
4. Learning 상태
3단계 Listening 상태의 스위치 포트가 Forwarding delay 시간, 즉 포워딩 지연 시간(default:15초) 이 유지된다면, Learning 상태로 넘어오게 됩니다. 이 Learning 상태가 되면 비로소 MAC주소를 배우고 MAC주소 테이블을 만들기 시작합니다.
그리고 BPDU도 주고 받지만, 아직도 데이타는 주고 받지 못합니다.
5. Forwarding 상태
Listening 상태에서 15초(default forwarding 시간)를 기다리고 다시 forwarding delay 시간인 15초동안 스위치의 포트가 이 상태를 유지한다면, Forwarding 상태로 바뀌게됩니다. 이러면 BPDU 뿐만 아니라, 드디어 데이타 프레임도 주고 받을 수 있게됩니다.
이러한 5단계의 상태 변화를 거친 포트가 Fowarding 또는 Blocking 상태가 되면서, 전체 스위치 네트워크는 자연히 최적 경로만 남게 되고 루프 방지를 위한 STP가 동작하게 되는 것입니다.
그럼 실제로 변화는 과정을 한번 확인해 볼까요?
<그림 11-1>
스위치2가 루트 스위치인 스위치 네트워크 구성입니다.
스위치3을 보면 fa0/19 포트가 차단된 상태이며, fa0/21 포트로 루트 스위치로 부터 정보를 주고 받겠죠.. 그럼 간단히 먼저 확인해 볼까요?
Switch3#sh spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32769
Address 000d.ed25.9900
Cost 19
Port 23 (FastEthernet0/21)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0018.ba36.0280
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/19 Altn BLK 19 128.21 P2p
Fa0/21 Root FWD 19 128.23 P2p
그럼 이제 포트의 상태 변화를 보기위해, 기존 스위치3의 fa0/21번 포트를 차단해 보겠습니다.
그렇게 되면 기존에 차단되있던 fa0/19번 포트가 살아나겠죠?
이때, Blocking에서 부터 Forwarding까지의 변화를 살펴 보겠습니다.
Switch3(config)#int fa0/21
Switch3(config-if)#shut
Switch3#sh spanning-tree
:
(생략)
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/19 Root
LIS
19 128.21 P2p
포트가 Blocking 상태에서 Listening 상태로 넘어갔습니다.
Switch3#sh spanning-tree
:
(생략)
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/19 Root
LRN
19 128.21 P2p
그 다음 Learning 상태로 바뀐 모습이구요..
Switch3#sh spanning-tree
:
(생략)
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/19 Root
FWD
19 128.21 P2p
자, 드디어 Forwarding 상태로 바뀌었습니다.^^
그러나 Blocking에서부터 Forwarding까지 변하는 시간이 20초+15초+15초 = 50초,
즉, 다운 상태의 포트가 Forwarding 되기 위해서는 50초라는 시간이 필요한 것입니다.
생각보다 오래 걸리죠?^^
이 긴 컨버젼스 타임이 STP의 단점이 되기도 하는데요, 이러한 단점을 보완하기 위해 나온것이 RSTP(Rapid STP)입니다.
RSTP는 컨버젼스 타임을 획기적으로 단축시켜 Forwarding 상태까지 급격히 변하게 됩니다.
STP 컨버전스 타임 조정
# STP 컨버전스 타임 조정하기전에 말씀드릴땐 Blocking에서 Forwarding되는 시간이 20+15+15초 해서 총 50초가 걸린다고만 말씀 드리고 넘어갔습니다.이번 시간에 자세히 말씀드리면, Blocking에서 Listening까지 걸리는 시간이 20초이고, 이를 맥스 에이지(max age)라고 합니다.
그리고 Listening에서 Learning까지 걸리는 시간이 15초, Learning에서 Forwarding까지 걸리는 시간이 15초입니다. 그래서 총 50초가 소요되어, 컨버젼스 타임이 50초가 되는 것입니다.
그럼 이제 본론으로 들어가서.. 컨버젼스 타임은.. 어떠한 추가나 수정, 삭제 등으로 인한 설정으로 토폴로지가 변화했을 때 이것을 반영해서 네트워크가 재구성될 때까지 소요되는 시간을 말합니다. 저번에 언급했듯이 STP가 가지는 큰 문제점 중에 하나가 이 컨버젼스 시간이 너무 길다는 것 입니다.
그럼 어떤 문제가 생길까요?
STP를 사용하는 이유가 루프를 방지하기 위해서였죠.. 그리고 다운이 될 경우 막아놨던 링크를 Forwading 시켜 네트워크가 중단없이 원활한 통신이 되야하는거죠~
그런데, 어제 배운 STP가 동작하는 스위치 포트상태의 변화를 보면 Blocking에서 Forwarding까지가는 시간, 즉 컨버젼스 타임이 50초나 걸렸죠. 그럼 결국 이 50초 동안은 네트워크가 멈춰버리게 되는 것입니다. 즉, STP가 제 역할을 하지 못한다고 볼 수가 있습니다. 이제 이 컨버젼스 타임을 줄여봐야겠죠?^^
먼저 시스코에서 나온 포트 패스트(portfast), 업링크 패스트(uplinkfast), 백본 패스트(backbonefast) 이 3가지에 대해 알아보겠습니다.
1. 포트 패스트(portfast)
포트 패스트는 PC나 서버 등 종단 시스템(end system), 즉 가장자리에 있는 스위칭이 필요없는 장비와 연결된 포트에서 사용을 합니다. 스위치가 부팅되는 순간 바로 Forwarding 상태로 변하게 됩니다. 50초간의 컨버젼스 타임없이 순식간에 Forwarding 된다니.. 신기하네요^^
그럼 같이 설정해 볼까요?
[포트 패스트 활성화 시키기]
Switch1(config)# spanning-tree portfast default
%Warning: this command enables portfast by default on all interfaces. You
should now disable portfast explicitly on switched ports leading to hubs,
switches and bridges as they may create temporary bridging loops.
이처럼 디폴트 명령어로 전체 포트에서 포트 패스트를 활성화 시킬 수 있습니다.
하지만 이렇게 하면 종단 장비가 아닌 모든 장비와 연결된 포트가 전부 포트 패스트 활성화가 되서 문제가 생기겠죠?
경고 문구처럼 이 명령어는 주의해서 설정하셔야 합니다.
그러므로 다음과 같이 포트별로 포트 패스트 활성화 시키는 것을 권장합니다.
[포트별 포트 패스트 활성화 시키기]
Switch1(config-if)# spanning-tree portfast
%Warning: portfast should only be enabled on ports connected to a single
host. Connecting hubs, concentrators, switches, bridges, etc... to this
interface when portfast is enabled, can cause temporary bridging loops.
Use with CAUTION
%Portfast has been configured on FastEthernet0/1 but will only
have effect when the interface is in a non-trunking mode.
이번에도 경고 문구가 나오죠.. 포트 패스트가 활성화된 인터페이스에 허브, 스위치 등이 연결하면 일시적으로 루프가 발생할 수도 있다고.. 머 그런소리네요^^
실제적으로 BPDU가 차단되고 일시적인 루프 현상이 발생할 수도 있다는 단점이 있습니다.
그럼 간단히 확인 후 다음 업링크 패스트를 알아보겠습니다.
[포트 패스트 설정 확인하기]
Switch1# sh spanning-tree summary
Switch is in pvst mode
Root bridge for: VLAN0001
Extended system ID is enabled
Portfast Default is enabled
PortFast BPDU Guard Default is disabled
Portfast BPDU Filter Default is disabled
Loopguard Default is disabled
EtherChannel misconfig guard is enabled
UplinkFast is disabled
BackboneFast is disabled
:2. 업링크 패스트(uplinkfast)
업링크 패스트는 자신에게 직접 연결된 링크가 다운되었을 때, 차단 상태였던 포트를 즉시 Forwarding 시키는 역할을 합니다.
링크가 다운되면, 차단 되었던 포트는 Blocking에서 Listening으로 상태가 변하게 됩니다.
그럼 Listening에서 Forwarding까지의 시간, 15 + 15 = 30초의 시간이 소요됩니다. 이때 업링크 패스트를 설정하면 이 30초의 시간을 단축하여 바로 Forwarding으로 만들 수 있게 됩니다.
<그림 13-1>
위 그림처럼 스위치3에 업링크 패스트를 설정한 후 fa0/22 포트가 다운되면, 차단되어있던 fa0/20 포트가 Forwarding 상태로 바로 바뀌게 됩니다.
같이 한번 설정해 보겠습니다.~
[업링크 패스트 설정하기]
Switch3(config)# spanning-tree uplinkfast
그럼 이제 한번 스위치3의 fa0/22 포트를 다운시키고 fa0/20 포트가 어떻게 변하는지 살펴볼까요?
[업링크 패스트 디버깅하기]
Switch3# debug spanning-tree uplinkfast
Switch3(config)# int fa0/22
Switch3(config-if)# shutdown00:22:44: STP FAST: UPLINKFAST: make_forwarding on VLAN0001 FastEthernet0/20 root port id new: 128.24 prev: 128.2300:22:44: %SPANTREE_FAST-7-PORT_FWD_UPLINK: VLAN0001 FastEthernet0/20 moved to Forwarding (UplinkFast).
3. 백본 패스트(backbonefast)
자 마지막 백본 패스트는 업링크 패스트와 구분하여, 직접 연결된 링크가 아닌 간접 링크가 다운되었을 경우에 해당이 됩니다.
이 때, 차단 상태의 포트를 Blocking에서 맥스 에이지(20초) 시간을 단축하고 바로 Listening 상태로 바꿔주는 역할을 합니다.
즉, 컨버젼스 타임이 20초가 줄어들어 30초가 되는 것이겠죠^^
그럼 같이 설정해 볼까요?
<그림 13-2>
[백본 패스트 설정하기]
Switch3(config)#spanning-tree backbonefast
이처럼 설정한 후 스위치3의 fa0/22 포트를 다운시킨후 스위치1에서 확인해 보겠습니다.
[백본 패스트 디버깅하기]
Switch3(config)# int fa0/22
Switch3(config-if)# shutdownSwitch1# debug spanning-tree backbonefast00:44:49: STP: VLAN0001 heard root 28673-000d.6576.e980 on Fa0/19
00:44:49: STP: VLAN0001 Fa0/19 -> listening
00:44:50: STP: VLAN0001 Topology Change rcvd on Fa0/19
00:44:50: STP: VLAN0001 sent Topology Change Notice on Fa0/24
00:44:56: STP: VLAN0001 Fa0/19 -> learning
00:45:12: STP: VLAN0001 sent Topology change Notice on Fa0/24
00:45:12: STP: VLAN0001 Fa9/19 -> forwarding
자, 컨버젼스 타임을 단축시키기 위해 이처럼 3가지에 대해서 모두 알아보았습니다. 그럼 마지막으로 하나만 더 알아볼까요?컨버젼스 타임을 줄이기 위한 마지막 방법이 있습니다.
바로, 직접 STP의 헬로타임, 맥스에이지, Forward delay를 조정하여 줄이는 것입니다. STP에서 기본적으로 50초가 컨버젼스 타임인데, 우선 먼저 확인해 볼까요?
[스패닝 트리 타이머 확인하기]
Switch2# sh spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32769
Address 000d.ed25.9900
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 000d.ed25.9900
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
이제 이 타이머들의 시간을 줄여보도록 하겠습니다. 그런데 여기서 주의할 점이 한가지 있습니다.이 헬로타임이나 맥스에이지, forward delay를 마음대로 줄여 컨버젼스 타임을 단축시키면 좋겠지만, 그렇게되면 루프가 발생할 확률이 커지게 됩니다. 그래서 디아미터(diameter), 즉 미리 정해놓은 안전한 값들을 확인하여 조정해줘야 합니다.
그럼 2-7까지 디아미터별로 적정 타이머 값을 확인해 보겠습니다.
*diameter 2 3 4 5 6 7hello time 2 2 2 2 2 2max age 7 9 10 12 13 15forward delay 10 12 14 16 18 20
보시는 바와 같이 기본값은 디아미터7을 따르고 있네요. 그럼 디아미터2에 속하는 타이머값을 가지고 설정을 해보겠습니다.
[타이머 조정하기]
Switch2(config)# spanning-tree vlan 1 hello-time 2
Switch2(config)# spanning-tree vlan 1 forward-time 7
Switch2(config)# spanning-tree vlan 1 max-age 10
Switch2# sh spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32769
Address 000d.ed25.9900
This bridge is the root
Hello Time 2 sec Max Age 10 sec Forward Delay 7 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 000d.ed25.9900
Hello Time 2 sec Max Age 10 sec Forward Delay 7 sec
Aging Time 300
타이머를 조정한 후 확인 결과, 컨버젼스 타임이 10 + 7 + 7 = 24로 확 줄어들었습니다.
출처 :
댓글