CCNP(SWITCH)

8일차 STP

컴공 2013. 3. 15. 21:41
반응형

과외가
일주일 2~3번 하루 2시간
30~40만원
교재 cisco, self study (질문과 답변)

스위치는 거의 모든 기능이 자동화
편리함 강조, 비전문가도 사용가능
비효율적인면이 있어 전문가의 조정이 필요하다.
STP:spanningtree protocol
IEEE802.1D=CST=common spanning-tree
물리적으로 루프 구조인 스위치 마엥서는 무한 루프가 새익거나 맥 중복 학

습이 생긴다. 이를 피하기 위해 물리적인 루프 구조를 논리적인 tree구조

즉 단일 구조로 만들어 루프구조를 논리족으로 끊는것.
물리적 루프구조가 아닌 트리구조인경우 필요없다

엔드단은 모두 같은 장비로 설정해야지 blk포트를 forward로 만들 수 이싿.

blk 포트를 만드는 규칙
1. 스위치는 2초마다 BPDU라는 스위치 메시지를 발생시킨다.
BPDU = bridge ID = priority + ( vlan ID:다이나밉스는 없다 ) + mac 주소
priority가 가장 낮은 장비를 root bridge로 선출한다.
priority는 cisco default값이 32768이다.

priority가 동일하면 mac주소가 낮은 장비가 root bridge가 된다.
mac주소가 낮다 = old

old = 오류 발생 ==> blk위치가 달라진다(망이 불안정해진다)

priority를 조정해야 하는 이유
1. 최신의 장비(성능이 뛰어난 장비)를 root로 선출하기 위해
2. blk 포트의 위치를 조정하기 위해서
 ==>로드 분산, 이중화
blk(부대장)
======================================
포트역할 (port role)

root bridge의 모든 포트는
DP(designated port=FWD) 데이터를 전송하는 포트
configuration BPDU(root bridge 메시지)를 전송한다.

RP:root port = FWD
root bridge와 가장 가까운 포트

BPDU 2가지 종류
configuration BPDU를 수신하고 TCN BPDU를 송신한다.
topology change notification BPDU = 보고 프레임

=================================
STP 상태 변화
block, disable, max age : 20초

listen : 15초 (대장이 하는말을 들음)
learn : 15초
forwarding
block ===> forwarding : 50초

상황이 2가지로 나뉨
상황 1
blk(blunk)를 가지고 있는 스위치와 직접 연결된 링크가 다운이 되면
block(max-age)상태는 생략하고 listen부터 시작
즉, listen(15초) ==> run(15초) ==> forwarding 총 30초

상황 2
blk를 가지고 있는 스위치와 직접 연결되지 않은 링크가 다운이 되면
총 50초가 걸린다.

직접연결 --폭주인지 아닌지 확인한다고 (loop gruard:루프백 폭주를 막아

준다)
=================================

IEEE802.1D =CST
PvST+ = cisco / CST와 호환성이 있다.(시험에서는 있고 실제는 ㅓㅇㅄ다)
===>
장점 : 루핑방지, VLAN별 로드분산
단점 : 수렴이 느리다(30~50)

수렴 느린 현상을 보완한 CISCO솔루션
uplinkfast
backbonefast
portfast
 V S
위의 cisco 솔루션을 표준화 시킨 솔루션
IEEE802.1w = RSTP

따라서 위의 CISCO 솔루션과 RSTP를 같이 쓰면 안된다.

CST, PvST+, RSTP의 단점
모두가 VLAN별 계산을 한다.

iEEE802.1s = MSTP = MST
동일 경로를 타고가는 VLAN을 instance라는 개념을 묶어서 한번만 계산한다

.

이더넷스위치 ( 일반적 상품명 ) , 카탈리스트 ( cisco 상품명 )
\\\\\\\\\\\\실습
sw1
show vlan-swi brief
vlan 10,20
show spanning-tree vlan 1 bri
show spann vlan 10 bri
//원칙상 DTP를 만족하면 trunk가 자동으로 생긴다.
//native vlan1만 마음대로 돈다.
//트렁크를 넘어가지 못함
//Spanning tree instance for VLAN 10 does not exist.
//spanning은 물리적 루프에서만 존재하나 DTP가 동작안해서 안된다.
int ran fa 1/11 , fa 1/15
sw tr en dot
sw mo tr

sw2
vlan 10,20
int ran fa 1/10 , fa 1/15
sw tr en dot
sw mo tr


sw3
vlan 10,20
int ran fa 1/11 - 12
sw t en dot
sw mo tr

\\\\\\\\\다음설정이 끝나면 vlan 10의 스패닝 트리가 보인다.
show int trunk
sw1#show spanning-tree vlan 10 brief

VLAN10
  Spanning tree enabled protocol ieee
  Root ID    Priority    32768
             Address     cc00.0d88.0001
             This bridge is the root
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32768
             Address     cc00.0d88.0001
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300

Interface                                   Designated
Name                 Port ID Prio Cost  Sts Cost  Bridge ID            Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/11     128.52   128    19 FWD     0 32768 cc00.0d88.0001 128.52
FastEthernet1/15     128.56   128    19 FWD     0 32768 cc00.0d88.0001 128.56


vlan 조정 방법 1
1/12번을 blk로 만들어놨다.
vlan 10에 대해서 sw2번의 15번 포트를 blk가 되도록 조정하자

sw3:root bridge
sw2:backup bridge

priority를 조정하는 방법(비추)
==> 절대값을 사용하면 복수대의 장비가 root가 될 수 있다.
\\\협상방법 1번째\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
## sw1
spanning vlan 10 priority 4096
//SW: 32768

## sw2
show spann vlan 10 brief
## sw3
conf t
spanning-tree vlan 10 priority 0
//0은 절대값이므로

조정방법 2 강추
vlan 20에 대해서 SW1의 fa1/11을 blk로 만들기

sw2:root bridge
sw3:backup bridge


sw2
span vlan 20 root primary diameter 3
//diameter 3 (장비의 대수를 말해주고 알아서 줄이도록 한다)
// 협상을 해서 확인하고 줄여준다.
listen + learn = forward delay
20초가 나온 이유는  일반적으로 7대(24port)이상의 스위치는 쓰지 않는다고 여김
\\\협상방법 2번째\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
# sw2
sw2(config)#spanning-tree vlan 20 root primary diameter 3
 VLAN 20 bridge priority set to 8192
 VLAN 20 bridge max aging time set to 12
 VLAN 20 bridge hello time unchanged at 2
 VLAN 20 bridge forward delay set to 9
# sw3
sw3(config)#spanning-tree vlan 20 root secondary diameter 3
 VLAN 20 bridge priority set to 16384
 VLAN 20 bridge max aging time set to 12
 VLAN 20 bridge hello time unchanged at 2
 VLAN 20 bridge forward delay set to 9
# sw1
sw1#show spanning-tree vlan 20 bri

VLAN20
  Spanning tree enabled protocol ieee
  Root ID    Priority    8192
             Address     cc01.0d88.0002
             Cost        19
             Port        56 (FastEthernet1/15)
             Hello Time   2 sec  Max Age 12 sec  Forward Delay  9 sec

  Bridge ID  Priority    32768
             Address     cc00.0d88.0002
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300

Interface                                   Designated
Name                 Port ID Prio Cost  Sts Cost  Bridge ID            Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/11     128.52   128    19 BLK    19 16384 cc02.0d88.0002 128.52
FastEthernet1/15     128.56   128    19 FWD     0  8192 cc01.0d88.0002 128.56

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
20초의 대기시간이 있는 이유 (cisco 실험실에서 7대의장비(24개의 포트)
7대 2초씩 bpdu    14초
hello 대기 2초 씩  6초
==================20초
\\\\\\\\\\\\\\상태변화 모니터\\\\\\\\\\\\\\\\\\
vlan 2
sw2#show spanning-tree vlan 10 bri
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/10     128.51   128    19 FWD     0     0 cc02.0d88.0001 128.53
FastEthernet1/15     128.56   128    19 BLK    19  4096 cc00.0d88.0001 128.56

sw2#debug spanning-tree events
sw2(config)#int fa 1/10
sw2(config-if)#shu
sw2(config-if)#
*Mar  1 01:42:19.591: %DTP-5-NONTRUNKPORTON: Port Fa1/10 has become non-trunk
sw2(config-if)#
*Mar  1 01:42:21.003: %LINK-5-CHANGED: Interface FastEthernet1/10, changed state to administratively down
sw2(config-if)#
*Mar  1 01:42:21.075: STP: VLAN10 sent Topology Change Notice on Fa1/15 /// 대장에게 보고하는 것
*Mar  1 01:42:34.091: STP: VLAN10 Fa1/15 -> learning
*Mar  1 01:42:49.107: STP: VLAN10 Fa1/15 -> forwarding
blk를 가지고 있는 스위치가 다운되면 30초 후 blk포트가 fowarding이 된다

sw2
#span uplinkfast

결론
blk를 가지고 있는 스위치와 직접 연결된 링크가 다운되면
STP는 listen+ learn 시간만큼 기다렸다가 blk를 forwarding으로 상태변화시킨다.
그런데 blk를 가지고 있는 스위치에서 spanning-tree uplinkfast를 설정하면 즉시 기다리지 않고 STP 상태 변화를 하지않고 바로 forwading 상태가 된다. 즉, 30초 save.

주의사항 : 반드시 blk를 가지고 있는 스위치에서 설정한다.
 루트에 설정하면 루트가 루트를 포기할 수도 있다.


sw2(config)#spanning-tree uplinkfast max-update-rate ?
  <0-65535>  Maximum number of update packets per second

uplink옵션 초당 150packet인데 1초에 6만바이트를 쏠 수 있게 설정할 수 있다.

==================
blk를 가지고 있는 스위치(sw_fa1/15)와 직접 연결되지 않은 포트(sw3_fa1/11)가 다운될 때

sw3
int fa 1/11
shu
-----하고나서 sw2번에서의 로그
*Mar  1 01:55:48.431: STP: VLAN20 Topology Change rcvd on Fa1/10
sw2#
*Mar  1 01:56:06.991: STP: VLAN10 Fa1/15 -> listening
*Mar  1 01:56:21.991: STP: VLAN10 Fa1/15 -> learning
*Mar  1 01:56:36.995: STP: VLAN10 Fa1/15 -> forwarding

sw1/2/3

sw1(config)#spanning-tree backbonefast //max age를 생략한다

결론
연결된 모든 스위치에서 backbonefast를 활성화시키면
blk를 가지고 있는 스위치와 직접 연결 되지 않은 링크가 다운되었을 때
50초 걸리던 stp 상태 변화 시간을 30초로 단축시켜준다.
즉 max-age 시간만큼은 절약 해 준다.
--> 연결된 모든 스위치를 해줘야한다. 안하면 오작동한다.

===================================================

포트패스트

sw3
debug span events
conf t
int fa 1/3
shutdown
sw mo acc
sw acc vlan 10
no shut

STP는 스위치끼리 연결된 경우 루핑 방지를 위해 만들었다.
그런데 스위치가 스위치끼리 연결된지를 알 수 없어서 무조건 스위치가 아닌 장비가 연결되어도 stp 상태변화를 한다.
// pc나 서버에 안할 경우 바로 포워딩이 낫다.


sw3(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 spanning tree loops.
 Use with CAUTION

%Portfast has been configured on FastEthernet1/3 but will only
 have effect when the interface is in a non-trunking mode.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//물리적 서버|pc|라우터가 한개여야한다. 스위치랑 라우터를 연결시 일시적인 루핑이 발생할 수 있다.
반드시 portfast는 스위치가 아닌 장비가 연결된 포트에서 사용한다.
( pc | 서버 | 라우터 )
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// no shut 시 바로 포워딩으로 바뀐다.
sw3(config-if)#no shut
sw3(config-if)#
*Mar  1 02:08:37.895: STP: VLAN10 Fa1/3 ->jump to forwarding from blocking
sw3(config-if)#
*Mar  1 02:08:40.771: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/3, changed state to up

stp 상태 변화를 생략하고 곧바로 forwarding 상태로 변환된다.

========================================================
portfast를 적용했을 때는 스위치를 해당 포트에 연결할 수 없도록 bpdu guard 솔루션을 적용시킨다.
bpdu guard는 해당 포트에서 새로운 스위치가 수신되면 해당 포트를 차단시켜준다.

# bpdu 적용
spann portfast
exi
span port bpdu

sw3
int fa 1/15
no shut
sw tr en dot
sw mo trunk


sw4
debug span even
conf t
int f1/15
shut
span portfast
exi
span port bpdu


-----
sw4(config)#int fa 1/15
sw4(config-if)#no shut
sw4(config-if)#
*Mar  1 00:03:32.583: STP: VLAN1 Fa1/15 ->jump to forwarding from blocking
*Mar  1 00:03:32.899: %SPANTREE-2-RX_PORTFAST: Received BPDU on PortFast enabled port. Disabling FastEthernet1/15.
*Mar  1 00:03:32.903: %PM-4-ERR_DISABLE: bpduguard error detected on *Mar  1 00:03:32.923: STP: VLAN1 Fa1/15 -> blocking

portfast가 설정되어있으므로 STP 상태변화를 생략하고 바로 forwarding 된다
바로 forwarding되면 bpdu를 수신하게 되고 bpdu를 수신하면 bpdu guard가 동작해서 해당 포트를 shutdown시킨다.

sw4#show interfaces status
Fa1/15                     err-disabled 1            auto    auto 10/100BaseTX

disable - shutdown
err-disable 위반되어졌거나 정책위반
\\\\\\\\\\ 오류난 이유를 확인하는 방법
sw4#show interfaces status err-disabled
Port    Name               Status       Reason
Fa1/15                     err-disabled bpduguard

err-disable 포트를 up 시키려면 반드시 위반 사항을 제거하고 나서
shutdown을 치고 no shut이라고 입력해야 한다. (반드시 죽이고 살려야 한다)
int fa 1/15
shut
no shut 시 또 죽임

자동화 솔루션이있음
sw4(config)#errdisable recovery cause bpduguard
sw4(config)#errdisable recovery interval 30
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

# 라우터가 아니라 인터넷을 절제시간을 확인

반응형

'CCNP(SWITCH)' 카테고리의 다른 글

10일차 dot1q 인증(ACS서버)  (0) 2013.03.19
9일차 STP 인터넷망 연결 & 백업 및 로그 솔루션  (0) 2013.03.18
7일차 DHCP 설정 및 helper  (0) 2013.03.15
7일차 DHCP,  (0) 2013.03.14
6일차 망속도 제한, SVI  (0) 2013.03.13