802.1Q Tunneling (Q-in-Q) – Khi VLAN của khách hàng đi xuyên qua mạng nhà cung cấp như một “đường hầm Layer 2”
Trong các bài trước chúng ta đã nói về 802.1Q tagging truyền thống. Nhưng có một câu hỏi thú vị trong môi trường Metro Ethernet hoặc Provider Bridging:
Nếu nhiều khách hàng đều dùng VLAN 10, VLAN 20… thì nhà cung cấp làm sao chuyên chở các VLAN trùng số đó qua hạ tầng của họ mà không xung đột?
Câu trả lời là 802.1Q Tunneling, hay thường gọi là Q-in-Q.
Đây là một công nghệ rất quan trọng trong Carrier Ethernet, SD-Access transport, Metro E, và nhiều thiết kế campus/provider handoff.
Q-in-Q là gì?
Q-in-Q là kỹ thuật đóng thêm một VLAN tag thứ hai vào frame Ethernet.
Thông thường Ethernet frame chỉ có một tag 802.1Q:
Khi đi vào mạng provider, switch của nhà cung cấp gắn thêm:
Kết quả frame mang hai VLAN tags:
Đó là lý do gọi là:
Ý tưởng hoạt động
Giả sử khách hàng Site A và Site B đều dùng VLAN 12.
Khách hàng gửi frame:
Khi đi vào mạng provider:
Frame trở thành:
Qua toàn bộ backbone Metro Ethernet, provider chỉ nhìn VLAN 123.
Khi ra đầu bên kia:
Khách hàng có cảm giác như hai site nối chung một switch Layer 2.
Đây chính là transparent Layer 2 transport.
Header thay đổi như thế nào?
Ban đầu:
Ethernet Header
→ 802.1Q tag (4 bytes)
→ Payload
Sau Q-in-Q:
Ethernet Header
→ Outer 802.1Q tag
→ Inner 802.1Q tag
→ Payload
Tăng thêm:
Frame size tăng.
Điểm này dẫn đến câu chuyện MTU mà ta sẽ quay lại phía dưới.
Lab cấu hình trong tài liệu
Topology gồm:
Customer dùng:
Provider dùng:
Router Customer
Trên R1:
interface FastEthernet0/0.12
encapsulation dot1q 12
ip address 192.168.12.1 255.255.255.0
Trên R2:
interface FastEthernet0/0.12
encapsulation dot1q 12
ip address 192.168.12.2 255.255.255.0
Đây là customer tag (inner tag).
Provider Trunks
Các uplink giữa provider switches:
switchport trunk encapsulation dot1q
switchport mode trunk
Cấu hình trunk bình thường.
Bật Q-in-Q Port
Đây là phần quan trọng nhất.
SW1 phía customer:
interface Fa0/1
switchport access vlan 123
switchport mode dot1q-tunnel
SW2:
interface Fa0/2
switchport access vlan 123
switchport mode dot1q-tunnel
Hai dòng quan trọng:
switchport mode dot1q-tunnel
switchport access vlan 123
Ý nghĩa:
Đây chính là provider edge handoff.
Verify - Kiểm tra
Ping thành công:
R1# ping 192.168.12.2
Success rate is 100 percent
Kiểm tra trunk
show interfaces trunk
Ta chỉ thấy:
Không hề thấy VLAN 12.
Vì:
VLAN 12 nằm bên trong frame, provider switch không participate STP hay switching cho VLAN 12.
Rất quan trọng.
Một điều nhiều người bỏ sót:
STP cho VLAN khách hàng không tồn tại trong provider
Lệnh:
show spanning-tree vlan 12
Kết quả:
Spanning tree instance does not exist
Tại sao?
Vì provider không switch VLAN 12.
Họ chỉ switch outer tag 123.
Đây là bản chất "tunnel".
Layer 2 Protocol Tunneling
Điểm cực hay của Q-in-Q:
Không chỉ data VLAN.
Có thể tunnel cả control protocols:
l2protocol-tunnel cdp
Có thể tunnel:
Ví dụ sau khi bật:
show cdp neighbors
R1 có thể nhìn thấy R2 như trực tiếp kết nối.
Rất thú vị.
Đây là transparent transport đúng nghĩa.
Vấn đề MTU – Bẫy thực chiến
Đây là thứ ngoài production rất hay gặp.
Vì thêm một tag:
Frame tăng 4 bytes.
Ethernet chuẩn:
1500 bytes payload
Q-in-Q:
1504 bytes
Nếu switch provider vẫn MTU 1500:
Packet DF bit set có thể fail.
Ví dụ trong lab:
ping 192.168.12.2 size 1500 df-bit
Fail.
Fix
Tăng system MTU:
system mtu 1504
Reload switch.
Verify:
show system mtu
Sau đó ping pass.
Đây là chi tiết rất thực chiến.
Q-in-Q dùng ở đâu ngoài đời?
Metro Ethernet Carrier
Dịch vụ:
Khách hàng giữ nguyên VLAN scheme.
Provider chuyên chở qua S-VLAN.
Multi-tenant DC
Tách tenant bằng outer tag.
SD-Access / Overlay Transport
Một số handoff transport sử dụng ý tưởng tương tự.
Wholesale L2 Services
ISP bán Layer 2 circuits.
Rất phổ biến.
Hạn chế của Q-in-Q
Q-in-Q khá elegant nhưng không hoàn hảo.
Các vấn đề:
Vì vậy modern DC dần chuyển sang:
Nhưng hiểu Q-in-Q vẫn là nền tảng cực quan trọng.
Phân biệt C-VLAN và S-VLAN
Hay bị nhầm:
C-VLAN
(Customer VLAN)
S-VLAN
(Service VLAN)
Inner tag = C-tag
Outer tag = S-tag
Đừng nhầm với native VLAN.
Tư duy bản chất của công nghệ
Q-in-Q không phải “trunk của trunk”.
Nó là:
Nhà mạng Provider dùng một VLAN để encapsulate toàn bộ VLAN của khách hàng.
Đó là carrier-style encapsulation.
Nếu đi thi CCIE hoặc thiết kế thực tế, bạn nên nhớ 4 điểm
Thiếu số 4 là lỗi production rất điển hình.
Trong các bài trước chúng ta đã nói về 802.1Q tagging truyền thống. Nhưng có một câu hỏi thú vị trong môi trường Metro Ethernet hoặc Provider Bridging:
Nếu nhiều khách hàng đều dùng VLAN 10, VLAN 20… thì nhà cung cấp làm sao chuyên chở các VLAN trùng số đó qua hạ tầng của họ mà không xung đột?
Câu trả lời là 802.1Q Tunneling, hay thường gọi là Q-in-Q.
Đây là một công nghệ rất quan trọng trong Carrier Ethernet, SD-Access transport, Metro E, và nhiều thiết kế campus/provider handoff.
Q-in-Q là gì?
Q-in-Q là kỹ thuật đóng thêm một VLAN tag thứ hai vào frame Ethernet.
Thông thường Ethernet frame chỉ có một tag 802.1Q:
- Customer VLAN tag (C-VLAN)
Khi đi vào mạng provider, switch của nhà cung cấp gắn thêm:
- Service VLAN tag (S-VLAN)
Kết quả frame mang hai VLAN tags:
- Outer Tag (S-tag) → Provider quản lý
- Inner Tag (C-tag) → Khách hàng giữ nguyên
Đó là lý do gọi là:
- Tag nằm trong Tag
- VLAN trong VLAN
- Q-in-Q
Ý tưởng hoạt động
Giả sử khách hàng Site A và Site B đều dùng VLAN 12.
Khách hàng gửi frame:
- VLAN 12
Khi đi vào mạng provider:
- Provider thêm outer VLAN 123
Frame trở thành:
- Outer VLAN 123
- Inner VLAN 12
Qua toàn bộ backbone Metro Ethernet, provider chỉ nhìn VLAN 123.
Khi ra đầu bên kia:
- Outer tag bị bóc ra
- VLAN 12 ban đầu được giữ nguyên
Khách hàng có cảm giác như hai site nối chung một switch Layer 2.
Đây chính là transparent Layer 2 transport.
Header thay đổi như thế nào?
Ban đầu:
Ethernet Header
→ 802.1Q tag (4 bytes)
→ Payload
Sau Q-in-Q:
Ethernet Header
→ Outer 802.1Q tag
→ Inner 802.1Q tag
→ Payload
Tăng thêm:
- 4 bytes
Frame size tăng.
Điểm này dẫn đến câu chuyện MTU mà ta sẽ quay lại phía dưới.
Lab cấu hình trong tài liệu
Topology gồm:
- R1 — SW1 — SW3 — SW2 — R2
Customer dùng:
- VLAN 12
Provider dùng:
- VLAN 123
Router Customer
Trên R1:
interface FastEthernet0/0.12
encapsulation dot1q 12
ip address 192.168.12.1 255.255.255.0
Trên R2:
interface FastEthernet0/0.12
encapsulation dot1q 12
ip address 192.168.12.2 255.255.255.0
Đây là customer tag (inner tag).
Provider Trunks
Các uplink giữa provider switches:
switchport trunk encapsulation dot1q
switchport mode trunk
Cấu hình trunk bình thường.
Bật Q-in-Q Port
Đây là phần quan trọng nhất.
SW1 phía customer:
interface Fa0/1
switchport access vlan 123
switchport mode dot1q-tunnel
SW2:
interface Fa0/2
switchport access vlan 123
switchport mode dot1q-tunnel
Hai dòng quan trọng:
switchport mode dot1q-tunnel
switchport access vlan 123
Ý nghĩa:
- Biến port thành tunnel port
- Mọi frame khách hàng đi vào sẽ được encapsulate bằng S-VLAN 123
Đây chính là provider edge handoff.
Verify - Kiểm tra
Ping thành công:
R1# ping 192.168.12.2
Success rate is 100 percent
Kiểm tra trunk
show interfaces trunk
Ta chỉ thấy:
- VLAN 1
- VLAN 123
Không hề thấy VLAN 12.
Vì:
VLAN 12 nằm bên trong frame, provider switch không participate STP hay switching cho VLAN 12.
Rất quan trọng.
Một điều nhiều người bỏ sót:
STP cho VLAN khách hàng không tồn tại trong provider
Lệnh:
show spanning-tree vlan 12
Kết quả:
Spanning tree instance does not exist
Tại sao?
Vì provider không switch VLAN 12.
Họ chỉ switch outer tag 123.
Đây là bản chất "tunnel".
Layer 2 Protocol Tunneling
Điểm cực hay của Q-in-Q:
Không chỉ data VLAN.
Có thể tunnel cả control protocols:
l2protocol-tunnel cdp
Có thể tunnel:
- CDP
- STP
- VTP
- PAgP / LACP
Ví dụ sau khi bật:
show cdp neighbors
R1 có thể nhìn thấy R2 như trực tiếp kết nối.
Rất thú vị.
Đây là transparent transport đúng nghĩa.
Vấn đề MTU – Bẫy thực chiến
Đây là thứ ngoài production rất hay gặp.
Vì thêm một tag:
Frame tăng 4 bytes.
Ethernet chuẩn:
1500 bytes payload
Q-in-Q:
1504 bytes
Nếu switch provider vẫn MTU 1500:
Packet DF bit set có thể fail.
Ví dụ trong lab:
ping 192.168.12.2 size 1500 df-bit
Fail.
Fix
Tăng system MTU:
system mtu 1504
Reload switch.
Verify:
show system mtu
Sau đó ping pass.
Đây là chi tiết rất thực chiến.
Q-in-Q dùng ở đâu ngoài đời?
Metro Ethernet Carrier
Dịch vụ:
- E-Line
- E-LAN
- EVPL
Khách hàng giữ nguyên VLAN scheme.
Provider chuyên chở qua S-VLAN.
Multi-tenant DC
Tách tenant bằng outer tag.
SD-Access / Overlay Transport
Một số handoff transport sử dụng ý tưởng tương tự.
Wholesale L2 Services
ISP bán Layer 2 circuits.
Rất phổ biến.
Hạn chế của Q-in-Q
Q-in-Q khá elegant nhưng không hoàn hảo.
Các vấn đề:
- Scale giới hạn 4094 S-VLANs
- Broadcast domain lớn
- STP risk nếu control protocols bị leak
- Không có segmentation policy kiểu VXLAN/EVPN
Vì vậy modern DC dần chuyển sang:
- VXLAN
- EVPN
- MPLS pseudowire
Nhưng hiểu Q-in-Q vẫn là nền tảng cực quan trọng.
Phân biệt C-VLAN và S-VLAN
Hay bị nhầm:
C-VLAN
(Customer VLAN)
S-VLAN
(Service VLAN)
Inner tag = C-tag
Outer tag = S-tag
Đừng nhầm với native VLAN.
Tư duy bản chất của công nghệ
Q-in-Q không phải “trunk của trunk”.
Nó là:
Nhà mạng Provider dùng một VLAN để encapsulate toàn bộ VLAN của khách hàng.
Đó là carrier-style encapsulation.
Nếu đi thi CCIE hoặc thiết kế thực tế, bạn nên nhớ 4 điểm
- switchport mode dot1q-tunnel
- Provider chỉ thấy S-VLAN, không thấy customer VLAN
- Có thể tunnel cả STP/CDP/VTP bằng l2protocol-tunnel
- Phải để ý MTU 1504
Thiếu số 4 là lỗi production rất điển hình.