레이블이 switch인 게시물을 표시합니다. 모든 게시물 표시
레이블이 switch인 게시물을 표시합니다. 모든 게시물 표시

2015년 12월 14일 월요일

한드림넷 L2스위치 - Hybrid Mode

이번에 언급할 내용은 한드림넷 L2스위치에서 지원하는 Hybrid Mode에 대한 이야기.


Trunk(802.1q)/Access/Hybrid 각 방식의 차이는 아래와 같습니다.

Access Port는 지정된 VLAN의 정보만 별도의 표시(Tag)없이 전송합니다. 이 과정에서 상대 장치의 설정을 확인하지 않습니다.

Trunk Port(802.1q)는 허용된 VLAN들 중 Native VLAN만 표시(Tag)없이 전송하고 그 외의 VLAN은 표시(Tag)해서 전송합니다. 이 과정에서 상대방이 Trunk Port(802.1q)가 아니거나, Native VLAN이 다른 경우는 해당 포트가 차단됩니다.

Hybrid Port는 각각의 VLAN별로 Tag를 표시할지 여부를 지정해줍니다.
상대 포트와의 설정을 따로 확인하진 않습니다.


Access
Trunk(802.1q) 
Hybrid
연결대상
Access/Hybrid
Trunk/Hybrid
셋다 지원
VLAN Tag
지원안함
지원
지원
종단장치
연결가능
연결불가*
연결가능
*일반적으로는 연결이 안되지만 두가지 경우가 발생 할 수 있음.
1. 일부 VLAN Tag를 지원하는 종단장치는 Trunk에서도 지원.
2. VLAN Tag를 지원하지 않는 종단장치는 Native VLAN으로 연결되는 경우가 있음. 단, Trunk Port쪽에서 종단장치/포트타입 감시 기능이 off되어 있어야 함.


2013년 11월 6일 수요일

Port-channel

여러 포트를 하나의 포트로 묶어서 사용하는 기능.
기본적으로 최대 8개의 포트를 하나로 묶어 사용할 수 있다.
(PAgP는 8개 까지만, LACP는 16개 까지 가능하지만 실제 동작은 8개 까지만 한다. 나머지 포트는 예비로서 대기상태)

1. 기본적으로 묶는 포트가 모두 동일한 속도와 동일한 Duplex모드를 사용해야 한다.

2. 각 포트는 모두 활성화 된 상태야 한다.

3. 아래의 설정값은 모든 포트가 동일해야 한다. 하나라도 변경할 경우, 동일 그룹 내의 다른 모든 포트도 동일하게 변경하지 않으면 안된다.

–Allowed-VLAN list
–Spanning-tree path cost for each VLAN
–Spanning-tree port priority for each VLAN
–Spanning-tree Port Fast setting

4. Switched Port Analyzer (SPAN) destination port는 그룹에 포함될 수 없다.

5. 포트 보안 기술은 구성전에 모두 해제해야 한다.

6-1. Layer 2(스위치 포트)의 경우는
-Access Port의 경우는 동일 Vlan / Trunk Port의 경우는 동일한 Native Vlan
-Trunk mode의 경우는 개별 Port와 Port-channel이 모두 동일한 설정을 가져야 한다.
-Allowed-VLAN list가 다른 포트를 포함시킨 경우, auto나 desirable 모드를 사용하면 Port-channel이 성립되지 않는다.
-Spanning-tree cost가 다른 포트를 포함시킨 경우, 해당 포트는 포함되지 못한다.

6-2. Layer 3(라우티드 포트)의 경우는 개별 포트에 대해 IP지정을 할 수 없고, 하나로 묶인 전체에 대해서 지정해야 한다.

적용은 아래의 명령어를 사용한다.

channel-group [그룹번호] mode [모드지정]

active    : LACP로 설정
passive : LACP감지시 LACP로 동작
desirable : PAgP로 설정
auto : PAgP감지시 PAgP로 동작
on : 포트채널만 구성

적용 프로토콜 변경은 아래의 명령어를 사용한다.

channel-protocol [lacp/pagp]

lacp : LACP로 지정
pagp : PAGP로 지정



Configuring EtherChannels

2013년 10월 8일 화요일

SNMP(Simple Network Management Protocol) 및 SNMP Get/Get Next/Trap

SNMP(Simple Network Management Protocol)

네트워크 장비 관리 및 감시를 목적으로 개발되어 사용되는 UDP기반 응용계층 표준 프로토콜. 네트워크 구성관리/네트워크 사용량이나 에러, 처리속도, 응답시간등의 성능관리/네트워크 장비의 시스템 정보를 통한 장비 관리/정보의 제어 및 보호 등이 주요 기능이다.


SNMP Get

동기상태인 대상 기기에 대한 단일 정보를 요청하는 경우 사용.


SNMP Get Next

동기상태인 대상 및 그 하위 기기에 대한 정보를 요청하는 경우 사용.


SNMP Trap

비동기적 상황(즉, 갑작스럽게 전달해야 하는 내용)에서 전달해야 할 정보가 있을 경우 사용. 돌발상황이나 정해진 임계치 이상의 시스템 자원 사용같은 바로 전달해야 할 내용이 있는 경우에 사용된다.


참고자료
http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/SNMP_%B0%B3%BF%E4
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/SNMP

2013년 8월 19일 월요일

ARP/ARP Spoofing Attacks

- ARP(Address Resolution Protocol)

동일한 broadcast Domain에서 IP와 MAC 주소를 맵핑시켜 사용하는 Layer 2 기반의 통신 방법. 특정 IP의 MAC 주소를 아는 경우는 그 MAC주소로, 모를 경우는 broadcast로 MAC주소를 요청하며 해당 IP를 가진 Host에서 자신의 MAC주소를 알려주면 그걸 기억해뒀다가 사용하게 된다. 즉, 실제 통신은 MAC주소 기반으로 하게 됨.

- ARP Spoofing Attacks

ARP는 특정 IP에 대한 MAC주소를 모를 경우, 확인하기 위한 broadcast frame을 발생시킨다. 이때 다른 Host에서 대신 자신의 MAC 주소를 알려주게 되면 그 MAC주소로 맵핑시킨다. 이로서, 다른 Host에게 가야할 정보를 중간에서 가로채는게 가능해진다. 이게 가능한 이유는 ARP에서 사용하는 맵핑 과정 자체에는 검증과정이 포함되지 않기 때문이다.



관련문서

ARP Poisoning Attack and Mitigation Techniques

2013년 8월 15일 목요일

VLAN Hopping 공격

전제조건

- 인터페이스에 직접 억세스 모드 지정(switchport mode access)을 하지 않은 상태.
- 해당 장치가 DTP 지원.

직접 억세스포트로 지정하지 않고 VLAN지정만 하는 경우가 간혹 있고, 많은 경우(대부분의 스위치는 기본값이 Access Mode지만, DTP는 허용된 상태.) 이 상태로도 별다른 문제 없이 동작한다. 하지만 연결된 장치에서 의도적으로 DTP 프레임을 보내서 Trunk 모드로 동작시키는 경우, L3라우팅 없이도 지정된 VLAN이 아닌 다른 VLAN으로 신호를 보낼 수 있게 된다. 결과적으로 접근할 수 없는 영역으로 접근을 할 수 있게 되는 문제가 생긴다.

이를 방지하기 위해서는 두가지를 지키면 된다.

1. Access Port

반드시 아래와 같이 명시적으로 Access Port로 설정해서 DTP프레임을 받아도 Trunk Port로 전환되지 않도록 한다.

SW(config-if)# switchport mode access

2. Trunk Port (802.1Q)

802.1Q Trunk Port 간 연결은 native VLAN 설정이 일치해야 한다. 따라서 기본값인 1에서, 외부인이 알 수 없는 임의의 값으로 변경해서 사용한다. (당연하지만 이 임의의 값은 양쪽이 동일해야 통신이 된다. 즉, VLAN Hopping을 시도하는 상대가 Native Vlan 번호를 모른다면 설정 불일치 문제로 해당 포트가 shutdown 된다.)

SW(config-if)# switchport trunk encapsulation dot1q
SW(config-if)# switchport mode trunk
SW(config-if)# switchport trunk native vlan [임의의 값]


참고문서

Dynamic Trunking Protocol (DTP) - CISCO
VLAN Security White Paper

2013년 8월 3일 토요일

Inconsistent(비일관) 상태

Inconsistent(비일관) 상태는 연결된 양쪽의 설정이 서로 일치하지 않는 것으로 판단되는 경우를 말한다. 아래와 같은 경우가 존재한다.

- Loop Inconsistency
Loop Guard를 설정한 경우에 볼 수 있다. Loop Guard는 BPDU가 전송되지 않는 경우, 종단장치로 판단하고 전송상태로 변경하는걸 방지하는 기능. 이게 필요한 이유는 종단장치가 아니라도 단방향 연결상태라서 BPDU가 전송되지 않는 경우가 있기 때문이다.

- Root Inconsistency
Root Guard를 설정한 경우에 볼 수 있다. Root Guard가 설정된 스위치로, Root 스위치보다 우선인 BPDU가 전송되는 경우, 해당 포트를 차단하고 그 사유로 이 항목이 표시된다. 만약 우선권을 주장하는 BPDU의 전송이 멈추면, 별도로 설정할 필요 없이 차단이 해제되고 연결이 정상화 된다.

- EtherChannel Inconsistency
EtherChannel이 설정된 스위치간 설정이 일치하지 않는 경우 발생한다.

- Port VLAN ID (PVID) Inconsistency
연결된 포트간 VLAN ID가 일치하지 않는 경우 발생한다. 802.1q Trunk Port설정시 Native VLAN 을 동일하게 설정하지 않은 경우에도 발생한다.

- Type Inconsistency 
포트 타입이 일치하지 않는 경우(Access Port - Trunk Port 연결 식으로)에 발생한다. 


관련 문서
Troubleshooting Spanning Tree PVID- and Type-Inconsistencies

Spanning-Tree Protocol Enhancements using Loop Guard and BPDU Skew Detection Features

Spanning Tree Protocol Root Guard Enhancement

Understanding EtherChannel Inconsistency Detection 

What Is a Port VLAN ID (pvid)?

2013년 7월 31일 수요일

Access Host Ports 설정하기

Access Host Ports

이 기능은 종단장치에 직접 연결된 포트 한정으로 사용하는 기능이다.
설정은 해당 인터패이스에서 아래와 같이 입력하면 된다.

SW(config-if)# switchport host

이 설정을 입력하면 아래와 같은 효과를 얻는다.

- Trunk포트인 경우, 강제로 Access 포트로 변경된다.
- Etherchannel을 구성한 경우, 강제로 해제된다.
- PortFast 기능이 자동으로 설정된다.

위의 두가지는 굳이 종단장치가 아니여도 상관없지만, 마지막의 PortFast 기능 때문에 이 설정은 반드시 종단장치에 직접 연결된 포트에 대해서만 사용해야 한다.


관련 문서
Configuring Access Host Ports 


P.S : 순서가 엉망인 이유? 그야 뭐... 공부하는 사람이 엉망이라서?

Errdisable Port State Recovery

Errdisable Port State Recovery 기능

앞에서 언급한, 다양한 보호기술들은 상당수가 포트 차단을 동반하고 있다.
이런 기술들을 적용한 상태에서 실제로 동작하게 될 경우, 관련 이슈가 발생하면 포트가 차단된다. 그리고 관리자가 해제하기 전까지는 그 상태가 유지된다. 문제는 항상 그 자리에 대기해서 해제해 줄 수는 없다는 것.

Errdisable Port State Recovery 기능은 이런식으로 차단된 포트를 일정 시간 이후에 다시 전송 상태로 전환시켜주는 기능이다.

설정은 전체 설정모드에서 아래와 같이 입력하면 된다.

SW(config)# errdisable recovery cause [해당이슈명]

예를 들어 BPDU Guard로 인한 차단을 자동적으로 해제하고자 하는 경우라면

SW(config)# errdisable recovery cause bpduguard


복구 시키는 시간은 기본값으로 300초(=5분)로 되어있다. 이 시간을 변경하고자 하는 경우에는 아래와 같이 전체 설정모드에서 입력하면 된다.

SW(config)# errdisable recovery interval [시간(초단위)]


더 자세한 내용은 아래의 관련 문서를 참고하면 된다.


관련 문서
Errdisable Port State Recovery on the Cisco IOS Platforms

2013년 7월 28일 일요일

STP보호기술 2 - BPDU Filtering 와 Loop Guard

BPDU Filtering 

BPDU를 송/수신 하지 않도록 설정하는 기능.
BPDU를 받지 않아도 될 장비에 보내서 부하가 걸리지 않도록 하는데 그 목적이 있다.

설정은 크게 두가지 방식을 취한다.

첫번째 방법은 전체 설정모드에서 설정하는 방식으로, 전체 설정모드에서 다음과 같이 입력한다.

SW(config)# spanning-tree portfast bpdufilter default

이렇게 하면, 더이상 해당 스위치에서는 BPDU를 송신하지 않는다.
다만 수신은 하며, 수신한 경우에는 그 포트에 대해서는 BPDU Filtering이 해제되고
정상적으로 BPDU를 송수신하게된다.

이 방식의 장점은 일괄적으로 한번에 설정할 수 있다는 점.

이렇게 설정된 경우, 일단은 해당 스위치에 존재하는 모든 포트에 일괄적으로 BPDU Filtering기능이 적용된다. 하지만 다른 장치에서 BPDU를 전송 받을 경우, 해당 포트는 BPDU Filtering이 해제된다. 이후는 일반적인 STP환경처럼 Root/Desg/Altn으로 설정된다.

결과적으로 BPDU를 보내지 않는 종단 장치와 연결된 포트들에는 BPDU Filtering이 유지되고, 그 외의 포트들은 BPDU Filtering이 자동적으로 해제된다.

단점은 그 기준이 BPDU 수신여부라는 점.

누군가가 악의적으로 BPDU를 조작해서 보낼 경우, STP구조가 엉망이 되는 상황이 발생 할 수 있다. 별도로 조정하지 않은 기본상태 기준으로 최대 50초간 네트워크가 마비될 수도 있다.


두번째 방법은 개별 인터페이스에서 직접 설정하는 방식으로, 개별 인터페이스에서 다음과 같이 입력한다.

SW(config-if)# spanning-tree bpdufilter enable

이 방식의 경우는 BPDU 송신만이 아닌, BPDU의 수신도 차단한다.

이 방식의 장점은 직접 설정을 해제하지 않는 한 해제되지 않는다는 점.

앞서 언급한 전체설정모드에서 하는 방법의 단점은, 이 방식에서는 발생하지 않는다.

단점은 STP구성에 포함된 포트에서 사용시, 루프가 발생할 수 있다는 것.

본래 Altn포트로 지정되서 블럭되야하는 포트가 BPDU Filtering설정이 되면, 강제적으로 Forwarding상태가 되어 버린다. 이렇게 되면 Loop구성이 되버려서 정상적인 통신을 하지 못하게 된다.

따라서, 종단포트에 대해서만 개별 인터페이스에서 설정하는 것이 좋다.



Loop Guard

STP상에서 이미 차단(Altn - BLK)된 포트가 상대 포트에게 일정시간 이상(기본값은 50초) BPDU를 받지 못하면, 차단상태에서 전송상태(Desg - FWD)로 변경된다. 이 경우, 루프가 발생하게 된다. Loop Guard는 이러한 현상을 방지하기 위한 기능으로, 이 기능이 설정된 경우에는 차단된 포트가 BPDU를 받지 못해서 전송포트로 변경되는걸 방지한다.


전체 설정 모드에서 설정하고자 하는 경우는 아래와 같이 한다.

SW(config)# spanning-tree loopguard default


개별 인터페이스에 대해서 설정하고자 하는 경우는 해당 인터페이스에 들어가서 아래와 같이 설정한다.

SW(config-if)# spanning-tree guard loop


관련 문서

Configuring Spanning Tree PortFast, BPDU Guard, BPDU Filter, UplinkFast, BackboneFast, and Loop Guard 

Catalyst 2960-X Switch Layer 2 Configuration Guide, Cisco IOS Release 15.0(2)EX 

Configuring Optional Spanning-Tree Features

2013년 7월 27일 토요일

STP보호기술 1 - BPDU Guard 와 Root Guard

BPDU Guard

정상적인 경우, 종단장치가 연결된 포트에서는 BPDU가 송신될 필요가 없다. 같은 이유로 수신될 필요도 없고, 수신 될 일도 없는 것이 정상이다. 종단장치가 연결된 포트에서 BPDU가 수신된다는 것은, 승인되지 않은 개인의 스위치or허브 연결이나 해킹으로 인한 STP공격등이 있을 수 있다. 이를 방지하기 위한 기능이 BPDU Guard. 설정하게 되면, BPDU를 수신할 경우 해당 포트가 차단된다.


전체 설정모드에서는 아래와 같이 설정하면 된다.

SW(config)# spanning-tree portfast bpduguard default

이 방법을 사용하면 스위치에 존재하는 포트중 PortFast 설정이 적용된 포트에서 BPDU가 수신되면 해당 포트를 차단하게 된다.


개별 인터페이스에 대해서는 아래와 같이 설정하면 된다.

SW(config-if)# spanning-tree bpduguard enable

이 방법으로 설정한 포트에 BPDU가 수신되면 해당 포트를 차단한다.


Root Guard

STP를 구성할때 핵심이 되는 Root Switch는 브릿지ID가 가장 낮은 스위치가 담당하게 된다.
L2 네트워크의 중심이 되는 장비가 되므로, 대게는 전체를 관리하는 코어쪽(아래 이미지에서 오른쪽의 Service-Provider측)에 Root스위치를 설정해서 사용하게 된다. 문제는 코어에 연결된 개별 사용자측(아래 이미지에서 왼쪽의 Customer측)에서 별도의 장비(Switch)를 연결하고 내부적으로 설정하는 과정에서 Root Switch보다 더 낮은 브릿지ID를 가지게 설정한 경우가 발생할 수 있다. 이렇게 되면, Root Switch가 변경되면서 STP구조가 변경되는 등의 문제가 발생 할 수 있다.


Root Guard 기능은, 설정된 포트로 들어오는 BPDU중, 해당 스위치의 루트ID보다 브릿지ID가 더 낮은 BPDU가 들어오게 되면 해당 포트를 차단하는 기능이다.

이 기능은 개별 인터페이스에서 설정할 수 있다. (전체모드 미지원)

SW(config-if)# spanning-tree guard root

이 기능은 설정시 주의가 필요하다. 대놓고 매뉴얼 상에 장애 발생의 원인이 될 수 있다고 명시될 정도.


관련 문서

Configuring Spanning Tree PortFast, BPDU Guard, BPDU Filter, UplinkFast, BackboneFast, and Loop Guard 

Spanning Tree PortFast BPDU Guard Enhancement

Catalyst 2960-X Switch Layer 2 Configuration Guide, Cisco IOS Release 15.0(2)EX 

Configuring Optional Spanning-Tree Features

2013년 7월 16일 화요일

STP - Priority값

0~61440사이의 값으로 지정 가능하며, 4096 단위로 지정이 가능하다.

0000 = 0
0001 = 4096
0010 = 8192
0011 = 12288
0100 = 16384
0101 = 20480
0110 = 24576
0111 = 28672
1000 = 32768 default
1001 = 36864
1010 = 40960
1011 = 45056
1100 = 49152
1101 = 53248
1110 = 57344
1111 = 61440

위와 같이 표현되는건, 본래 16bit인걸 4bit로 표현하기위해.

STP - 경로 선택


CCNP - Switch 덤프 문제중 하나.
기본적으로 100Mb/s 회선 상태에서 DSW-1 Fa0/7 ~ ASW-1 Fa0/23 사이의 연결만 10Mb/s가 되면, 경로 선택이 어떻게 되는가에 대한 문제.

아래는 각 인터페이스 속도별 경로값(기본값이고 임의로 변경 가능.)이다.

속도(단위 : Mb/s) 경로값
10 100
100 19
1000 4
10000 2

기본적으로 경로 선택은 Root스위치까지의 각 구간별 경로값 합을 기준으로, 가장 낮은 수치의 경로를 선택하게된다. (값이 같은 경우는 포트번호 등을 따지게 된다.)

본래 저 구조라면, DSW-1 Fa0/7 ~ ASW-1 Fa0/23 가 19의 값을 가지게 되고 다른 라인을 거쳐서 오게 되면 19의 배수가 되는 상황(속도가 다 100Mb/s니까.)이라 그 이상 낮아질 수가 없다. 하지만 문제의 조건처럼 저 구간이 10Mb/s가 되면? 100Mb/s 구간을 6회 거치는 경우가 아닌 이상은 사용하지 않게된다. 그리고 저 상황에서는 2회(즉 경로값이 38)가 가장 낮은 상황이 되므로...

참고로 이러한 정보들은 BPDU(Bridge Protocol Data Unit)를 통해 전달된다.


----여기까지는 해당 문제에 대한 이야기고, 좀더 자세한 경로선택에 대해 알아보자.

STP상에서 경로 선택에는 다음과 같은 사항들이 고려된다.
(Root Switch는 기본적으로 활성화된 모든 포트가 Desg상태이므로 언급하지 않는다.)

Path Cost

위에서 언급한 값이다. 기본적으로 Root Switch로 부터 계산하게 된다.


Port Priority

포트별로 지정되는 우선권. 기본값은 128이고, 0~240 범위 내에서 16단위로 설정할 수 있다. 이 값이 낮을 수록 우선권을 가진다. 동일 스위치와 연결된 포트가 여럿이고, 설정된 경로값도 동일할 경우라면 이 값을 기준으로 RP, DP, AP를 결정한다.


Port ID

다른값이 모두 동일한 경우, 포트 자체번호를 기준으로 가장 낮은 번호가 우선권을 가진다.



P.S : 작성 사유? 경로값 자꾸 까먹어서...