Hướng dẫn cấu hình 802.1Q Tunneling (Q-in-Q) trên switch Cisco.
1. Giới thiệu về Q-in-Q (Dot1q) Tunneling
Q-in-Q (QinQ), còn được gọi là 802.1Q tunneling hoặc VLAN stacking, là một kỹ thuật mạng cho phép bạn mở rộng không gian VLAN bằng cách thêm một lớp tag VLAN 802.1Q vào gói tin Ethernet đã được tag VLAN.
Nói một cách đơn giản:Bạn "gói" (tunnel) một VLAN (VLAN khách hàng - C-VLAN) bên trong một VLAN khác (VLAN dịch vụ - S-VLAN).
Mục đích chính của Q-in-Q Tunneling:
- Mở rộng không gian VLAN:VLAN tiêu chuẩn (802.1Q) giới hạn số lượng VLAN ID chỉ là 4096. Q-in-Q giúp vượt qua giới hạn này bằng cách sử dụng S-VLAN để "tunnel" nhiều C-VLAN bên trong. Điều này đặc biệt quan trọng cho các nhà cung cấp dịch vụ cần hỗ trợ số lượng lớn khách hàng, mỗi khách hàng có thể sử dụng VLAN riêng của họ.
- Tách biệt lưu lượng của khách hàng:Q-in-Q đảm bảo lưu lượng của mỗi khách hàng được tách biệt hoàn toàn trên mạng của nhà cung cấp dịch vụ, ngay cả khi họ sử dụng cùng dải VLAN ID.
- Đơn giản hóa cấu hình VLAN cho khách hàng:Khách hàng có thể tự do sử dụng VLAN ID mà họ muốn trong mạng riêng của họ (C-VLAN) mà không cần lo lắng về việc xung đột VLAN ID với các khách hàng khác hoặc với mạng của nhà cung cấp dịch vụ (S-VLAN).
- Tiết kiệm chi phí VLAN:Nhà cung cấp dịch vụ không cần phải cấu hình một VLAN riêng biệt cho mỗi khách hàng trên toàn bộ mạng lõi của họ.
Các thành phần chính trong Q-in-Q Tunneling:
- C-VLAN (Customer VLAN):VLAN được sử dụng bởi khách hàng trong mạng riêng của họ. Đây là VLAN "bên trong" được tunnel.
- S-VLAN (Service VLAN):VLAN được sử dụng bởi nhà cung cấp dịch vụ để tunnel và vận chuyển lưu lượng C-VLAN. Đây là VLAN "bên ngoài" để tunnel.
- Customer Edge (CE) Device:Thiết bị đầu cuối của khách hàng, thường là router hoặc switch.
- Provider Edge (PE) Device:Thiết bị biên của nhà cung cấp dịch vụ, nơi thực hiện việc đóng gói (encapsulation) và giải đóng gói (decapsulation) tag Q-in-Q.
- Provider Core (P) Device:Thiết bị mạng lõi của nhà cung cấp dịch vụ, vận chuyển lưu lượng S-VLAN.
Quy trình hoạt động cơ bản:
- Khi gói tin từ mạng khách hàng (C-VLAN) đi vào thiết bị PE của nhà cung cấp dịch vụ.
- Thiết bị PE thêm một tag 802.1Q thứ hai (tag S-VLAN) vào gói tin. Tag S-VLAN này xác định VLAN dịch vụ mà gói tin sẽ thuộc về. Tag C-VLAN ban đầu được giữ nguyên và trở thành tag "bên trong".
- Gói tin với hai tag VLAN (S-VLAN và C-VLAN) được truyền qua mạng của nhà cung cấp dịch vụ, thông qua các thiết bị P. Các thiết bị P chỉ xem xét tag S-VLAN để định tuyến gói tin.
- Khi gói tin đến thiết bị PE ở đầu kia, thiết bị này gỡ bỏ tag S-VLAN.
- Gói tin (chỉ còn tag C-VLAN ban đầu) được chuyển đến mạng khách hàng đích.
2. Hướng dẫn cấu hình Q-in-Q (Dot1q) Tunneling trên thiết bị Cisco.
Chúng ta sẽ cấu hình Q-in-Q Tunneling giữa hai thiết bị Cisco Switch (PE1 và PE2). Giả sử:
- Switch PE1 (Provider Edge 1):Kết nối với mạng khách hàng 1.
- Switch PE2 (Provider Edge 2):Kết nối với mạng khách hàng 2.
- S-VLAN:VLAN dịch vụ được sử dụng là VLAN 100.
- C-VLAN:Khách hàng sử dụng VLAN 10.
Cấu hình trên Switch Provider Core (P): tạo vlan 100 và cấu hình trunk 2 cổng 0/1 và 0/2
Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#hostname Provider-Core Provider-Core(config)#vlan 100 Provider-Core(config-vlan)#interface range gi0/0/1-2 Provider-Core(config-if-range)#sw trunk encapsulation dot1q Provider-Core(config-if-range)#switchport mode trunk Provider-Core(config-if-range)#switchport trunk allowed vlan 100 Provider-Core(config-if-range)#end Provider-CoreW#write
Cấu hình trên switch Pro-Edge-1:
Tạo Vlan 100, cổng 0/2 kết nối lên Switch Provider-Core thì chúng ta chỉ cần cấu hình trunking như bình thường. Cổng 0/1 là cổng kết nối xuống Custormer, do vậy cổng này các bạn sẽ cần cấu hình port này access vào vlan 100 của ISP và cấu hình switchport sang mode dot1q-tunnel.
Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#hostname Provider-Edge-1 Provider-Edge-1(config)#vlan 100 Provider-Edge-1(config-vlan)#interface gi0/0/2 Provider-Edge-1(config-if)#switchport trunk encapsulation dot1q Provider-Edge-1(config-if)#switchport mode trunk Provider-Edge-1(config-if)#switchport trunk allowed vlan 100 Provider-Edge-1(config-if)#interface gi0/0/1 Provider-Edge-1(config-if)#switchport mode access Provider-Edge-1(config-if)#switchport access vlan 100 Provider-Edge-1(config-if)#switchport mode dot1q-tunnel Provider-Edge-1(config-if)#no cdp enable Provider-Edge-1(config-if)#end Provider-Edge-1#wr
Tương tự cấu hình cho switch Provider-Edge-2:
Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#hostname Provider-Edge-2 Provider-Edge-2(config)#vlan 100 Provider-Edge-2(config-vlan)#interface gi0/0/2 Provider-Edge-2(config-if)#sw trunk encapsulation dot1q Provider-Edge-2(config-if)#switchport mode trunk Provider-Edge-2(config-if)#sw trunk allowed vlan 100 Provider-Edge-2(config-if)#interface gi0/0/1 Provider-Edge-2(config-if)#switchport mode access Provider-Edge-2(config-if)#switchport acc vlan 100 Provider-Edge-2(config-if)#switchport mode dot1q-tunnel Provider-Edge-2(config-if)#no cdp enable Provider-Edge-2(config-if)#end Provider-Edge-2#wr
Trên 2 Router của Custormer thì các bạn chỉ cần cấu hình subinterface cho VLAN 10 và đặt IP 2 đầu là được.
Cấu hình Trên Router Customer-Edge-1:
Router#conf t Enter configuration commands, one per line. End with CNTL/Z. Router(config)#hostname Customer-Edge-1 Customer-Edge-1(config)#interface gi0/0/1 Customer-Edge-1(config-if)#no shutdown Customer-Edge-1(config-if)#int gi0/0/1.10 Customer-Edge-1(config-subif)#encapsulation dot1Q 10 Customer-Edge-1(config-subif)#ip add 10.10.10.1 255.255.255.0 Customer-Edge-1(config-subif)#end Customer-Edge-1#wr
Cấu hình Trên Router Customer-Edge-2:
Router#conf t Enter configuration commands, one per line. End with CNTL/Z. Router(config)#hostname Customer-Edge-2 Customer-Edge-2(config)#interface gi0/0/1 Customer-Edge-2(config-if)#no shutdown Customer-Edge-2(config-if)#int gi0/0/1.10 Customer-Edge-2(config-subif)#encapsulation dot1Q 10 Customer-Edge-2(config-subif)#ip add 10.10.10.2 255.255.255.0 Customer-Edge-2(config-subif)#end Customer-Edge-2#wr
Kiểm tra kết nối, chúng ta ping từ router Customer-Edge-2 sang Customer-Edge-1:
Customer-Edge-2#ping 10.10.10.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.10.10.1, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/2 ms Customer-Edge-2#
Ping OK, như vậy là 2 Site của Custormer đã có thể giao tiếp với nhau thông qua mạng của ISP.
Mặc định các giao thức như CDP, VTP, STP... sẽ bị disable trên tunnel này, nếu muốn các bạn có thể enable chúng bằng câu lệnh bên dưới:
Provider-Edge-1(config)#interface gi0/0/1 Provider-Edge-1(config-if)#l2protocol-tunnel ? cdp Cisco Discovery Protocol drop-threshold Set drop threshold for protocol packets lldp Link Layer Discovery Protocol point-to-point point-to-point L2 Protocol shutdown-threshold Set shutdown threshold for protocol packets stp Spanning Tree Protocol vtp Vlan Trunking Protocol Provider-Edge-1(config-if)#
Giải thích cấu hình:
- switchport mode dot1q-tunnel:Lệnh này cấu hình interface ở chế độ dot1q-tunnel. Điều này có nghĩa là interface sẽ thực hiện chức năng đóng gói Q-in-Q.
- switchport mode trunk:Lệnh này cấu hình interface là trunk port. Trunk port được sử dụng để truyền nhiều VLAN (trong trường hợp này là S-VLAN).
- switchport trunk encapsulation dot1q:Chỉ định giao thức encapsulation là dot1q cho trunk port.
- switchport trunk allowed vlan <S-VLAN ID>:Cho phép trunk port mang VLAN cụ thể (S-VLAN).
Kiểm tra cấu hình:
Lệnh show interfaces trunk sẽ cho chúng ta thấy các VLAN được permit trên Provider. Các bạn có thể thấy chỉ có VLAN 100 được cho phép trên đường trunk này. Các bạn sẽ không thấy VLAN 10 ở đây do đó là VLAN của khách hàng, và nó đã được đóng gói trong VLAN ID của Provider là 100.
Provider-Edge-1#sh interfaces trunk Port Mode Encapsulation Status Native vlan Gi0/0/2 on 802.1q trunking 1 Port Vlans allowed on trunk Gi0/0/2 100 Port Vlans allowed and active in management domain Gi0/0/2 100 Port Vlans in spanning tree forwarding state and not pruned Gi0/0/2 100 Pro-Edge-1#
Kết luận:
Q-in-Q (Dot1q) Tunneling là một công nghệ mạnh mẽ giúp giải quyết vấn đề giới hạn VLAN và tách biệt lưu lượng trong môi trường nhà cung cấp dịch vụ và doanh nghiệp lớn. Việc cấu hình Q-in-Q không quá phức tạp, nhưng cần chú ý đến các yếu tố như MTU, hiệu suất, bảo mật và khả năng quản lý để đảm bảo hệ thống hoạt động ổn định và đáp ứng được yêu cầu.