Switch

[Config] STP Convergence Time 조정

SH.S 2014. 9. 25. 13:35
 

STP Convergence Time 조정

STP 장애 발생시 이중화가 되어있어도 30~50초간 스위치 네트워크의 다운상태가 지속되는 컨버전스 시간이 길다는 단점이 존재한다. 컨버전스 시간을 조정하는 방법은 시스코에서 개발한 Port-fast, Uplink-fast, Backbone-fast 사용하거나, 전송지연시간을 명령어를 통해 직접 조정할 있다.

또는 RSTP MSTP 사용하기도 한다.

 

STP Timer

Hello : Hello시간은 스위치간 BPDU 보내는 시간으로 2초가 기본설정되어있다.

   1~10 사이로 시간조정이 가능하다

Forward delay : Listening Learning시간으로 보내는 시간으로 모두 15초로 기본설정되어있다.

   4~30 사이로 시간조정이 가능하다

Max-age : 20초로 기본설정 되어있고 6~40 사이로 시간조정이 가능하다

 

 

실습을 위한 테스트 네트워크 구성

 

 

 

 

포트패스트 (Port-fast)

스위치의 모든 포트는 어떤 장비와 연결이 되던 활성화가 되면 기본적으로 Listening - Learning 상태를 거쳐서 전송상태로 변경된다. 하지만 PC 서버와 같은 End-Device 장비가 연결된 포트는 루프가 발생되지 않기 때문에 활성화 되자마자 바로 전송상태가 되어도 문제가 되지 않는다.

포트패스트는 포트가 활성화되면 바로 전송상태가 되게 하는 으로 PC 서버와 같은 종단장치가 연결된 포트에 주로 설정한다.

 

Configuration

@ Global configuration Mode

Switch(config)# spanning-tree portfast default     : 스위치의 모든 엑세스 포트에 포트패스트 설정

 

@ Interface configuration Mode

Switch(config-if)# spanning-tree portfast    : 해당 포트에 포트패스트 설정, 기본적으로 엑세스만 가능

Switch(config-if)# spanning-tree portfast trunk    : Loop 없는 토폴로지의 트렁크는 설정 가능

----------------------------------------------------

확인 : show interface fx/x switchport

 

 

포트패스트 동작 확인 실습

SW3에서 포트패스트 동작을 확인하기 위해 디버깅을 시작한다.

SW3# debug spanning-tree events

 

설정 , 인터페이스가 활성화 되었을때 Forwarding Delay되는 것을 보기 위해 포트를 다운시켰다가 살려본다.

SW3(config)# interface f0/8

SW3(config-if)# shutdown

SW3(config-if)# no shutdown

 

전역 설정 모드에서 포트패스트 활성화 시키기

SW3(config)# spanning-tree portfast default

허브, 스위치 브리지가 연결된 포트들은 일시적인 루프가 발생될 있다는 경고 메시지가 뜬다.

 

라우터가 연결된 f0/8 셧다운 시켰다가 활성화 시키면 포트패스트 기능에 의해 바로 전송상태로 변경된다.

스위치가 연결된 포트도 다운시켰다가 활성화시켜보자.

현재 다이나믹 오토로 설정되어 있는 스위치들은 포트가 전부 엑세스로 동작되고 있어서 포트 패스트가 활성화 된다.

SW2 연결된 f0/13 다운시켰다가 활성화 시키면 차단 상태에서 바로 전송상태가 되는 것을 확인할 있다.

하지만 STP 의해 블럭킹 되야하는 포트이므로 잠시 다시 차단상태로 변경된다.

SW3(config)# interface f0/13

SW3(config-if)# shutdown

SW3(config-if)# no shutdown

01 :36:37: STP: VLAN0001 Fa0/13 ->jump to forwarding from blocking

01 :36:37: STP: VLAN0001 Fa0/13 -> blocking

일시적으로 프레임 루프가 발생될 수있기 때문에 가능하면 전역 설정 모드에서 설정하지 않는 것이 좋다.

 

인터페이스 설정 모드에서 포트패스트 활성화 시키기

SW3(config)# interface f0/8

SW3(config-if)# spanning-tree portfast

포트패스트가 설정되었지만 트렁크 포트가 아닐때만 적용된다는 경고 메시지가 뜬다

 

만일 루프가 발생되지 않는다면 트렁크 포트에서도 설정할 있다.

SW3(config-if)# spanning-tree portfast trunk

 

 

 

업링크 패스트 (Uplink-fast)

정상적인 링크가 다운이 경우 대체포트를 전송상태로 변경하기 위해서 30초의 컨버전스 시간이 필요하다. 업링크 패스트는 직접 연결된 링크가 다운되었을 Forward Delay(30) 기다리지 않고 대체포트를 차단상태에서 즉시 전송상태로 변경한다.

Uplink 루트 스위치로 가는 길을 말하며, Uplink Switch 대체포트를 가진 스위치를 말한다.

우선순위를 조정하지 않은 스위치에서 업링크패스트를 설정하면 해당 스위치를 종단 스위치로 만들기 위해서 기본 우선순위인 32768 49152 변경하므로 주의해야 한다.

 

Configuration

@ Global configuration Mode

Switch(config)# spanning-tree uplinkfast

-------------------------------------------------

확인 : show spanning-tree uplinkfast

 

 

업링크패스트 동작 확인 실습

 

설정 , 백업링크가 전송상태로 변하는데 30초가 걸리는 것을 디버깅을 통해 확인한다.

SW3(config)# interface f0/1

SW3(config-if)# shutdown

02:11 :28: STP: VLAN0001 Fa0/13 -> listening

02:11 :43: STP: VLAN0001 Fa0/13 -> learning

02:11:58: STP: VLAN0001 Fa0/13 -> forwarding

 

전역 설정 모드에서 업링크 패스트를 설정한다.

SW3(config)# spanning-tree uplinkfast

설정은 종단 스위치에서 설정해야 하고, 루트 스위치에서는 설정해도 효과가 없다.

업링크 패스트를 설정하면 해당 스위치를 엑세스 스위치로 만들기 위해 자신의 우선순위를 기본 32768에서 49152 변경한다. 따라서 조정하지 않은 상태의 루트 스위치에서 명령어를 사용하게 되면 엑세스 스위치로 변경되므로 주의해야 한다.

 

SW3(config)# interface f0/1

SW3(config-if)# shutdown

업링크 패스트에 의해 차단포트가 바로 전송상태로 변경되는것을 확인할 있다.

 

 

 

백본패스트 (Backbone-fast)

백본패스트는 간접적으로 연결된 링크가 다운되었을 Max-age(20) 생략하고 차단 상태의 대체포트를 즉시 청취상태로 변경시킨다.

STP 동작되고 있는 스위치 망에서 간접링크가 다운되면 대체포트를 가진 스위치는 후순위 BPDU 통해 링크의 다운을 감지한다. (후순위 BPDU : 루트스위치의 B-ID 보다 우선순위가 떨어지는 BPDU)

기본적으로는 Max-age 20초동안(후순위 BPDU 10 받는동안) 기다리다가 대체포트를 청취상태로 변경하게 되는데, 백본패스트를 설정하면 후순위 BPDU 받으면 그냥 Max-age 생략하는 것이 아니라, 대체포트를 가진 스위치가 루트스위치고 RLQ(Root Link Query) 전송하여 루트스위치로부터 응답을 받아 이상이 없음을 확인하면 Max-age 만료하고 청취상태로 변경시킨다.

 

Configuration

@ Global configuration Mode

Switch(config)# spanning-tree backbonefast

-------------------------------------------------

확인 : show spanning-tree backbonefast

 

 

백본패스트 동작 확인 실습

설정 , 간접 링크가 다운되었을 컨버전스 시간이 걸리는 과정을 디버깅 해본다.

SW2(config)# interface f0/11

SW2(config-if)# shutdown

SW3# debug spanning-tree events

03:29:18: STP: VLAN0001 heard root 4097-001a.2fd4.0f80 on Fa0/13

03:29:19: STP: VLAN0001 heard root 4097-001a.2fd4.0f80 on Fa0/13

:  (생략)

03:29:33: STP: VLAN0001 heard root 4097-001a.2fd4.0f80 on Fa0/13

03:29:35: STP: VLAN0001 heard root 4097-001a.2fd4.0f80 on Fa0/13

03:29:36: STP: VLAN0001 Fa0/13 -> listening

03:29:51: STP: VLAN0001 Fa0/13 -> learning

03:30:06: STP: VLAN0001 Fa0/13 -> forwarding

 

루트 스위치와 연결이 끊긴 SW2 자신의 B-ID R-ID 넣은 후순위 BPDU SW3에게 전달한다.

SW3 Max-age 시간인 20초동안 BPDU 10 받고난 후에 청취상태로 들어가게 된다.

 

모든 스위치에서 백본패스트를 설정한다.

SW1(config)# spanning-tree backbonefast

SW2(config)# spanning-tree backbonefast

SW3(config)# spanning-tree backbonefast

 

백본패스트 동작을 확인하기 위해 SW2 f0/11 포트를 다운시켜본다.

SW2에서 디버깅으로 확인해보면 후순위 BPDU 수신하는 즉시 차단포트를 청취상태로 변경시키는것을 확인할 있다

SW3#

03:37:59: STP: VLAN0001 heard root 4097-001a.2fd4.0f80 on Fa0/12

03:37:59: STP: VLAN0001 Fa0/12 -> listening

03:38:14: STP: VLAN0001 Fa0/12 -> learning

03:38:29: STP: VLAN0001 Fa0/12 -> forwarding

 

 

STP Timer 직접 조정

Default Timer : Hello (2sec), Max-age (20sec), Forward (15sec)

기본 타이머 시간을 직접 조정하여 컨버전스 시간을 단축 시킬 있는데, 이는 반드시 루트스위치에서 조정해야만 전체 네트워크에 적용된다. 조정할 있는 범위가 지정되어있어서 아예 없앨수는 없다.

 

네트워크 Diameter(디아미터) 조절하면 자동적으로 적정 타이머 값으로 변경되는데, 여기서 Diameter Root 스위치를 포함해서 가장 멀리 떨어진 스위치의 수량을 의미한다. Diameter 타이머 값은 아래와 같고 기본적으로 사용하고 있는 타이머 값은 네트워크 디아미터가 7 경우를 가정하고 설정된 것이다.

 

Diameter

2

3

4

5

6

7

Hello

2

2

2

2

2

2

Delay

7

9

10

12

13

15

Max-age

10

12

14

16

18

20

 

값을 이용하여 자동적으로 변경하고자 하면 아래와 같이 설정할 있다.

SW1(config)# spanning-tree vlan 10 root primary diameter 4

 

관리자가 원하는대로 조정하고 싶다면 아래와 같은 명령어로 변경할 있다.

Hello time 조정 (컨버전스 시간 줄이는데 영향을 주지 않고 부하만 주기 때문에 권장X)

Switch(config)# spanning-tree vlan x helllo-time x (1~10sec)

Max-age 조정

Switch(config)# spanning-tree vlan x max-age x (6~40sec)

Forward time 조정

Switch(config)# spanning-tree vlan x forward-time x (4~30sec)