MỤC LỤC


ĐỊNH NGHĨA VỀ CLASS-MAP VÀ POLICY-MAP (QOS)

13 - ĐỊNH NGHĨA VỀ CLASS-MAP VÀ POLICY-MAP (QOS)

Trong Cisco IOS, cấu hình QoS thường được thực hiện thông qua Modular QoS CLI (MQC), một khuôn khổ nhất quán cho phép bạn định nghĩa và áp dụng các chính sách QoS. MQC bao gồm ba thành phần chính:

1.Class Maps: Xác định lưu lượng mạng dựa trên các tiêu chí khác nhau.

2.Policy Maps: Định nghĩa các hành động QoS (ví dụ: đánh dấu, giới hạn tốc độ, hàng đợi) sẽ được áp dụng cho các lớp lưu lượng đã xác định.

3.Service Policies: Áp dụng Policy Maps cho các interface (giao diện) theo hướng vào (input) hoặc ra (output).

Dưới đây là các tính năng và câu lệnh chi tiết về cấu hình QoS trong Cisco, được tổ chức theo các thành phần của MQC và các khía cạnh liên quan:

1. Class Maps (ĐỊNH NGHĨA LÀ CÁI GÌ)

Class Maps được sử dụng để phân loại lưu lượng truy cập mạng thành các lớp khác nhau dựa trên các tiêu chí như:

Access Control Lists (ACLs): Phân loại dựa trên địa chỉ nguồn/đích, cổng, giao thức.

Câu lệnh: match access-group {access-list-number | name access-list-name}

Protocol: Phân loại dựa trên giao thức (ví dụ: IP, TCP, UDP, ICMP).

Câu lệnh: match protocol protocol-name

IP Precedence: Phân loại dựa trên trường IP Precedence trong tiêu đề IP (IPv4).

Câu lệnh: match ip precedence precedence-value [precedence-value...]

DSCP (Differentiated Services Code Point): Phân loại dựa trên trường DSCP trong tiêu đề IP (IPv4 và IPv6).

Câu lệnh: match ip dscp dscp-value [dscp-value...]

CoS (Class of Service): Phân loại dựa trên trường CoS trong tiêu đề Ethernet (802.1Q).

Câu lệnh: match cos cos-value [cos-value...]

Input Interface: Phân loại dựa trên giao diện mà lưu lượng truy cập đi vào.

Câu lệnh: match input-interface type number

MPLS Experimental (EXP): Phân loại dựa trên trường EXP trong nhãn MPLS.

Câu lệnh: match mpls experimental value [value...]

QoS Group: Phân loại dựa trên QoS Group đã được gán bởi một chính sách QoS khác.

Câu lệnh: match qos-group value [value...]

NBAR (Network Based Application Recognition): Phân loại dựa trên ứng dụng (ví dụ: HTTP, FTP, VoIP).

Câu lệnh (ví dụ): match protocol http, match application skype

Cấu trúc câu lệnh Class Map:

FdcFwCisco(Config)# class-map [match-all | match-any] class-name

FdcFwCisco(Config-cmap)# description description-text

FdcFwCisco(Config-cmap)# match ...

FdcFwCisco(Config-cmap)# match ...

FdcFwCisco(Config-cmap)# exit

match-all: Tất cả các tiêu chí match phải được đáp ứng để gói tin thuộc lớp này (AND logic).

match-any: Chỉ cần một trong các tiêu chí match được đáp ứng (OR logic). Nếu không chỉ định, mặc định là match-all.

class-name: Tên duy nhất để xác định Class Map.

description: Mô tả cho Class Map.

2. Policy Maps (ĐỊNH NGHĨA LÀ LÀM GÌ)

Policy Maps định nghĩa các hành động QoS sẽ được thực hiện đối với các lớp lưu lượng đã được xác định trong Class Maps. Các hành động QoS phổ biến bao gồm:

Marking (Đánh dấu): Thay đổi giá trị DSCP, IP Precedence hoặc CoS trong tiêu đề gói tin.

Câu lệnh: set ip dscp value, set ip precedence value, set cos value

Bạn cũng có thể sử dụng set qos-group value để gán gói tin vào một QoS Group.

Policing (Giới hạn tốc độ): Giới hạn tốc độ lưu lượng truy cập và thực hiện hành động khi vượt quá (ví dụ: drop, mark down).

Câu lệnh: police cir bps [bc bytes] [be bytes] conform-action action exceed-action action violate-action action

-  cir: Committed Information Rate (tốc độ cam kết).

-  bc: Committed Burst (kích thước burst cam kết).

-  be: Excess Burst (kích thước burst vượt quá).

-  conform-action: Hành động khi lưu lượng phù hợp với CIR.

-  exceed-action: Hành động khi lưu lượng vượt quá CIR nhưng dưới CIR + EIR (nếu có).

-  violate-action: Hành động khi lưu lượng vượt quá CIR + EIR.

Shaping (Định hình lưu lượng): Làm mịn lưu lượng truy cập bằng cách giữ các gói tin trong hàng đợi và gửi chúng theo tốc độ cấu hình.

Câu lệnh: shape average bps [burst-normal] [burst-max]

Queuing (Hàng đợi): Quản lý cách các gói tin được xếp hàng đợi và truyền đi khi có tắc nghẽn. Các cơ chế hàng đợi phổ biến bao gồm:

FIFO (First-In, First-Out): Mặc định, không cấu hình.

PQ (Priority Queuing): Ưu tiên các hàng đợi dựa trên mức độ quan trọng. (Lưu ý: Ít được sử dụng trong các cấu hình hiện đại).

-  Câu lệnh (trong cấu hình interface): priority-group group-number

-  Câu lệnh (trong cấu hình priority-list): priority-list protocol protocol-name high | medium | normal | low ...

CBWFQ (Class-Based Weighted Fair Queuing): Cung cấp băng thông tối thiểu cho các lớp lưu lượng.

-  Câu lệnh (trong cấu hình class trong policy-map): bandwidth {kbps | percent percentage}

LLQ (Low Latency Queuing) / Priority Queue: Cung cấp hàng đợi ưu tiên nghiêm ngặt cho lưu lượng nhạy cảm với độ trễ (ví dụ: VoIP). LLQ thường được cấu hình kết hợp với CBWFQ.

-  Câu lệnh (trong cấu hình class trong policy-map): priority {kbps | percent percentage} [burst]

WFQ (Weighted Fair Queuing): Hàng đợi dựa trên luồng, cung cấp chia sẻ băng thông công bằng. (Lưu ý: Thường được bật mặc định trên các interface có băng thông thấp).

-  Câu lệnh (trong cấu hình interface): fair-queue [congestive-discard-threshold] [reservable-queues]

WRED (Weighted Random Early Detection): Cơ chế tránh tắc nghẽn bằng cách chủ động loại bỏ gói tin khi hàng đợi đạt đến một ngưỡng nhất định.

-  Câu lệnh (trong cấu hình class trong policy-map): random-detect [precedence | dscp] và các tùy chọn liên quan.

Compression (Nén): Nén tiêu đề TCP hoặc RTP để giảm băng thông sử dụng.

-   Câu lệnh: compress tcp [passive], compress rtp header ip port [passive]

TÓM TẮT GIỮA CLASS-MAP & POLICY-MAP

Tính năng

Class-map

Policy-map

Chức năng

Định nghĩa và phân loại lưu lượng

Xác định hành động áp dụng cho lưu lượng đã phân loại

Mục đích

Tạo các "nhóm" lưu lượng

Tạo các "quy tắc" xử lý cho các nhóm lưu lượng

Lệnh chính

class-map, match

policy-map, class, set, police, shape, priority, inspect, drop, ...

Quan hệ

Được tham chiếu bởi policy-map

Tham chiếu đến một hoặc nhiều class-map

Ví dụ

Xác định lưu lượng VoIP hoặc lưu lượng web

Áp dụng QoS hoặc hành động tường lửa cho các loại lưu lượng

Cấu trúc câu lệnh Policy Map:

FdcFwCisco(Config)# policy-map policy-name

FdcFwCisco(Config -pmap)# description description-text

FdcFwCisco(Config -pmap)# class {class-name | class-default}

FdcFwCisco(Config –pmap-c)# description description-text

FdcFwCisco(Config –pmap-c)# set ...

FdcFwCisco(Config –pmap-c)# police ...

FdcFwCisco(Config –pmap-c)#  shape ...

FdcFwCisco(Config –pmap-c)# bandwidth ...

FdcFwCisco(Config –pmap-c)# priority ...

FdcFwCisco(Config –pmap-c)# queue-limit ...

FdcFwCisco(Config –pmap-c)# random-detect ...

FdcFwCisco(Config –pmap-c)# compress ...

FdcFwCisco(Config –pmap-c)# exit

FdcFwCisco(Config –pmap)# class ...

FdcFwCisco(Config –pmap-c)# class class-default (Hành động cho lưu lượng không khớp với bất kỳ class nào khác)

FdcFwCisco(Config –pmap-c)# exit

FdcFwCisco(Config–pmap)# exit

FdcFwCisco(Config)#

policy-name: Tên duy nhất để xác định Policy Map.

class class-name: Liên kết một Class Map với Policy Map.

class class-default: Định nghĩa hành động cho lưu lượng không khớp với bất kỳ Class Map nào đã định nghĩa.

3. Service Policies

Service Policies được sử dụng để áp dụng Policy Maps cho một interface cụ thể theo hướng vào (ingress/input) hoặc ra (egress/output).

Cấu trúc câu lệnh Service Policy:

FdcFwCisco(Config)# interface type number

FdcFwCisco(Config-if)# service-policy input policy-name

FdcFwCisco(Config-if)# service-policy output policy-name

FdcFwCisco(Config-if)# exit

Type number: Loại và số của interface (ví dụ: GigabitEthernet 0/1).

Input: Áp dụng Policy Map cho lưu lượng đi vào interface.

Uutput: Áp dụng Policy Map cho lưu lượng đi ra khỏi interface.

Policy-name: Tên của Policy Map cần áp dụng.

Các câu lệnh kiểm tra và giám sát QoS:

show class-map [class-name]: Hiển thị thông tin về Class Maps.

show policy-map [policy-name]: Hiển thị thông tin về Policy Maps.

show policy-map interface [type number]: Hiển thị Service Policy được áp dụng trên một interface và thống kê lưu lượng khớp với các class trong policy.

show queueing interface [type number]: Hiển thị thông tin về hàng đợi trên một interface.

show traffic-shape interface [type number]: Hiển thị thông tin về cấu hình traffic shaping trên một interface.

show mls qos: Hiển thị thông tin QoS liên quan đến Multilayer Switching (trên switch).

Các tính năng QoS nâng cao:

Auto QoS: Các lệnh đơn giản hóa cấu hình QoS cho các ứng dụng phổ biến như VoIP. Ví dụ: auto qos voip trust, auto qos video.

QoS Preclassify: Cho phép đánh dấu và áp dụng QoS trước khi định tuyến (trên các interface tunnel).

Hierarchical QoS (HQoS): Cho phép áp dụng nhiều cấp độ chính sách QoS, ví dụ: shaping ở cấp độ interface và policing ở cấp độ class.

Ví dụ cấu hình QoS cơ bản:

Giả sử bạn muốn ưu tiên lưu lượng VoIP (DSCP EF) trên interface GigabitEthernet 0/1:

Định nghĩa Class Map cho lưu lượng VoIP

FdcFwCisco(Config)# class-map voice-traffic

FdcFwCisco(Config-cmap)# match ip dscp ef

Định nghĩa Policy Map để ưu tiên lưu lượng VoIP

FdcFwCisco(Config)# policy-map prioritize-voice

FdcFwCisco(Config-pmap)# class voice-traffic

FdcFwCisco(Config-pmap-c)# priority percent 20  (Cấp 20% băng thông cho lưu lượng VoIP)

FdcFwCisco(Config)# class class-default

FdcFwCisco(Config-pmap-c)# bandwidth remaining percent 80  (Chia sẻ 80% băng thông còn lại cho lưu lượng khác)

 

Áp dụng Service Policy cho interface GigabitEthernet 0/1 theo hướng ra

FdcFwCisco(Config)# interface GigabitEthernet 0/1

FdcFwCisco(Config-if)# service-policy output prioritize-voice

Đây chỉ là một ví dụ cơ bản. Cấu hình QoS có thể trở nên phức tạp hơn tùy thuộc vào yêu cầu cụ thể của mạng.

DANH MỤC SẢN PHẨM

XEM TẤT CẢ >>

Zalo