'네트워크'에 해당하는 글 1건

STP 계산

네트워크 2010.11.17 16:13
1. STP 시간 변경 
  스위치가 구동되면 스패닝트리가 구성되는 동안 max-age 20초(blocking)   --->  forward 각각15초씩( listening, learning)  ---> 포워딩 상태를 거친다.
  그러나 너무 시간이 길기 때문에 시간을 조정 할 수 있다.

 - 설정 법
  sw(config)# spanning-tree vlan [VLAN-ID] ?
       forward-time    Set the forward delay for the spanning tree  (listening, learning 타임을 조정)
       hello-time        Set the hello interval for the spanning tree   
       max-age         Set the max age interval for the spanning tree  (blocking 타임을 조정)
       priority             Set the bridge priority for the spanning tree 
       root                 Configure switch as root

  sw1(config)#spanning-tree vlan 1 forward-time ?
          <4-30>  number of seconds for the forward delay timer

  sw1(config)#spanning-tree vlan 1 max-age ?
          <6-40>  maximum number of seconds the information in a BPDU is valid

2. Portfast
  PortFast  (30초 --> 0초,  스위치가 처음 가동 될떄 (30초: Blocking, lisenning, learning)과정을 생략) PC나 서버 같은 종단장비와 연결된 포트의 스위치가
부팅이나 장애시 복구가 될때,  포트변화 단계를  거치지 않고 바로 전송단계로 동작하게 하는 설정이다. 일반적으로 트렁크 포트에는 사용하지 않고, 엑세스 포트에 사용한다.

    -  설정 법:  -  스위치 모든 포트에 Portfast를 적용하는 명령어 :    sw(config)#spanning-tree portfast default  
                     -  해당 스위치 포트에만 Portfast를 적용하는 명령어:    sw(config-if)#spanning-tree portfast

     cf) switchport host 명령어 = portpast + access mode (엑세스 포트지정과 portpast로 한꺼번에 설정하는 명령어)
                  SW1(config-if)#switchport host 
                  switchport mode will be set to access (엑세스 포트로 지정)
                  spanning-tree portfast will be enabled  (포트패스트로 지정)
                  channel group will be disabled


    cf) 실무에서 사용하지는 않지만 트렁크 포트에 portfast를 설정 할수도 있는데, 엑세스 포트에 설정하는 portfast와 다르다. 
         portpast이지만 port변화 상태를 건너뛰고 BPDU는 송수신한다.  그러나 루프를 발생 시킬위험이 있기 때문에 사용하지는 않는다.
         - 설정법 : 트렁크포트인터페이스 sw(config-if)#spaning-tree portfast trunk

3. Uplinkfast  (30초 --> 0초, 업링크스위치와 대장스위치 사이에서 장애시 (30초:lisenning, learning)과정을 생략) 
     '업링크(루트스위치에게 가는 길)을 빠르게 한다'라는 의미이다. 즉 업링크 스위치란 Alternated port가 지정 된 스위치를 말하는데,
    백본 스위치(Root스위치 다음으로 대장이 될 스위치)가 아닌 다른 스위치를 말한다.

   즉, 업링크 스위치 전송가능한 포트가 장애가 일어 났을때, 포트 변화상태를 거치지 않고 , Alternated port를 Root Port로 변환시켜 정상적인 동작 상태로 만드는 설정 법이다. 
   
   그래서 단순한 (Alternated port가 Root port로만 바뀔수 있는) 토폴로지에서만 설정을 해야 한다. 

   - 설정법 : Alternated port로 지정된 인터페이스 sw(config-if)#spaning-tree uplinkfast
                  (브리지 ID의 priority가 49152(업링크 전용priority)로 바뀐다.
                   show spaning-tree시 브리지 ID 변화 확인 가능 )

   -  Uplinkfast 설정 이전 디버깅

SW2#
23:47:31: STP: VLAN0001 new root port Fa0/22, cost 38
23:47:31: STP: VLAN0001 Fa0/22 -> listening
SW2#
23:47:32: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/24, changed state to down
23:47:32: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to down
23:47:33: %LINK-3-UPDOWN: Interface FastEthernet0/24, changed state to down
SW2#
23:47:33: STP: VLAN0001 sent Topology Change Notice on Fa0/22
SW2#
23:47:46: STP: VLAN0001 Fa0/22 -> learning
SW2#
23:48:01: STP: VLAN0001 Fa0/22 -> forwarding
23:48:02: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to up
SW2#

 
   - Uplinkfast 설정 이후 디버깅

SW2#
23:49:42: STP: VLAN0001 new root port Fa0/22, cost 3038
23:49:42: %SPANTREE_FAST-7-PORT_FWD_UPLINK: VLAN0001 FastEthernet0/22 moved to Forwarding (UplinkFast).
SW2#
23:49:43: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/24, changed state to down
23:49:44: STP: VLAN0001 sent Topology Change Notice on Fa0/22
SW2#
23:49:44: %LINK-3-UPDOWN: Interface FastEthernet0/24, changed state to down
SW2#


4. Backbonefast (50초 --> 30초, 백본스위치와 대장스위치 사이에 장애시 (20초 :Blocking)과정을 생략)
     백본스위치란 Root스위치 다음으로 대장이 될 우선순위의 스위치를 말한다. 백본스위치는 root port와 Degignate port가 지정 되어 있다. 
     
    즉, 백본스위치가 전송가능한 포트가 장애가 일어 났을 때, 포트의 변화 상태를 거칠때 Blocking과정을 생략하고   Degignate port를 Root port로 변화시켜
   정상적인 동작 상태로 만드는 것이다.

    Backbonefast는 특성상 토폴로지상의 모든 스위치가 알고 있어야 동작하기 때문에, 모든 스위치에게 설정한다.
           
     - 설정법 : 글로벌모드 sw(config)# spaning-tree backbonefast   (모든 스위치에 똑같이 설정) 

  - Backbonefast 설정 이전 디버깅

SW2#
1d00h: STP: VLAN0001 heard root 28673-001b.0c09.a700 on Fa0/22
SW2#
1d00h: STP: VLAN0001 heard root 28673-001b.0c09.a700 on Fa0/22
SW2#
1d00h: STP: VLAN0001 heard root 28673-001b.0c09.a700 on Fa0/22
SW2#
1d00h: STP: VLAN0001 heard root 28673-001b.0c09.a700 on Fa0/22
SW2#
1d00h: STP: VLAN0001 heard root 28673-001b.0c09.a700 on Fa0/22
SW2#
1d00h: STP: VLAN0001 heard root 28673-001b.0c09.a700 on Fa0/22
SW2#
1d00h: STP: VLAN0001 heard root 28673-001b.0c09.a700 on Fa0/22
SW2#
1d00h: STP: VLAN0001 heard root 28673-001b.0c09.a700 on Fa0/22
SW2#
1d00h: STP: VLAN0001 heard root 28673-001b.0c09.a700 on Fa0/22
SW2#
1d00h: STP: VLAN0001 Fa0/22 -> listening
1d00h: STP: VLAN0001 heard root 28673-001b.0c09.a700 on Fa0/22
1d00h: STP: VLAN0001 Topology Change rcvd on Fa0/22
1d00h: STP: VLAN0001 sent Topology Change Notice on Fa0/24
SW2#
1d00h: STP: VLAN0001 Fa0/22 -> learning
SW2#
1d00h: STP: VLAN0001 sent Topology Change Notice on Fa0/24
1d00h: STP: VLAN0001 Fa0/22 -> forwarding

 
 
  -  Backbonefast 설정 이후 디버깅

SW2#
1d00h: STP: VLAN0001 heard root 28673-001b.0c09.a700 on Fa0/22
1d00h: STP: VLAN0001 Fa0/22 -> listening
1d00h: STP: VLAN0001 Topology Change rcvd on Fa0/22
1d00h: STP: VLAN0001 sent Topology Change Notice on Fa0/24
SW2#
1d00h: STP: VLAN0001 Fa0/22 -> learning
SW2#
1d00h: STP: VLAN0001 sent Topology Change Notice on Fa0/24
1d00h: STP: VLAN0001 Fa0/22 -> forwarding
SW2#


 


STP 보호  (port-security, BPDU가드, BPDU필터, 루프가드, UDLD)


5. port-security (설치한 포트에 허용된 MAC만 송수신, 허용되지 않는 MAC이 유입되면 포트가 다운 된다)
   * 정적인 엑세스포트, 트렁크포트, 터널포트에만 설정가능하다 (이더체널, SVI 설정불가)

     - 정적 설정 방법 (직접 지정한 MAC만 허용)
          인터페이스 : SW1(config-if)# switchport mode access 
                            SW1(config-if)# switchport port-security mac-address 1111.1111.1111(허용할 MAC주소지정)
                            SW1(config-if)# switchport port-security (port-security 동작, 우선 지정할 경우 동적으로 설정되기 때문에 나중에 설정한다)


    - 동적 설정 방법 (허용된 MAC주소의 수 만큼, 차례대로 들어오는 MAC 주소만 허용)
          인터페이스 : SW1(config-if)# switchport mode access     
                             SW1(config-if)# switchport port-security (port-security 동작)
                             SW1(config-if)# switchport port-security maximum 10 (MAC주소 갯수 지정, 1 ~ 5120 까지 지정가능)
                             SW1(config-if)# switchport port-security mac-address sticky (mac 테이블에 있는 MAC을 10개를 port-security로 설정저장 )
                             SW1(config-if)# exit
                             SW1(config-if)# copy run start (DRAM에 영구 저장)

          * 포트 보안 위반시 설정 옵션  (포트씨큐리티 설정시 default로 protect으로 설정되어 있음) 
                SW1(config-if)# switchport port-security violation { protect | restrict | shutdown }

                SW1(config-if)# switchport port-securityviolation protect ----> 등록 mac만 허용, 나머지 거부
                SW1(config-if)# switchport port-security violation shutdown ---> 위반시 무조건 포트 차단
                        ( 포트씨큐리티가 적용되어 포트가 차단되면 포트 상태는 err-disabled로 되며, 다시 포트를 활성화 시키려면   maximum 증가설정후(+1) shutdown -> noshutdown 명령을 해주어야 한다.)
                SW1(config-if)# switchport port-security violation restrict ----> 미등록 mac일경우 protect기능 + log 기록

6. BPDU Guard  (설치한 포트에 BPDU를 송신은 하지만, 수신되면 포트가 disable이 된다)
      특정포트에 BPDU 수신시 포트다운, 즉 의도하지 않는 스위치가 BPDU Guard를 설치한 포트에 들어왔을 때, 감지하여 특정 포트를 비활성화시킴
                               ( 관리자 모르게 스위치를 붙여서 토폴리지를 변화시키는 것을 막는다 )

    - 설정 방법(셋중 한가지만 사용)
      
    글로벌모드: SW1(config)# Spanning-tree portfast bpduguard default (포트패스트 포트에만 정의)
    글로벌모드: SW1(config)# Spanning-tree bpduguard default  (전체 포트에 정의 : 추천하지 않는 방법) 
    인터페이스모드 : SW1(config-if)# Spanning-tree bpduguard enable (특정 포트(엑세스 포트)에 들어가서 정의) 

    *  BPDU guard에 의하여 포트가 비활성화 상태가 되면, 해당 포트를 통하여 통신을 할 수가 없는 상태가 된다.
        이때, 포트를 다시 활성화 시키려면 인터페이스 설정 모드로 들어가 'shutdown' 후 'no shutdown'을 실행해야 한다.

      
    * BPDU guard 동작으로 인해, 해당포트가 비활성화 된다면 관리자가 직접 활성화를 시켜줘야 하는 불편함이 있다. 그래서 그 불편함을 해소하기 위해서
      BPDU guard가 동작하면 자동으로 복구 시켜주는 'err-disable recovery' 기능이 있다. 자동복구 기능을 사용하면 일정시간이 지난 후 자동복구가 이루어지는데,
      문제가 해결되지 않으면(관리자 몰래 붙힌 스위치를 제거 하지 않으면) 또 다시 BPDU guard가 동작되고, 다시 자동복구 상태가 반복 된다.

    - 설정 방법
     
    SW1(config)# errdisable recovery cause bpduguard  ------> bgpu가드로 인하여 포트가 비활성화 되면 자동복구 하라
    SW1(config)# errdisable recovery interval 30    ----->  포트가 비활성화 되면 30초 후에 자동 복구 하라
    

   
7. BPDU Filter (설치한 포트에 BPDU 송수신 불가, 트래픽 제어를 위해 쓰인다.)
      스위치는 기본적으로 2초마다 모든 포트에 BPDU를 송신한다. BPDU 송수신은 스위치가 연결된 포트에만 하면 되는 데 BPDU를 송수신 할 필요가 없는
      포트를 막아서 스위치의 성능 향상을 위해 쓰인다.

   - 설정방법(둘중 한가지만 사용)

   글로벌 모드 : SW1(config)# Spanning-tree portfast bpdufilter default (포트패스트 포트에만 정의)
   인터페이스 모드 : SW1(config-if)# Spanning-tree bpdufilter enable(특정 포트(엑세스 포트)에 들어가서 정의)

 8. Loop Guard  ( NDP가 BPDU를 미수신시(6초간) RP or DP 로 자동전환 하여 루프가 되는 상황을 막음 ). 
  NDP 상태에 있는 포트가 상대 포트에게 BPDU를 받지 못했을때 전송 상태로 변경되는 것을 방지하는 기능.
  STP정책에 따라 NDP 포트도 사실적으로 BPDU를 받으면서, NDP로 선정되어 막혀 있는것이다. 그런데 BPDU가 일시적인 장애로 인해 BPDU 를 수신하지 못하면,
  차단된 포트를 열게 되어 loop가 발생하며 이러한 상황을 방지하기 위해 Loop Guard를 사용 한다. 즉 BDPU를 받지 않게 되더라도 해당포트를 열지 않게 하는것이다.

 -설정방법 (둘중 한가지만 사용)
 
  글로벌 모드: SW1(config)# Spanning-tree loopguard default (모든 포트에 정의)
  인터페이스 모드 : SW1(config-if)# Spanning-tree guard loop (특정 포트에 정의)

4) 정보확인
   show run
   show spanning-tree
   show spanning-tree summary 

9. UDLD (unidirection link detection : 연결된 스위치 구간에서 단방향 링크가 일어날 경우, 해당 스위치 포트를 disable )
  
 위 그림처럼 스위치 간의 연결에 단방향에만 문제가 생긴 경우 완전히 통신이 되지 않는 상태가 발생한다. 그러나 스위치가 이것을 장애로 인식하지 못하여
  정상적인 상태로 인식하여 루프나, 송신한 프레임이 사라지는 블랙홀을 발생 할 수 있다.

  이럴 경우 단방향 링크가 생긴다면 해당 포트를 완전히 장애로 처리하여, 루프를 막을 수 있는 기능이 UDLD이다.
  
   UDLD는 정상모드(enable)와 적극모드(aggressive)로 나뉘는데, 정상모드는 광케이블의 절선을 감지할 수 있고 적극모드는 광케이블과 UTP도 감지할 수 있다.

  - 설정 법 :  둘 중 한가지만 사용 (두개의 스위치 간에 모두 설정해야 한다.)

      글로벌 모드:  SW1(config)# udld [enable | aggressive] ---> 모든 포트에 UDLD 설정 (양쪽 스위치에 모두 적용)
      인터페이스 모드: SW1(config-if)# udld port [aggressive]  ---> 해당포트에 udld 설정 (양쪽스위치에 모두 적용, 옵션이 없으면 정상모드)
 
    *  UDLD에 의하여 포트가 비활성화 상태가 되면, 해당 포트를 통하여 통신을 할 수가 없다. 단방향링크의 문제점을 고치고  포트를 다시 활성화 시키려면
       인터페이스 설정 모드로 들어가 'shutdown' 후 'no shutdown'을 실행해야 한다.

    * UDLD 동작으로 인해, 해당포트가 비활성화 된다면 관리자가 직접 활성화를 시켜줘야 하는 불편함이 있다. 그래서 그 불편함을 해소하기 위해서
      UDLD가 동작하면 자동으로 복구 시켜주는 'err-disable recovery' 기능이 있다. 자동복구 기능을 사용하면 일정시간이 지난 후 자동복구가 이루어지는데,
      단방향 링크의 문제가 해결되지 않으면 또 다시 UDLD가 동작되고, 다시 자동복구 상태가 반복 된다.
    - 설정 방법
  
    SW1(config)# errdisable recovery cause udld  ------> udld로 인하여 포트가 비활성화 되면 자동복구 하라
    SW1(config)# errdisable recovery interval 30    ----->  포트가 비활성화 되면 30초 후에 자동 복구 하라

'네트워크' 카테고리의 다른 글

STP 계산  (0) 2010.11.17

WRITTEN BY
미소틱한남자
보다 즐겁게 살고 싶은 미쏘팅이 블로그~

받은 트랙백이 없고 , 댓글이 없습니다.
secret