Logo CNTTShop.vn

Hotline: 0979 925 386

Công Ty TNHH Công Nghệ Việt Thái Dương
NTT03, Line 1, Thống Nhất Complex, 82 Nguyễn Tuân, Thanh Xuân, Hà Nội.
Danh mục sản phẩm

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).

vlan tagging khi đi qua cổng trunk

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.

provider tag trong qinq

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ị.

mô hình kết nối qinq

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

mô hình kết nối 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
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#hostname Pro-SW
Pro-SW(config)#vlan 100
Pro-SW(config-vlan)#interface range e0/0-1
Pro-SW(config-if-range)#sw trunk encapsulation dot1q
Pro-SW(config-if-range)#switchport mode trunk
Pro-SW(config-if-range)#switchport trunk allowed vlan 100
Pro-SW(config-if-range)#end
Pro-SW#write

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
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#hostname Pro-Edge-1
Pro-Edge-1(config)#vlan 100
Pro-Edge-1(config-vlan)#interface e0/1
Pro-Edge-1(config-if)#switchport trunk encapsulation dot1q
Pro-Edge-1(config-if)#switchport mode trunk
Pro-Edge-1(config-if)#switchport trunk allowed vlan 100
Pro-Edge-1(config-if)#interface e0/0
Pro-Edge-1(config-if)#switchport mode access
Pro-Edge-1(config-if)#switchport access vlan 100
Pro-Edge-1(config-if)#switchport mode dot1q-tunnel
Pro-Edge-1(config-if)#no cdp enable
Pro-Edge-1(config-if)#end
Pro-Edge-1#wr

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
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#hostname Pro-Edge-2
Pro-Edge-2(config)#vlan 100
Pro-Edge-2(config-vlan)#interface e0/1
Pro-Edge-2(config-if)#sw trunk encapsulation dot1q
Pro-Edge-2(config-if)#switchport mode trunk
Pro-Edge-2(config-if)#sw trunk allowed vlan 100
Pro-Edge-2(config-if)#interface e0/0
Pro-Edge-2(config-if)#switchport mode access
Pro-Edge-2(config-if)#switchport acc vlan 100
Pro-Edge-2(config-if)#switchport mode dot1q-tunnel
Pro-Edge-2(config-if)#no cdp enable
Pro-Edge-2(config-if)#end
Pro-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 Cus-Router-1.

Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname Cus-Router-1
Cus-Router-1(config)#interface e0/0
Cus-Router-1(config-if)#no shutdown
Cus-Router-1(config-if)#int e0/0.10
Cus-Router-1(config-subif)#encapsulation dot1Q 10
Cus-Router-1(config-subif)#ip add 10.0.0.10 255.255.255.0
Cus-Router-1(config-subif)#end
Cus-Router-1#w

Cấu hình Trên Router Cus-Router-2.

Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname Cus-Router-2
Cus-Router-2(config)#interface e0/0
Cus-Router-2(config-if)#no shutdown
Cus-Router-2(config-if)#int e0/0.10
Cus-Router-2(config-subif)#encapsulation dot1Q 10
Cus-Router-2(config-subif)#ip add 10.0.0.11 255.255.255.0
Cus-Router-2(config-subif)#end
Cus-Router-2#wr

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
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.10, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/2 ms
Cus-Router-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.

Để 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 Protocol
  
Pro-Edge-1(config-if)#

Mình sẽ bật CDP và STP.

Pro-Edge-1(config-if)#l2protocol-tunnel cdp
Pro-Edge-1(config-if)#l2protocol-tunnel stp

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.

mô hình Q-in-Q với đầu Custormer sử dụng switch cisco

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
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#hostname Cus-SW-1
Cus-SW-1(config)#vlan 10
Cus-SW-1(config-vlan)#interface e0/1
Cus-SW-1(config-if)#sw mode access
Cus-SW-1(config-if)#switchport acc vlan 10
Cus-SW-1(config-if)#interface e0/0
Cus-SW-1(config-if)#switchport trunk encapsulation dot1q
Cus-SW-1(config-if)#sw mode trunk
Cus-SW-1(config-if)#sw trunk allowed vlan 10

Tương tự cho Cus-SW-2.

Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#hostname Cus-SW-2
Cus-SW-2(config)#vlan 10
Cus-SW-2(config-vlan)#interface e0/1
Cus-SW-2(config-if)#switchport mode access
Cus-SW-2(config-if)#switchport access vlan 10
Cus-SW-2(config-if)#interface e0/0
Cus-SW-2(config-if)#switchport trunk encapsulation dot1q
Cus-SW-2(config-if)#switchport mode trunk
Cus-SW-2(config-if)#switchport trunk allowed vlan 10

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!

Lê Văn Tuấn

Là chuyên gia trong lĩnh vực Network System, Security, Server.. Có kinh nghiệm nhiều năm tư vấn giải pháp mạng, triển khai các giải pháp CNTT và phân phối thiết bị mạng Switch, Wifi, Router, Máy chủ Server, Lưu trữ Storage, Tường lửa Firewall, Video Conferencing, Module quang, Load Balancing. Hiện tại tôi là Founder và Managing Director công ty TNHH Công Nghệ Việt Thái Dương (CNTTShop.vn).

Bình luận bài viết!

Có 0 bình luận:
Chuyên mục chính
Bài viết liên quan
Sản phẩm liên quan