1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng QOS trên linux

150 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên Cứu Và Triển Khai Hệ Thống Cung Cấp Và Quản Lý Chất Lượng Dịch Vụ Mạng QoS Trên Linux
Tác giả Nguyễn Minh Thư
Người hướng dẫn TS. Lưu Thanh Trà
Trường học Trường Đại Học Bách Khoa
Chuyên ngành Kỹ Thuật Điện Tử
Thể loại Luận Văn Thạc Sĩ
Năm xuất bản 2012
Thành phố TP.HCM
Định dạng
Số trang 150
Dung lượng 2,59 MB

Cấu trúc

  • CHƯƠNG I: MỞ ĐẦU (17)
    • 1.1 Lý do lựa chọn đề tài (17)
    • 1.2 Mục tiêu của đề tài (17)
    • 1.3 Đối tượng và phạm vi nghiên cứu của đề tài (18)
    • 1.4 Ý nghĩa thực tiễn và ý nghĩa khoa học của đề tài (18)
      • 1.4.1 Ý nghĩa khoa học (18)
      • 1.4.2 Ý nghĩa thực tế (19)
  • CHƯƠNG II: TỔNG QUAN (20)
    • 2.1 Công cụ triển khai QoS (20)
      • 2.1.1 Classifiers (20)
      • 2.1.2 Meters (21)
      • 2.1.3 Makers (22)
      • 2.1.4 Shapers (22)
      • 2.1.5 Dropers (23)
    • 2.2 Khả năng đáp ứng của các công cụ mã nguồn mở (23)
    • 2.3 Khảo sát các dòng thiết bị thương mại (23)
      • 2.3.1 PacketShaper (24)
      • 2.3.2 NETaXcel (26)
    • 2.4 Kết luận (28)
  • CHƯƠNG III: CƠ SỞ LÝ THUYẾT (30)
    • 3.1 Công cụ TC (30)
      • 3.1.1 Nguyên lý hoạt động của TC (30)
      • 3.1.2 Các thành phần của TC (34)
      • 3.1.3 Các loại hàng đợi mà TC hỗ trợ (40)
      • 3.1.4 Các phương pháp lọc gói mà TC Linux hỗ trợ (68)
      • 3.1.5 Kết luận về TC linux (72)
    • 3.2 Công cụ Netfilter - Iptables (73)
      • 3.2.1 Giới thiệu về Netfilter /Iptables (73)
      • 3.2.2 Nguyên lý hoạt động của Iptables (74)
      • 3.2.3 Thao tác cấu hình với Iptables (78)
      • 3.2.4 Tiêu chí lọc gói tin (79)
      • 3.2.5 Mục tiêu ứng xử với gói tin (82)
      • 3.2.6 Kết luận về Netfilter-Iptables (87)
    • 3.3 Layer 7 Filtering (88)
      • 3.3.1 Giới thiệu về L7 filter (88)
      • 3.3.2 Nguyên tắc hoạt động của L7 Filter (88)
      • 3.3.3 Các giao thức lớp ứng dụng được hỗ trợ bởi Layer7 Filter (89)
    • 3.4 Kết Luận (97)
  • CHƯƠNG IV: THIẾT KẾ BỘ KIỂM SOÁT LƯU LƯỢNG TRÊN LINUX (98)
    • 4.1 Phân tích yêu cầu (98)
      • 4.1.1 Yêu cầu về chức năng (98)
      • 4.1.2 Yêu cầu kết nối (99)
      • 4.1.3 Yêu cầu về giao diện (100)
    • 4.2 Thiết kế hệ thống (101)
      • 4.2.1 Mô hình tổng quát (101)
    • 4.3 Thiết kế chức năng QoS – Traffic Control (102)
      • 4.3.1 Chuẩn bị Linux Kernel và cập nhật bản vá cho Iptables (102)
      • 4.3.2 Thiết kế chức năng QoS – Traffic Control (105)
      • 4.3.3 Giám sát lưu lượng (124)
    • 4.4 Kết luận (128)
  • CHƯƠNG V: DEMO HỆ THỐNG (129)
    • 5.1 Kịch bản 01: Phân loại lưu lượng hạn chế băng thông (130)
      • 5.1.1 Mô hình (130)
      • 5.1.2 Thực hiện (130)
    • 5.2 Kịch bản 02: Ưu tiên lưu lượng (133)
      • 5.2.1 Chuẩn bị (133)
      • 5.2.2 Thực hiện (133)
    • 5.3 Kịch bản 03: Mượn băng thông giữa các lớp dịch vụ (135)
      • 5.3.1 Chuẩn bị (135)
      • 5.3.2 Thực hiện (135)
    • 5.4 Kịch bản 04: Hỗ trợ QoS DiffServ (135)
      • 5.4.1 Chuẩn bị (135)
      • 5.4.2 Thực hiện (136)
  • CHƯƠNG VI: KẾT QUẢ ĐẠT ĐƯỢC VÀ KẾT LUẬN (138)
    • 6.1 Nội dung công việc đã thực hiện và kết quả đạt được (138)
      • 6.1.1 Nội dung công việc đã thực hiện (138)
      • 6.1.2 Kết quả đạt được (138)
    • 6.2 Kết luận và định hướng phát triển cho đề tài (139)
      • 6.2.1 Kết luận (139)
      • 6.2.2 Định hướng phát triển của đề tài (139)
  • TÀI LIỆU THAM KHẢO (141)
  • PHỤ LỤC (142)

Nội dung

TỔNG QUAN

Công cụ triển khai QoS

Để có thể triển khai được một hệ thống hỗ trợ QoS thì hệ thống đó phải có 05 thành phần cơ bản bao gồm: Classifiers, Meter, Marker, Shapper, Droper [4]

Hình 2 - 1: Các thành phần cơ bản để triển khai QoS

Classifiers là công cụ quan trọng để phân loại gói tin dựa trên thông tin trong phần đầu gói tin Có hai loại Classifiers chính là BA (Behavior Aggregate) và

Trong chương này, tác giả sẽ nghiên cứu và đánh giá các công cụ triển khai QoS, so sánh khả năng đáp ứng của chúng và phân tích những hạn chế của các công cụ mã nguồn mở Mục tiêu là chỉ ra các vấn đề mà đề tài sẽ tập trung nghiên cứu và giải quyết.

Trong phần cuối cùng của chương, tác giả sẽ tiến hành khảo sát thực tế các thiết bị hỗ trợ kiểm soát lưu lượng và QoS, tập trung vào việc phân tích tính năng và giá thành sản phẩm Mục tiêu của cuộc khảo sát là chứng minh rằng việc “giảm chi phí sản phẩm” trong đề tài là có cơ sở và hoàn toàn khả thi.

MF (Multi-Field) là phương pháp phân loại gói tin dựa trên nhiều thông tin trong header fields, bao gồm địa chỉ nguồn, địa chỉ đích, giá trị trường DSCP và giao thức Trong khi đó, BA Classifier chỉ phân loại gói tin dựa vào thông tin trường DSCP.

ID, giá trị port nguồn, giá trị port đích và một số thông tin khác

Classifiers được sử dụng để định hướng các gói tin theo những quy tắc nhất định đến bộ điều khiển lưu lượng (Traffic Conditioners), nhằm tiếp tục quá trình xử lý các gói tin đó.

Traffic Conditioners bao gồm các thành phần sau: meter, marker, Shaper, và dropper

Trên hệ điều hành Linux, việc phân loại gói tin có thể được thực hiện thông qua các công cụ như Netfilter Framework với Iptables, và TC filter Linux cho phép kết hợp các công cụ này thành một bộ công cụ mạnh mẽ, đáp ứng nhu cầu phân loại gói tin hiệu quả Tất cả các công cụ này đều miễn phí và được cung cấp bởi cộng đồng Linux.

Mỗi luồng dữ liệu trong hệ thống mạng được gán các đặc tính như tốc độ truyền, độ bùng phát và độ trễ, tạo thành một traffic profile Meters là công cụ đo lường luồng dữ liệu để so sánh với traffic profile đã cấu hình Kết quả trả về từ Meters cho một gói tin sẽ là In-Profile hoặc Out-Of-Profile, ảnh hưởng trực tiếp đến các hành vi như Marking, Droping và Shaping.

Công cụ Meter thường sử dụng một trong hai thuật toán là Leak Bucket hoặc Token Bucket Trong TC Linux, hàng đợi TBF và HTB hỗ trợ hiệu quả cho thuật toán Token Bucket, đóng vai trò quan trọng trong việc kiểm soát tốc độ của các luồng dữ liệu khi triển khai QoS trên hệ điều hành Linux.

Makers là công cụ dùng để đánh dấu gói tin với một codepoint riêng biệt trong trường DiffServ, nhằm gộp các luồng dữ liệu thành một nhóm để đảm bảo thống nhất trong việc xử lý Chúng có thể được cấu hình để đánh dấu tất cả gói tin với một codepoint duy nhất hoặc nhiều codepoints để lựa chọn một PHB trong nhóm PHB dựa trên trạng thái của Meter Khi thông tin codepoint trong gói tin được thay đổi, quá trình này được gọi là “Re-Maker”.

Với TC Linux, người dùng có thể sử dụng hàng đợi DSMARK Queuing để đánh dấu gói tin thông qua trường TOS, cho phép thiết lập đến 64 lớp khác nhau, bao gồm cả PBH và non-AF/EF/default PBH Bên cạnh đó, công cụ Netfilter/Iptables tại table mangle trên Linux cũng hỗ trợ việc thiết lập các giá trị cho trường DSCP.

Shaper là công cụ giúp điều chỉnh tốc độ truyền tải dữ liệu bằng cách làm trễ một phần hoặc toàn bộ gói tin trong luồng dữ liệu, nhằm đảm bảo luồng này đáp ứng các yêu cầu của Traffic profile Công cụ này thường đi kèm với một bộ đệm có kích thước giới hạn, và nếu bộ đệm đầy, các gói tin sẽ bị hủy bỏ để giải phóng không gian.

Bản chất của các bộ Shaper chính là các hàng đợi Shaper chỉ là một thành phần trong cơ chế Shaping (Traffic Conditioners)

TC Linux cung cấp nhiều cơ chế hàng đợi để cấu hình Shaper dữ liệu, bao gồm hai loại chính: Classless Qdisc và Classfull Qdisc Trong đó, HTB Qdisc là một loại hàng đợi thuộc nhóm Classfull Qdisc, rất phù hợp cho việc thiết lập chức năng Shaping dữ liệu.

Droper là công cụ dùng để hủy bỏ một số hoặc tất cả các gói tin trong luồng dữ liệu nhằm đảm bảo rằng luồng dữ liệu đó tuân thủ các tham số của Traffic profile Quá trình này thường được gọi là Policing Đặc biệt, một bộ Droper có thể được xây dựng từ một bộ Shaper với kích thước bộ đệm bằng không gói tin.

TC Linux hỗ trợ quản lý hàng đợi bằng cách sử dụng phương pháp tail-drop để loại bỏ gói tin, đồng thời cho phép áp dụng các thuật toán Drop ngẫu nhiên như RED và WRED Qdisc Ngoài ra, chức năng Policing có thể được triển khai trên Linux thông qua công cụ TC filter tại hàng đợi ngõ vào của card mạng (ingress qdisc).

Khả năng đáp ứng của các công cụ mã nguồn mở

TC Linux cung cấp các công cụ cần thiết để triển khai QoS hiệu quả Hệ thống này, được biên dịch trực tiếp vào nhân Linux, giúp tối ưu hóa việc tiêu thụ tài nguyên trong quá trình xử lý gói tin, từ đó nâng cao hiệu suất tổng thể.

Mặt hạn chế của TC Linux là cơ chế lọc chặn không linh hoạt và không hỗ trợ phân loại gói tin theo lớp ứng dụng Để khắc phục những hạn chế này, cần có giải pháp cải tiến.

TC Linux kết hợp với Netfilter/Iptables cho phép hệ thống thiết lập các chính sách lọc linh hoạt dựa trên nhiều tiêu chí khác nhau Bên cạnh đó, việc tích hợp công cụ Layer 7 Filtering của Iptables giúp thực hiện lọc dữ liệu theo lớp ứng dụng một cách hiệu quả.

Khảo sát các dòng thiết bị thương mại

Thêm một chút giới thiệu chung ở đây về các hãng

Packeteer, được sáng lập bởi Robert Packer và Brett Galloway vào năm 1996, là một thiết bị phần cứng tích hợp với ứng dụng Sau này, Packeteer đã được công ty BlueCoast mua lại, phát triển thêm và đổi tên thành PacketShaper.

Tính năng của một số dòng sản phẩm packetShaper

Traffic classification is a feature that enables devices to reorganize network traffic based on various parameters, including application protocols, port numbers, URLs, host names, LDAP host lists, DiffServ settings, ISL, 802.1p/q, MPLS tags, IP precedence bits, IP or MAC addresses, and traffic direction (inbound/outbound) Additionally, it takes into account source and destination details, host speed ranges, MIME types, web browsers, Oracle databases, Citrix published applications, and VLANs.

Phân tích và quản lý thời gian phản hồi là chức năng giúp thiết bị giám sát hiệu suất mạng bằng cách phát hiện các client và server có hiệu năng kém Chức năng này tự động phân tích nguyên nhân gây ra tình trạng này, có thể do nguồn gửi quá nhiều lưu lượng hoặc đích nhận quá tải Ngoài ra, nó còn cho phép phát hiện phần trăm băng thông bị lãng phí trên đường truyền Ví dụ về khả năng phân tích này có thể thấy rõ qua packetShaper.

Top Talkers for web Traffic: yahoo.com, nasdaq.com, cnn.com, and espn.com

Top Listeners: CfoPC, VpMarketingPC, DirEngineeringPC

12% of bandwidth goes to retransmissions; jumps to 68% for a particularly overburdened server

Hợp đồng Cấp Dịch Vụ (SLA) đóng vai trò quan trọng trong việc giám sát hiệu suất dịch vụ của nhà cung cấp, với các tham số như băng thông, độ trễ, độ jitter và tỷ lệ mất gói PacketShaper tự động theo dõi và phân tích mức độ đáp ứng SLA, đồng thời cung cấp cảnh báo khi có sự cố xảy ra Dưới đây là ví dụ về khả năng giám sát SLA mà PacketShaper mang lại.

SLA states that 98% of JD Edwards' OneWorld transactions should complete in 1,100ms Actual response time averages 867ms But only 95% complete within limits, so SLA is in violation.

Top 10: Thu thập 10 loại Traffic chiếm tỷ trọng lớn nhất đi qua packetShaper Điều này sẽ cho phép người quản trị nhanh chóng phát hiện ra các sự cố bất thường trong hệ thống mạng để có thể đưa ra các phương án khắc phục kịp thời

Per-App Minimum cho phép người dùng thiết lập băng thông bảo vệ cho tất cả lưu lượng trong một lớp nhất định Ví dụ, có thể cấu hình băng thông bảo vệ cho ứng dụng Microsoft Exchange chiếm tối thiểu 20% băng thông WAN, đồng thời cho phép tăng vượt mức nếu băng thông hệ thống còn dư, nhưng không được vượt quá 60% tổng băng thông.

Per-App Maximum cho phép người dùng thiết lập băng thông tối đa cho từng ứng dụng, ví dụ như giới hạn tổng băng thông cho ứng dụng tải xuống FTP ở mức 1Mbps.

Chức năng Per-Session Minimum cho phép thiết lập băng thông bảo vệ cho một session cụ thể trong một Class Traffic, giúp đảm bảo chất lượng dịch vụ Ví dụ, chúng ta có thể thiết lập băng thông chính xác 21Kbps cho một session VoIP.

Per-Session Maximum: Chức năng thiết lập giới hạn băng thông cực đại cho một session trong một Traffic Class cụ thể

Dynamic Per-User Minimum & Maximum cho phép quản lý băng thông cho từng người dùng mà không cần cấu hình từ phía người dùng Băng thông không sử dụng của một người dùng có thể được chia sẻ và mượn bởi người dùng khác, giúp tối ưu hóa hiệu suất mạng.

Kiểm soát tốc độ TCP là chức năng giúp giảm thiểu sự biến động tốc độ của các luồng TCP PacketShaper can thiệp để điều chỉnh kích thước cửa sổ của gói tin dựa trên các thông số đo được trên mạng, từ đó giúp các luồng TCP hạn chế độ trễ trong cả hai hướng.

UDP Rate Control: Cho phép đảm bảo chính xác một lượng băng thông và kiểm soát độ jitter cho các flow UDP

The price of packetShaper consists of two main components: hardware and software (including licenses) Additionally, the company offers a 24/7 technical support package For the Serial 6500 model, prices range from $17,000 to $34,000.

NETaXcel là sản phẩm thương mại của XRoads Networks, tương tự như packetShaper Thiết bị này bao gồm phần cứng kết hợp với ứng dụng và hoạt động trên hệ điều hành EdgeXOS.

Các tính năng nổi bật về kiểm soát lưu lượng của thiết bị NETaExcel bao gồm:

Hỗ trợ 12 mức ưu tiên

Hỗ trợ 10 sub-level để đánh dấu ToS/DiffServ Ưu tiên theo ứng dụng Ưu tiên theo URL Đảm bảo tốc độ cho từng lớp dịch vụ

Gộp các luồng dữ liệu khác nhau vào cùng một Class

In addition, NETaExcel offers a wide range of features including advanced routing capabilities, NAT, Proxy, site-to-site VPN, load balancing, WAN reliability, and firewall support.

Giá sản phẩm NETaExcel dao động từ 3.000 USD đến 10.000 USD, tùy thuộc vào các tùy chọn đi kèm như phần cứng, phần mềm, gói hỗ trợ và thời gian bảo hành.

Kết luận

Trong chương này, chúng ta đã phân tích các thành phần cần thiết để triển khai hệ thống hỗ trợ chức năng QoS và so sánh khả năng đáp ứng của các công cụ mã nguồn mở, đặc biệt là TC Linux Kết quả cho thấy TC Linux hoàn toàn đủ khả năng thực hiện các chức năng QoS cần thiết.

Chức Năng Khả năng đáp ứng của TC Linux

Shaping Sử dụng TC Class kết hợp với HTB Classfull Qdisc

Mỗi Traffic Control (TC) Qdisc hoạt động như một bộ lập lịch, trong đó FIFO là hình thức đơn giản nhất Bằng cách sử dụng hàng đợi HTB kết hợp với các Class, chúng ta có thể tạo ra các Classless Qdisc bên trong các Class để xây dựng một chức năng lập lịch hoàn chỉnh.

Classifying Để phân loại gói tin chúng ta có thể thực hiện theo hai cách

Cách thứ nhất là sử dụng TC filter kết hợp với các bộ selector tích hợp sẵn trong TC như u32 để phân loại

Cách thứ hai là sử dụng TC filter kết hợp với Netfilter để phân loại

Netfilter/Iptables là công cụ mạnh mẽ cho việc lọc gói tin, trở thành lựa chọn lý tưởng để triển khai phân loại các gói tin hiệu quả.

Policing Chức năng policing có thể được triển khai như một phần của TC filter

Dropping Để thực hiện việc drop các gói tin chúng ta có thể thực hiện bằng

TC filter … policer Hoặc cũng có thể sử dụng Netfilter để thực hiện việc drop gói tin

Việc đánh dấu gói tin có thể được thực hiện qua hai phương pháp: sử dụng hàng đợi TC Qdisc dsmark hoặc sử dụng Iptables với bảng mangle để đánh dấu trường DS.

Bảng 2 - 1: Khả năng đáp ứng của TC Linux

CƠ SỞ LÝ THUYẾT

Công cụ TC

3.1.1 Nguyên lý hoạt động của TC

Nguyên lý hoạt động của TC Linux được mô tả như sau

Trong chương này, tác giả sẽ giới thiệu chi tiết về lý thuyết cơ bản của công cụ TC trên Linux, bao gồm nguyên lý hoạt động và cách cấu hình các tham số liên quan Mỗi phần sẽ được phân tích để làm rõ ưu và nhược điểm của từng phương pháp cấu hình.

Tác giả sẽ trình bày các lý thuyết cơ bản về công cụ netfilter/iptables, nhằm làm nền tảng cho việc kết hợp TC Linux với iptables, phục vụ cho các yêu cầu của đề tài.

Hình 3 - 1: Nguyên lý hoạt động của TC

Gói tin được đưa vào hệ thống thông qua giao diện kết nối, với phần cứng chủ yếu là các Network Card Bộ phân loại gói tin ở ngõ vào (Ingress Classification) sẽ phân loại gói tin và chuyển chúng vào hàng đợi ngõ vào (Ingress Qdisc) Tại đây, hệ thống thực hiện quá trình policing dữ liệu nhằm đảm bảo rằng tốc độ gói đến không vượt quá mức quy định.

Gói tin sẽ được chuyển vào kernel để tiếp tục xử lý, nơi kernel sẽ đọc các trường thông tin trong phần mào đầu để xác định đích đến của gói tin Nếu gói tin được gửi đến một địa chỉ khác, kernel sẽ thực hiện routing hoặc bridging để chuyển gói đến một interface khác Nếu gói tin được gửi đến hệ thống, nó sẽ được đẩy lên các lớp cao hơn trong mô hình OSI Gói tin phản hồi từ hệ thống (nếu có) sẽ được gửi ngược trở lại giao diện mà gói tin vừa đến.

Trong cả hai trường hợp, các gói tin sẽ được đưa đến ngõ ra (Egress) của giao diện kết nối Bộ phân loại gói tin tại ngõ ra sẽ phân loại chúng và đưa vào các hàng đợi phù hợp Quá trình Shaper dữ liệu sẽ diễn ra tại đây, trước khi gói tin được chuyển đến Network Card để truyền đi.

Ingress Classification, Ingress Qdisc, Egress Classification và Egress Qdisc là bốn thành phần quan trọng trong TC Linux, được tích hợp trực tiếp vào nhân Linux để cấu hình kiểm soát lưu lượng Quá trình kiểm soát lưu lượng bao gồm nhiều bước khác nhau nhằm quản lý và tối ưu hóa lưu lượng mạng.

SHAPING là quá trình làm chậm gói tin để kiểm soát tốc độ luồng dữ liệu, giúp hạn chế tốc độ dữ liệu thấp hơn băng thông hiện có Khi dữ liệu được Shaper, tốc độ phát gói tin ra khỏi card mạng sẽ được quản lý, giúp tối ưu hóa việc truyền dữ liệu qua hệ thống mạng Quá trình Shaping diễn ra ở ngõ ra (egress) của card mạng, nhằm hạn chế các dữ liệu truyền theo kiểu bùng phát.

SCHEDULING là quá trình tổ chức các gói tin đi ra khỏi card mạng, cho phép ưu tiên và sắp xếp lại các gói tin có thứ tự ưu tiên cao được gửi đi trước.

POLICING là quá trình xảy ra tại ngõ vào của card mạng, xử lý các gói tin đến Khác với SHAPING, POLICING không thể lưu trữ các gói tin, do đó, những gói tin vượt quá tốc độ quy định sẽ bị loại bỏ ngay lập tức.

DROPPING: Là quá trình hủy gói tin không vận chuyển qua network card do truyền vọt lố so với tốc độ được thiết lập

Quá trình xử lý Traffic được kiểm soát bởi ba thành phần là: Qdisc, Class, Filter

Các lớp (Class) trong hệ thống được tổ chức theo dạng cây ngược, trong đó mỗi lớp có một lớp cha và lớp cha có thể có nhiều lớp con Một số loại hàng đợi (Qdisc) như CBQ và HTB cho phép thêm các lớp con, trong khi các loại hàng đợi khác như PRIO chỉ cho phép tạo ra một số lớp con nhất định.

Qdisc có thể cho phép tạo thêm các Class hoặc không cần Class nào bên trong nó để sắp xếp các gói tin vào hàng đợi

Mỗi Class trong hệ thống có thể có một hàng đợi con để sắp xếp các gói tin ra, gọi là Scheduler Mặc định, hàng đợi pfifo được gán khi khởi tạo Class, nhưng người dùng có thể thay thế bằng các loại hàng đợi khác Hàng đợi thay thế này có thể chứa nhiều Class, nhưng mỗi Class chỉ được phép có một leaf Qdisc duy nhất.

Khi một gói tin được gửi vào Classfull Qdisc, nó sẽ được phân loại vào một trong các Class bên trong Việc phân loại này có thể được thực hiện theo ba phương pháp khác nhau, tuy nhiên không phải tất cả các Qdisc đều áp dụng cả ba kiểu phân loại này.

TC filters are prioritized when assigned to a class, allowing them to inspect all fields in the packet header and match packets marked by the firewall (Iptables) Additionally, certain built-in Qdisc rules classify packets based on the Type of Service (ToS).

SKB – PRIORITY (SocKet Buffer – PRIORITY) cho phép các ứng dụng trong Userspace mã hóa Class-ID thành skb – priority Tuy nhiên, trong khuôn khổ đề tài này, chúng tôi sẽ không đi sâu vào nghiên cứu phương pháp phân loại gói tin này.

Mỗi node trong mô hình cây ngược của Class có thể sở hữu một bộ filter riêng Các bộ filter ở lớp cao hơn có khả năng chỉ định trực tiếp đến các Class ở lớp thấp hơn.

Hình 3 - 2: Mô Hình Cây Ngược Của TC Class

Công cụ Netfilter - Iptables

3.2.1 Giới thiệu về Netfilter /Iptables

Netfilter là một framework lọc gói tin tích hợp trong nhân Linux từ phiên bản Kernel 2.4 trở đi, cho phép quản trị viên thực hiện các tác vụ như lọc gói tin, chuyển đổi địa chỉ mạng, chuyển đổi port và xử lý gói tin một cách hiệu quả.

Iptables là thành phần nổi bật nhất trong Netfilter, đóng vai trò quan trọng trong việc quản lý và kiểm soát lưu lượng mạng Ngoài Iptables, Netfilter còn bao gồm các công cụ hữu ích khác như ebtables, arptables và Ip6tables, giúp mở rộng khả năng bảo mật và quản lý mạng.

…v.v Iptables được kế thừa và thực hiện tái thiết kế lại dựa trên Ipchains của Linux 2.2 và Ipfwadm của Linux 2.0 [9]

Các tính năng của Netfilter/Iptables bao gồm:

Lọc gói không nhớ - Stateless packet filtering (IPv4 and IPv6)

Lọc gói có nhớ - Stateful packet filtering (IPv4 and IPv6)

Chuyển đổi các loại địa chỉ mạng và port e.g NAT/NAPT (IPv4 only)

Mềm dẻo và dễ mở rộng

Hỗ trợ API của nhiều 3rd party

Hỗ trợ một lượng lớn các module dạng plugin

Với Netfilter/Iptables chúng ta có thể:

Xây dựng một hệ thống Internet firewalls dựa trên 2 cơ chết stateless và stateful packet filtering

Sử dụng NAT và masquerading để chia sẽ kết nối internet trong trường hợp không có đủ địa chỉ IP public

Sử dụng NAT để triển khai transparent proxies

Kết hợp với Iproute2/TC để triển khai QoS và policy routers

Tương ta, xử lý gói tin, chỉnh sửa thông tin các trường TOS/DSCP/ECN bits trong IP header

Netfilter hỗ trợ đánh dấu gói tin dưới dạng metadata trong không gian kernel, điều này rất quan trọng để kết hợp với TC Linux, vốn cũng xử lý gói tin dạng metadata Nhờ đó, chúng ta có thể sử dụng Netfilter để đánh dấu gói tin, và TC Filter sẽ xử lý các gói tin metadata, phân loại chúng vào các class Qua đó, chúng ta tận dụng được sức mạnh toàn diện của Netfilter-Iptables.

Iptables là một firewall có 03 loại bảng với chains và chức năng tương ứng như sau:

Chains Chức năng của các chains

FILTER Lọc gói FORWARD Filters các gói tin có đích đến là firewall tin nhưng đến từ một NIC khác

INPUT Filters các gói có đích đến là firewall OUTPUT Filter các gói có source từ firewall gửi đi

NAT Chuyển đổi địa chỉ

PREROUTING Chuyển đổi địa chỉ trước khi Routing

Dùng cho DNAT POSTROUTING Chuyển đổi địa chỉ trước khi Routing

OUTPUT Chuyển đổi địa chỉ cho các gói được tạo bởi Firewall MANGLE Thay đổi thông tin trong Header gói tin

Thay đổi thông tin trường TCP header và các bits QoS

Bảng 3 - 8: Cấu trúc và nhiệm vụ của các bảng trong Iptables

Quá trình xử lý gói tin trong Iptables

Hình 3 - 22: Hành trình của gói tin trong Kernel

Sơ đồ trên cho thấy quá trình xử lý các gói tin qua các chain và table khi module NAT và Mangle được tải vào Kernel Khi gói tin đến Linux box, nó sẽ được phân tích tại chain PREROUTING của mangle table, cho phép chúng ta thực hiện một số thay đổi nhỏ trên IP header như thay đổi trường TOS hoặc đánh dấu gói tin trước khi tiến hành quá trình Routing.

Tiếp theo, paket flow sẽ đi tiếp qua PRE-ROUTING chain của bảng NAT table tại đây chúng ta có thể thực hiện DNAT và port redirection …v.v

Quá trình DNAT (Địa chỉ mạng chuyển đổi) chỉ có thể diễn ra trước khi thực hiện Routing, vì DNAT thay đổi địa chỉ IP công cộng thành địa chỉ IP riêng Cụ thể, quá trình này thay đổi địa chỉ IP đích trong tiêu đề IP Netfilter cần thực hiện DNAT trước khi quyết định routing, do đó, Kernel sẽ sử dụng địa chỉ IP đích mới để đưa ra quyết định routing chính xác.

Sau khi vượt qua hai chain, Linux Kernel sẽ quyết định routing bằng cách phân tích địa chỉ IP đích trong header IP Việc này không thuộc về Netfilter; thông qua quá trình này, hệ thống Linux sẽ xác định được nơi chuyển gói tin hoặc nhận gói tin gửi đến chính nó.

Khi gói tin hướng đến Linux box, nó sẽ được chuyển đến chain INPUT của mangle tables để thực hiện quá trình packet mangling, tức là thay đổi thông tin trong IP header mà không ảnh hưởng đến hệ thống Tiếp theo, gói tin sẽ vào chain INPUT của filter table, nơi sẽ quyết định chấp nhận, từ chối hoặc loại bỏ gói tin Nếu gói tin được chấp nhận, Linux box sẽ tạo ra một phản hồi, và gói tin phản hồi này sẽ đi qua chain OUTPUT của mangle table trước khi được gửi đi.

The packet will first pass through the NAT table's OUTPUT chain and the filter table's OUTPUT chain At this stage, the packet will be processed by the mangle table's POSTROUTING chain and the NAT table's POSTROUTING chain, where it will be analyzed and sent out through the corresponding interface.

The chains discussed here are predefined chains for tables such as filter, nat, and mangle; however, it is possible to create custom chains with unique names By directing packets from the corresponding predefined chains to these custom chains, we can establish specific rules For instance, to allow SSH access to a Linux box, we can rename the chain to "SSH" and insert a rule into the INPUT chain that instructs the kernel to analyze the SSH chain for incoming packets on port 22/TCP.

Các predefned chains không thể xóa hay đổi tên được

3.2.3 Thao tác cấu hình với Iptables

Iptables có cấu trúc tương đối giống so với Ipchains (Netfilter cho Kernel 2.2) tuy nhiên, concept của Netfilter cho Kernel 2.4+ hoàn toàn khác so với Netfilter cho Kernel 2.2

Các operation của Iptables cho các chain như sau:[2]

List the rules in a chain (Iptables –L CHAIN)

Change the policy of a chain (Iptables –P CHAIN ACCEPT)

Create a new chain (Iptables –N CHAIN)

Flush a chain; delete all rules (Iptables –F CHAIN)

Delete a chain (Iptables –D CHAIN), only if the chain is empty

The command "Iptables -Z CHAIN" resets the counters that track the number of packets and bytes matched by each rule in a chain For operations such as -L, -D, -F, and -Z, if the chain name is not specified, the command defaults to applying to the entire filter table To specify a particular table for an operation, the -t option can be used, for example, "Iptables -t filter."

Các operation của Iptables cho các rules bao gồm:

Append rules to a chain (Iptables –A)

Insert rules in a chain (Iptables –I)

Replace a rule from a chain (Iptables –R)

Delete a rule from a chain (Iptables –D)

Trong thiết kế firewalls, hai operation thường được sử dụng là –A và –I Chúng ta thường sử dụng operation –I hơn –A vì nó cho phép gán các rule tạm vào đầu chain, trong khi –A chỉ đặt rule vào cuối chain Việc sử dụng iptables –I cho phép chèn một rule vào bất kỳ vị trí nào trong chain, ví dụ như iptables –I CHAIN 4 sẽ chèn rule vào vị trí thứ 4 của chain mong muốn.

Iptables –D cũng có thể dụng bằng cách chỉ ra vị trí của rule trong chain hoặc chỉ ra entire rule để xóa rule ra khỏi chain

Câu lệnh để add rule vào chain có dạng

Iptables –A …… -j

Filtering specifcations là 1 phần của Iptables rule nó được Kernel sử dụng để nhận dạng các gói IP và Kernel sẽ thực hiện một action cụ thể theo TARGET

3.2.4 Tiêu chí lọc gói tin

Tiêu chí thực hiện lọc gói tin có thể chia thành hai kiểu là Generic Matchs Implicit matches, và Explicit matches [9]

Lọc gói tin dựa vào protocol (TCP/UDP/ICMP):

Lọc gói tin dựa vào địa chỉ IP nguồn/đích

Match -s/-d hoặc source, destination hoặc –src,

Lọc gói tin dựa vào chiều gói tin in/out

Match -i, in-interface, -o, out-interface

Lọc gói tin dựa vào port number: dùng cho cả TCP và UDP

Match sport, source-port, dport, destination-port Example Iptables -A INPUT -t tcp sport 80

Lọc gói tin dựa vào trạng thái cờ TCP (SYN,FIN,ACK SYN, RST…v.v)

Example Iptables -p tcp tcp-flags SYN,FIN,ACK SYN

Lọc gói theo giá trị TCP Option

Example Iptables -p tcp tcp-option 16

Example Iptables -A INPUT -p icmp icmp-type 8

Lọc gói tin IPSEC dựa vào thông tin trường AH/ESP

Example Iptables -A INPUT -p 50 -m esp espspi 500

Lọc gói theo trạng thái kết nối TCP (INVALID, ESTABLISED, NEW, RELATED, SNAT, DNAT)

Match -m conntrack [ ctstate, ctproto, ctorigsrc, ctorigdst, ctreplsrc, ctrepldst, ctstatus, ctexpire]

Example Iptables -A INPUT -p tcp -m conntrack ctstate RELATED

Lọc gói dựa vào thông tin trường DSCP

Match -m dscp [ dscp, dscp-class]

Example Iptables -A INPUT -p tcp -m dscp dscp 32

Iptables -A INPUT -p tcp -m dscp dscp-class

Lọc gói dựa vào thông tin trường ECN

Match -m ecn [ ecn-tcp-cwr, -m ecn ecn-tcp-ece,

Example Iptables -A INPUT -p tcp -m dscp dscp 32

Iptables -A INPUT -p tcp -m dscp dscp-class

Lọc gói theo một dải địa chỉ IP

Match -m iprange [ src-range, dst-range]

Example Iptables -A INPUT -p tcp -m iprange src- range 192.168.1.13-192.168.2.19

Lọc gói tin theo kích thước

Example Iptables -A INPUT -p tcp -m length length

Lọc gói theo địa chỉ MAC

Example Iptables -A INPUT -m mac mac-source

Lọc gói tin kéo dài trong một khoảng thời gian giới hạn

Example Iptables -A INPUT -m limit limit 3/hour

Lọc gói tin được đánh dấu metadata

Example Iptables -t mangle -A INPUT -m mark mark 1

Lọc gói tin theo nhiều port number

Match -m multiport [ source-port , destination- port, port ] Example Iptables -A INPUT -p tcp -m multiport destination-port 22,53,80,110

Lọc theo loại gói tin (unicast, multicast hay broadcast)

Example Iptables -A OUTPUT -m owner pkttype unicast

Lọc gói tin theo thông tin trường ToS

Trong iptables, lệnh "-A INPUT -p tcp -m tos tos 0x16" được sử dụng để thêm quy tắc vào bảng filter Mục tiêu chính của các quy tắc trong bảng filter là hai hành động: DROP và ACCEPT Nếu một gói tin khớp với quy tắc có mục tiêu là DROP, gói tin đó sẽ bị hủy mà không xem xét các quy tắc khác Ngược lại, nếu mục tiêu là ACCEPT, gói tin sẽ được cho phép đi qua mà không cần quan tâm đến các quy tắc khác.

Instead of using the DROP target, we can opt for REJECT In this case, packets will still be dropped, but the Linux box will send an ICMP message back to the source, typically an ICMP port unreachable message However, we can customize the response message by using the " reject-with" operation to specify a different type of ICMP message.

Trong quy tắc Iptables, mục tiêu (target) có thể được sử dụng để chuyển một gói tin đến một chuỗi (chain) do người dùng định nghĩa Ví dụ, khi tạo một chuỗi mang tên "Iptables –N SSH", cần thông báo cho Kernel rằng tất cả các kết nối TCP trên cổng 22 phải được chuyển đến chuỗi SSH.

Iptables -A INPUT -p TCP dport 22 -j SSH

Another useful targeting method is LOG We can log all packets that match the filter specifications in the Kernel log, which can then be read using dmesg or syslogd The LOG target comes with several options.

log-level level: mức loging có thể gán theo tên hoặc theo số info, notice, warning, err, crit, alert, and emerg tương ứng số từ 0-7

log-prefix prefix: Tiếp đầu ngữ của tên mà file log tạo ra Có thể dài 29 ký tự

log-TCP-sequence: Logs số TCP sequence number

log-TCP-options: Logs lại trường option trong TCP header

log-ip-options: Logs lại trường option trong IP header

log-uid: Logs lại User-ID của process tạo ra gói IP

Layer 7 Filtering

Trong mô hình OSI và TCP/IP, lớp Application bao gồm các giao thức như HTTP, FTP và SSH Việc phân loại và ưu tiên ứng dụng có vẻ đơn giản nhưng thực tế lại phức tạp Ví dụ, để ưu tiên Traffic HTTP, chúng ta thường phân loại gói tin dựa vào TCP header, cụ thể là giá trị source và destination port Tuy nhiên, nếu webserver sử dụng port không chuẩn thay vì port 80, việc matching gói tin HTTP sẽ gặp khó khăn Giải pháp cho vấn đề này là phân loại dựa vào thông tin từ lớp ứng dụng.

Trên hệ điều hành Linux, L7 filter là một công cụ mạnh mẽ giúp phân loại gói tin dựa trên thông tin dữ liệu của lớp ứng dụng, thay vì chỉ dựa vào giao thức hay cổng của lớp vận chuyển.

L7 filter là một phần không thể tách rời của Netfilter/Iptables Danh sách các protocol được L7 Filter hỗ trợ được đính kèm trong phụ lục

3.3.2 Nguyên tắc hoạt động của L7 Filter

L7 filter cung cấp một phương pháp để Iptables match gói tin dựa vào thông tin của lớp ứng dụng mà nó thuộc về

Mô hình TCP/IP bao gồm bốn lớp, và trước khi có bộ lọc L7, Netfilter chỉ có khả năng lọc dữ liệu ở ba lớp như đã nêu trong các phần trước của bài viết.

Layer 7 filter tạo thêm cho Netfilter một tính năng mới, là cho phép matching gói tin thuộc về một ứng dụng được tìm thấy ở lớp 4 của mô hình TCP/IP Nói khác đi, Layer 7 Filter chính là một tùy chọn cho việc matching gói tin, các thao tác khác để đối xử với gói tin hoàn toàn không thay đổi

Iptables -A CHAIN -m layer7 l7proto [http|ftp| ]

Tham số [http|ftp| ] là một trong những giao thức được Netfilter hỗ trợ Để lọc dữ liệu theo ứng dụng, Netfilter sẽ phân tích sâu vào nội dung gói tin thay vì chỉ xem xét header Tuy nhiên, dữ liệu trong payload không chỉ rõ ứng dụng mà nó thuộc về, vì vậy Netfilter sẽ đối chiếu payload với các biểu thức chung của các dạng dữ liệu khác nhau Những biểu thức này là phần quan trọng nhất của bộ lọc L7 và được gọi là định nghĩa giao thức.

Tóm lại, Dự án L7 Filter của Netfilter bao gồm 3 phần quan trong nhất

Một bản vá (patch) cho Kernel, cung cấp cho Kernel cách để nhìn vào bên trong gói tin IP

Một bản vá cho Netfilter/Iptables, cung cấp thêm tùy chọn khi thực hiện việc lọc gói tin như một tùy chọn trong Iptables

Tập hợp của các file mẫu trong đó có chứa các “biểu thức chung” của các protocol gọi là protocol definitions được hỗ trợ

3.3.3 Các giao thức lớp ứng dụng được hỗ trợ bởi Layer7 Filter

Layer 7 Filter hỗ trợ việc lọc gói tin theo các giao thức lớp ứng dụng có thể chia thành các nhóm ứng dụng như sau:

Chi tiết các giao thức được hỗ trợ được liệt kê trong bảng sau

Nhóm ứng dụng Giao thức Mô tả

Messaging/Chat aim AIM - AOL instant messenger (OSCAR and TOC)

Messaging/Chat aimwebcontent AIM web content - ads/news content downloaded by AOL Instant Messenger

Messaging/Chat chikka Chikka - SMS service which can be used without phones - http://chikka.com

Messaging/Chat cimd Computer Interface to Message Distribution, an SMSC protocol by Nokia

Messaging/Chat irc IRC - Internet Relay Chat - RFC 1459

Messaging/Chat jabber Jabber (XMPP) - open instant messenger protocol - RFC 3920 - http://jabber.org

Messaging/Chat msn-filetransfer MSN (Micosoft Network) Messenger file transfers (MSNFTP and MSNSLP)

Messaging/Chat msnmessenger MSN Messenger - Microsoft Network chat client

Messaging/Chat qq Tencent QQ Protocol - Chinese instant messenger protocol - http://www.qq.com

Messaging/Chat yahoo Yahoo messenger - an instant messenger protocol - http://yahoo.com

Document Retrieval aimwebcontent AIM web content - ads/news content downloaded by AOL Instant Messenger Document Retrieval ftp FTP - File Transfer Protocol - RFC 959

Document Retrieval gopher Gopher - A precursor to HTTP - RFC 1436

Document Retrieval http HTTP - HyperText Transfer Protocol - RFC 2616

Document Retrieval msn-filetransfer MSN (Micosoft Network) Messenger file transfers (MSNFTP and MSNSLP)

Nhóm ứng dụng Giao thức Mô tả

Document Retrieval smb Samba/SMB - Server Message Block - Microsoft Windows filesharing

Document Retrieval uucp UUCP - Unix to Unix Copy

File Types exe Executable - Microsoft PE file format

File Types flash Flash - Macromedia Flash

File Types gif GIF - Popular Image format

File Types html (X)HTML - (Extensible) Hypertext Markup Language - http://w3.org

File Types jpeg JPEG - Joint Picture Expert Group image format

File Types mp3 MP3 - Moving Picture Experts Group Audio Layer III

File Types ogg Ogg - Ogg Vorbis music format (not any ogg file, just vorbis)

File Types pdf PDF - Portable Document Format - Postscript-like format by Adobe

File Types perl Perl - A scripting language by Larry Wall

File Types png PNG - Portable Network Graphics, a popular image format

File Types postscript Postscript - Printing Language

File Types rar RAR - The WinRAR archive format

File Types rpm RPM - Redhat Package Management packages

File Types rtf RTF - Rich Text Format - an open document format

File Types tar Tar - tape archive Standard UNIX file archiver, not just for tapes

File Types zip ZIP - (PK|Win)Zip archive format

Mail biff Biff - new mail notification

Mail imap IMAP - Internet Message Access Protocol (A common e-mail protocol)

Mail pop3 POP3 - Post Office Protocol version 3 (popular e-mail protocol) - RFC 1939 Mail smtp SMTP - Simple Mail Transfer Protocol - RFC 2821 (See also RFC 1869)

Monitoring gkrellm Gkrellm - a system monitor - http://gkrellm.net

Nhóm ứng dụng Giao thức Mô tả

Monitoring hddtemp hddtemp - Hard drive temperature reporting

Networking bgp BGP - Border Gateway Protocol - RFC 1771

Networking dhcp DHCP - Dynamic Host Configuration Protocol - RFC 1541

Networking dns DNS - Domain Name System - RFC 1035

Networking ident Ident - Identification Protocol - RFC 1413

Networking nbns NBNS - NetBIOS name service

Networking ncp NCP - Novell Core Protocol

Networking smb Samba/SMB - Server Message Block - Microsoft Windows filesharing

Networking snmp SNMP - Simple Network Management Protocol - RFC 1157

Networking socks SOCKS Version 5 - Firewall traversal protocol - RFC 1928

Networking ssdp SSDP - Simple Service Discovery Protocol - easy discovery of network devices Networking stun STUN - Simple Traversal of UDP Through NAT - RFC 3489

Networking tor Tor - The Onion Router - used for anonymization - http://tor.eff.org

Networking whois Whois - query/response system, usually used for domain name info - RFC 3912 Networking zmaap ZMAAP - Zeroconf Multicast Address Allocation Protocol

Peer-to-Peer 100bao 100bao - a Chinese P2P protocol/program - http://www.100bao.com

Peer-to-Peer applejuice Apple Juice - P2P filesharing - http://www.applejuicenet.de

Peer-to-Peer ares Ares - P2P filesharing - http://aresgalaxy.sf.net

Peer-to-Peer bittorrent Bittorrent - P2P filesharing / publishing tool - http://www.bittorrent.com

Peer-to-Peer direcTConnect Direct Connect - P2P filesharing - http://www.neo-modus.com

Peer-to-Peer edonkey eDonkey2000 - P2P filesharing - http://edonkey2000.com and others

Peer-to-Peer fasttrack FastTrack - P2P filesharing (Kazaa, Morpheus, iMesh, Grokster, eTC)

Peer-to-Peer gnucleuslan GnucleusLAN - LAN-only P2P filesharing

Nhóm ứng dụng Giao thức Mô tả

Peer-to-Peer gnutella Gnutella - P2P filesharing

Peer-to-Peer imesh iMesh - the native protocol of iMesh, a P2P application - http://imesh.com

Peer-to-Peer kugoo KuGoo - a Chinese P2P program - http://www.kugoo.com

Peer-to-Peer napster Napster - P2P filesharing

Peer-to-Peer openft OpenFT - P2P filesharing (implemented in giFT library)

Peer-to-Peer poco POCO and PP365 - Chinese P2P filesharing - http://pp365.com http://poco.cn Peer-to-Peer pplive PPLive - Chinese P2P streaming video - http://pplive.com

Skype is set to retire in May 2025, transitioning users to Microsoft Teams Free starting March 2025 Users can sign in with their Skype credentials, retaining their chats and contacts Teams will offer beloved Skype features like free calling and messaging, along with new functionalities such as meetings and communities Skype Credit will remain usable, and users can export their data if they choose not to migrate However, it is important to note that Skype has limited emergency calling capabilities and is not a substitute for traditional telephone services.

Peer-to-Peer soribada Soribada - A Korean P2P filesharing program/protocol - http://www.soribada.com Peer-to-Peer soulseek Soulseek - P2P filesharing - http://slsknet.org

Peer-to-Peer thecircle The Circle - P2P application - http://thecircle.org.au

Peer-to-Peer xunlei Xunlei - Chinese P2P filesharing - http://xunlei.com

Printing IPp IP printing - a new standard for UNIX printing - RFC 2911

Printing lpd LPD - Line Printer Daemon Protocol (old-style UNIX printing) - RFC 1179 Remote Access ciscovpn Cisco VPN - VPN client software to a Cisco VPN server

Remote Access radmin Famatech Remote Administrator - remote desktop for MS Windows

Remote Access rdp RDP - Remote Desktop Protocol (used in Windows Terminal Services)

Remote Access rlogin rlogin - remote login - RFC 1282

Remote Access ssh SSH - Secure SHell

Remote Access telnet Telnet - Insecure remote login - RFC 854

Remote Access vnc VNC - Virtual Network Computing Also known as RFB - Remote Frame Buffer

Nhóm ứng dụng Giao thức Mô tả

Remote Access x11 X Windows Version 11 - Networked GUI system used in most Unices

Security Protocols ssh SSH - Secure SHell

Security Protocols ssl SSL and TLS - Secure Socket Layer / Transport Layer Security - RFC 2246 Security Protocols validcertssl Valid certificate SSL

Streaming Audio http-rtsp RTSP tunneled within HTTP

Streaming Audio shouTCast ShouTCast and Icecast - streaming audio

Streaming Video http-rtsp RTSP tunneled within HTTP

Streaming Video pplive PPLive - Chinese P2P streaming video - http://pplive.com

Streaming Video rtp RTP - Real-time Transport Protocol - RFC 3550

Streaming Video rtsp RTSP - Real Time Streaming Protocol - http://www.rtsp.org - RFC 2326

Time Synchronization ntp (S)NTP - (Simple) Network Time Protocol - RFCs 1305 and 2030

Time Synchronization tsp TSP - Berkely UNIX Time Synchronization Protocol

Version Control cvs CVS - Concurrent Versions System

Version Control subversion Subversion - a version Control system

Video Games armagetron Armagetron Advanced - open source Tron/snake based multIPlayer game

Video Games battlefield1942 Battlefield 1942 - An EA game

Video Games battlefield2 Battlefield 2 - An EA game

Video Games battlefield2142 Battlefield 2142 - An EA game

Video Games counterstrike-source Counterstrike (using the new "Source" engine) - network game

Video Games dayofdefeat-source Day of Defeat: Source - game (Half-Life 2 mod) - http://www.valvesoftware.com

Video Games doom3 Doom 3 - computer game

Half-Life 2 Deathmatch - popular computer game

Nhóm ứng dụng Giao thức Mô tả

Video Games mohaa Medal of Honor Allied Assault - an Electronic Arts game

Video Games quake-halflife Half Life 1 engine games (HL 1, Quake 2/3/World, Counterstrike 1.6, eTC.) Video Games runesofmagic Runes of Magic - game - http://www.runesofmagic.com

Video Games teamfortress2 Team Fortress 2 - network game - http://www.valvesoftware.com

Video Games worldofwarcraft World of Warcraft - popular network game - http://blizzard.com/

VoIP, or Voice over Internet Protocol, utilizes the Session Initiation Protocol (SIP) for internet telephony, as outlined in RFC 3261 and 3265 Skype offers two primary services: SkypeOut, which allows users to make UDP voice calls from Skype to traditional POTS phones, and Skype-to-Skype, enabling direct UDP voice calls between users of the Skype program For more information, visit [skype.com](http://skype.com).

VoIP teamspeak TeamSpeak - VoIP application - http://goteamspeak.com

VoIP ventrilo Ventrilo - VoIP - http://ventrilo.com

Worm/Virus code_red Code Red - a worm that attacks Microsoft IIS web servers

Worm/Virus nimda Nimda - a worm that attacks Microsoft IIS web servers, and MORE!

Bảng 3 - 10: Danh sách các giao thức mà layer 7 filter hỗ trợ

Layer 7 Filter, mặc dù hỗ trợ số lượng giao thức còn hạn chế so với các sản phẩm thương mại, nhưng nhờ tính chất nguồn mở, người dùng có thể tự phát triển các mẫu định nghĩa giao thức khác Thông tin chi tiết về việc phát triển các giao thức tự định nghĩa này có thể được tìm thấy tại trang web của dự án.

Kết Luận

Sau khi nghiên cứu công cụ TC Linux và Netfilter/Iptables, chúng tôi đưa ra một số kết luận cho việc thiết kế hệ thống Để giới hạn băng thông ở tốc độ xác định, có thể sử dụng HTB với child Class(es) kết hợp với TBF hoặc SFQ làm Subqdisc Để giới hạn băng thông cho một user, service hoặc client, HTB Classes có thể được áp dụng cùng với TC filter hoặc Iptables Để tối đa hóa TCP throughput trên link bất đối xứng, ưu tiên truyền các gói ACK là một giải pháp khả thi Cuối cùng, để dự trữ băng thông cho ứng dụng cụ thể, việc sử dụng HTB Qdisc với children Classes và phân loại bằng TC filter là cần thiết.

Iptables Để ưu tiên các Traffic nhạy cảm về độ trễ trong một Class (ưu tiên theo session) chúng ta có thể dụng PRIO bên trong một HTB Class

Quản lý tận dụng tối đa tài nguyên mạng nhưng vẫn đảm bảo cam kết với khác hàng chúng ta co thể sử dụng HTB cơ chế borrowing

Cho phép phân phối công bằng băng thông không hạn chế thông qua HTB với cơ chế borrowing Đảm bảo rằng từng loại traffic cụ thể sẽ bị giới hạn băng thông khách hàng ngay tại ngõ vào nhờ vào chức năng policer của TC filter với hành động drop.

THIẾT KẾ BỘ KIỂM SOÁT LƯU LƯỢNG TRÊN LINUX

DEMO HỆ THỐNG

KẾT QUẢ ĐẠT ĐƯỢC VÀ KẾT LUẬN

Ngày đăng: 03/09/2021, 14:03

HÌNH ẢNH LIÊN QUAN

Hình 2- 1: Các thành phần cơ bản để triển khai QoS - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 2 1: Các thành phần cơ bản để triển khai QoS (Trang 20)
Hình 3- 1: Nguyên lý hoạt động của TC - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 3 1: Nguyên lý hoạt động của TC (Trang 31)
Hình 3- 3: Mối liên hệ giữa Class và Qdisc - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 3 3: Mối liên hệ giữa Class và Qdisc (Trang 36)
Hình ảnh dưới đây mô tả nguyên lý hoạt động của hàng đợi b/pfifo. - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
nh ảnh dưới đây mô tả nguyên lý hoạt động của hàng đợi b/pfifo (Trang 43)
Để cấu hình hàng đợi TBF. Ở đó chúng ta cũng phải chỉ tốc độ của token và kích thước của bucket (số token có thể chứa trong bucket) - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
c ấu hình hàng đợi TBF. Ở đó chúng ta cũng phải chỉ tốc độ của token và kích thước của bucket (số token có thể chứa trong bucket) (Trang 52)
Hình 3- 9: Hàng đợi TBF khi tốc độ gói đến bằng tốc độ token - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 3 9: Hàng đợi TBF khi tốc độ gói đến bằng tốc độ token (Trang 53)
Hình 3- 11: Hàng đợi TBF khi tốc độ gói đến lớn hơn tốc độ token - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 3 11: Hàng đợi TBF khi tốc độ gói đến lớn hơn tốc độ token (Trang 54)
Hình 3- 10: Hàng đợi TBF khi tốc độ gói đến nhỏ hơn tốc độ token - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 3 10: Hàng đợi TBF khi tốc độ gói đến nhỏ hơn tốc độ token (Trang 54)
Hình 3- 12: Hàng đợi PRIO - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 3 12: Hàng đợi PRIO (Trang 58)
Hình 3- 13: Sub class bên trong hàng đợi PRIO - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 3 13: Sub class bên trong hàng đợi PRIO (Trang 59)
Để cấu hình cho hàng đợi PRIO chúng ta sử dụng cú pháp lệnh như sau: - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
c ấu hình cho hàng đợi PRIO chúng ta sử dụng cú pháp lệnh như sau: (Trang 60)
Bảng 3- 5: HTB Qdisc và các trạng thái của hàng đợi con - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Bảng 3 5: HTB Qdisc và các trạng thái của hàng đợi con (Trang 64)
Hình 3- 15: Kết hợp TBF với PRIO - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 3 15: Kết hợp TBF với PRIO (Trang 67)
Hình 3- 16: Kết hợp HTB với SFQ - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 3 16: Kết hợp HTB với SFQ (Trang 68)
Hình 3- 17: IPv4 Và IPv6 Header - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 3 17: IPv4 Và IPv6 Header (Trang 71)
Hình 3- 22: Hành trình của gói tin trong Kernel - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 3 22: Hành trình của gói tin trong Kernel (Trang 76)
Bảng 3- 9: Các đối xử trong Iptables - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Bảng 3 9: Các đối xử trong Iptables (Trang 87)
Hình 4- 1: Linux QoS box hoạt động ở mode Router - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 4 1: Linux QoS box hoạt động ở mode Router (Trang 99)
Hình 4- 2: Linux QoS box hoạt động như một Bridge - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 4 2: Linux QoS box hoạt động như một Bridge (Trang 100)
4.2.1 Mô hình tổng quát - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
4.2.1 Mô hình tổng quát (Trang 101)
Hình 4- 4: Lựa chọn các options khi biên dịch kernel - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 4 4: Lựa chọn các options khi biên dịch kernel (Trang 103)
Hình 4- 5: HTML Form để tạo Class - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 4 5: HTML Form để tạo Class (Trang 106)
Hình 4- 6: Nguyên tắc thiết kế các Class - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 4 6: Nguyên tắc thiết kế các Class (Trang 106)
Hình 4- 9: HTML Form đê tạo các Rule Classtification - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 4 9: HTML Form đê tạo các Rule Classtification (Trang 115)
Hình 4- 10: Chức năng giám sát lưu lượng 4.4 Kết luận  - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 4 10: Chức năng giám sát lưu lượng 4.4 Kết luận (Trang 128)
Hình 5- 5: Tốc độ download tại Client - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 5 5: Tốc độ download tại Client (Trang 132)
Hình 5- 7: Tạo 02 class có độ ưu tiên khác nhau - Nghiên cứu và triển khai hệ thống cung cấp và quản lý chất lượng dịch vụ mạng  QOS trên linux
Hình 5 7: Tạo 02 class có độ ưu tiên khác nhau (Trang 133)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w