EdgeRouter - Quality of Service (Quản lý chất lượng dịch vụ)
EdgeRouter - Quality of Service (Quản lý chất lượng dịch vụ)
Tổng
Quan
Ở bài viết này sẽ mô tả cho các bạn biết về các kiểu
Policies Traffic (Chính sách Lưu lượng) khác nhau được hỗ trợ bởi EdgeOS CLI.
Quản lý chuất lượng dịch vụ (QoS) cho phép bạn điều điều chỉnh các kiểu lưu lượg
dịch vụ khác nhau.
Mục Lục
1. Giới
thiệu
2. Các
chính sách traffic
2.1.
Drop Tail (FIFO)
2.2.
Random Early Detection
2.3.
Rate Control ( Hạn chế băng thông trên cổng)
2.4.
Fair Queue
2.5.
Shaper ( Hạn chế băng thông cho từng lớp)
2.6.
Limiter (Hạn chế băng thông giao thức)
Giới Thiệu
Quality Of Service (QoS) là một chức năng cho phép
Router cung cấp các mức độ dịch vụ tới các kiểu traffic. Về cơ bạn nó giúp bạn
điều chỉnh traffic tốt hơn ( Như là độ ưu tiên cao, điều chỉnh về bandwidth…)
và nhiều mục khác
ở một mức độ cao hơn, bạn có thể áp dụng QoS bằng
các định nghĩa policies traffic khác
nhau và áp dụng chúng vào Router, Một Plocies traffic có thể có một hoặc nhiều
rules (Quy tắc). Mỗi quy tắc có mẫu như sau:
Type of traffic >
How the router should treat it
Ví
dụ, bạn có thể định nghĩa một quy tắc đơn giản như sau:
R1: FTP traffic > Limit the bandwidth to 1 Mbps
Bạn
có thể định nghĩa một Policie về traffic sử dụng một hoặc nhiều quy tắc. ví dụ,
chúng ta có thể định nghĩa một chính sách P1 có 2 quy tắc R1 và R2:
P1: R1: FTP traffic
> Limit the bandwith to 1 Mbps R2: SSH traffic > Make latency lower
Sử dụng một Policie traffic
đã được tạo. bạn có thể áp dụng Policie hướng vào hoặc ra trên một cổng mạng.
Ví dụ:
Traffic going out on
interface "eth1" > Use traffic policy P1
Phần
sau sẽ mô tả chi tiết về các loại Policies
traffic khác nhau.
Các
chính sách lưu lượng (Traffic Policies)
Có
nhiều Kiểu Policies traffic khác nhau, mỗi
kiểu có cách hạn chế dữ liệu khác nhau. Một số Policies traffic được EdgeOS CLI
hỗ trợ:
- · Drop Tail (FIFO)
- · Random Early Detection
- · Rate Control
- · Fair Queue
- · Shaper
- · Limiter
DROP TAIL (FIFO)
Policie Drop-tail hiểu đơn giản là nó giữ một hàng đợi
các gói tin. Khi một gói tin cần truyền đi, nó sẽ được thêm vào hàng đợi và
Router sẽ gửi các gói tin ở hàng đợị ra dụa trên quy tắc FIFO ( vào đầu,ra đầu).
Hàng đợi có thể được giới hạn độ dài gói tin và khi đạt tới số độ dài giới hạn
gói tin thì không thể thêm bất cứ gói tin nào vào hàng đợi nữa và các gói tin
đó sẽ bị dropped( bỏ); như vậy nó được gọi là “Tail Drop” (hence the name
policy). Tail Drop xảy ra khi gói tin được thêm vào hàng đợi, đang chờ gửi đi
và Router không đủ tài nguyên để gửi gói tin đi nhanh .
Một chính sách Drop-tail có đặc điểm sau:
·
Không phân biệt giữa các lưu lượng dữ liệu.
·
Chỉ có một thông số cho độ dài hàng chờ.
·
Chỉ có thể áp dụng vào hướng đi ra của
lưu lượng trên cổng mạng
Ví dụ, Các lệnh
commands sau tạo một chính sách
Drop-tail với tên là Policy1 và được áp dụng hướng ra trên cổng interface eth0:
set traffic-policy drop-tail policy1 queue-limit 100
set traffic-policy drop-tail policy1 description "limit
queue 100"
set interfaces ethernet eth0 traffic-policy out policy1
Random
Early Detection
Random Early Detection
khác với Drop-tail, nó bắt đầu drop gói tin sớm hơn, trước khi độ dài gói tin
hàng đợi đạt đến độ giới hạn. Một lợi
ích của nó là nó cung cấp cách vận chuyển
traffic TCP bằng cách sẽ giảm dần các gói tin (drop packets) cho phép
các điểm cuối TCP đồng thời phát hiện được tắc nghẽn mạng và giảm lưu lượng
truy cập. RED (Random Early Detection) trái ngược với drop-tail mà các gói tin
bị bỏ tất cả một lần khi hàng chờ đạt tới độ giới hạn sẽ gây ra một tác động
tiêu cực to lớn ảnh hưởng đến hiệu suất TCP.
Như drop-tail, RED
policy chỉ có thể áp dụng vào hướng ra của một cổng mạng. RED có 3 thông số
chính như sau:
·
Độ dài nhỏ nhất hàng đợi: tại độ dài
hàng đợi đó Policy RED bắt đầu drop các gói tin được tính theo xác suất
·
Độ dài tối đa hàng đợi: Khi chiều dài
hàng đợi tăng lên từ nhỏ nhất đến lớn nhất, RED Policy sẽ tăng tính xác suất
drop (bỏ) gói tin từ 0 tới xác suất drop gói tin lớn nhất ( dựa vào các thông số
tiếp theo).
·
Xác suất drop lớn nhất:xác suất drop lớn
nhất khi mà đồ dài hàng đợi đạt tới mức dài nhất.
Ngoài ra, bạn có thể
thiết lập rõ một số thông số RED khác nhau cho mỗi giá trị ưu tiên của các IP.
Dưới đây là ví dụ CLI Command định rõ một RED Policy:
set traffic-policy random-detect random1 precedence 0 mark-probability 50
set traffic-policy random-detect random1 precedence 0 maximum-threshold 50
set traffic-policy random-detect random1 precedence 0 minimum-threshold 20
set interfaces ethernet eth0 traffic-policy out random1
commit
Trong ví dụ này, xác suất drop lớn nhất cho mỗi IP
có độ ưu tiên 0 là 2% (nói cách khác là 1/50)
Rate Control
Rate Control đảm bảo mục đích lưu lượng dữ liệu truyền
đi không quá một giá trị đã được xác định trước. nó có thể áp dụng vào hướng đi
ra và thông số chính có giá trị cao nhất cho traffic đi ra. Cho ví dụ, các câu
lệnh CLI sau sẽ tạo một rate-control
policy đảm bảo các traffic gửi ra ngoài không hơn 1Mbps trên công interface
eth0.
set traffic-policy rate-control rate1 bandwidth 1mbit
set interfaces ethernet eth0 traffic-policy out rate1
commit
Fair Queue
Policy Fair Queue sử dụng
Stochastic Fairmess Queueing sẽ tách riêng các lưu lương dữ liệu ( ví dụ TCP
connection) vào các vùng chứa khác nhau và mỗi dịch vụ trên router đều chỉ có một
vùng chứa.sau khi tách riêng các traffic thì sẽ chia nhỏ nguồn/đích địa chỉ IP
và nguồn port. Như vậy nó cho phép Router cân bằng giữa các dịch vụ dữ liệu
khác nhau.
Fair Queue Policy chỉ có thể áp dụng
vào hướng đi ra. Từ đó cân bằng dựa trên xác suất, trong vài trường hợp nhiều
luồng có thể đặt vào chung cùng một vùng; Và như vậy có thể gây ra mất cân bằng,
để giảm thiểu tác động bạn có thể điều chỉnh thay đổi khoảng thời gian chia nhỏ
ở các thuật toán có thời gian cố định. Sau đây là một ví dụ về Fair queue
policy:
set traffic-policy fair-queue fair1 hash-interval 10
set interfaces ethernet eth0 traffic-policy out fair1
commit
Shaper
Một Policy phức tạp hơn đó là
Shaper policy, nó sử dụng kỹ thuật mã thông báo phân lớp cho từng vùng bảo đảm
băng thông các lớp trên đường truyền mạng khác nhau. Một ví dụ đơn giản dưới
đây.
set trafficpolicy shaper shaper1 bandwidth 100mbit
set trafficpolicy shaper shaper1 default bandwidth 60mbit
set trafficpolicy shaper shaper1 class 2 bandwidth 20mbit
set trafficpolicy shaper shaper1 class 2 match client2 ip source address 10.0.1.2/32
set trafficpolicy shaper shaper1 class 3 bandwidth 20mbit
set trafficpolicy shaper shaper1 class 3 match client3 ip source address 10.0.1.3/32
set interfaces ethernet eth0 trafficpolicy out shaper1
commit
Trong ví dụ này, một shaper
policy shaper được định nghĩa và áp dụng vào hướng ra trên cổng interface eth0,
có băng thông 100Mbps. 2 lớp đã được được
tạo, một cho lưu lượng có nguồn từ địa chỉ IP là 10.0.1.2 và hai là cho lưu lượng
có nguồn từ địa chỉ IP là 10.0.1.3 . Mỗi lớp đều được đảm bảo băng thông
20Mbps, có nghĩa là khi tải thấp thì nó vẫn đẩm bảo băng thông, nhưng nếu băng
thông có săn cao thì nó vẫn có thể vượt qua 20Mbps. Tất cả các lưu lượng khác sẽ
sử dụng lớp mặc định với băng thông 60Mbps riêng. Vậy nếu các lưu lương hiện tại
đi ra trên cổng eth0 gồm 20Mbps từ 10.0.1.2 , và 20Mbps từ 10.0.1.3 và 80Mbps từ
các nguồn khác, các lưu lượng từ 10.0.1.2 àn 10.0.1.3 sẽ gửi đi ra với giá trị
tối đa đã được thiết lập đảm bảo 20Mbps cho mỗi lớp, và các lưu lượng ở lớp
khác sẽ chỉ có gửi đi ra với tốc độ 60Mbps.
Limiter
Limiter policy thực
hiện các chính sách đi vào vì thế chỉ có thể áp dụng lưu lượng đi vào trên cổng
mạng. ban có thể định nghĩa nhiều lớp lưu lượng, tách riêng băng thông giới hạn
cho mỗi lớp. Ví dụ, chính sách sau thiết lập một giới hạn 1Mbps đi vô với lưu
lượng ICMP trên cổng eth0 và giới hạn 10Mbps cho các lưu lượng khác.
set trafficpolicy limiter limit1 class 1 bandwidth 1mbit
set trafficpolicy limiter limit1 class 1 match match1 ip protocol icmp
set trafficpolicy limiter limit1 default bandwidth 10mbit
set interfaces ethernet eth0 trafficpolicy in limit1
commit
ví dụ trên con edgrouter x , em muốn giới hạn băng thông cho cổng LAN eth1 là up và down là 3mb ,cổng eth 2 không giới hạn thì dùng policy như thế nào vậy ad
Trả lờiXóa