Giới hạn băng thông thông minh

Giới hạn băng thông thông minh

Ngày nay khi công nghệ ngày càng phát triển, người dùng dần dần thay vì sử dụng các hoạt động trao đổi trực tiếp với nhau, họ sử dụng các dịch vụ yêu thích trên nền tảng Internet để thực hiện các hoạt động giao dịch hàng ngày. Chính vì thế, các dịch vụ “ăn theo” trên nền tảng Internet phát triển rầm rộ, kèm theo đó là các tiện ích đi kèm.
Vừa tiết kiệm thời gian, lại vừa ít tốn công sức là yếu tố tất yếu mà nhiều người dùng lựa chọn các dịch vụ trực tuyến thay vì phải gặp trực tiếp.
Cũng chính vì điều này, khi lượng người dùng tăng cao sẽ gây ra áp lực băng thông cho hạ tầng mạng, đặc biệt tại các trung tâm mua sắm, trung tâm thương mại & hội nghị thường có mật độ sử dụng tăng cao đột biến, trong khi mức băng thông kết nối Internet là giới hạn. Chưa kể, trong những trường hợp đó nếu ai đó tiến hành tải hàng loạt tệp tin trong mạng thì sao nhỉ ? Tất nhiên, việc lướt web sẽ trở nên chậm chạp hơn, còn việc thoại qua mạng sẽ trở nên ngắt quãng, thậm chí là mất kết nối.
Bắt đầu với phiên bản v3.30 MikroTik có tính năng giám sát tốc độ kết nối (Connection Rate). Nói một cách đơn giản, Connection Rate là một chức năng tích hợp trong tường lửa giúp nắm bắt lưu lượng dựa trên tốc độ kết nối hiện tại. Chúng tôi giả định rằng lưu lượng truy cập HTTP/HTTPS bình thường có độ nặng kết nối dưới 5MB. Sau đó, các dịch vụ liên quan đến thoại VOIP yêu cầu tốc độ kết nối dưới 512KB liên tục theo thời gian thực.

Bài toán đặt ra sẽ là.
Với điều này, chúng tôi cần phải xác định chính xác 2 loại lưu lượng, lưu lượng nặng và lưu lượng nhẹ. Bất kì kết nối nào tạo ra, mà đã sử dụng sau 2 Megabyte đồng thời băng thông luôn giao động từ 1 Megabit tới 100 Megabit chẳng hạn, thì chúng tôi xác định đây là kết nối nặng. Việc tải tệp tin qua các giao thức phổ dụng FTP, HTTP, HTTPS, tải nội dung số trên website… đều tạo ra các kết nối nặng. Những kết nối còn lại, mà không phải là kết nối nặng, chúng tôi đánh dấu kết nối nhẹ. Toàn bộ kết nối nặng bị hạ băng thông xuống 10 Megabit và giảm quyền ưu tiên. Trong khi đó các kết nối còn lại vẫn có quyền ưu tiên cao hơn.
! Thận trọng: Bởi vì kết nối nhẹ luôn có mức băng thông tốt hơn & quyền ưu tiên hơn so với kết nối nặng. Có một thủ thuật là cố tình tạo ra kết nối lớn sau 2 Megabyte nhưng băng thông luôn nhỏ 1 Megabit để được gán kết nối nhẹ. Chúng tôi sẽ chặn thủ thuật này.
Việc cài đặt trên hệ thống sẽ tương đối đơn giản, bằng cách định nghĩa các kết nối nặng và kết nối nhẹ trong Mangle để phân loại. Cuối cùng, các kết nối nặng và nhẹ sẽ phân tương ứng cho các cây hàng đợi khác nhau, ứng với mức băng thông khác nhau.

1./ Đánh dấu các lưu lượng nặng, lưu lượng nhẹ trong Mangle và gán hàng đợi Queue Tree.

Trong hướng dẫn này chúng tôi sẽ đề cập tới 2 cách cấu hình phổ dụng mà chúng ta thường hay gặp phải:
+ Sử dụng dòng lệnh
+ hoặc sử dụng giao diện (qua Winbox).
Đối với dòng lệnh, và cả giao diện thì trước tiên chúng tôi cần xác định lưu lượng xuất phát qua các giao diện trên bộ định tuyến để giới hạn băng thông cho mỗi lưu lượng tương ứng.
- Nếu lưu lượng là tải xuống (Download) thì chúng tôi sẽ giới hạn trên giao diện BridgeLAN.
- Nếu lưu lượng là tải lên (Upload) thì chúng tôi sẽ giới hạn trên giao diện kết nối Internet (pppoe-out1).

Cách 1. Sử dụng dòng lệnh.
Câu lệnh đánh dấu trong Mangle sẽ trông như thế này.
/ip firewall mangle
add action=mark-connection chain=forward connection-mark=!KetNoiNang new-connection-mark=TatCaKetNoi
add action=mark-connection chain=forward connection-bytes=2000000-0 connection-mark=TatCaKetNoi connection-rate=1M-100M new-connection-mark=KetNoiNang passthrough=yes protocol=tcp
add action=mark-connection chain=forward connection-bytes=2000000-0 connection-mark=TatCaKetNoi connection-rate=1M-100M new-connection-mark=KetNoiNang passthrough=yes protocol=udp
add action=mark-packet chain=forward connection-mark=KetNoiNang new-packet-mark=GoiTinNang passthrough=no
add action=mark-packet chain=forward connection-mark=TatCaKetNoi new-packet-mark=GoiTinNhe passthrough=no
Quy định của chúng tôi đề ra trong trường hợp này là các kết nối trên 2MB và thông lượng sử dụng liên tục từ 1Mb/s – 100Mb/s sẽ là kết nối nặng; trong khi đó các lưu lượng còn lại sẽ là kết nối nhẹ.
Tiếp theo, câu lệnh khởi tạo cây hàng đợi tương ứng cho 2 loại lưu lượng trên sẽ là.
/queue tree
add max-limit=80M name=Upload parent=pppoe-out1
add limit-at=4M max-limit=80M name="Ket Noi Nhe _ Upload" packet-mark=GoiTinNhe parent=Upload priority=1
add limit-at=2M max-limit=10M name="Ket Noi Nang _ Upload" packet-mark=GoiTinNang parent=Upload
add max-limit=80M name=Download parent=BridgeLAN
add limit-at=4M max-limit=80M name="Ket Noi Nhe _ Download" packet-mark=GoiTinNhe parent=Download priority=1
add limit-at=2M max-limit=10M name="Ket Noi Nang _ Download" packet-mark=GoiTinNang parent=Download
Sao chép và dán cả 2 cụm lênh phía trên vào cửa sổ New Terminal trên Winbox. Kết quả như thế này sẽ hợp lệ.

Sau đó là các lệnh được áp dụng vào Thẻ Mangle và Thẻ Queue Tree.

Nếu kiểm tra tải về, băng thông sẽ giới hạn theo mức băng thông mà chúng tôi tôi quy định trước đó.

Cách khác là sử dụng thông qua giao diện Winbox.
Đầu tiên, chúng tôi cần đảm bảo những kết nối mà không phải đánh dấu là kết nối nặng ngay từ lúc ban đầu, thì chúng tôi đánh dấu tất cả kết nối.

Tiếp sau đó, chúng tôi vào kết nối nặng đã đánh dấu, chúng tôi sử dụng thuộc tính connection rate và connection bytes để kiểm tra các kết nối.
- Những kết nối TCP mà có dung lượng sau 2 Megabyte trở lên và vẫn duy trì băng thông từ 1 Megabit tới 100 Megabit thì chúng tôi đánh dấu – Đây là kết nối nặng.
- Những kết nối UDP mà có dung lượng sau 2 Megabyte trở lên và vẫn duy trì băng thông từ 1 Megabit tới 100 Megabit thì chúng tôi đánh dấu – Đây là kết nối nặng.

Sau đó, chúng tôi đánh dấu các gói tin trong các kết nối nặng.
Sở dĩ, chúng tôi phải làm điều này vì cây hàng đợi chỉ là việc với gói tin đã đánh dấu.

Bước tiếp theo, xây dựng hàng đợi băng thông cho Kết Nối Nặng và Kết Nối Nhẹ.
Tại Menu Queue và thẻ Queue Tree, chúng tôi tạo 2 cây Download và Upload chính. Bằng cách nhấn vào dấu + "màu đỏ" và nhập vào thông tin Name là Download và Upload lần lượt.

Sau đó, chúng tôi lần lượt đưa các gói tin đã đánh dấu vào các cây tương ứng đã tạo. Hãy lưu ý rằng, thuộc tính Parent sẽ gán vào cây cha trước đó, đó là Download và Upload.

Đối với các kết nối nhẹ, gói tin nhẹ sẽ đánh mức độ ưu tiên cao hơn, với chỉ số Priority=1
Kiểm tra kết quả bằng việc tải về tệp tin, hàng đợi đã làm việc hiệu quả.

Giá trị thuộc tính Limit at và Max Limit.
- Khi bất kỳ kết nối nào trong mạng nôi bộ kết nối ra ngoài Internet mà lưu lượng đạt sau 2 Megabyte trở lại kèm theo băng thông vẫn duy trì từ 1 Megabit tới 100 Megabit thì sẽ được đánh dấu là kết nối nặng.
- Với kết nối nặng, hệ thống bắt buộc gán băng thông tối đa là 10 Megabit (Max Limit=10) trong điều kiện không có người dùng sử dụng đạt mức max-limit, trong trường hợp giá trị max-limit đạt ngưỡng tối đa, băng thông đảm bảo sẽ gán limit-at.
- Đối với các kết nối bình thường khác, chúng tôi ưu tiên truyền tải ra ngoài Internet hơn so với các kết nối phía trên.=
Hãy nhớ rằng, các kết nối nặng sẽ có mức ưu tiên thấp hơn và hàng đợi sẽ đạt tới giới hạn tối đa, kết nối nặng sẽ bị giảm tốc độ, tốc độ kết nối sẽ trở nên thấp hơn. Đối với các kết nối nhẹ (kết nối còn lại), chúng vẫn luôn được duy trì độ ưu tiên cao hơn.

  • Bài viết này được khởi tạo vào ngày 15 tháng 10, 2019
  • Phát hành vào 09 tháng 3, 2022.