오랫만에 글올립니다. Trunk 동작원리에 대한 설명입니다. ISL은 이제 안쓰지만, 그래도 혹시 쓰시는 분들을 위해서 함께 설명해 두었습니다. 참고 하세요.
1. Trunk 동작 원리 |
1.1. Dot1q vlan 개요
IEEE 802.1Q에 따르면, tag-based vlan의 경우 Bridge를 거쳐가는 프레임의 vlan membership을 확인하기 위해 MAC header 내에 특별한 tag를 이용한다. 이 tag는 vlan과 QoS priority 식별을 위해 이용된다. Vlan ID는 특정 vlan과 frame을 결합하여 네트웍을 거쳐가는 frame에 대한 정보를 스위치에 제공한다.
Tagged frame 은 untagged frame 보다 4byte가 더 길고, 이는 2byte의 TPID(Tag Protocol Identifier)와 2byte
의 TCI(Tag Control Information)을 포함한다.
이에 반해 ISL의 경우 데이터 frame의 양쪽 끝에 각각 26 octet 의 ISL header와 4 octet의 CRC를 더한다. 이를 double-tagging 혹은 two-level tagging encapsulation이라고 한다.
1. TPID(EtherType) : 0x8100으로 고정되어 있고, neighbor에게 해당 frame은 IEEE 802.1Q/802.1P tag를
달고 전송됨을 알려준다.
2. Priority : 이는 802.1p priority 필드이다. 이 3 bit는 user priority를 결정하고 8가지 레벨(2^3)을 제공한다.
3. CFI : Canonical Format Indicator는 single bit flag이고 Ethernet 스위치에 대해 항상 0으로 값이 고정되어 있다. 만일 Ethernet 포트의 CFI가 1로 셋팅된 포트에서 frame를 받았다면, 이는 untagged 포트를 향하고 있기 때문에 forward 되어서는 안된다.
4. VID : VLAN ID는 vlan의 식별자(identification)이고, 기본적으로 802.1Q에 이용된다. 12bit 구성으로 총 4096(2^12)개의 vlan을 지원한다. 4096개의 VID 중에서 0은 priority frame을 식별하는 데 사용되고, 4095(FFF)는 예약되어 있어, 실제 사용가능한 vlan의 수는 4094개이다.
1.2. 802.1Q vlan은 어떻게 동작하는가
tag에 포함된 VID 정보에 따라 스위치는 포트간에 frame를 forward 하거나 filter를 하게 되고, 같은 VID를 가진 포트들간에 서로 통신이 일어나게 된다.
IEEE 802.1Q vlan은 아래와 같이 Ingress, Forwarding, Egress process의 세가지 기능을 포함하고 있다.
각각의 포트는 tagged나 untagged frame을 통과시킬 수 있다. Ingress Process는 들어온 frame이 tag를 가지고 있는지 식별하여 해당 vlan으로 frame을 분류하는 기능을 한다.
a. tagged frame가 들어오면, 포함된 VID 정보에 따라 곧바로 forwarding process로 넘어간다.
b. Untagged frame는 VID 정보를 가지고 있지 않기 때문에, Ingress Process 에서 PVID(native VLAN ID)라고 하는 default VID를 frame에 삽입한다.
Ingress Process 후에 모든 frame이 4 byte의 tag와 VID 정보를 가지게 된 후, Forwarding Process 단계로 넘어가게 된다.
2. 802.1Q, ISL, and Spanning Tree |
시스코는 multiple instance Spanning Tree를 지원한다. 이는 각각의 vlan 이 개별의 Root Bridge를 가지도록 Spanning Tree Topology를 구성할 수 있음을 의미한다.
시스코 카탈리스트에서의 이러한 기능을 Per-VLAN Spanning Tree(PVST)라고 한다. 반면에 802.1Q는 모든 vlan에 대해 single instane Spanning Tree를 규정하고 있다. 802.1Q 네트웍에서는 모든 vlan이 동일한 Root Bridge를 가지고 있다. 이를 Mono Spanning Tree(MST)라고 한다. 802.1Q는 한 개 이상의 STP Instance를 가지는 것에 대해 배제하고 있지는 않지만, 이를 지원하기 위한 내용을 가지고 있지 않다.
ISL과 802.1Q이 혼용된 상태에서 여러 복잡한 상황이 일어날 수 있는데, 특별한 대책이 없이는 모든 vlan에 대해 Spanning Tree Topology를 일반적인 Topology로 구성할 수 밖에 없다. 시스코는 multiple Spanning Tree Topology를 유지하기 위해, 또한 802.1Q가 혼합된 타 벤더의 장비가 있는 네트웍 환경에서도 동작하기 위한 PVST+를 개발하였다.
PVST+는 멀티캐스트 frame 처럼 802.1Q MST Spanning Tree를 통해 PVST frame 터널을 만들고, 이때 PVST+를 위해 01-00-0C-CC-CC-CD의 멀티캐스트 주소를 사용한다.
802.1Q와 달리, PVST+는 multiple VLAN 내에서 MAC 주소의 재사용을 가능케하고, 만일 이러한 동작이 필요한 장비가 있다면, ISL과 PVST+를 사용할 필요가 있다.
3. TEST |
3.1. 802.1Q tagged port 와 untagged access port 의 연결
Tagged port 와 untagged port를 연결하여 정상적인 packet 전달이 이루어지는지의 동작을 관찰하기 위해 아래와 같은 환경을 구성하여 테스트를 진행함.
S/W #1 vlan |
Result |
Expected |
Trunk 설정 |
S/W #2 vlan |
Vlan 1 |
O |
O |
Native 1 |
Vlan 1 |
Vlan 1 |
X |
O |
Native 2 |
Vlan 2 |
Vlan 2 |
X |
O |
Native 1 |
Vlan 1 |
Vlan 2 |
X |
O |
Native 2 |
Vlan 2 |
[출처] [CISCO] Trunk 동작 원리 설명 (네트워크 전문가 따라잡기 (IT 인프라)) | 작성자 스티븐