Mở Đầu tầng mạng, với một cơ chế Shaper thông minh sẽ giúp huy được tối đa hiệu suất, nâng cao độ sẵn sàng cho các ứng dụng, cải thiện độ trễ và đảm bảo được chất lượng dịch vụ QoS trong mạng.2 Ý nghĩa thực tế Để có thể xây dựng được một hạ tầng mạng có khả năng phân biệt đối xử với từng loại dịch vụ, từng nhóm người dùng, thông thường doanh nghiệp phải đầu tư các hệ thống kiểm soát lưu lượng có giá thành cao, việc triển khai vô cùng phức tạp. Bằng định hướng sử dụng các phầm mềm mã nguồn mở đề tài có ý nghĩa thực tế là sẽ giảm tối đa chi phí cho việc triển khai hệ thống kiểm soát lưu lượng. HVTH: Nguyễn Minh Thư - 10140025 Trang 19 Chất lượng dịch vụ mạng trên Linux Chương 2: Tổng Quan CHƯƠNG II: TỔNG QUAN Trong chương này, tác giả sẽ tiến hành nghiên cứu đánh giá các công cụ dùng để triển khai QoS. So sánh khả năng đáp ứng và phân tích các mặt còn hạn chế của các công cụ mã nguồn mở để chỉ ra những vấn đề mà đề tài sẽ tập trung nghiên cứu giải quyết.
Trong phần cuối cùng của chương tác giả sẽ thực hiện một cuộc khảo sát thực tế các dòng thiết bị hỗ trợ chức năng kiểm soát lưu lượng và QoS. Việc khảo sát sẽ tập trung phân tích tính năng và giá thành của sản phẩm để từ đó chứng minh được mục tiêu “giảm chi phí sản phẩm” của đề tài là có cơ sở và hoàn toàn khả thi.1 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] MGW1 Meter PACKET IN PACKET OUT Shapper / Classifier Marker Dropper Hình 2 - 1: Các thành phần cơ bản để triển khai QoS 2.1 Classifiers Classifiers là công cụ dùng để phân loại gói tin dựa trên một số thông tin có trong phần mào đầu của gói tin. Có hai loại Classifiers là BA (Behavior Aggregate) và HVTH: Nguyễn Minh Thư - 10140025 Trang 20 Chất lượng dịch vụ mạng trên Linux Chương 2: Tổng Quan MF (Multi-Field).
Trong đó BA Classifier chỉ phân loại gói tin dựa vào thông tin trường DSCP, MF Classifier phân loại dựa vào một hoặc nhiều thông tin trong header fields chẳng hạn địa chỉ nguồn, địa chỉ đích, giá trị trường DSCP, protocol ID, giá trị port nguồn, giá trị port đích và một số thông tin khác. Classifiers thường dùng để lái các gói tin phù hợp với một số luật cụ thể đến một một bộ điều khiển lưu lượng (Traffic Conditioners) để tiếp tục quá trình xử lý với 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 để thực hiện nhiệm vụ phân loại gói tin chúng ta có thể sử dụng các công cụ như Netfilter Framework với front-end là Iptables, công cụ TC filter, …v.
Bên cạnh đó, với Linux chúng ta có thể kết hợp các công cụ này thành một bộ công cụ hoàn chỉnh có đủ sức mạnh để thực hiện việc phân loại gói tin. Các công cụ được cung cấp bởi cộng đồng Linux hoàn toàn miễn phí.2 Meters Mỗi một luồng dữ liệu khi đi vào hệ thống mạng đều đượng người quản trị gán cho nó những đặc tính như tốc độ truyền, độ bùng phát, độ trể…v. Các tham số này được gọi là một traffic profile. Meters là công cụ dùng để do đạc luồng dữ liệu truyền qua để so sánh với Traffic profile đã được cấu hình.
Trạng thái mà bộ Meters trả về cho một gói tin sẽ là một trong hai giá trị In- Profile hoặc Out-Of- Profile. Kết quả này ảnh hưởng trực tiếp đến các ứng xử Marking, Droping, Shaping. Công cụ Meter thường được triển khai với một trong hai thuật toán là Leak Bucket hoặc Token Bucket. Với TC Linux, chúng ta có các hàng đợi TBF và HTB hỗ trợ rất tốt thuật toán Token Bucket.
Đây là cơ sở quan trọng cho việc thực hiện việc kiểm soát tốc độ của các luồng dữ liệu khi triển khai QoS trên Linux. HVTH: Nguyễn Minh Thư - 10140025 Trang 21 Chất lượng dịch vụ mạng trên Linux Chương 2: Tổng Quan 2.3 Makers Makers là công cụ dùng để đánh dấu gói tin bằng một codepoint riêng biệt là trường DiffServ. Việc đánh dấu gói tin là để gộp các luồng dữ liệu vào một nhóm để thống nhất đối xử trong miền DiffServ. Maker có thể được cấu hình để đánh dấu tất cả các gói tin với một codepoint duy nhất hoặc có thể được cấu để đánh dấu một gói tin với một tập các codepoints sử dụng để lựa chọn một PHB trong một PHB group tùy theo trạng thái của Meter.
Khi Maker thay đổi thông tin codepoint trong gói tin thì lúc đó ta gọi là “Re-Maker” Với TC Linux, chúng ta có thể sử dụng hàng đợi DSMARK Queuing để thực hiện việc đánh dấu gói tin với trường TOS. Với DSMARK Queuing chúng ta có thể thiết lập đủ 64 Class bao gổm cả PBH và non-AF/EF/default PBH. Ngoài ra, trên Linux chúng ta cũng có thể sử dụng công cụ Netfilter/Iptables tại table mangle để thiết lập các giá trị cho trường DSCP.4 Shapers Shaper là công cụ dùng để làm trễ một số hoặc tất cả các gói tin trong luồng dữ liệu để làm cho luồng dữ liệu đó thỏa mãn các tham số của Traffic profile. Shaper thường có một bộ đệm có kích thước giới hạn.
Gói tin sẽ bị hủy bỏ nếu không gian của bộ đệm không còn đủ để giữ và làm trễ gói tin. 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 hỗ trợ rất nhiều cơ chế hàng đợi phù hợp cho việc cấu hình Shaper dữ liệu.
Các loại hàng đợi mà TC hỗ trợ có thể chia thành hai loại là Classless Qdisc và Classfull Qdisc. HTB Qdisc là loại hàng đợi thuộc nhóm Classfull Qdisc phù hợp cho việc cấu hình chức năng Shaping dữ liệu. HVTH: Nguyễn Minh Thư - 10140025 Trang 22 Chất lượng dịch vụ mạng trên Linux Chương 2: Tổng Quan 2.5 Dropers Droper là công cụ dùng để hủy một số hoặc tất cả các gói tin trong luồng dữ liệu để làm cho luồng dữ liệu đó thỏa mãn các tham số của Traffic profile. Quá trình này còn được biết đến trong trường hợp đặc biệt với tên gọi khác là Policing, 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 zero gói tin.
TC Linux cũng hỗ trợ hàng đợi các hàng đợi Drop gói tin theo kiểu tail-drop, đồng thời cũng hỗ trợ các thuật toán Drop gói ngẫu nhiên với RED Qdisc ngẫu nhiên có trọng số với hàng đợi WRED Qdisc. Chức năng Policing có thể được triển khai trên Linux với công cụ TC filter tại hàng đợi ngõ vào của network card (ingress qdisc).2 Khả năng đáp ứng của các công cụ mã nguồn mở Như đã phân tích trong các phần trên, TC Linux có các công cụ phù hợp để thực hiện tất cả các chức năng cần thiết để triển khai QoS. Bên cạnh đó, về mặt hiệu năng của hệ thống, do TC Linux được biên dịch trực tiếp vào nhân Linux (Kernel), nên nó giúp cải thiện đáng kể việc tiêu thụ tài nguyên hệ thống trong quá trình xử lý gói tin Mặt hạn chế của TC Linux là các cơ chế lọc chặn thiếu tính mềm dẻo và không thể thực hiện việc phân loại gói tin theo lớp ứng dụng. Để khắc phục các hạn chế của TC Linux tác giả sẽ kết Netfilter/Iptables với TC Linux để giúp hệ thống có thể tạo ra các chính sách lọc chặn mềm dẻo theo nhiều tiêu chí.
Ngoài ra, sẽ kết hợp thêm công cụ Layer 7 Filtering của Iptables để có thể thực hiện việc lọc dữ liệu theo lớp ứng dụng.3 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 HVTH: Nguyễn Minh Thư - 10140025 Trang 23 Chất lượng dịch vụ mạng trên Linux Chương 2: Tổng Quan 2.1 PacketShaper Packeteer được Robert Packer và Brett Galloway tạo ra vào năm 1996. Packeteer là thiết bị phần cứng đi kèm Application. Sau nay Packeteer được công ty bluecoast mua lại và phát triển thêm sau đó đổi tên thành PacketShaper. Hình 2 - 2: Sản phẩm PacketShaper Tính năng của một số dòng sản phẩm packetShaper Traffic Classtification: Đây là tính năng cho phép thiết bị tổ chức lại lưu lượng mạng dựa vào thông tin từ application protocol, port number, URL or wildcard, host name, LDAP host lists, DiffServ setting, ISL, 802.1p/q, MPLS tag, IP precedence bits, IP or MAC address, direction (inbound/outbound), source, destination, host speed range, Mime type, web browser, Oracle database, Citrix published application, and VLAN.
Response-Time Analysis and Management: Chức năng cho phép thiết bị thực hiện việc giám sát thời gian đáp ứng của hệ thống mạng, phát hiện các client và server có hiệu năng thấp từ đó tự động phân tích và tìm ra nguyên nhân gây ra tình trạng đó là do một nguồn nào gửi quá nhiều đến lưu lượng hay do đích nhận quá nhiều lưu lượng. Chức năng này cũng cho phép phát hiện phần trăm băng thông đang bị lãng phí trên đường truyền. Dưới đây là một ví dụ về khả năng phân tích của packetShaper. SAP response times: Total Delay: 630 ms Server Delay: 210 ms HVTH: Nguyễn Minh Thư - 10140025 Trang 24 Chất lượng dịch vụ mạng trên Linux Chương 2: Tổng Quan Network Delay: 420 ms Top Talkers for web Traffic: yahoo.com, and espn.com Top Listeners: CfoPC, VpMarketingPC, DirEngineeringPC 12% of bandwidth goes to retransmissions; jumps to 68% for a particularly overburdened server Service-Level Agreements: Chức năng giám sát mức độ đáp ứng dịch vụ của nhà cung cấp.
Người quản trị cung cấp các tham số trong hợp đồng dịch vụ với nhà cung cấp như băng thông, độ trễ, độ jitter, độ mất gói…v.v PacketShaper sẽ tự động theo dõi và phân tích sự đáp ứng SLA của nhà cung cấp và đưa ra cảnh báo. Dưới đây là một ví dụ về khả năng giám sát SLA của packetShaper. 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 thiết lập băng thông bảo vệ cho tất cả các Traffic trong một Class nhất định.
Chẳng hạn chúng ta có thể thiết lập băng thông bảo vệ cho ứng dụng Microsoft Exchange tối thiểu chiếm 20% băng thông WAN và cho phép vọt lố nếu băng thông hệ thống rỗi nhưng không vượt quá 60% băng thông tổng.