스위치의 포트로 Unicast / Multicast / Broadcast 트래픽이 1초 동안 사용자가 설정한 수준 이상으로 많이 수신되었을 때, 해당 트래픽을 모두 차단한다.
설정
예를 들어, SW2의 F0/3에서 Broadcast 패킷이 대역폭의 25% 이상을 차지할 경우 차단하는 것을 설정해보자.
SW2(config)# int fa0/3
SW2(config-if)# storm-control broadcast level 25
3: broadcast 대신 unicast, multicast로 설정할 수 있다. level 25는 대역폭의 25%를 의미하므로 적절한 값으로 변경하여 설정할 수 있다.
2. Protected Port (방어 포트)
하나의 스위치에서 Protected Port로 설정된 포트끼리 Unicast / Multicast / Broadcast를 차단한다. 서로 다른 스위치의 Protected Port끼리는 정상적으로 트래픽을 주고 받는다. (단, 목적지가 없는 프레임은 Flooding 된다.) Protected Port로 설정되지 않은 포트와는 정상적으로 트래픽을 주고 받을 수 있다.
설정
SW2의 F0/2, F0/3을 Protected Port로 설정해보자.
SW2(config)# int ran fa0/2 - 3
SW2(config-if)# switchport protected
이제 PC1과 PC2를 PING 테스트해보면 응답이 없는 것을 확인할 수 있다. PC1 – PC3, PC2 – PC3 간의 PING은 정상적으로 나간다.
3. Port Blocking (포트 차단)
스위치가 수신한 프레임의 목적지가 MAC Table에 없다면, Flooding 되는 것을 차단한다. Unicast / Multicast 패킷에만 적용할 수 있다.
설정
SW2의 F0/4에 목적지가 없는 Multicast 프레임을 차단하도록 설정해보자.
SW2(config)# int fa0/4
SW2(config-if)# switchport block multicast
MAC 주소를 이용해 트래픽을 제어한다. 일반적인 IP ACL과 다르게 MAC ACL은 반드시 Named ACL을 사용해야 한다.
설정
Switch(config)# mac access-list extended <name>
Switch(config-ext-macl)# deny host <MAC> host <MAC>
Switch(config-ext-macl)# permit any any
만일, 여러 개의 MAC주소를 지정하려면, 와일드카드 마스크를 이용해 지정한다. ex) 0011. CB 로 시작하는 모든 MAC주소를 지정한다면, 와일드카드 마스크가 0000.00FF.FFFF가 될 것이다.
2. Port ACL
일반적으로 라우터에 사용하는 IP ACL과 비슷해보이지만, Port ACL은 L2 포트에 ACL을 적용하는 것이다. IP주소/MAC주소 모두 사용할 수 있고, 동시에 필터링을 할 수도 있다.
프레임을 수신하는 경우(in방향)에만 ACL을 설정할 수 있다.
특정 스위치에 VLAN ACL이 설정되었거나 라우터에 Inbound ACL이 설정되어있다면, 사용할 수 없다.
Etherchannel을 사용하는 인터페이스에서 사용할 수 없다.
MAC주소로만 필터링 한다면, MAC의 접근은 차단되어도 해당 MAC의 IP로는 접근할 수 있다.
3. VLAN ACL
VLAN에 적용하는 ACL이다. 서로 다른 VLAN 번호 간 제어, 같은 VLAN 번호 간 트래픽을 제어한다. VACL, VLAN Map 이라고도 한다.
설정
(1) ACL 생성 (2) VLAN MAP 생성 (3) VLAN MAP을 VLAN에 적용
[설정 예시]
-
Switch(config)# access-list 100 permit tcp host 10.10.10.1 host 10.10.10.3 eq ssh
Switch(config)# access-list 100 permit tcp host 10.10.20.1 host 10.10.10.3 eq ssh
Switch(config)# access-list 101 permit ip any any
Switch(config)#
Switch(config)# vlan access-map <VLAN_MAP_NAME>
Switch(config-access-map)# match ip address 100
Switch(config-access-map)# action drop
Switch(config-access-map)# exit
Switch(config)#
Switch(config)# vlan access-map <VLAN_MAP_NAME>
Switch(config-access-map)# match ip address 101
Switch(config-access-map)# action forward
Switch(config-access-map)# exit
Switch(config)#
Switch(config)# vlan filter <VLAN_MAP_NAME> vlan-list <VLAN_NUM>
-
2,3,4 : Access list를 통해 허용할 호스트를 지정한다. 6: VLAN Map을 설정한다. 7: 허용하거나 차단할 대상을 불러온다. 8: 7번 대상이 오면 Drop(차단)하도록 설정한다. 별도 action 설정을 하지 않으면, Forward(허용)이다. 11: 6번과 같은 이름을 사용한다. 이름이 같아도 상관없다. 어차피 access-map을 보게 되면 자동으로 맵 이름 뒤에 20이 추가로 붙게 되어 서로 다른 맵이다. 12,13: 맵 이름만 정의하면, match / action을 설정하지 않으면 나머지 모든 것을 허용한다는 의미이므로 12,13는 생략해도 된다. 16: 원하는 VLAN에 VLAN 맵을 적용한다.
4. PBACL
Policy-Based ACL IP 주소나 포트 번호를 ‘Object Group’으로 지정하고, ACL 생성 시 ‘Object Group’을 사용해 지정하는 방식이다. Routed / SVI와 같은 L3 인터페이스와 IPv4만 적용할 수 있다. 또한, Named ACL로만 적용할 수 있다.
설정
-
Switch(config)# object-group ip address <OBJECT_NAME>
Switch(config-port-ogroup)# host <IP>
Switch(config-port-ogroup)# <NETWORK_ID> <SUBNETMASK>
Switch(config-port-ogroup)# exit
Switch(config)#
Switch(config)# object-group ip address <OBJECT_NAME2>
Switch(config-port-ogroup)# eq <PORT_NUM>
Switch(config-port-ogroup)# <NETWORK_ID> <SUBNETMASK>
Switch(config-port-ogroup)# exit
Switch(config)#
Switch(config)# ip access-list extended <ACL_NAME>
Switch(config-ext-nacl)# permit tcp addgroup <OBJECT_NAME> portgroup <OBJECT_NAME2> any
Switch(config-ext-nacl)# deny tcp any any
Switch(config-ext-nacl)# exit
Switch(config)# int <interface>
Switch(config-if)# ip access-group <ACL_NAME> in
-
그동안 학습한 STP와 RSTP는 VLAN 하나 당 1개의 스패닝 트리가 동작한다. VLAN이 200개라면, 200개의 스패닝 트리가 돌아간다는 의미이자 2초마다 200개의 BPDU를 수신한다는 의미이다. 왠지 Switch에 부담이 가지 않을까 싶다..
다행히 이런 문제점을 해결하기 위해 나온 프로토콜이 있으니,, 이름하여 MSTP다. 여러 개의 VLAN을 묶어 하나의 스패팅 트리만 동작되도록 하는 것이다. VLAN 묶는다면 묶인 VLAN을 셀 때 필요한 단위가 있을거고, 여러 개의 Switch 중 하나는 대표 역할을 해야할 것이다. 그래야 관리하기 쉬울 테니 말이다.
VLAN 여러 개를 묶으면, Instance Instance 여러 개를 묶으면, Region
Instance 당 1개의 스패닝 트리가 동작한다.
참고로, 동일 VLAN 번호일지라도 서로 다른 Instance에 속할 수 있다.
2. CIST와 MSTI
MSTP에는 2가지 스패닝 트리가 사용된다.
CIST
Common and Internal Spanning Tree
전체 Switch 네트워크를 루프없이 연결하는 목적을 갖고 있다. 전체 Switch 네트워크의 통신 경로를 설정한다. CIST Root Switch – 1개 CIST Regional Root Switch – Region별 1개
MSTI
Multiple Spanning Tree Instance
Region의 각 Instance 통신 경로를 설정한다. Root Switch – MST Instance별 1개
3. MSTP 동작과정
CIST 스패닝 트리의 동작 과정
각 Switch는 특정 VLAN ID를 특정 MSTI에 할당하는 ‘MST Configuration ID’를 광고한다.
Bridge ID와 Path Cost를 이용해 CIST를 구성한다. ① 전체 LAN에서 ‘CIST Root Switch’ 1개 선택 ② 각 Switch와 LAN에서 CIST Root까지의 최소값 경로 선택 여기서 각 Region 별로 CIST Root까지 최소 경로값을 갖는 Switch가 ‘CIST Regional Root Switch’가 된다.
CIST의 포트 역할 – CIST Root Port: CIST Regional Root Switch를 통해 CIST Root Switch로 가는 최소 경로값을 가진 포트 – CIST Designated Port: 접속된 LAN에서 CIST Root Switch까지 최저 경로값을 가진 포트 – CIST Alternate Port / Backup Port: 타 Switch / 포트 또는 LAN에 장애가 발생했을 때 사용되는 포트
CIST의 특징 모든 Switch를 하나의 네트워크로 연결한다. (=각 Region을 하나로 연결한다.) 영역내부 경로가 영역외부 경로보다 우선된다.
MSTI 스패닝 트리의 동작 과정
각 Region에서 MSTI Root Switch 1개를 선택한다.
각 Switch에서 MSTI Root로 가는 최저 경로값을 선택한다.
MSTI의 포트 역할 – MSTI Root Port: MSTI Root Switch까지 최소 경로값을 가진 포트 – MSTI Designated Port: 접속된 LAN에서 MSTI Root Switch까지 최저 경로값을 가진 포트 – MSTI Master Port: Region 외부에 있는 CIST Root Switch와 연결된 포트 – MSTI Alternate Port / Backup Port: 타 Switch/포트 또는 LAN에 장애가 발생했을 때 사용되는 포트
MSTP BPDU이므로 – Protocol Version ID는 3, BPDU Type은 2이다. – Flags (CIST Flag): RSTP의 Flag와 동일한 Flag 값을 가진다. – CIST Root ID: 전체 Switch 네트워크의 Root Switch ID – CIST Path Cost: CIST 외부의 Root Switch까지의 경로값 – Bridge ID: MSTP일 때, CIST Regional Root Switch ID RSTP/STP일 때, Designated Switch ID – MST Configure ID: 동일 VLAN에 소속된 Switch들끼리는 VLAN 번호와 Instance 매핑 정보가 동일해야한다. 아래의 내용을 담고 있다. Selector(1 Byte): 항상 값 0 Configuration name(32 Byte): 가변 Revision level(2 Byte) Configuration Digest(16 Byte): MSTP Configuration Table로부터 생성된 MD5 Signature. – CIST Bridge ID: BPDU를 전송하는 Switch의 Bridge ID – MSTI Configuration Messages: Region 내 Instance 별로 스패닝트리를 계산할 때 사용한다.
1단계 – Root Switch 선정 우선순위가 가장 낮은 SW1가 Root Switch가 된다.
2단계 – Proposal BPDU 전송 및 DP 선택 Root Switch가 상대 Switch로 Proposal BPDU를 전송한다. 이 때, P-BPDU를 전송하는 포트는 Designated Port(DP)가 된다.
3단계 – 동기화 P-BPDU를 수신한 Switch는 수신한 포트는 Root Port(RP) 후보가 되고, 나머지 포트는 Blocking 상태로 전환한다. RP후보를 제외하고 나머지 포트를 Blocking 하는 것을 동기화(Synchronizational)이라고 한다. 다음 단계에서 RP를 Forwarding 상태로 변경해도 루프가 발생되지 않도록 하기 위해서이다.
4단계 – Agreement BPDU 전송 및 RP 선택 SW2, SW3은 SW2의 F0/2, SW3의 F0/1을 RP로 설정한 Agreement BPDU를 Root Switch로 전송하고, Forwarding 상태로 전환한다. 이 때, A-BPDU를 전송한 포트는 Root Port(RP)가 된다.
5단계 – Root Switch의 Forwarding 상태 전환 A-BPDU를 수신한 SW1은 SW2,SW3와 연결된 F0/1, F0/2를 Forwarding 상태로 전환한다.
6단계 SW2<->SW3 동작 SW2는 자신의 DP에 대한 P-BPDU를 SW3으로 전송하지만, SW3의 F0/3은 AP 상태이므로 A-BPDU를 전송하지 않는다.
7단계 SW2<->SW3 동작 SW3로부터 응답을 받지 못한 SW2는 15초동안 P-BPDU를 전송한다. 그래도 응답이 없으면 Learning 상태로 변경하고, 다시 15초 동안 P-BPDU를 전송한다. 이후 15초가 지나면 Forwarding 상태로 전환한다.
P-BPDU / A-BPDU는 쉽게 설명하기 위해 줄인 단어이다. 해당 용어가 실제 사용되는지는 모른다.
2. 간접 링크 장애 시 RSTP 동작과정
만약 STP를 사용한다면, SW3의 F0/3은 Max-Age 20초동안 후순위 BPDU를 받고, Listening, Learning 순차적으로 상태가 전환되어 50초가 지나야 Forwarding 상태로 전환되었을 것이다.
RSTP를 사용한다면, SW3의 F0/3이 후순위 BPDU를 수신하자마자 DP역할을 하기 위해 SW2에게 Proposal BPDU를 전송한다. SW2는 Agreement BPDU로 응답하고, SW3은 A-BPDU를 받자마자 F0/3을 Forwarding 상태로 전환한다.
3. 직접 링크 장애 시 RSTP 동작과정
1단계. SW3의 RP인 F0/2가 다운되면, F0/3이 즉시 RP역할을 이어받고 Forwarding 상태로 전환한다.
2단계. 동기화를 위해 F0/14는 Blocking 상태로 전환하고, BP인 F0/15를 AP로 변경한다.
3단계. DP인 F0/14를 통해 Proposal BPDU를 전송하고, F0/15로 다시 되돌아온 것을 확인함과 동시에 F0/15를 BP로 변경한다.
4단계. F0/14로 Proposal BPDU를 30초간 전송하고, 이후 Forwarding 상태로 전환한다.
4. DP 장애 시 BP 동작과정
SW3의 DP인 F0/14가 다운되면, F0/15가 DP 역할을 이어받는다. 30초간 Proposal BPDU를 전송하고 Forwarding 상태로 전환한다.
만약 F0/14가 복구된다면, F0/14는 DP, F0/15는 BP로 변경되고, F0/14가 30초간 Proposal BPDU를 전송하고 Forwarding 상태로 전환한다.
동작 시간이 느린 STP를 대체할 수 있는 RSTP이다. STP 타이머나 Fast 설정을 해도 단축된다곤 한다만,, 여전히 한계가 있다. 그래서 IEEE는 2001년 6월 RSTP를 발표했으며 지금은 802.1W에 정의되어있다.
STP는 경우에 따라 Blocking 상태에서 Forwarding 상태까지 소요 시간이30초 or 50초지만, RSTP는 토폴로지에 변화가 생길 경우 즉시 반영된다. RTSP에서는 자신의 BPDU가 더 우세하면 바로 본인이 Designated Port라고 주장하는 Proposal BPDU를 보낸다. 이 Proposal BPDU를 수신한 상대가 동의하면 Agreement BPDU로 응답한다.
이외 Root Switch를 선정하고, Root Port/Designated Port를 결정하여 활성 토폴로지를 구성하는 것은 동일하다.
RSTP와 STP는 별도 설정없이 호환된다. RSTP를 사용하는 Switch의 특정포트가 STP를 사용하는 Switch와 연결되었다면, STP에서 사용하는 Configuration BPDU와 TCN BPDU가 전송된다.
Message Type(BPDU Type) 값은 항상 2이다. RSTP BPDU임을 표시하기 위함이다.
Flag 필드는 모두 다 사용한다. STP에서 Bit 0과 Bit 7만 사용한다. Bit 7은 TCN BPDU를 수신했음을 알릴 때 사용하지만, RSTP는 TCN BPDU 차제를 사용하지 않기 때문에 거의 Bit 7을 사용하진 않는다. 다만, STP가 동작하는 Switch와의 호환성을 위해 사용한다.
마지막에 ‘Version 1 length’가 추가 되었다.
2. RSTP 포트 상태
Discarding STP의 Blocking 상태와 동일하다.
Learning STP의 Learning 상태와 동일하다. 학습 시간은 기존 15초보다 훨씬 짧다.
Forwarding STP의 Forwarding 상태와 동일하다.
3. RSTP 포트 종류
Root Port STP의 Root Port와 동일하다. Switch 당 RP 1개씩 선택된다.
Designated Port STP의 Designated Port와 동일하다.
Alternate Port RP가 다운되면 RP 역할을 이어받는 포트이다. Blocking 상태에 있으며, 데이터 송수신은 하지 않고 BPDU만 수신한다.
Backup Port DP가 다운되면 DP 역할을 이어받는 포트이다. 복수개의 링크로 구성하면, BP가 생긴다. Blocking 상태에 있으며, 데이터 송수신을 하지 않는다.
Disabled Port RSTP에서 역할이 없는 포트이다. ex) 셧다운된 포트
4. RSTP 링크 종류
Duplex에 따른 구분
(1) Point-to-Point Link : Full-Duplex로 동작하는 포트 (2) Shared Link : Half-Duplex로 동작하는 포트
상대 장비에 따른 구분
(1) Link : RSTP로 동작하는 Switch와 연결된 포트 (2) Edge : STP가 동작하지 않는 장비(PC,라우터)와 연결된 포트, Catalyst Switch에서는 portfast를 설정해야만 Edge 포트로 동작. (3) Peer : STP와 같은 (RSTP가 아닌) 프로토콜로 동작하는 Switch와 연결된 포트
Point-to-Point Peer Full-Duplex로 동작하고, STP가 동작중인 Switch와 연결된 포트 (STP가 아닐수도 있음)
Point-to-Point Link Full-Duplex로 동작하고, RSTP가 동작중인 Switch와 연결된 포트
이더채널; Etherchannel 두 Switch 사이에 여러 포트들을 하나의 포트처럼 동작하게 한다. STP는 이더채널을 하나의 포트로 간주한다. 이더채널을 생성하고나선 반드시 port-channel에서 설정을 변경해야 한다.
이더채널 Protocol Type
시스코에서 만든 PAgP(Port Aggregation Protocol) 1개의 이더채널은 최대 8 포트로 구성할 수 있다. Desirable과 Auto Mode 사용.
IEEE에서 만든 LACP(Link Aggregation Control Protocol) 1개의 이더채널은 최대 16 포트로 구성할 수 있다. (8개 사용 + 8개 백업용) Active와 Passive Mode 사용.
이더채널 Mode
Active – 무조건 LACP 사용, 만일 상대 Switch와 이더채널이 안되면 일반 단일 포트로 사용됨. Desirable – 무조건 PAgP 사용, 만일 상대 Switch와 이더채널이 안되면 일반 단일 포트로 사용됨. Passive – 상대가 LACP 사용할 때만, LACP 활성화 Auto – 상대가 PAgP 사용할 때만, PAgP 활성화 on – 상대 Switch와 협상없이 이더채널 멤버포트를 모두 활성화, 상대 Switch도 on으로 설정해야함.
이더채널 설정
1. Routed 이더채널
Routed 포트로 동작하는 이더채널.
Switch(config)# interface range <port range>
Switch(config-if)# no switchport
Switch(config-if)# channel <channel_num> mode <mode>
Switch(config-if)# exit
Switch(config)#
Switch(config)# interface port-channel <channel_num>
Switch(config-if)# ip addr <ip> <subnet>
Switch(config-if)# exit
Switch(config)# exit
Switch# show etherchannel summary
Switch# show interface port-channel <num>
3: channel의 포트번호는 Switch 모델에 따라 다르다. ex) catalyst 3550: 1-64, 3560: 1-48. mode는 active/desirable/passive/auto/on 중 하나를 선택한다. 6: 이더채널 포트로 접속 하여 IP를 설정한다. 10,11: 이더채널이 정상 설정되어있는지 확인한다.
2. SVI 이더채널
가상 VLAN 포트로 동작하는 이더채널.
Switch(config)# interface range <port range>
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan <vlan_num>
Switch(config-if)# channel <channel_num> mode <mode>
Switch(config-if)# exit
Switch(config)#
Switch(config)# interface vlan <vlan_num>
Switch(config-if)# ip addr <ip> <subnet>
Switch(config-if)# exit
Switch(config)# exit
Switch# show etherchannel summary
Switch# show ip interface brief
STP는 전원을 꽂기만 하면 동작되는 ‘Plug and Play’ Protocol이라고 한다. 그러나 STP 값을 조정하지 않고 그대로 사용한다면, 네트워크의 동작 속도는 느릴 것이다. 장애가 발생되어 복구하는 시간도 오래 소요되고, 간단한 조작에 의해서도 스위치 네트워크가 마비될 수 있다.
이러한 위험(?)을 방지하고자 STP를 좀 더 유용하게 사용하려면, 컨버전스 시간을 조정해야 한다. ‘컨버전스 시간’이란, 토폴로지에 변동이 생겼을 때 네트워크가 재구성될 때까지 소요되는 시간이다.
Switch의 Port가 활성화되면, Listening 상태부터 시작한다. (Blocking → Listening → Learning →Forwarding) 그러나 Port Fast 기능을 사용하면, Listening 상태가 아닌 바로 Forwarding 상태가 되도록 한다. (Blocking → Forwarding) 보통 PC나 서버 등과 같이 종단 장치가 연결된 Port에 설정한다.
설정
[방법1. 모든 Access port에 Port Fast 적용]
Switch(config)# spanning-tree portfast default
Hub/Switch/Bridge가 연결되어있다면, 일시적으로 프레임 루프가 발생할 수 있다. Switch 간 Access port를 사용하는 추세이므로 가능한 이 방법은 권장하지 않는다.
직접 연결된 링크가 다운되었을 때, Blocking 상태에 있는 포트를 즉시 Forwarding 상태로 변경한다. Root Switch에선 차단 상태 포트가 없으므로 Access(종단) Switch에서 설정한다. Uplink Fast 설정 시 자신을 Access Switch로 만들기 위해 Priority를 32768에서 49152로 변경한다.
설정
Switch(config)# spanning-tree uplinkfast
1-3. Backbone Fast
직접 접속되지 않은 간접 링크가 다운되었을 때, Blocking 상태의 포트에서 Max-Age를 생략하고 바로 Listening 상태로 변경한다. Max-Age를 생략하면 Forwarding 단계까지 20초 단축할 수 있다.
동작과정
‘SW1—SW2’ 링크 다운
SW2는 자신이 Root Switch라고 주장하는 후순위 BPDU를 SW3로 전송
SW3이 ‘SW1—SW2’ 링크 다운 인지
SW3가 SW1로 RLQ 전송 (‘SW3—SW1’ 링크 상태 확인을 위함)
SW1은 이상이 없다는 의미로 RLQ 응답패킷 전송
해당 패킷을 받은 SW3는 Blocking 상태 포트의 Max-Age를 만료시켜 바로 Listening 상태로 변경
설정
Backbone Fast를 구성하려면 전체 Switch에서 설정해야한다.
Switch(config)# spanning-tree backbonefast
1-4. STP Timer 조정
앞서 본 Fast 방식 설정 말고, 직접 타이머를 조정하여 컨버전스 시간을 단축할 수 있다.
– 기본값 Diameter 별로 타이머 기본 값이 상이하다. 기본 Diameter 값은 7이다.
Diameter 값을 조정해 STP 타이머를 변경하려면, 반드시 Root Switch에서 조정해야 한다. 일반 Switch에서 설정하면 나중에 해당 Switch가 Root Switch가 되어야만 전체 네트워크에 적용되기 때문이다.
특정 Port를 통해 BPDU 수신 시 해당 Port를 자동으로 Shutdown한다. 이렇게 shutdown된 Port는 ‘다시 직접 shutdown → no shutdown’ 해야 up된다. 일반적으로 PC/Server와 같은 종단 장치가 BPDU를 전송하지 않으므로 이러한 Port에 설정한다.
SW3의 F0/3은 현재 Alternate Port이다. 이런 상황에서 BPDU Filtering을 설정하면, F0/3은 BPDU를 받지 못할 것이고 STP로 인해 Designated Port로 변경될 것이다. 그럼 SW3 — SW2 링크가 살아나고, 루프가 생길 것이다.
2-3. Loop Guard
일반적으로 Blocking 상태에 있는 포트가 BPDU를 받지 못했을 때, 일정 시간이 지나게 되면 Forwarding 상태로 변경된다. 이 것을 방지하는 기능이다. 이 기능을 사용하면 Blocking 상태의 포트가 Loop Inconsistent(루프 비일관) 상태로 바뀐다. Loop Inconsistent도 Blocking과 비슷하다.
다시 BPDU를 받게 되면 자동으로 정상적인 Blocking 상태로 돌아간다. 물론, Loop Guard가 설정되어도 링크가 다운되거나 후순위 BPDU를 받는 경우엔 Blocking 상태에서 Forwarding 상태로 변경된다.
[복구] 문제되는 Bridge ID를 가진 Switch에서 우선순위를 조정하면 차단된 포트가 다시 활성화된다. 또는, 해당 포트를 shutdown → no shutdown하여 활성화할 수 있다.
2-5. UDLD
Unidirectional Link Detection Switch 간 링크에서 단방향 링크가 생겼을 때, 해당 포트를 다운시킨다. 단방향 링크로 인해 L2 루프가 발생하거나 한 쪽에서 보낸 프레임이 사라지는 블랙홀 현상이 발생할 수 있기 때문이다.
주기적으로 송신포트를 통해 UDLD패킷을 전송한다. 이 패킷을 수신한 상대는 다시 자신의 송신포트를 통해 Echo시킴으로써 양방향 링크가 정상 동작하는지 확인한다.
얼핏 보면, Loop Guard와 비슷한 기능이라고 생각할 수 있지만, Loop Guard는 소프트웨어적인 상황(상대 Swtich 이상)으로 인해 BPDU를 송신하지 못할 때 동작하고 UDLD는 케이블링을 감지하여 동작한다. UDLD를 사용하려면 상대 Switch도 UDLD 기능을 지원해야한다.
UDLD Mode
Normal Mode(일반모드): 광케이블 결선 오류로 인한 단방향 링크를 감지한다.
Aggressive Mode(적극?모드): 광케이블 및 UTP의 단방향 트래픽으로 인한 단방향 링크를 감지한다.
설정
[방법1. 전체 인터페이스에 설정]
Switch(config)# udld [Aggressive | normal]
[방법2. 특정 인터페이스에 설정]
Switch(config)# interface <INTERFACE>
Switch(config-if)# udld port
Switch(config-if)# udld port aggressive
2: or 3: 둘 중 하나를 택하여 설정한다. 2-Normal, 3-Aggressive
[복구]
Switch# udld reset
OR
Switch(config)# errdiasble recovery cause udld