Cấu hình Q-in-Q (Dot1q) Tunnelling trên Switch Cisco
Trong bài viết này, mình sẽ hướng dẫn các bạn cấu hình Q-in-Q tunnel trên Router hoặc Switch Cisco.
Q-in-Q (Dot1q) Tunnelling là gì?
Q-in-Q Tunnel là 1 kỹ thuật thường được dùng trong các mạng Metro Ethernet, sử dụng như một đường hầm VPN Layer 2 để cung cấp dịch vụ kết nối layer 2 cho khách hàng có nhiều site tại nhiều địa điểm khác nhau.
Q-in-Q Tunnel cũng có thể được gọi bằng các tên gọi khác như VLAN stacking, dot1q tunnels hay VLAN Double tagging cũng được.
Một trong nhưng ưu điểm của giải pháp này là dễ thực hiên, bạn không cần phải có các thiết bị hỗ trợ các giao thức chuyên dụng, cũng không phải chạy các giao thức định tuyến giữa ISP và khách hàng như MPLS. Chúng ta chỉ cần thiết bị hỗ trợ VLAN và dot1q tunnel là được, và các tính năng này thì không yêu cầu thêm license. Từ quan điểm của khách hàng, nó giống như việc các site của khách hàng được kết nối trực tiếp trên 1 đường layer 2.
Để đơn giản hơn thì các bạn có thể hình dung về VLAN Tagging. Ban đầu chúng ta sẽ có Frame gồm các trường như des, source, type, và data. Khi đi qua cổng Trunk thì Frame này sẽ được tag thêm VLAN ID vào (như hình bên dưới).
Khi đi qua mạng ISP được cấu hình Dot1q Tunnel, Frame sẽ được tag thêm 1 Provider Tag, khi đó Frame sẽ có 2 Tag, do vậy nên nó được gọi là VLAN Stacking hoặc VLAN Double Tagging.
Trong bài Lab này thì mình đang xây dựng 1 mô hình đơn giản gồm 5 thiết bị.
Khi các bạn cấu hình VLAN, như trong mô hình thì mình sẽ dùng 2 router Cisco là 2 router của Custormer tại 2 địa điểm khác nhau. Do vậy mình sẽ cấu hình subinterface 10 trên cổng e0/0 cho VLAN 10.
Khi gói tin đi qua subinterface 10 thì nó sẽ được tag thêm VLAN ID 10 vào, đây chính là Custormer Tag hay C-Tag.
Cổng e0/0 của switch Provider Edge 1 và 2 sẽ được cấu hình access vào VLAN 100 trên mạng của ISP và các cổng này sẽ được cấu hình Dot1q tunneling.
Khi gói tin đi qua cổng e0/1 của Switch Pro-Edge-1, nó sẽ được tag thêm 1 VLAN ID 100 của IPS nữa vào gói tin, đây gọi là Provider Tag hay S-Tag, lúc này gói tin của chúng ta sẽ được Tag 2 VLAN ID. Khi gói tin đi qua Switch Pro-Edge-2 thì nó sẽ gỡ Provider Tag, lúc này chỉ còn Custormer Tag là 10, và gói tin sẽ được xử lý tương tự như các gói tin thông thường trong LAN thôi.
Cấu hình Q-in-Q Tunnelling với Router Cisco
Ok bây giờ mình sẽ cấu hình Dot1q Tunnelling cho mô hình này để 2 site có thể ping được đến nhau. Trường hợp này 2 đầu Custormer mình sẽ sử dụng Router của Cisco.
Cấu hình trên Switch Pro-SW, trên switch Pro-SW thì mình chỉ cần cấu hình VLAN 100, 2 cổng e0/0 và e0/1 mình sẽ cấu hình trunking và allow vlan 100 là được.
Switch#conf t |
Tiếp theo mình sẽ cấu hình trên switch Pro-Edge-1.
Đầu tiên vẫn cần đảm bảo các bạn đã tạo VLAN 100 trên cả 3 Switch của ISP nhé.
Cổng E0/1 kết nối lên Switch Pro-SW thì chúng ta chỉ cần cấu hình trunking như bình thường. Cổng e0/0 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.
Giao thức CDP cũng không được phép trên tunnel này nên các bạn cần disable CDP trên cổng kết nối xuống Custormer nhé.
Switch#conf t |
Lệnh switchport mode dot1q-tunnel cho phép switch gán thẻ VLAN cho lưu lượng và lệnh switchport access vlan 100 để chỉ định QinQ của VLAN 100. Lúc này ISP sẽ sử dụng VLAN tag 100 để chuyển các gói tin giữa 2 site của khách hàng.
Tương tự các bạn cấu hình cho Switch Pro-Edge-2.
Switch#conf t |
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 Cus-Router-1.
Router#conf t |
Cấu hình Trên Router Cus-Router-2.
Router#conf t |
Kiểm tra kết nối
Để kiểm tra kết nối, trước tiên mình sẽ ping thử từ Router Cus-Router-2 sang IP của router Cus-Router-1.
Cus-Router-2#ping 10.0.0.10 |
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.
Để kiểm tra thì các bạn có thể sử dụng 1 số lệnh show.
Lệnh show dot1q-tunnel không cung cấp nhiều thông tin lắm, nó chỉ hiển thị cho chúng ta biết các cổng nào đã được cấu hình làm dot1q-tunnel thôi.
Pro-Edge-1#show dot1q-tunnel
dot1q-tunnel mode LAN Port(s)
-----------------------------
Et0/0
Pro-Edge-1#
Lệnh show interfaces trunk sẽ cho chúng ta thấy các VLAN được permit trên ISP. 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 ISP là 100.
Pro-Edge-1#sh interfaces trunk Port Mode Encapsulation Status Native vlan Et0/1 on 802.1q trunking 1 Port Vlans allowed on trunk Et0/1 100 Port Vlans allowed and active in management domain Et0/1 100 Port Vlans in spanning tree forwarding state and not pruned Et0/1 100 Pro-Edge-1#
Trong lệnh show l2protocol-tunnel các bạn có thể thấy các gói tin đã được encaps hoặc decaps, đây là các gói tin của các giao thức Layer 2 được truyền qua Tunnel, ban đầu thì sẽ chưa có thông tin gì.
Pro-Edge-1#show l2protocol-tunnel COS for Encapsulated Packets: 5 Drop Threshold for Encapsulated Packets: 0 Port Protocol Shutdown Drop Encaps Decaps Drop Threshold Threshold Counter Counter Counter ------------------- ----------- --------- --------- --------- --------- --------- Pro-Edge-1#
Có 1 câu hỏi đặt ra ở đây là Q-in-Q cung cấp 1 tunnel layer 2, vậy các giao thức layer 2 như CDP, STP, VTP sẽ thế nào?
Nó có thể trao đổi qua dot1q-tunnel, nhưng các bạn sẽ phải cấu hình tunneling cho từng giao thức trên cổng kết nối xuống Custormer. Ban đầu thì sẽ không có protocol nào.
Để bật các dịch vụ, các bạn sử dụng lệnh l2protocol-tunnel trong mode Interface nhé. Nó có thể tạo tunnel cho CDP, STP, VTP, LLDP hoặc thậm chí cả PagP hoặc LACP.
Pro-Edge-1(config)#interface e0/0 Pro-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 ProtocolPro-Edge-1(config-if)#
Mình sẽ bật CDP và STP.
Pro-Edge-1(config-if)#l2protocol-tunnel cdp |
Các bạn có thể thấy 2 giao thức CDP và STP đã xuất hiện trong phần Protocol.
Pro-Edge-1#show l2protocol-tunnel COS for Encapsulated Packets: 5 Drop Threshold for Encapsulated Packets: 0 Port Protocol Shutdown Drop Encaps Decaps Drop Threshold Threshold Counter Counter Counter ------------------- ----------- --------- --------- --------- --------- --------- Et0/0 cdp ---- ---- 1 0 0 --- ---- ---- ---- ---- ---- stp ---- ---- 0 0 0 --- ---- ---- ---- ---- ---- --- ---- ---- ---- ---- ---- --- ---- ---- ---- ---- ---- --- ---- ---- ---- ---- ---- Pro-Edge-1#
Mình sẽ show CDP trên switch Cus-Router-1.
Cus-Router-1#show cdp neighbors Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID Cus-Router-2 Eth 0/0 172 R B Linux Uni Eth 0/0 Total cdp entries displayed : 1 Cus-Router-1#
Trên Cus-Router-1 đã nhìn thấy Cus-Router-2 thông qua QinQ tunnel, như vậy có nghĩa là CDP đã có thể trao đổi qua hạ tầng của ISP thông qua Tunnel.
Lệnh show interface e0/0 switchport sẽ cho chúng ta thấy mode hoạt động của Interface này là tunnel, và VLAN là 100.
Pro-Edge-1#show int e0/0 switchport Name: Et0/0 Switchport: Enabled Administrative Mode: tunnel Operational Mode: tunnel Administrative Trunking Encapsulation: negotiate Operational Trunking Encapsulation: native Negotiation of Trunking: Off Access Mode VLAN: 100 (VLAN0100) Trunking Native Mode VLAN: 1 (default) Administrative Native VLAN tagging: enabled Voice VLAN: none
Cấu hình Q-in-Q Tunnelling với Switch Cisco
Ok bây giờ mình sẽ đổi qua trường hợp đầu Custormer chúng ta cắm vào switch.
Với trường hợp này thì trên switch của Provider vẫn giống như với trường hợp Router, chúng ta không cần thay đổi gì.
Với 2 Switch Custormer thì chúng ta vẫn cấu hình như với VLAN thông thường. Cổng E0/1 cấu hình access VLAN 10 cho các client, cổng e0/0 cấu hình trunking permit VLAN 10.
Cấu hình trên Cus-SW-1.
Switch#conf t |
Tương tự cho Cus-SW-2.
Switch#conf t |
Các PC thì các bạn chỉ cần đặt IP cùng dải của VLAN 10 là có thể ping được đến nhau.
Các lệnh kiểm tra thì vẫn như trường hợp với router thôi. Chủ yếu là chúng ta sẽ check trên các switch IPS là chính. Trên Custormer chúng ta chỉ cần check interface UP, đã tạo VLAN và cấu hình đúng mode trunk hoặc access theo mô hình là được.
Ok Như vậy là mình đã hướng dẫn bạn cấu hình Q-in-Q Tunnel trên switch Cisco. Nếu các bạn gặp khó khăn gì có thể comment bên dưới bài viết để mọi người cùng khắc phục nhé.
Chúc các bạn thành công!
Bình luận bài viết!
Trường hợp này cần phải check lại từng phần bằng các câu lệnh show để xem vấn đề từ đâu. Bạn có thể export topology ra gửi để mình kiểm tra thử.
Bạn sử dụng các lệnh show theo từng bước cấu hình để check lại xem các thông tin đã đúng chưa nhé