Skip to Content

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를 택배에 비유하면 이해하기 쉽습니다:

  1. 고객이 보내는 택배 = VLAN 12 태그가 붙은 이더넷 프레임
  2. 통신사가 하는 일 = 고객 택배를 더 큰 상자(VLAN 123)에 넣어서 운반
  3. 도착지에서 = 큰 상자(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-tunnelswitchport access vlan으로 설정
  • 추가 4바이트 태그를 수용하기 위해 프로바이더 스위치의 MTU를 1504바이트로 증가 필요
  • CDP, VTP, STP, EtherChannel 등 Layer 2 프로토콜 터널링 가능
  • MPLS VPN과 달리 라우팅 프로토콜이 필요 없어 구현이 간단

동작 원리

09_802.1Q Tunneling (Q-in-Q) Configuration_img_p02_01

R1과 R2는 고객 사이트이며, SW1, SW2, SW3은 서비스 프로바이더 네트워크입니다. 고객은 두 사이트 간에 VLAN 12를 사용하고, 프로바이더는 VLAN 123으로 고객 트래픽을 운반합니다.

프레임 처리 과정

09_802.1Q Tunneling (Q-in-Q) Configuration_img_p03_01
  1. R1이 VLAN 12 태그가 포함된 프레임을 전송
  2. SW1(프로바이더)이 추가 VLAN 123 태그를 삽입 (이중 태깅)
  3. 프로바이더 네트워크 내에서 VLAN 123으로 전달
  4. 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.0

R1과 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 trunk

Q-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-tunnel
  • switchport 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 ms
SW1#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 cdp

CDP를 터널링하면 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/1

R1은 중간에 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 1504

MTU 변경 후 스위치를 재부팅해야 적용됩니다.

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 ms

Q-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 ! end

SW2

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 ! end

SW3

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