802.1Q 터널링(Q-in-Q) 설정
쉽게 이해하기: L2 VPN이란?
Q-in-Q를 이해하려면 먼저 왜 필요한지부터 알아야 합니다.
상황 예시
회사 A가 서울 본사와 부산 지사를 운영하고 있습니다. 두 사이트의 PC들이 마치 같은 스위치에 연결된 것처럼 통신하고 싶습니다 (같은 VLAN, 같은 서브넷).
[서울 본사] [부산 지사]
PC1 (VLAN 12) PC2 (VLAN 12)
192.168.12.1 ???어떻게 연결??? 192.168.12.2문제는 서울과 부산 사이에 통신사(서비스 프로바이더)의 네트워크가 있다는 것입니다. 직접 케이블을 깔 수는 없으니, 통신사 네트워크를 빌려서 써야 합니다.
해결 방법의 종류
| 방법 | 설명 | 난이도 |
|---|---|---|
| 전용선 | 물리적 회선을 직접 연결 | 비용이 매우 높음 |
| MPLS VPN | 통신사가 라우팅 프로토콜(BGP 등)을 사용해 연결 | 복잡하지만 가장 많이 사용 |
| Q-in-Q (L2 VPN) | 통신사가 고객 프레임에 태그를 하나 더 씌워서 전달 | 간단하고 저렴 |
Q-in-Q가 하는 일 (택배 비유)
Q-in-Q를 택배에 비유하면 이해하기 쉽습니다:
- 고객이 보내는 택배 = VLAN 12 태그가 붙은 이더넷 프레임
- 통신사가 하는 일 = 고객 택배를 더 큰 상자(VLAN 123)에 넣어서 운반
- 도착지에서 = 큰 상자(VLAN 123)를 벗기고, 원래 택배(VLAN 12)를 전달
고객이 보낸 것: [택배: VLAN 12]
통신사가 포장: [큰 상자: VLAN 123 [택배: VLAN 12]]
도착지에서 개봉: [택배: VLAN 12]고객 입장에서는 통신사 네트워크가 투명(Transparent) 합니다 — 마치 존재하지 않는 것처럼, 서울과 부산이 직접 연결된 것처럼 보입니다.
L2 VPN이란? Layer 2(이더넷) 수준에서 떨어진 두 사이트를 가상으로 직접 연결하는 기술입니다. 고객은 IP 라우팅 없이 같은 VLAN/서브넷으로 통신할 수 있습니다.
실무에서는? 현재 대부분의 서비스 프로바이더는 MPLS를 사용합니다. Q-in-Q는 구현이 간단하지만 확장성이 떨어져서, 소규모 메트로 이더넷이나 특수한 경우에 사용됩니다.
핵심 요약
- Q-in-Q는 고객 프레임에 두 번째 802.1Q 태그를 추가하며, 고객의 원래 VLAN 태그는 유지됨
- 각 고객에게 고유한 프로바이더 VLAN을 할당하여 트래픽을 격리
- 고객 연결 인터페이스에
switchport mode dot1q-tunnel과switchport access vlan으로 설정 - 추가 4바이트 태그를 수용하기 위해 프로바이더 스위치의 MTU를 1504바이트로 증가 필요
- CDP, VTP, STP, EtherChannel 등 Layer 2 프로토콜 터널링 가능
- MPLS VPN과 달리 라우팅 프로토콜이 필요 없어 구현이 간단
동작 원리
R1과 R2는 고객 사이트이며, SW1, SW2, SW3은 서비스 프로바이더 네트워크입니다. 고객은 두 사이트 간에 VLAN 12를 사용하고, 프로바이더는 VLAN 123으로 고객 트래픽을 운반합니다.
프레임 처리 과정
- R1이 VLAN 12 태그가 포함된 프레임을 전송
- SW1(프로바이더)이 추가 VLAN 123 태그를 삽입 (이중 태깅)
- 프로바이더 네트워크 내에서 VLAN 123으로 전달
- SW2가 외부 VLAN 태그(123)를 제거하고, 원래의 VLAN 12 태그가 있는 프레임을 R2로 전달
프레임 구조
원본 이더넷 프레임:
┌──────────┬──────────┬────────────┬─────────────┬──────┬─────┐
│ Preamble │ Dest MAC │ Source MAC │ Type/Length │ Data │ CRC │
└──────────┴──────────┴────────────┴─────────────┴──────┴─────┘
고객이 보낸 802.1Q 프레임 (VLAN 12 태그 포함):
┌──────────┬──────────┬────────────┬─────────┬─────────────┬──────┬─────┐
│ Preamble │ Dest MAC │ Source MAC │ Tag(12) │ Type/Length │ Data │ CRC │
└──────────┴──────────┴────────────┴─────────┴─────────────┴──────┴─────┘
프로바이더 네트워크 내부 (이중 태깅):
┌──────────┬──────────┬────────────┬──────────┬─────────┬─────────────┬──────┬─────┐
│ Preamble │ Dest MAC │ Source MAC │ Tag(123) │ Tag(12) │ Type/Length │ Data │ CRC │
└──────────┴──────────┴────────────┴──────────┴─────────┴─────────────┴──────┴─────┘
↑ 프로바이더가 추가 ↑ 고객 원본 유지여러 고객을 동시에 지원
Q-in-Q의 장점은 고객별로 다른 프로바이더 VLAN을 할당하여 격리할 수 있다는 것입니다:
고객 A: VLAN 100으로 포장 → 내부에 고객 A의 VLAN들 (10, 20, 30...)
고객 B: VLAN 200으로 포장 → 내부에 고객 B의 VLAN들 (10, 20, 30...)
고객 C: VLAN 300으로 포장 → 내부에 고객 C의 VLAN들 (10, 20, 30...)고객 A와 고객 B가 모두 VLAN 10을 사용해도, 프로바이더 VLAN이 다르므로 서로 섞이지 않습니다.
설정
고객 라우터 설정
R1(config)#interface fastEthernet 0/0
R1(config-if)#no shutdown
R1(config-if)#interface fastEthernet 0/0.12
R1(config-subif)#encapsulation dot1Q 12
R1(config-subif)#ip address 192.168.12.1 255.255.255.0
R2(config)#interface fastEthernet 0/0
R2(config-if)#no shutdown
R2(config-if)#interface fastEthernet 0/0.12
R2(config-subif)#encapsulation dot1Q 12
R2(config-subif)#ip address 192.168.12.2 255.255.255.0R1과 R2는 서브 인터페이스를 사용하여 VLAN 12로 태깅된 프레임을 전송합니다. 고객은 이것만 설정하면 됩니다 — 프로바이더 네트워크에 대해 아무것도 알 필요가 없습니다.
프로바이더 스위치 간 트렁크 설정
프로바이더 스위치 간에는 일반 802.1Q 트렁크를 설정합니다:
SW1(config)#interface fastEthernet 0/19
SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#switchport mode trunk
SW2(config)#interface fastEthernet 0/21
SW2(config-if)#switchport trunk encapsulation dot1q
SW2(config-if)#switchport mode trunk
SW3(config)#interface fastEthernet 0/19
SW3(config-if)#switchport trunk encapsulation dot1q
SW3(config-if)#switchport mode trunk
SW3(config)#interface fastEthernet 0/21
SW3(config-if)#switchport trunk encapsulation dot1q
SW3(config-if)#switchport mode trunkQ-in-Q 터널 인터페이스 설정
핵심 설정입니다. 고객 연결 인터페이스에 dot1q-tunnel 모드를 설정합니다:
SW1(config)#interface fastEthernet 0/1
SW1(config-if)#switchport access vlan 123
SW1(config-if)#switchport mode dot1q-tunnel
SW2(config)#interface fastEthernet 0/2
SW2(config-if)#switchport access vlan 123
SW2(config-if)#switchport mode dot1q-tunnelswitchport mode dot1q-tunnel— 이 포트로 들어오는 프레임에 추가 VLAN 태그를 씌움switchport access vlan 123— 추가할 프로바이더 VLAN 번호 지정
모든 프로바이더 스위치(SW1, SW2, SW3)에 VLAN 123이 존재해야 합니다. SW3에도 수동으로 생성합니다:
SW3(config)#vlan 123
확인
R1#ping 192.168.12.2
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 msSW1#show dot1q-tunnel
dot1q-tunnel mode LAN Port(s)
-----------------------------
Fa0/1트렁크에서 확인하면 프로바이더 VLAN(123)만 보이고, 고객 VLAN(12)은 캡슐화되어 보이지 않습니다:
SW1#show interfaces fa0/19 trunk
Port Vlans allowed and active in management domain
Fa0/19 1,123프로바이더 스위치에는 고객의 VLAN 12에 대한 스패닝 트리도 존재하지 않습니다 — 프로바이더 입장에서는 VLAN 123만 관리하면 됩니다:
SW1#show spanning-tree vlan 12
Spanning tree instance(s) for vlan 12 does not exist.Layer 2 프로토콜 터널링
Q-in-Q는 CDP, VTP, STP, EtherChannel(PAgP/LACP) 등의 Layer 2 프로토콜도 터널링할 수 있습니다:
SW1(config)#interface fastEthernet 0/1
SW1(config-if)#l2protocol-tunnel cdp
SW2(config)#interface fastEthernet 0/2
SW2(config-if)#l2protocol-tunnel cdpCDP를 터널링하면 R1에서 R2가 직접 연결된 것처럼 보입니다:
R1#show cdp neighbors
Device ID Local Intrfce Holdtme Capability Platform Port ID
R2 Fas 0/0 171 R S I 2811 Fas 0/1R1은 중간에 3대의 스위치가 있는 줄 모르고, R2가 바로 옆에 있다고 인식합니다. 이것이 “투명한(Transparent) 네트워크”의 의미입니다.
MTU 문제 해결
두 번째 802.1Q 태그(4바이트)가 추가되므로 프로바이더 네트워크에서 총 MTU가 1504바이트가 됩니다. 기본 MTU(1500)에서는 큰 패킷이 드롭됩니다:
R1#ping 192.168.12.2 size 1500 df-bit
Success rate is 0 percent (0/5)왜 문제가 되는가? 고객이 1500바이트 프레임을 보내면, 여기에 4바이트 태그가 추가되어 1504바이트가 됩니다. 스위치의 기본 MTU가 1500이면 이 프레임은 너무 커서 드롭됩니다. 작은 패킷(예: 핑 기본 크기)은 문제없지만, 최대 크기 패킷은 실패합니다.
프로바이더 스위치의 MTU를 증가시킵니다:
SW1(config)#system mtu 1504
SW2(config)#system mtu 1504
SW3(config)#system mtu 1504MTU 변경 후 스위치를 재부팅해야 적용됩니다.
SW1#show system mtu
System MTU size is 1504 bytes재부팅 후 큰 패킷도 정상 통신됩니다:
R1#ping 192.168.12.2 size 1500 df-bit
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 msQ-in-Q의 한계
Q-in-Q는 간단하지만 다음과 같은 한계가 있습니다:
- 확장성: VLAN ID는 최대 4094개이므로, 고객 수가 제한됨
- 라우팅 불가: 순수 L2 전달이므로, 프로바이더 네트워크에서 라우팅 기반 경로 제어가 안 됨
- STP 문제: 고객의 STP와 프로바이더의 STP가 독립적이지만, 대규모 환경에서 복잡해질 수 있음
이런 이유로 대규모 서비스 프로바이더는 MPLS VPN을 선호합니다. Q-in-Q는 메트로 이더넷이나 소규모 환경에서 빠르게 L2 VPN을 구현할 때 유용합니다.
최종 설정
SW1
hostname SW1
!
vlan 123
!
interface FastEthernet0/1
switchport access vlan 123
switchport mode dot1q-tunnel
l2protocol-tunnel cdp
no cdp enable
!
interface FastEthernet0/19
switchport trunk encapsulation dot1q
switchport mode trunk
!
endSW2
hostname SW2
!
vlan 123
!
interface FastEthernet0/2
switchport access vlan 123
switchport mode dot1q-tunnel
l2protocol-tunnel cdp
no cdp enable
!
interface FastEthernet0/21
switchport trunk encapsulation dot1q
switchport mode trunk
!
endSW3
hostname SW3
!
vlan 123
!
interface FastEthernet1/0/19
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface FastEthernet1/0/21
switchport trunk encapsulation dot1q
switchport mode trunk
!
end