Trong Network thực tế, nếu một VLAN liên tục “ăn” hết bandwidth thì bạn sẽ xử lý thế nào?
❌ Drop ngay traffic vượt ngưỡng?
⚙️ Hay đưa traffic vào queue và điều tiết tốc độ?
🎯 Và làm sao Router biết traffic nào cần được xử lý theo từng cách?
Đây chính là bài toán của QoS – Quality of Service.
Trong Lab CCNP lần này, chúng ta sẽ thực hành một workflow rất quan trọng:
CLASSIFY → MARK → POLICE/SHAPE → VERIFY
Mô hình gồm 3 Router, 2 Switch và 3 PC, trong đó R2 và R3 sẽ là nơi triển khai các chính sách QoS. 🧩 LAB NÀY CẦN GIẢI QUYẾT GÌ?
Trước tiên, hoàn thiện phần nền:
✅ OSPF giữa R1 – R2 – R3
✅ Router-on-a-Stick cho các VLAN
✅ NAT trên R3
✅ Đảm bảo các mạng trong topology có thể liên lạc.
Sau đó mới bắt đầu “đụng” vào QoS.
Yêu cầu chính:
🔹 VLAN 10
🔹 VLAN 20
Tiếp theo, R2 sẽ thực hiện Police và Shape dựa trên DSCP đã marking.
🚦 STEP 1 – CLASSIFY TRAFFIC TRÊN R2
Đầu tiên phải trả lời câu hỏi:
Với VLAN 10 đi Internet:
R2(config)#class-map vlan10-inter
R2(config-cmap)#match vlan 10
Traffic VLAN 10 đi vào mạng nội bộ được nhận diện thông qua ACL:
R2(config)#ip access-list extended local-list
R2(config-ext-nacl)#permit ip any 192.168.0.0 0.0.255.255
Sau đó kết hợp VLAN + ACL:
R2(config)#class-map vlan10-local
R2(config-cmap)#match vlan 10
R2(config-cmap)#match access-group name local-list
VLAN 20 được triển khai tương tự.
👉 Ý tưởng quan trọng: trước khi Police hay Shape, chúng ta phải classify đúng traffic.
🏷️ STEP 2 – MARKING DSCP
Sau khi phân loại, chúng ta gán “nhãn” DSCP cho từng loại traffic.
VLAN 10:
R2(config)#policy-map QoS-vlan10
R2(config-pmap)#class vlan10-local
R2(config-pmap-c)#set dscp ef
R2(config-pmap)#class vlan10-inter
R2(config-pmap-c)#set dscp af11
VLAN 20:
R2(config)#policy-map QoS-vlan20
R2(config-pmap)#class vlan20-local
R2(config-pmap-c)#set dscp ef
R2(config-pmap)#class vlan20-inter
R2(config-pmap-c)#set dscp af12
Apply policy theo chiều input trên các sub-interface tương ứng.
Lúc này traffic đã được phân loại và marking:
VLAN 10 Internet → AF11
VLAN 20 Internet → AF12
Traffic nội bộ → EF
Vậy bước tiếp theo là gì?
👉 Xử lý traffic dựa trên DSCP.
⚡ STEP 3 – POLICE & SHAPE TRÊN R2
Tạo class-map dựa trên DSCP:
R2(config)#class-map af11
R2(config-cmap)#match dscp af11
R2(config)#class-map af12
R2(config-cmap)#match dscp af12
R2(config)#class-map ef
R2(config-cmap)#match dscp ef
Sau đó xây dựng policy:
R2(config)#policy-map QoS-shape-police
R2(config-pmap)#class af11
R2(config-pmap-c)#police 20000 conform-action transmit exceed-action drop
R2(config-pmap-c)#class af12
R2(config-pmap-c)#police 18000 conform-action set-dscp-transmit af12 exceed-action set-dscp-transmit af13
R2(config-pmap-c)#class ef
R2(config-pmap-c)#shape average 20000 80000 0
Apply policy theo chiều output trên G0/1 và G0/3. 🔥 Và đây là điểm đáng chú ý nhất của Lab:
AF11 – Police 20 Kbps
Traffic trong giới hạn → Transmit
Traffic vượt giới hạn → Drop
Trong khi:
EF – Shape 20 Kbps
Traffic không bị drop ngay mà được đưa vào queue để điều tiết tốc độ.
VLAN 20 còn thú vị hơn:
18 Kbps → AF12
Vượt ngưỡng → AF13
Đây là lúc bạn có thể quan sát rất rõ sự khác biệt trong cách Policy xử lý từng class.
🌐 STEP 4 – CLASSIFY TRAFFIC TRÊN R3
Không chỉ dựa vào VLAN hay DSCP.
Trên R3, Lab yêu cầu phân loại traffic dựa trên protocol và URL.
Telnet:
R3(config)#class-map vlan30-telnet
R3(config-cmap)#match protocol telnet
Traffic HTTP có URL chứa:
*.net*
*.exe*
*.eml*
được đưa vào class-map:
R3(config)#class-map vlan30-url
R3(config-cmap)#match protocol http url *.net*
R3(config-cmap)#match protocol http url *.exe*
R3(config-cmap)#match protocol http url *.eml*
Đến đây chúng ta đã có 2 nhóm traffic:
👉 Telnet
👉 URL cần kiểm soát
🛡️ STEP 5 – SHAPE TELNET, DROP URL
Bây giờ mới đến phần “ra quyết định”.
Telnet:
R3(config)#policy-map QoS-shape-police
R3(config-pmap)#class vlan30-telnet
R3(config-pmap-c)#shape average 2000000 8000000 0
→ Shape với:
CIR = 2 Mbps
BC = 8 Mbps
Còn traffic URL đã phân loại:
R3(config-pmap)#class vlan30-url
R3(config-pmap-c)#drop
→ DROP
Apply policy theo chiều output trên G0/2 và G0/3.
🔍 STEP 6 – VERIFY: ĐÂY MỚI LÀ LÚC BIẾT LAB CÓ CHẠY HAY KHÔNG!
Đừng chỉ nhìn configuration rồi kết luận “Done”.
Hãy tạo traffic thực tế:
📌 VLAN 10 → Internet + mạng nội bộ
📌 VLAN 20 → Internet + mạng nội bộ
📌 VLAN 30 → Telnet
📌 VLAN 30 → truy cập các URL đã phân loại
Sau đó kiểm tra:
R2#show policy-map interface g0/1
Bạn cần quan sát:
Ví dụ với AF11:
police:
cir 20000 bps
conformed:
transmit
exceeded:
drop
Trong khi EF sẽ thể hiện:
shape (average)
cir 20000
bc 80000
target shape rate 20000
Đây chính là bằng chứng để xác nhận Police và Shape đang thực sự hoạt động, thay vì chỉ “có command trong running-config”.
Trên R3:
R3#show policy-map interface g0/2
Bạn sẽ thấy Telnet được Shape ở 2 Mbps, còn class URL có action drop.
🎯 TAKEAWAY – 4 BƯỚC CẦN NHỚ KHI LÀM QoS
Nếu học CCNP và gặp một bài QoS tương tự, hãy nhớ workflow:
1️⃣ CLASSIFY
Traffic nào? VLAN nào? Protocol nào?
2️⃣ MARK
Gán DSCP để phân biệt traffic.
3️⃣ POLICE / SHAPE
Traffic nào cần Drop? Traffic nào cần Queue và điều tiết?
4️⃣ VERIFY
Tạo traffic thật → kiểm tra show policy-map interface.
💡 Đừng học QoS bằng cách thuộc lòng command. Hãy nhìn traffic theo flow:
Traffic → Classification → DSCP → Policy → Action → Verify
Đó mới là cách tư duy QoS của một Network Engineer. 🚀
🔥 CCNP LAB CHALLENGE:
Nếu traffic AF11 vượt 20 Kbps thì chuyện gì xảy ra?
Còn nếu traffic EF vượt 20 Kbps thì sao?
👉 Hãy thử trực tiếp trên Lab và kiểm tra show policy-map interface để quan sát sự khác biệt!
❌ Drop ngay traffic vượt ngưỡng?
⚙️ Hay đưa traffic vào queue và điều tiết tốc độ?
🎯 Và làm sao Router biết traffic nào cần được xử lý theo từng cách?
Đây chính là bài toán của QoS – Quality of Service.
Trong Lab CCNP lần này, chúng ta sẽ thực hành một workflow rất quan trọng:
CLASSIFY → MARK → POLICE/SHAPE → VERIFY
Mô hình gồm 3 Router, 2 Switch và 3 PC, trong đó R2 và R3 sẽ là nơi triển khai các chính sách QoS. 🧩 LAB NÀY CẦN GIẢI QUYẾT GÌ?
Trước tiên, hoàn thiện phần nền:
✅ OSPF giữa R1 – R2 – R3
✅ Router-on-a-Stick cho các VLAN
✅ NAT trên R3
✅ Đảm bảo các mạng trong topology có thể liên lạc.
Sau đó mới bắt đầu “đụng” vào QoS.
Yêu cầu chính:
🔹 VLAN 10
- Đi Internet → DSCP AF11
- Đi nội bộ → DSCP EF
🔹 VLAN 20
- Đi Internet → DSCP AF12
- Đi nội bộ → DSCP EF
Tiếp theo, R2 sẽ thực hiện Police và Shape dựa trên DSCP đã marking.
🚦 STEP 1 – CLASSIFY TRAFFIC TRÊN R2
Đầu tiên phải trả lời câu hỏi:
Traffic này đang đi đâu và thuộc VLAN nào?
Với VLAN 10 đi Internet:
R2(config)#class-map vlan10-inter
R2(config-cmap)#match vlan 10
Traffic VLAN 10 đi vào mạng nội bộ được nhận diện thông qua ACL:
R2(config)#ip access-list extended local-list
R2(config-ext-nacl)#permit ip any 192.168.0.0 0.0.255.255
Sau đó kết hợp VLAN + ACL:
R2(config)#class-map vlan10-local
R2(config-cmap)#match vlan 10
R2(config-cmap)#match access-group name local-list
VLAN 20 được triển khai tương tự.
👉 Ý tưởng quan trọng: trước khi Police hay Shape, chúng ta phải classify đúng traffic.
🏷️ STEP 2 – MARKING DSCP
Sau khi phân loại, chúng ta gán “nhãn” DSCP cho từng loại traffic.
VLAN 10:
R2(config)#policy-map QoS-vlan10
R2(config-pmap)#class vlan10-local
R2(config-pmap-c)#set dscp ef
R2(config-pmap)#class vlan10-inter
R2(config-pmap-c)#set dscp af11
VLAN 20:
R2(config)#policy-map QoS-vlan20
R2(config-pmap)#class vlan20-local
R2(config-pmap-c)#set dscp ef
R2(config-pmap)#class vlan20-inter
R2(config-pmap-c)#set dscp af12
Apply policy theo chiều input trên các sub-interface tương ứng.
Lúc này traffic đã được phân loại và marking:
VLAN 10 Internet → AF11
VLAN 20 Internet → AF12
Traffic nội bộ → EF
Vậy bước tiếp theo là gì?
👉 Xử lý traffic dựa trên DSCP.
⚡ STEP 3 – POLICE & SHAPE TRÊN R2
Tạo class-map dựa trên DSCP:
R2(config)#class-map af11
R2(config-cmap)#match dscp af11
R2(config)#class-map af12
R2(config-cmap)#match dscp af12
R2(config)#class-map ef
R2(config-cmap)#match dscp ef
Sau đó xây dựng policy:
R2(config)#policy-map QoS-shape-police
R2(config-pmap)#class af11
R2(config-pmap-c)#police 20000 conform-action transmit exceed-action drop
R2(config-pmap-c)#class af12
R2(config-pmap-c)#police 18000 conform-action set-dscp-transmit af12 exceed-action set-dscp-transmit af13
R2(config-pmap-c)#class ef
R2(config-pmap-c)#shape average 20000 80000 0
Apply policy theo chiều output trên G0/1 và G0/3. 🔥 Và đây là điểm đáng chú ý nhất của Lab:
AF11 – Police 20 Kbps
Traffic trong giới hạn → Transmit
Traffic vượt giới hạn → Drop
Trong khi:
EF – Shape 20 Kbps
Traffic không bị drop ngay mà được đưa vào queue để điều tiết tốc độ.
VLAN 20 còn thú vị hơn:
18 Kbps → AF12
Vượt ngưỡng → AF13
Đây là lúc bạn có thể quan sát rất rõ sự khác biệt trong cách Policy xử lý từng class.
🌐 STEP 4 – CLASSIFY TRAFFIC TRÊN R3
Không chỉ dựa vào VLAN hay DSCP.
Trên R3, Lab yêu cầu phân loại traffic dựa trên protocol và URL.
Telnet:
R3(config)#class-map vlan30-telnet
R3(config-cmap)#match protocol telnet
Traffic HTTP có URL chứa:
*.net*
*.exe*
*.eml*
được đưa vào class-map:
R3(config)#class-map vlan30-url
R3(config-cmap)#match protocol http url *.net*
R3(config-cmap)#match protocol http url *.exe*
R3(config-cmap)#match protocol http url *.eml*
Đến đây chúng ta đã có 2 nhóm traffic:
👉 Telnet
👉 URL cần kiểm soát
🛡️ STEP 5 – SHAPE TELNET, DROP URL
Bây giờ mới đến phần “ra quyết định”.
Telnet:
R3(config)#policy-map QoS-shape-police
R3(config-pmap)#class vlan30-telnet
R3(config-pmap-c)#shape average 2000000 8000000 0
→ Shape với:
CIR = 2 Mbps
BC = 8 Mbps
Còn traffic URL đã phân loại:
R3(config-pmap)#class vlan30-url
R3(config-pmap-c)#drop
→ DROP
Apply policy theo chiều output trên G0/2 và G0/3.
🔍 STEP 6 – VERIFY: ĐÂY MỚI LÀ LÚC BIẾT LAB CÓ CHẠY HAY KHÔNG!
Đừng chỉ nhìn configuration rồi kết luận “Done”.
Hãy tạo traffic thực tế:
📌 VLAN 10 → Internet + mạng nội bộ
📌 VLAN 20 → Internet + mạng nội bộ
📌 VLAN 30 → Telnet
📌 VLAN 30 → truy cập các URL đã phân loại
Sau đó kiểm tra:
R2#show policy-map interface g0/1
Bạn cần quan sát:
- Packet count
- Conformed / Exceeded
- Drop rate
- Police CIR
- Shape CIR / BC
- Queue depth
- DSCP match
Ví dụ với AF11:
police:
cir 20000 bps
conformed:
transmit
exceeded:
drop
Trong khi EF sẽ thể hiện:
shape (average)
cir 20000
bc 80000
target shape rate 20000
Đây chính là bằng chứng để xác nhận Police và Shape đang thực sự hoạt động, thay vì chỉ “có command trong running-config”.
Trên R3:
R3#show policy-map interface g0/2
Bạn sẽ thấy Telnet được Shape ở 2 Mbps, còn class URL có action drop.
🎯 TAKEAWAY – 4 BƯỚC CẦN NHỚ KHI LÀM QoS
Nếu học CCNP và gặp một bài QoS tương tự, hãy nhớ workflow:
1️⃣ CLASSIFY
Traffic nào? VLAN nào? Protocol nào?
2️⃣ MARK
Gán DSCP để phân biệt traffic.
3️⃣ POLICE / SHAPE
Traffic nào cần Drop? Traffic nào cần Queue và điều tiết?
4️⃣ VERIFY
Tạo traffic thật → kiểm tra show policy-map interface.
💡 Đừng học QoS bằng cách thuộc lòng command. Hãy nhìn traffic theo flow:
Traffic → Classification → DSCP → Policy → Action → Verify
Đó mới là cách tư duy QoS của một Network Engineer. 🚀
🔥 CCNP LAB CHALLENGE:
Nếu traffic AF11 vượt 20 Kbps thì chuyện gì xảy ra?
Còn nếu traffic EF vượt 20 Kbps thì sao?
👉 Hãy thử trực tiếp trên Lab và kiểm tra show policy-map interface để quan sát sự khác biệt!