I. Tổng quan:
Thông thường, hệ thống mạng hoạt động trên cơ sở phân phối tốt nhất, có nghĩa là tất cả gói tin trên mạng đều có mức độ ưu tiên ngang nhau và có cơ hội được chuyển đến đích một cách kịp thời. Khi tắc nghẽn xảy ra, tất cả các gói tin đều có khả năng bị tắc nghẽn. Nếu không có QoS, Switch sẽ cung cấp dịch vụ tốt nhất cho tất cả các gói, bất kể nội dung gói hay kích cỡ. Nó sẽ gửi các gói tin mà không có bất kỳ sự đảm bảo về độ tin cậy, giới hạn độ trễ hoặc thông lượng nào.
Khi ta sử dụng tính năng QoS, ta có thể chọn một dạng gói tin cụ thể, ưu tiên nó theo tầm quan trọng tương đối của nó và sử dụng kỹ thuật quản lý tắc nghẽn và tránh tắc nghẽn để cung cấp ưu đãi. Việc triển khai QoS trong mạng làm cho hiệu năng mạng dễ dự đoán hơn và sử dụng băng thông hiệu quả hơn.
II. Cơ chế hoạt động
-Việc thực hiện QoS được dựa trên kiến trúc dịch vụ phân biệt (Diff-Serv), kiến trúc này chỉ định rằng mỗi gói tin được phân loại khi nhập vào mạng. Các gói tin sẽ được đánh dấu như Class of Service (CoS), DSCP, IP Precedence… Nên đánh dấu gói tin càng sớm càng tốt, khi được ưu tiên sớm thì luồng đi qua thiết bị tiếp theo sẽ trơn tru.
1, Giá trị IP Precedence và DSCP (Differentiated Service Code Point)
Layer 3
IP Precedence hoặc DSCP
Cấu trúc trường Type of Service
Giá trị IP precedence nằm trong khoảng từ 0 đến 7.
Tại sao lại có các khoảng giá trị trên, cụ thể như sau:
3 bits đầu tiên (P2 đến P0): IP Precedence. Do sử dụng 3 bits nên sẽ có 8 giá trị (000 đến 111) định ra độ ưu tiên của gói tin từ thấp đến cao. Giúp router xử lý các gói tin này theo chất lượng dịch vụ. Ví dụ, gói tin được đánh dấu với giá trị IP Precedence là 7 (111) sẽ có độ ưu tiên về bandwidth, được ra khỏi hàng đợi trước… hơn so với các gói tin được đánh dấu với giá trị IP Precedence là 3 (011).
3 bits tiếp theo (T2 đến T0):
2 bit cuối (CU1-CU2): Không dùng tới (Currently and Unused).
Tuy nhiên, hiện nay không dùng các giá trị của IP Precedence để đánh dấu gói tin. Với mục đích làm tăng hiệu quả chất lượng dịch vụ thì các công cụ QoS sẽ dùng các giá trị được gọi là điểm mã dịch vụ phân biệt DSCP (Differentiated Service Code Point) để tiến hành đánh dấu gói tin. 3 bits IP Precedence sẽ kết hợp với 3 bits tiếp theo (từ T2 đến T0) tạo thành 6 bits thể hiện các giá trị của DSCP. Do đó các giá trị DSCP nằm trong khoảng từ 0 đến 63.
Các bits này được ánh xạ như sau:
Giá trị IP Precedence có thể được ánh xạ đến trường DSCP
6 bits DiffServ (DS) từ DS5 đến DS0 được dùng để đánh dấu gói tin và chỉ ra cách thức mỗi router xử lý gói tin như thế nào. Với 6 bits có thể tạo ra đến 64 class dịch vụ.
IP Header trước và sau đánh dấu DSCP
Có các kiểu chuyển tiếp gói tin trong DSCP là AF (assured forwarding: đảm bảo đẩy gói) và EF (expedited forwarding: xúc tiến đẩy gói), chọn lớp (Class Selector) và mặc định (Default).
Ánh xạ giữa PHB và DSCP
Với EF: độ trễ, độ biến động trễ, tỉ lệ mất gói thấp, băng thông được đảm bảo, và dịch vụ ở đầu cuối phải thông qua miền DiffServ. EF được sử dụng cho những luồng có độ ưu tiên rất cao.
Với AF: định rõ những dịch vụ khác nhau sẽ được đảm bảo chuyển tiếp, thông qua miền DiffServ. AF được chia làm 4 lớp (class) đảm bảo đẩy gói khác nhau với 3 mức độ ưu tiên loại bỏ gói (drop precedence) xác định khác nhau. AFxy, x (chỉ số lớp) càng cao thì xếp vào hàng đợi tốt hơn, x càng nhỏ thì càng dễ bị loại bỏ, y càng cao thì gói tin càng dễ bị loại bỏ. Vậy AF41 là gói tin được ưu tiên tốt nhất, đến AF42, AF43,… AF13 dễ bị loại bỏ nhất
2, Gía trị cos (class of service) Layer 2
Cos: Class of service: Các lớp dịch vụ (0 đến 7)
Trường CoS chỉ tồn tại bên trong Ethernet frame khi các đường trunk 802.1Q và ISL được sử dụng. Có thể sử dụng trường này để thiết lập 8 giá trị nhị phân khác nhau mà có thể dùng cho chức năng phân loại của công cụ QoS như IP Precedence và DSCP. Giá trị Cos càng cao thì gói tin frame càng được ưu tiên.
Cos 7: Không sử dụng (reserved)
Cos 6: Không sử dụng (reserved)
Cos 5: Dữ liệu voice (voice bearer)
Cos 4: Dữ liệu video conferencing
Cos 3: Call signalling
Cos 2: High priority data
Cos 1: Medium priority data
Cos 0: best effort data
Hình 2: Ví dụ cụ thể về gán giá trị CoS và DSCP
3, Mô hình Qos
Phân loại (classification): Phân loại một gói tin bằng cách liên kết nó với nhãn QoS. Bộ chuyển đổi ánh xạ CoS hoặc DSCP trong gói tới nhãn QoS để phân biệt một loại lưu lượng truy cập với một loại khác. Kiểm tra gói và xác định nhãn qos dựa trên ACL hoặc cấu hình.
Chính sách và đánh dấu (policing and marking):
Sau khi gói được phân loại và có nhãn QoS dựa trên DSCP hoặc dựa trên CoS được gán cho nó.
Policing liên quan đến việc tạo ra một policer xác định giới hạn băng thông cho lưu lượng truy cập. Các gói vượt quá giới hạn nằm ngoài cấu hình hoặc không phù hợp. Mỗi policer quyết định trên cơ sở packet-by-packet cho dù gói tin phù hợp hay không phù hợp và chỉ định các hành động trên gói. Những hành động này, được thực hiện bởi marker, bao gồm đi qua gói tin mà không sửa đổi, bỏ gói tin, hoặc sửa đổi (đánh dấu xuống) DSCP được chỉ định của gói và cho phép gói đi qua.
Hàng đợi (queue):
Hàng đợi đánh giá nhãn QoS và giá trị DSCP hoặc CoS tương ứng để chọn thành hai hàng đợi nhập vào để đặt gói tin. Xếp hàng được tăng cường với thuật toán weighted tail drop (WTD), một cơ chế tránh tắc nghẽn. Nếu vượt quá ngưỡng, gói tin sẽ bị loại bỏ.
Lập kế hoạch dịch vụ các hàng đợi dựa trên shaped round robin (SRR) được định cấu hình của chúng. Một trong các hàng đợi xâm nhập là hàng đợi ưu tiên, và SRR dịch vụ nó cho chia sẻ được cấu hình của nó trước khi phục vụ hàng đợi khác
4. Cấu hình Standard Qos trên Switch layer 3
Khởi tạo Qos trên switch 3750 catalyst (mặc định disable)
Sw(config) mls qos no mls qos
Show mls qos
Khởi tạo qos dựa trên vlan
Int g0/0
Sw(config) mls qos vlan-based no mls qos vlan-based
Show mls qos int g0/0
Cấu hình qos trên các cổng tin cậy (mặc địch không tin cậy)
Sw(config) int g0/0
Mls qos trust [cos | dscp | ip-precedence] no mls qos trust int g0/0
Cấu hình giá trị cos, dscp, ip pre cho gói tin cấu hình class-map:
SW (config) # class-map name
SW (config-cmap) # match access-group {access-list-number | Name access-list-name}
SW (config-cmap) # match cos cos-value
SW (config-cmap) # match dscp dscp-value-1
SW (config-cmap) # match ip precedence ip-precedence-value-1
Hoặc
SW (config)#policy-map name
SW (config-pmap)#class name
SW (config-pmap-c)#set ip precedence ip-precedence-value-1
SW (config-pmap-c)#set dscp dscp-value-1
SW (config-pmap-c)#set cos cos-value
Ta có:
SW (config-cmap) # class-map (match-any | match-all) name
SW (config-cmap) # match access-group name test
SW (config-cmap) # match int f0/1
Mặc định là sẽ match-all, là thỏa mãn cả tất cả điều kiện. Nếu là match-any, chỉ cần 1 trong nhiều điều kiện.
Ví dụ: Cấu hình trên SWC sao cho PC0, PC1 lượng traffic mail được ưu tiên hơn với web, và traffic còn lại của server local
Bước 1: Tạo 2 access list mail (pop3) vs web (http https)
SWC(config)#ip access-list extended mail
SWC(config-ext-nacl)#permit tcp any host 2.2.2.2 eq 110
SWC(config-ext-nacl)#ex
SWC(config)#ip access-list extended web
SWC(config-ext-nacl)#permit tcp any host 2.2.2.2 eq 80
SWC(config-ext-nacl)#permit tcp any host 2.2.2.2 eq 443
Bước 2: Tạo 2 class map tương ứng với access-list
SWC(config)#class-map mail
SWC(config-cmap)#match access-group name mail
SWC(config-cmap)#ex
SWC(config)#class-map web
SWCconfig-cmap)#match access-group name web
SWC(config-cmap)#ex
Bước 3: Tạo policy map và gán giá trị ip precedence, class-default là lượng traffic còn lại.
SWC(config)#policy-map abc
SWC(config-pmap)#class mail
SWC(config-pmap-c)#set ip precedence 3
SWC(config-pmap-c)#ex
SWC(config-pmap)#class web
SWC(config-pmap-c)#set ip precedence 2
SWC(config-pmap-c)#ex
SWC(config-pmap)#class class-default
SWC(config-pmap-c)#set ip precedence 1
SWC(config-pmap-c)#end
Bước 4: Gán policy-map vào cổng
SWC(config)#int range f0/1-2
SWC(config)# service-policy input abc
Vậy ở đây chúng ta đã ưu tiên các gói tin theo mail với giá trị ip predence cao hơn nên đi trước, do đó sẽ truy cập nhanh hơn so với web và luồng tin còn lại.
Gán giá trị cos-to-dscp: Bạn sử dụng CoS-to-DSCP để ánh xạ các giá trị CoS trong các gói dữ liệu đến một giá trị DSCP mà QoS sử dụng trong nội bộ để biểu thị mức độ ưu tiên của lưu lượng truy cập.
SW1(config)#mls qos map ?
cos-dscp cos-dscp map: eight dscp values for cos 0-7
SW1(config)#mls qos map cos-dscp 0 8 16 24 32 46 48 56
SW1(config)#exit
SW1#show mls qos maps cos-dscp
Cos-dscp map: cos: 0 1 2 3 4 5 6 7
dscp: 0 8 16 24 32 46 48 56
Vậy tất cả giá trị cos từ 0 đến 7 được gán giá trị DSCP theo thứ tự: 0, 8, 16, 24, 32, 46, 48, 56
Ánh xạ giá trị dcsp-to-dscp mutation map: Nếu hai miền QoS có DSCP khác nhau, hãy sử dụng DSCP-to-DSCP mutation map để dịch một bộ giá trị DSCP để phù hợp với định nghĩa của miền khác.
Giá trị DSCP mới sẽ ghi đè lên một gói trong gói và QoS xử lý gói với giá trị mới này. Công tắc sẽ gửi gói tin ra khỏi cổng với giá trị DSCP mới.
Bạn có thể cấu hình nhiều DSCP-to-DSCP mutation map trên cổng vào.
SW1(config)#mls qos map dscp-mutation DEMO 24 26 28 30 to 24
SW1(config)#interface gig 1/0/8
SW1(config-if)#mls qos trust dscp
SW1(config-if)#mls qos dscp-mutation
DEMO SW1(config-if)#do show mls qos maps dscp-mutation
Dscp-dscp mutation map:
Các giá trị dscp 24 26 28 30 đã ánh xạ thành 24
5. Cấu hình qos bằng policy map và class map
Cấu hình với 1 luồng đường đi
Bước 1: Tạo class-map kết hợp với access-list, chúng ta có thể dùng access-list theo từng host PC, hoặc theo từng dịch vụ như web, mail.
Switch(config)# access-list 1 permit 10.1.0.0 0.0.0.255
Bước 2: Tạo policy-map kết hợp với class-map ở trên, sau đó cấu hình để tăng giảm băng thông, 1000000: Băng thông giới hạn bps, 8000: Tốc độ burst Bytes
Switch(config)# class-map ipclass1
Switch(config-cmap)# match access-group 1
Switch(config-cmap)# exit
Switch(config)# policy-map flow1t
Switch(config-pmap)# class ipclass1
Switch(config-pmap-c)# trust dscp
Switch(config-pmap-c)# police 1000000 8000 exceed-action policed-dscp-transmit
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
+ Bước 3: Cấu hình gán dịch vụ policy vào cổng vật lí, input hoặc output
Switch(config)# interface gigabitethernet g0/0
Switch(config-if)# service-policy input flow1t
Ở đây chúng ta có hình cấu hình qos trên SW 3560 để tăng giảm băng thông cho vùng mạng Lan, tuy nhiên tùy thuộc vào lượng băng thông mà ISP cấp cho. Ngoài ra có thể cấu hình qos trên Router ISP.
Cấu hình với nhiều luồng đường đi:
Sử dụng chính sách aggregate
Bước 1: Tạo aggregate-police với 320000 là băng thông, 8000 là tốc độ burst.
SW1(config)#mls qos aggregate-police Web-telnet 320000 8000 exceed-action drop
Bước 2: Tạo 2 access-list, tạo 2 class-map gán với 2 access-list đó
SW1(config)#access-list 100 permit tcp 192.168.1.0 0.0.0.255 192.168.20.6 0.0.0.0 eq 80
SW1(config)#access-list 2 permit 192.168.2.0 0.0.0.255
SW1(config)#class-map web
SW1(config-cmap)#match access-group name 100
SW1(config-cmap)#exit
SW1(config)#class-map telnet
SW1(config-cmap)#match access-group name 2
SW1(config-cmap)#exit
+ Bước 3: Tạo policy-map AGGREGATE
SW1(config)#policy-map AGGREGATE
SW1(config-pmap)#class web
SW1(config-pmap-c)#police aggregate Web-telnet
SW1(config-pmap-c)#exit
SW1(config-pmap)#class telnet
SW1(config-pmap-c)#police aggregate Web-telnet
SW1(config-pmap-c)#exit
SW1(config-pmap)#exit
Bước 4: Gán service policy vào cổng vật lí
SW1(config)#interface f0/1-2
SW1(config-if)#service-policy input AGGREGATE
Vậy thì PC0 sẽ truy cập web và PC1 telnet đến server local, với lượng băng thông chung đã cấu hình là 3,2Mbps
Policing a Switched Virtual Interface:
Bước 1: Cấu hình tin cậy vlan-based trên cổng vật lí.
SW1(config)#int range f0/1-20
SW1(config-if-range)#mls qos vlan-based
SW1(config-if-range)#exit
Bước 2: Tạo access-list, tạo 1 class-map tương ứng, tạo 1 class-map gán với cổng vật lí.
SW1(config)#access-list 100 permit udp any any range 16384 32767
SW1(config)#class-map RTP
SW1(config-cmap)#match access-group 100
SW1(config-cmap)#exit
SW1(config)#class-map PORTS
SW1(config-cmap)#match input-interface f0/1-20
SW1(config-cmap)#exit
Bước 3: Tạo 1 policy-map để giới hạn băng thông (child policy map), tạo 1 policy map (parent policy map) để gán giá trị dscp, gán them child policy-map ở trên
SW1(config)#policy-map PORT
SW1(config-pmap)#class PORTS
SW1(config-pmap-c)#police 256000 8000 exceed-action drop
SW1(config-pmap-c)#exit
SW1(config-pmap)#exit
SW1(config)#policy-map VLAN
SW1(config-pmap)#class RTP
SW1(config-pmap-c)#set dscp 46
SW1(config-pmap-c)#service-policy PORT
SW1(config-pmap-c)#exit
SW1(config-pmap)#exit
SW1(config)#int vlan 100
SW1(config-if)#service-policy input VLAN
Cấu hình này giới hạn lưu lượng dịch vụ RTP Cổng f0/1-20 với băng thông 256 kbps và đánh dấu lưu lượng RTP (đi với access-list 100 cho phép giao thức udp) với Giá trị DSCP = 46.
Dưới dây là 1 ví dụ khác: Đây là những vlan đã có và yêu cầu là cấp băng thông, đặt giá trị ip precedence cho từng loại dịch vụ. Ta sẽ cấu hình trên sw 3560
VLAN ID VLAN NAME BANDWIDTH PRECEDENCE
--------------------------------------------------------------------------------
10 IPMux 16 Mbps 5
20 Cameras 2 Mbps 7
30 Scada 6 Mbps 6
Bước 1: Khởi tạo qos
mls qos
Bước 2: Tạo policy map:
Ví dụ: policy-map bw6M (child policy map) để giới hạn băng thông, policy-map vlan 30 (parent policy-map) để đặt giá trị ip precedence
!
policy-map bw6M
description *************** VLAN 30 Scada ***************
class class-default
police 6000000 8000 exceed-action drop
policy-map VLAN30
class class-default
set precedence 6
service-policy bw6M
!
policy-map bw2M
description *************** VLAN 20 Cameras ***************
class class-default
police 2000000 8000 exceed-action drop
policy-map VLAN20
class class-default
set precedence 7
service-policy bw2M
!
policy-map bw16M
description *************** VLAN 10 IPMux ***************
class class-default
police 16000000 8000 exceed-action drop
policy-map VLAN10
class class-default
set precedence 5
service-policy bw16M
Bước 3: Cấu hình trên cổng: access vlan và qos cho vlan
interface FastEthernet0/1
switchport mode access
mls qos vlan-based
!
interface FastEthernet0/1
switchport access vlan 10
switchport mode access
mls qos vlan-based
!
!
interface FastEthernet0/2
switchport access vlan 20
switchport mode access
mls qos vlan-based
!
!
interface FastEthernet0/3
switchport access vlan 30
switchport mode access
mls qos vlan-based
!
!
Bước 4: Cấu hình trunking
interface GigabitEthernet0/1
switchport trunk encapsulation dot1q
switchport mode trunk
mls qos vlan-based
Bước 5: Assign the policy maps to the SVIs: Gán policy-map vào vlan
!
interface Vlan10
no ip address
service-policy input VLAN10
!
interface Vlan20
no ip address
service-policy input VLAN20
!
interface Vlan30
no ip address
service-policy input VLAN30
!
Congestion Management: Quản lí tắc nghẽn
Bạn có thể ưu tiên lưu lượng bằng cách đặt các gói có DSCP hoặc CoS vào các hàng đợi nhất định và điều chỉnh ngưỡng hàng đợi để các gói có mức độ ưu tiên thấp hơn bị loại bỏ
Ánh xạ giá trị cos hoặc dscp tới hàng đợi (queue) và ngưỡng (threshold)
Theo mặc định, các giá trị DSCP 0–39, 48–63 được ánh xạ tới queue 1 và threshold 1. Các giá trị DSCP 40–47 được ánh xạ tới queue 2 và threshold 1.
Theo mặc định, giá trị CoS 0–4, 6 và 7 được ánh xạ tới queue 1 và threshold 1. Giá trị CoS 5 được ánh xạ tới queue 2 và threshold 1.
- Queue: từ 1 đến 2.
- Threshold: 1 đến 3..
Gán hai tỷ lệ ngưỡng WTD cho (threshold 1 và 2) vào hàng đợi nhập. Mặc định, cả hai ngưỡng được đặt thành 100%.
- Đối với ngưỡng tỷ lệ phần trăm ngưỡng1, phạm vi từ 1 đến 100. Tách mỗi giá trị bằng khoảng trắng.
Mỗi giá trị ngưỡng là phần trăm của tổng số bộ mô tả hàng đợi được phân bổ cho hàng đợi.
VD:
Switch(config)# mls qos srr-queue input dscp-map queue 1 threshold 1 0 1 2 3 4 5 6
Switch(config)# mls qos srr-queue input dscp-map queue 1 threshold 2 20 21 22 23 24 25 26
Switch(config)# mls qos srr-queue input threshold 1 50 70
Ví dụ này cho thấy cách ánh xạ giá trị DSCP 0 đến 6 để nhập hàng đợi 1 (queue) và đến ngưỡng 1 (threshold) với ngưỡng giảm 50%. Nó ánh xạ các giá trị DSCP từ 20 đến 26 để nhập hàng đợi 1 và đến ngưỡng 2 với ngưỡng giảm 70%. Trong ví dụ này, các giá trị DSCP (0 đến 6) được gán ngưỡng WTD là 50% và sẽ bị loại bỏ sớm hơn giá trị DSCP (20 đến 26) được gán cho ngưỡng WTD là 70%.
Ngoài ra có thể ánh xạ giá trị cos
Switch(config)# mls qos srr-queue input cos-map queue queue-id threshold threshold-id cos1...cos8
Shaped Round Robin (SRR):
SRR có 2 chế độ hoạt động
Shaped
Chỉ có sẵn trên hàng đợi đi ra.
Hàng đợi nhận được một phần dự trữ một phần của một cổng băng thông và không còn nữa.
Shared
Có sẵn trên hàng đợi vào và ra.
Hàng đợi được đảm bảo một phần của cổng băng thông.
Bandwidth Allocation for Input Queues (shared mod): Gắn băng thông vào hàng đợi đầu vào (queue)
SW1(config)#mls qos srr-queue input bandwidth 30 70
30% băng thông cho queue 1 và 70% cho queue 2
Bandwidth Allocation for Output Queues (shared mod): Gán băng thông cho hàng đợi đầu ra.
SW1(config)#int gig 1/0/4
SW1(config-if)#speed 1000
SW1(config-if)#srr-queue bandwidth share 10 25 35 50
Determine the amount of bandwidth available to each output queue on interface Gigabit Ethernet 1/0/4.
BW for Q1: [10/(10+25+35+50)] * 1000 Mbps = 83.3 Mbps
BW for Q2: [25/(10+25+35+50)] * 1000 Mbps = 208.3 Mbps
BW for Q3: [35/(10+25+35+50)] * 1000 Mbps = 291.7 Mbps
BW for Q4: [50/(10+25+35+50)] * 1000 Mbps = 416.7 Mbps
Bandwidth Allocation for Output Queues (Shaped Mode): Băng thông giới hạn
SW1(config)#int gig 1/0/5
SW1(config-if)#speed 1000
SW1(config-if)#srr-queue bandwidth shape 30 0 0 0
Determine the amount of bandwidth limits applied to the output queues on interface Gigabit Ethernet 1/0/5.
BW Limit for Q1: 1/30 * 1000 Mbps = 33.3 Mbps
BW Limit for Q2: No limit applied
BW Limit for Q3: No limit applied
BW Limit for Q4: No limit applied
Example:
SW1(config)#int gig 1/0/6
SW1(config-if)#speed 1000
SW1(config-if)#srr-queue bandwidth share 100 100 40 20
SW1(config-if)#srr-queue bandwidth shape 50 50 0 0
BW Limit for Q1 (Mbps): (1/50) * 1000 = 20 Mbps
BW Limit for Q2 (Mbps): (1/50) * 1000 = 20 Mbps
BW for Q3: [40/(40+20)] * (1000-20-20) Mbps = 640 Mbps
BW for Q4: [20/(40+20)] * (1000-20-20) Mbps = 320 Mbps
Total Bandwidth (Mbps) = 20 + 20 + 640 + 320 = 1000 Mbps
Limiting Bandwidth on an Output Interface:
SW1(config-if)#srr-queue bandwidth limit 85
The interface’s outbound bandwidth is limited to 85 percent of the interface speed
-----&-----&-----
Để quay về danh sách các bài phần Network các bạn chọn link sau
https://www.quantrimangdn.com/blogs/post/tong-hop-cac-bai-phan-network