Packet có giá trị CoS được chỉ ra trong cos-list sẽ được đặt trong hàng đợi queue-id. Mặc định, CoS giá trị 1 sẽ được đặt trong hàng 1, CoS 2 và 3 sẽ vào hàng 1 threshold 2, Cos 4 vào hàng 2 threshold 1, CoS 6 v à 7 v ào hàng 2 threshold 2. CoS 5 luôn được đặt vào priority-queue, nếu có một priority-queue.
Bạn đang xem nội dung tài liệu Bài viết CCNP QoS, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Bài viết CCNP QoS
Tác giả: Đặng Quang Minh
I. NHU CẦU VỀ QOS VÀ CÁC MÔ HÌNH QOS:
1.1. Nhu cầu về QoS:
- Theo truyền thống, khi nhu cầu về băng thông tăng lên, hiện tượng nghẽn mạng có thể x ảy ra. Ta có thể giải quyết bằng cách tăng băng thông kết nối hoặc dùng thiết bị phần cứng khác thay thế. Nhược điểm cách này là không chỉ ra cách thức để ưu tiên một loại traffic này so với một traffic khác.
- QoS là một công cụ tổng thể được dùng để bảo vệ, ưu tiên một số traffic quan trọng hoặc các traffic đòi hỏi xử lý nhanh về thời gian. QoS sẽ mô tả cách thức packet được chuyển mạch (forward) như thế nào.
- Các ứng dụng khác nhau sẽ có các nhu cầu khác nhau cho việc truyền dữ liệu. Ví dụ web, video, audio
- Khi một packets đi từ host này đến host kia, một gói tin (packet) có thể gặp các vấn đề:
Delay: do routers xử lý tìm kiếm trong bảng routing table, thời gian packet truyền trên đường truyền.
Jitter: các packets không đến đúng như thời gian dự định. Các dữ liệu dạng audio sẽ bị ảnh hưởng nhiều bởi vấn đề này.
Loss: mất packets
1.2. Các mô hình QoS:
BEST-EFFORT DELIVERY:
- Một network chỉ đơn thuần forward những packets mà nó nhận được.
- Switch và routers chỉ cố gắng hết sức (best-effort) để forward packets đi mà không bận tâm đến kiểu của traffic hay độ ưu tiên của dịch vụ.
INTEGRATED SERVICE MODEL
- Sắp xếp đường đi trước từ nguồn đến đích cho các dữ liệu được ưu tiên.
- RSVP (RFC 1633) là một protocol dạng này.
- RSVP sẽ yêu cầu trước băng thông và giữ (reserve) bw trên cả đường đi từ nguồn đến đích.
- Mỗi thiết bị mạng trên đường đi phải kiểm tra xem nó có thể hỗ trợ cho yêu cầu trên hay không. Khi yêu cầu tối thiểu được đáp ứng, ứng dụng nguồn sẽ được thông báo xác nhận. Sau đó, ứng dụng có thể sử dụng đường truyền.
DIFFERENTIATED SERVICES MODEL
- Giải pháp IntServ tỏ ra không hiệu quả và không có khả năng mở rộng khi nhiều source phải cạnh tranh với nhau về băng thông.
- Trong giải pháp differentiated, mỗi routers và switch sẽ quản lý packets riêng lẻ. Mỗi routers sẽ có một chính sách riêng để quản lý và sẽ tự quyết định cách thức chuyển packet theo cách riêng.
- IntServ sẽ quản lý theo kiểu per-flow, trong khi Difserv sẽ quản lý theo kiểu per-hop.
- Diffserv sẽ quyết định chính sách QoS dựa vào cấu trúc của gói IP.
- Course switching sẽ tập trung vào Diffserv.
II. DIFFSERV QOS
- Mỗi router và switch sẽ kiểm tra packets để quyết định sẽ fw packet đó như thế nào.
- Đối với packets, nó chỉ đơn thuần gán vài thông số vào header. Các thông số có thể là phân loại (classifications, marking)Packet sẽ giả sử routers và switch biết cách handle nó.
- Việc phân loại có thể diễn ra ở Layer-2 hoặc Layer-3
- Layer2: Thông thường, một layer frame sẽ không có trường( field ) nào để phân loại frame. Tuy nhiên, khi frame được truyền giữa switch và switch, frame có thể được phân loại dựa vào CoS.
- CoS: được dùng trên đường trunk switch-switch.
- Hai kiểu trunking sẽ quản lý giá trị CoS này rất khác nhau:
ISL: 4 bit user-id sẽ được dùng để chỉ ra giá trị CoS của frame.
Dot1q: user-field sẽ được dùng để chỉ ra giá trị CoS. Các frame từ native vlan sẽ nhận giá trị CoS mặc định.
- Layer3: DSCP.
2.1. Class of services:
- Trên đường trunking, frame được thêm vào tagging.
- Dot1q: mỗi frame được thêm vào 12-bit vlan-id và một field gồm 3 bit để chỉ ra độ ưu tiên. Những frame đến từ native-vlan sẽ được cấu hình giá trị mặc định.
- ISL: có 4 bit trong user-field. Dùng 3 bit thấp nhất để gán priority.
2.2. Layer 3 DSCP:
- Dùng Tos trong ip datagram
- Giá trị DSCP có cùng vị trí trong header giống như TOS nhưng sẽ được diễn dịch khác.
- Xem thêm bảng chuyển đổi trong giáo trình.
III. THỨ TỰ CÁC TÁC VỤ QOS ĐƯỢC THỰC HIỆN:
3.1 Ingress queue:
- Phần lớn switch có hai dạng queue: standard và priority queue
- Những packets với độ ưu tiên = 5 sẽ được phục vụ trước
- Course bcmsn ko khảo sát kỹ phần này.
3.2. Phân loại, trust và marking:
- Quá trình phân loại packets có thể dựa trên tcp/udp hoặc các cơ chế phức tạp khác.
- Frame có thể mang nhiều giá trị CoS, ToS, DSCPSwitch sẽ quyết định là sẽ dùng (tin) trust giá trị nào.
- Có thể cấu hình switch để đánh dấu hoặc thay đổi các giá trị QoS này.
3.3. Policers:
- Việc giới hạn băng thông thực hiện bởi policers
- Sau khi packet đã được phân loại, ta có thể cấu hình switch để giới hạn traffic.
3.4. Scheduling:
- Scheduling còn được gọi là egress queueing hoặc congestion management
- Packets được gán vào egress queue dựa theo giá trị CoS: giá trị 0-3 gán vào standard, 4-7 gán vào second standard queue
- Catalyst dùng kỹ thuật gọi là WRR. Kích thước của mỗi queue được cấu hình theo tỉ lệ. Mỗi queue được gán một trọng số.
- Priority queue sẽ luôn được phục vụ trước và không bị xếp vào hàng đợi này.
3.5. Congestion Avoidance:
- Nếu việc nghẽn vẫn xảy ra mặc dù đã xếp hàng đợi, packets phải bị drop.
- Một switch phải dự đoán việc congestion bằng hai cách:
• TAIL-DROP
• WRED
3.5.1. Tail-drop:
- Những packets đến sau trong hàng đợi sẽ bị drop
- Gây ra hiện tượng tcp global synchronization (xem thêm trong sách)
3.5.2. WRED:
- WRED sẽ drop một số packet đã có trong hàng đợi
Các packets sẽ bị drop đến một giới hạn nào đó.
IV. CẤU HÌNH DIFFSERV:
Phần này tập trung vào cấu hình trong Catalyst switch. Catalyst 3550 có rất nhiều tính năng QoS mạnh.
Để cho phép cấu hình QoS trên switch, dùng l ệnh:
Switch(config)# mls qos
Trong hình vẽ trên, giá trị DSCP sẽ được dùng khi packet được di chuyển trong switch như sau:
1. Packet được gán một giá trị DSCP. Giá trị này được tính từ inbound switch port.
2. Khi packet được switch bên trong, mỗi giá trị DSCP có thể đưọc thay đổi hoặc hành động tương ứng.
3. Khi packet được xếp ở hàng đợi, giá trị DSCP sẽ được chuyển sang CoS. Giá trị CoS này có thể được dùng để xác định hàng đợi hay scheduling.
Theo phần trước, Catalyst switch sẽ tham khảo các đại lượng: CoS và DSCP.
Compute CoS
From Internal DSCP mls qos map dscp-cos ...
Trust CoS: mls qos map cos-dscp ...
Trust IP Precedence: mls qos map ip-prec-dscp ...
Trust DSCP: mls qos trust dscp ...
mls qos map dscp-mutation ...
IV.1. Cấu hình QoS Trust:
Khi một packet đi v ào một switch, switch sẽ chọn lựa thông số mà nó sẽ tin cậy (trust). Sau đó, packet sẽ được xử lý tương ứng trên thông số được tin cậy này.
Switch(config-if)# mls qos trust {cos,dscp,ip precedence}
Nếu gi á trị CoS được dùng, nó phải chuyển sang DSCP tương ứng theo bảng:
Cos
0
1
2
3
4
5
6
7
DSCP
0
8
16
24
32
40
48
56
Các giá trị IP Precedence sẽ được chuyển sang DSCP:
Ip Precedence
0
1
2
3
4
5
6
7
DSCP
0
8
16
24
32
40
48
56
IV.2. Định nghĩa Policy
Policy được định nghĩa và dùng trong các bưóc sau:
1. Một hoặc nhiều class được dùng để phân loại traffic.
2. Một hoặc nhiều policy được định nghĩa, tham khảo đến một hoặc nhiều class. Mỗi policy có thể chứa các hành động như đánh dấu (mark), police hoặc định dạng (shape) traffic cho từng class.
3. Mỗi egress queue có thể được gán một policy trong mỗi chiều traffic. Ví dụ một policy có thể gán cho chiều inbound, trong không một policy khác có thể gán cho chiều outbound. Khi đã được gán, policy bắt đầu phân loại và xử lý các traffic đi qua switch.
Switch (config)# class-map class-name [match all | match any]
Việc phân loại traffic có thể dựa vào access-list, NBAR.
Với access-list:
Switch(config-cmap)# match access-group name access-list
Với NBAR:
Switch(config-cmap)# match protocol [protocol name]
Bước kế tiếp, định nghĩa QoS policy
switch(config)# policy-map policy-name
Ch ỉ ra class trong policy
Switch(config-pmap)# class class-name
Sau đó, ta có thể set các dscp value hoặc ip precedence
Switch(config-pmap)# set dscp dscp-value
Sau cùng, áp dụng QoS vào một interface, tối đa một cho inbound, một cho outbound.
Switch(config-if)# service-policy [input|output] policy-name
IV.3. Hiệu chỉnh egress scheduling:
Phần này sẽ trình bày packet sẽ được phân phối vào các hàng đợi và được xử lý như thế nào.
Mặc định có 2 hàng đợi được gán trọng số 4 và 255.
Để thay đổi giá trị mặc định trên, dùng lệnh
Switch(config-if)# wrr-queue bandwidth weight1 weight 2 [weight3] [weight 4]
Ánh xạ packet vào egress-queue:
Switch(config-if)# wrr-queue cos-map queue-id threshold cos-list
Packet có giá trị CoS được chỉ ra trong cos-list sẽ được đặt trong hàng đợi queue-id. Mặc định, CoS giá trị 1 sẽ được đặt trong hàng 1, CoS 2 và 3 sẽ vào hàng 1 threshold 2, Cos 4 vào hàng 2 threshold 1, CoS 6 v à 7 v ào hàng 2 threshold 2. CoS 5 luôn được đặt vào priority-queue, nếu có một priority-queue.
Tránh nghẽn bằng cách dùng tail-drop:
Switch(config-if)# no wrr-queue random-detect queue-id
Tránh nghẽn bằng cách dùng wred:
Switch(config-if)# wrr-queue random-detect queu-id
Thay đổi các giới hạn trong hàng đợi
Switch(config-if)#wrr-queue random-detect {max-threshold|min-threshold} queue-id
Các file đính kèm theo tài liệu này:
- bai_viet_ccnp_qos_555.doc