Luận văn Thử nghiệm các giải pháp đảm bảo chất lượng dịch vụ trên các thiết bị định tuyến sử dụng hệ điều hành nguồn mở vyos

DANH MỤC CÁC TỪ VIẾT TẮT. 5

DANH MỤC CÁC HÌNH VẼ. 6

DANH MỤC CÁC BẢNG . 8

MỞ ĐẦU . 9

CHƯƠNG 1. TỔNG QUAN VỀ QOS VÀ 1 SỐ CƠ CHẾ QOS CƠ BẢN. 11

1.1. Tổng quan về QoS [1,4]. 11

1.2. Các tham số hiệu suất QoS [1,4]. 12

1.3. Các cơ chế QoS cơ bản . 13

1.3.1. Cơ chế bỏ đuôi - DropTail .13

1.3.2. Cơ chế loại bỏ ngẫu nhiên –‘ RED [5].13

1.3.3. Cơ chế Adaptive-RED (A-RED) [6].20

1.4. Kết chương . 24

CHƯƠNG 2. CÁC CƠ CHẾ QOS VÀ CẤU TRÚC TRONG VYOS. 25

2.1. Giới thiệu chung về thiết bị định tuyến hệ điều hành nguồn mở VyOS. 25

2.2. Cấu trúc file hệ thống trong VyOS . 25

2.2.1. Thư mục /opt/vyatta/bin.26

2.2.2. Thư mục /opt/vyatta/sbin .27

2.2.3. Thư mục /opt/vyatta/share.28

2.3. Các kiểu QoS trong VyOS [8,9] . 29

2.4. Kiến trúc QoS trong VyOS . 31

2.5. Xác định mã nguồn giải thuật QoS trong kernel VyOS. 37

2.6. Kết chương . 41

CHƯƠNG 3. THỰC HIỆN THỬ NGHIỆM VÀ KẾT QUẢ. 42

3.1. Tổng quan về chương trình giả lập EVE-NG [13]. 42

3.2. Xây dựng sơ đồ mạng mô phỏng hệ thống . 43

3.4. Thực hiện thử nghiệm . 45

3.4.1. Cấu hình .45

3.4.2. Kết quả kiểm thử.46

pdf55 trang | Chia sẻ: honganh20 | Ngày: 21/02/2022 | Lượt xem: 513 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Luận văn Thử nghiệm các giải pháp đảm bảo chất lượng dịch vụ trên các thiết bị định tuyến sử dụng hệ điều hành nguồn mở vyos, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Drop gateway có sự sai lệch chống lại lưu lượng truy cập đột biến. Khi lưu lượng truy cập từ một kết nối cụ thể càng tăng thì càng có nhiều khả năng hàng đợi 15 gateway sẽ bị tràn. Còn hiện tượng đồng bộ toàn cục xảy ra khi tất cả các kết nối đồng loạt giảm kích thước cửa sổ, dẫn tới mất thông lượng trong mạng ở cùng một thời điểm. Để tránh hai hiện tượng này, các gateway có thể dùng các thuật toán riêng biệt để phát hiện tắc nghẽn và quyết định kết nối nào sẽ được thông báo tắc nghẽn tại gateway. RED gateway chọn ngẫu nhiên các gói tin đến để đánh dấu; với phương pháp này xác suất đánh dấu một gói tin từ một kết nối cụ thể gần như tỉ lệ thuận với phần băng thông được chia sẻ của kết nối đó tại gateway. Phương pháp này có thể được thực hiện một cách hiệu quả mà không cần duy trì trạng thái mỗi kết nối tại gateway. − Một công việc nữa là khả năng kiểm soát được kích thước hàng đợi trung bình ngay cả khi không có sự hợp tác từ các nguồn phát. Điều này có thể được thực hiện nếu gateway loại bỏ gói tin đến khi kích thước trung bình vượt quá ngưỡng tối đa (thay vì đánh dấu bằng cách đặt bit trong header gói tin). Phương pháp này có thể được sử dụng để kiểm soát kích thước hàng đợi trung bình ngay cả khi hầu hết các kết nối có khoảng thời gian phát nhỏ hơn khoảng thời gian khứ hồi, hoặc ngay cả khi các kết nối không giảm lưu lượng để đáp ứng với việc đánh dấu hoặc loại bỏ gói tin. 1.3.2.2. Giải thuật RED gateways tính kích thước hàng đợi trung bình bằng một bộ lọc thông thấp (Low-Pass Filter). Kích thước hàng đợi trung bình này được so sánh với hai ngưỡng: ngưỡng tối thiểu minth và ngưỡng tối đa maxth. Khi kích thước hàng đợi trung bình bé hơn ngưỡng tối thiểu thì không gói tin đến nào bị đánh dấu hay loại bỏ; khi kích thước hàng đợi trung bình lớn hơn ngưỡng tối đa thì tất cả các gói tin đến đều bị loại bỏ. Khi kích thước hàng đợi trung bình nằm giữa minthvà maxth thì mỗi gói tin đến được đánh dấu hoặc loại bỏ theo một xác suất pa, trong đó pa là một hàm của kích thước hàng đợi trung bình avg; xác suất đánh dấu hoặc loại bỏ một gói tin của một kết nối cụ thể sẽ tỷ lệ thuận với phần băng thông chia sẻ của kết nối đó tại gateway. Giải thuật tổng quát của RED gateway được mô tả như sau: 16 Hình 1: Giải thuật tổng quát RED Giải thuật tại RED gateway gồm hai giải thuật riêng biệt: − Giải thuật tính kích thước hàng đợi trung bình xác định mức độ bùng nổ cho phép trong hàng đợi tại gateway. − Giải thuật tính xác suất đánh dấu gói tin xác định mức độ thường xuyên của việc đánh dấu gói tin của gateway với mức độ tắc nghẽn hiện tại. Mục tiêu của việc đánh dấu gói tin của gateway phải đảm bảo sao cho các gói tin được đánh dấu tại những khoảng thời gian đều nhau, để tránh hiện tượng sai lệch, đồng bộ toàn cầu và đánh dấu các gói thường xuyên đủ để kiểm soát kích thước hàng đợi trung bình. Giải thuật chi tiết của RED tại gateway được mô tả như hình 2 dưới đây. 17 Hình 2: Giải thuật chi tiết RED Các biến thay đổi: avg: kích thước hàng đợi trung bình q_time: điểm bắt đầu hàng đợi rỗng count: số lượng các gói đến ngay sau gói cuối cùng bị đánh dấu Các tham số cố định: wq: trọng số hàng đợi minth: chiều dài ngưỡng nhỏ nhất của hàng đợi maxth: chiều dài ngưỡng lớn nhất của hàng đợi maxp: xác suất loại bỏ tối đa Các tham số khác: 18 pa: xác suất đánh dấu gói tin hiện tại pb: xác suất đánh dấu hoặc loại bỏ tạm thời q: kích thước hàng đợi hiện tại time: thời gian hiện tại f(t): một hàm tuyến tính của thời gian Theo giải thuật, mỗi khi có một gói tin đến, sẽ tính kích thước hàng đợi trung bình – avg bằng công thức: avg  (1 – wq) * avg + wq * q Khi avg chạy từ minth đến maxth thì xác suất pb thay đổi tuyến tính từ 0 đến maxp: pb  maxp * (avg – minth) / (maxth - minth) Xác suất đánh dấu gói tin pa tăng chậm khi count tăng kể từ gói cuối cùng được đánh dấu: pa  pb / (1 – count * pb) Một tùy chọn cho cổng RED là đo hàng đợi theo byte thay vì theo gói. Với tùy chọn này, kích thước hàng đợi trung bình phản ánh chính xác độ trễ trung bình tại gateway. Khi tùy chọn này được sử dụng, thuật toán sẽ được sửa đổi để đảm bảo rằng xác suất gói được đánh dấu tỷ lệ thuận với kích thước gói theo byte như sau: pb  maxp * (avg – minth) / (maxth - minth) pb  pb * PacketSize / MaximumPacketSize pa  pb / (1 – count * pb) 1.3.2.3. Các tham số của RED a. Trọng số hàng đợi wq: RED gateway sử dụng bộ lọc thông thấp để tính toán kích thước hàng đợi trung bình. Theo đó, sự gia tăng ngắn hạn trong kích thước hàng đợi xuất phát từ lưu lượng truy cập lớn hoặc do tắc nghẽn tạm thời không sẽ ít ảnh hưởng lớn đến kích thước hàng đợi trung bình. Bộ lọc thông thấp là trung bình dịch chuyển có trọng số tăng theo cấp số nhân avg  (1 – wq) * avg + wq * q 19 Trọng số hàng đợi wq xác định hằng số thời gian của bộ lọc thông thấp. Tiếp theo là phần lập luận cho việc thiết lập các cận trên hoặc dưới cho tham số wq. Cận trên cho wq: Nếu wq quá lớn, khi đó quy trình lấy trung bình sẽ không lọc được tắc nghẽn thoáng qua tại cổng.. Giả sử ban đầu hàng đợi rỗng (kích thước trung bình bằng 0), sau khi có các gói, số gói tin trong hàng đợi sẽ tăng từ 0 đến L (có L gói tin trong hàng đợi). Sau khi gói tin thứ L đến gateway, kích thước hàng đợi trung bình avgL được tính như sau : avgL = ∑ 𝑖wq(1 − wq) (𝐿−𝑖)𝐿 𝑖=1 = wq (1 − wq) 𝐿 ∑ 𝑖 ( 1 1−wq ) 𝑖 𝐿 𝑖=1 Áp dụng công thức ∑ 𝑖𝑥𝑖 𝐿 𝑖=1 = 𝑥+ (𝐿𝑥−𝐿−1)𝑥𝐿+1 (1−𝑥)2 thì ta sẽ có avgL = 𝐿 + 1 + (1−wq) 𝐿+1 −1 wq Cận dưới cho wq: Cổng RED được thiết kế để giữ kích thước hàng đợi trung bình được tính dưới một ngưỡng nhất định. Tuy nhiên sẽ không đạt được mục đích nếu như avg không phản ánh hợp lý kích thước hàng đợi trung bình hiện tại. Nếu wq được thiết lập quá thấp, thì giá trị avg sẽ phản ứng rất chậm với sự thay đổi kích thước hàng đợi trong thực tế. Trong trƣờng hợp này, RED gateway không phát hiện thấy sự bắt đầu của tắc nghẽn. Khi đưa ra giá trị ngưỡng dưới minth, tức là đã cho phép hấp thu bùng nổ đến L gói tin. Sau đó trọng số wq phải được chọn thoả mãn bất phương trình avgL < minth: 𝐿 + 1 + (1−wq) 𝐿+1 −1 wq < minth Theo các kết quả tính toán của các nghiên cứu về RED, giá trị cho wq thường sử dụng là 0.002. b. Các giá trị ngưỡng minth và maxth Giá trị tối ưu cho minth và maxth phụ thuộc vào kích thước hàng đợi trung bình mong muốn. Nếu lưu lượng truy cập bùng nổ, thì minth phải lớn tương ứng để cho phép việc sử dụng liên kết được duy trì ở mức cao chấp nhận được. Giá 20 trị tối ưu cho maxth phụ thuộc một phần vào độ trễ trung bình tối đa có thể được cho phép bởi RED gateway. RED gateway sẽ làm việc hiệu quả nhất khi (maxth - minth) lớn hơn mức gia tăng thông thường của kích thước hàng đợi trung bình trong một khoảng thời gian khứ hồi (roundtrip time). Quy tắc nên tuân theo là thiết lập cho maxth ít nhất gấp đôi minth. c. Xác suất loại bỏ tối đa maxp Giá trị maxp sẽ quyết định tần số loại bỏ gói là lớn hay nhỏ, nó quyết định avg sẽ nằm ở mức nào trong khoảng từ minth đến maxth. Vì vậy tùy từng yêu cầu mà có thể thiết lập maxp cho phù hợp. 1.3.3. Cơ chế Adaptive-RED (A-RED) [6] 1.3.3.1. Tổng quan Một trong những mục tiêu chính của RED là sử dụng kết hợp trung bình chiều dài hàng đợi (có thể điều chỉnh lưu lượng truy cập cao) và thông báo tắc nghẽn sớm (giúp giảm độ dài hàng đợi trung bình) để đạt được độ trễ hàng đợi trung bình thấp và thông lượng cao. Các thí nghiệm mô phỏng và kinh nghiệm vận hành cho thấy RED khá thành công trong vấn đề này. Tuy nhiên RED cũng có các điểm yếu cơ bản cần phải được khắc phục. Điểm yếu thứ nhất là kích thước hàng đợi trung bình thay đổi theo các mức độ tắc nghẽn và việc thiết lập các tham số cho RED router. Khi đường truyền tắc nghẽn nhẹ và/hoặc maxp cao thì kích thước hàng đợi trung bình sẽ gần minth; khi đường truyền tắc nghẽn nặng hơn, và/hoặc maxp thấp, kích thước hàng đợi trung bình gần, hoặc thậm chí cao hơn maxth. Kết quả là, độ trễ hàng đợi trung bình của RED rất nhạy cảm với lưu lượng tải và các tham số, dẫn tới không thể đoán trước được. Độ trễ là một yếu tố rất quan trọng đảm bảo đến chất lượng dịch vụ cho khách hàng, nhà mạng phải có một sự ước lượng tốt để có thể ước lượng chính xác độ trễ trung bình trong các router khi xảy ra tắc nghẽn. Để đạt được độ trễ trung bình có thể đoán trước được như vậy với RED thì sẽ cần phải điều chỉnh liên tục các tham số RED để đáp ứng sự thay đổi của lưu lượng mạng hiện tại. Điểm yếu thứ hai của RED là thông lượng cũng nhạy cảm với lưu lượng tải và các tham số RED. Cụ thể, RED thường không hoạt động tốt khi hàng đợi trung bình trở nên lớn hơn maxth và dẫn đến thông lượng giảm đáng kể và tỉ lệ 21 loại bỏ gói tin tăng. Để tránh nhược điểm này cũng cần đến sự điều chỉnh liên tục các tham số RED. Mục đích của tác giả là tìm kiếm một thay đổi tối thiểu hơn cho RED có thể làm giảm bớt các vấn đề về thay đổi độ trễ và độ nhạy tham số được đề cập ở trên, đó cũng là nguyên tắc cốt lõi của giải thuật A-RED cải tiến từ giải thuật RED gốc. 1.3.3.2. Giải thuật A-RED Các mục tiêu của A-RED khác với RED ban đầu theo bốn cách:  maxp được thay đổi không chỉ để giữ cho kích thước hàng đợi trung bình nằm trong khoảng minth và maxth mà còn giữ cho kích thước hàng đợi trung bình nằm trong khoảng một nửa giữa minth và maxth.  maxp được thay đổi chậm, với khoảng thời gian lớn hơn thời gian khứ hồi (round-trip time) và trong các bước nhỏ.  maxp phải được khống chế để duy trì trong miền [0.01, 0.5] (tương ứng với [1%, 50%]).  Thay vì phải nhân lên nhiều lần khi tăng và giảm maxp, thuật toán sử dụng chính sách tăng theo cấp số cộng giảm theo cấp số nhân (additive- increase multiplicativedecrease - AIMD). Nguyên tắc chính của A-RED là thay đổi các giá trị maxp không thường xuyên và thay đổi chậm. maxp chỉ được thay đổi khi cần thiết sau những khoảng thời gian dài thường là sau khi có sự thay đổi mạnh về mức độ tắc nghẽn. Để đảm bảo rằng hiệu suất của A-RED sẽ không bị suy giảm quá mức trong giai đoạn thay đổi mạnh này, maxp nên hạn chế ở trong phạm vi [0,01, 0,5]. Điều này đảm bảo rằng trong trong suốt thời gian thay đổi trạng thái của mạng, hiệu suất tổng thể của RED vẫn có thể được chấp nhận, mặc dù kích thước hàng đợi trung bình có thể không nằm trong phạm vi mục tiêu của nó và độ trễ hoặc thông lượng trung bình có thể bị giảm nhẹ tức là ở một mức độ chấp nhận được. Hình 3 dưới đây thể hiện giải thuật chi tiết cho A-RED. 22 Hình 3: Giải thuật chi tiết A-RED 1.3.3.3. Các tham số của A-RED a) Phạm vi của maxp Cận trên của giá trị maxp được giới hạn là 0.5 theo hai căn cứ. Đầu tiên là để cố gắng tối ưu hóa RED để tốc độ loại bỏ gói tin không vượt quá 50% bởi nếu tốc độ này vượt quá 50% là không thể chấp nhận được. Ngoài ra khi tỉ lệ loại bỏ gói tin thay đổi từ 1 đến maxp khi kích thước hàng đợi trung bình chạy từ minth đến maxth, và tỉ lệ loại bỏ gói thay đổi từ maxp→ 1 khi kích thước hàng đợi trung bình thay đổi từ giá trị maxth → 2maxth. Do đó với giá trị maxp được thiết lập tới giá trị 0.5 thì xác suất loại bỏ các gói thay đổi từ 0→ 1 khi kích thước hàng đợi thay đổi từ minth→ 2maxth. Điều này giúp tăng hiệu năng truyền lớn ngay cả khi tốc độ loại bỏ gói vượt quá 50%. Cận trên của maxp được thiết lập là 0.5 có nghĩa là khi tỉ lệ gói tin vượt quá 25%, kích thước hàng đợi trung bình có thể vượt quá phạm vi cho phép lên tới bốn lần1. Cận dưới của maxp được thiết lập 0.01 với mong muốn hạn chế phạm vi của maxp. Bằng mô phỏng chúng tôi thấy rằng đối với những kịch bản với tỉ lệ loại bỏ gói tin nhỏ, RED thực hiện rất tốt với maxp được thiết lập là 0.01. 23 b) Tham số α, β Khi đề xuất các giá trị cho α và β, yêu cầu đặt ra là trong điều kiện bình thường, nếu maxp có thay đổi 1 lần cũng không dẫn đến sự thay đổi của kích thước hàng đợi trung bình hoặc ngược lại. Khi maxp được điều chỉnh, xác suất loại bỏ gói ở trạng thái ổn định p vẫn giữ nguyên và kích thước hàng đợi trung bình avg chỉ đơn giản là thay đổi để phù hợp với giá trị mới của maxp. Do đó p < maxp khi maxp tăng lên bởi hệ số α, và giá trị hàng đợi trung bình avg có thể giảm từ minth + 𝑝 maxp (maxth − minth) đến minth + 𝑝 maxp + α (maxth − minth). Nó là sự giảm của giá trị : α maxp + α + 𝑝 maxp (maxth − minth) Miễn là giá trị maxp < 0.2(maxth - minth), kích thước hàng đợi trung bình sẽ không bị thay đổi từ giá trị biên trên xuống giá trị biên dưới trong một khoảng thời gian duy nhất. Khuyến nghị nên chọn α sao cho: α maxp + α < 0.2 hay α < 0.25 maxp Tương tự như vậy phải kiểm tra việc giảm maxp theo cấp số nhân để không gây ra hiện tượng kích thước hàng đợi trung bình tăng từ giá trị biên dưới tới giá trị biên trên sau một lần điều chỉnh maxp. Phân tích tương tự như α cho thấy p (1−β) maxp β (maxth − minth) < 0.2(maxth − minth) và kích thước hàng đợi trung bình không nên thay đổi từ giá trị biên dưới tới giá trị biên trên trong một khoảng thời gian duy nhất. Khuyến nghị nên chọn β sao cho: 1− β β 0.83 . Giá trị mặc định cho β là 0.9. c) Thiết lập các tham số maxth và wq Như đã mô tả ở trên, A-RED loại bỏ sự phụ thuộc của RED vào tham số maxp. Để giảm nhu cầu điều chỉnh tham số khác cho RED, ta có thể tự động đặt tối đa các tham số RED là maxth và wq. Giá trị maxth được khuyến nghị nên gấp ba lần minth. .Trong trường hợp này, kích thước hàng đợi trung bình sẽ được tập trung vào khoảng 2minth và do đó chỉ được xác định bởi tham số minth của RED. 24 1.4. Kết chương Trong chương này luận văn đã nêu ra tổng quan về QoS, các tham số QoS, tổng quan về các loại cơ chế QoS cơ bản phổ biến hiện nay như DropTail, RED, A-RED, đánh giá các cơ chế DropTail, RED và nêu ra các giải thuật của RED, A-RED cũng như phân tích về các tham số của chúng. Đây sẽ là tiền đề để phục vụ cho việc tiến hành thử nghiệm đánh giá hiệu năng của một số giải thuật quản lý hàng đợi tích cực tiêu biểu trên thiết bị định tuyến VyOS cụ thể kịch bản thử nghiệm được tham khảo theo tài liệu [15] tức là sẽ chọn các kiểu QoS để đánh giá (trong phạm vi luận văn sẽ chọn các cơ chế DropTail, RED, A-RED) và đưa ra các tham số đầu vào rồi so sánh kết quả đầu ra như về thông lượng, queue delay hay lượng gói tin bị loại bỏ (trong phạm vi luận văn sẽ chọn đưa ra kết quả đầu ra về lượng gói tin bị loại bỏ). Các tham số lựa chọn phải đáp ứng các phân tích ở mục 1.3 của các cơ chế. Kết quả thử nghiệm và nhận xét sẽ được mô tả chi tiết hơn ở chương 3. Chương tiếp theo sẽ tập trung nghiên cứu về cấu trúc file, các kiểu cơ chế quản lý dịch vụ trên thiết bị định tuyến hệ điều hành nguồn mở VyOS, kiến trúc khi áp dụng cơ chế QoS và xác định những file, module chứa mã nguồn cũng như phân tích những nơi có thể can thiệp được để cài đặt thêm những tính năng mới trong thiết bị định tuyến hệ điều hành nguồn mở VyOS từ đó có thể áp dụng cài đặt các giải pháp nhằm tăng chất lượng dịch vụ chống tắc nghẽn hiệu quả hơn. 25 CHƯƠNG 2. CÁC CƠ CHẾ QOS VÀ CẤU TRÚC TRONG VYOS 2.1. Giới thiệu chung về thiết bị định tuyến hệ điều hành nguồn mở VyOS VyOS là một thiết bị định tuyến có hệ điều hành mã nguồn mở và có thể được cài đặt trên các phần cứng vật lý hoặc trên máy ảo hoặc trên Cloud. Nó được xây dựng dựa trên GNU/Linux và kết hợp nhiều ứng dụng bên trong như Quagga (bộ phần mềm định tuyến, cung cấp các giao thức OSPF, RIP, BGP), Open VPN và được tổ chức trên một giao diện quản lý chung duy nhất. Trong hoàn cảnh vào cuối năm 2103 sau khi Brocade Communications ngừng việc phát triển Vyatta Core của phần mềm Vyatta Routing, một nhóm những thành viên nhiệt huyết của dự án này đã sử dụng phiên bản cuối cùng của Vyatta và cùng nhau xây dựng một nhánh mã nguồn mở mới dựa trên nền tảng Vytta Core, lấy tên là VyOS và lần đầu tiên VyOS được công bố vào ngày 22 tháng 12 năm 2013. Các phiên bản mới vẫn liên tục được cập nhật và cho đến nay, phiên bản mới nhất là VyOS Crux1.2.0 được phát hành ngày 28 tháng 01 năm 2019. Toàn bộ mã nguồn được lưu trên trang https://github.com/vyos [7] và vẫn liên tục được cập nhật hằng ngày, hằng giờ. So sánh với các loại router mã nguồn đóng của các hãng sản xuất lớn, VyOS nói riêng có thể không có bộ câu lệnh cấu hình phong phú, chi tiết, cũng như không hỗ trợ nhiều tính năng như router của các hãng lớn. Nhưng đổi lại nó cho ta một tiềm năng lớn trong việc sử dụng và thay đổi mã nguồn cho mục đích riêng của mỗi cá nhân, mỗi tập thể. Do đó, việc cài đặt, sửa đổi một giải thuật mới nâng cao chất lượng dịch vụ chống tắc nghẽn vào VyOS là khả thi. 2.2. Cấu trúc file hệ thống trong VyOS Bên trong lõi của một router VyOS chia làm 2 phần chính: phần nhân hệ điều hành Debian chứa các file hệ thống, các lệnh chạy của hệ thống, được mount vào thư mục /root và phần nhân lõi Vyatta chứa các file, lệnh và được mount vào bên trong thư mục /opt/vyatta (Hình 4). Để thay đổi mã nguồn của VyOS, chủ yếu ta sẽ làm việc bên trong /opt/vyatta. Trong này, ta cần quan tâm đến một số thư mục quan trọng như sau: bin/ và sbin/ là 2 thư mục chứa các file cấu hình , etc/ chứa các cài đặt cơ bản, share/ chứa các file định nghĩa phục vụ cho các file cấu hình ở bin/ và sbin/ có thể kế thừa và sử dụng và config/ chứa các cài đặt hiện đang được người dùng sử dụng. Bên trong mỗi thư mục sẽ có rất nhiều các module nhỏ, tuy nhiên luận 26 văn này sẽ chỉ đề cập đến những phần quan trọng có thể áp dụng được để đưa vào sử dụng. Hình 4: Cấu trúc File system của VyOS. 2.2.1. Thư mục /opt/vyatta/bin Bin là thư mục chứa các file thực thi của VyOS (Hình 5). Ta có thể thấy ở đây có một số file thực thi câu lệnh giống nhau, ví dụ câu lệnh show interfaces có 2 file thực thi là vyatta-show-interfaces và vyatta-show- interfaces.pl. Bản chất hai file này cùng cho ra kết quả giống nhau, nhưng chúng được viết trên hai ngôn ngữ khác nhau, một sử dụng bash shell và một sử dụng ngôn ngữ Perl. Hình 5: Cấu trúc file bên trong bin/. 27 2.2.2. Thư mục /opt/vyatta/sbin Phần lớn các file thực thi câu lệnh của VyOS nằm trong thư mục này, bao gồm cả các file thực thi câu lệnh liên quan đến QoS đó là vyatta-qos-up, vyatta- qos-util.pl và vyatta-qos.pl (Hình 6). Hình 6: Cấu trúc file bên trong sbin/ File vyatta-qos-up được viết bằng bin/sh. Khi nhận câu lệnh cấu hình qos, tùy theo interfaces in hay out mà nó sẽ chạy file vyatta-qos.pl với tham số tương ứng (Hình 7). Hình 7: Cấu trúc file vyatta-qos-up 28 Quan trọng nhất là file vyatta-qos.pl, đây là file cấu hình toàn bộ qos cho router. Với việc sử dụng QoS, cụ thể là phân loại các gói tin, gán các giá trị ưu tiên và đưa vào hàng đợi, thì việc cấu hình thêm các tính năng mới cho router sẽ được viết ở đây, nối tiếp theo các chức năng có sẵn, hoặc tạo các file con kế thừa từ file này. (Hình 8) Hình 8: Cấu trúc file vyatta-qos.pl 2.2.3. Thư mục /opt/vyatta/share Thư mục này chứa các file định nghĩa sử dụng bởi các file thực thi ở hai thư mục bin/ và sbin/. Cụ thể, các file này sẽ nằm tiếp trong thư mục perl5/Vyatta (Hình 9). Ngoài ra thư mục share còn chứa các cấu hình templates trong thư mục /vyatta-cfg/templates. Trong các thư mục này sẽ có chứa các thư mục tương đương các thông số hiển thị ra khi ta cấu hình trên hệ điều hành. Hình 9: Cấu trúc bên trong share/perl5/Vyatta 29 Với mỗi loại chức năng sẽ có một tập hơn các file định nghĩa riêng. Ví dụ QoS sẽ có một tập hơn các file liên quan bên trong thư mục QoS/ (hình 10). Các file định nghĩa bên trong này còn có thể tự kết thừa lẫn nhau. Trong QoS/ có file TrafficShaper.pm chứa các hàm khởi tạo một yêu cầu cấu hình về Shaper, hàm chỉnh sửa cấu hình Shaper, các lựa chọn nhánh câu lệnh phụ bên trong các câu lệnh lớn. Các hàm này lại kế thừa các hàm trong file ShaperClass.pm và Config.pm, trong đó ShaperClass.pm chứa các hàm tạo mới một yêu cầu cấu hình cơ bản chung, hàm khởi tạo các biến, hàm kiểm tra các Rules đặt ra, và Config.pm cũng có hàm tạo mới, hàm kiểm tra sự tồn tại của câu lệnh giống câu lệnh đưa vào, hàm kiểm tra trạng thái Hình 10: Cấu trúc bên trong share/QoS 2.3. Các kiểu QoS trong VyOS [8,9] Chất lượng dịch vụ (QoS) là một tính năng cho phép người quản trị xác định các luồng lưu lượng khác nhau và sau đó xử lý chúng theo chính sách riêng thay vì chỉ sử dụng cơ chế mặc định. Trên hệ thống VyOS sử dụng câu lệnh “tc” – traffic control làm phụ trợ cho QoS. VyOS cung cấp cho người dùng cấu hình các node cho các quy tắc sau đây: cơ chế QoS mặc định dựa trên mức độ ưu tiên hàng đợi. Ngoài cơ chế xếp hàng mặc định, hệ thống VyOS cung cấp nhiều cơ chế QoS khác nhau để xác định, xử lý các luồng lưu lượng khác nhau đi qua một interface và được phân loại thành các cơ chế áp dụng cho lưu lượng truy cập in và cho lưu lượng truy cập out. Theo mặc định, tất cả lưu lượng truy cập được gửi bởi hệ thống VyOS được ưu tiên dựa trên giá trị trong trường Type of Service (ToS) của nó. Trong mỗi hàng đợi, tất cả các gói được gửi trên cơ sở First In First Out (FIFO). Lưu lượng dữ liệu được chia theo cách này vì việc cung cấp các mức dịch vụ bằng nhau cho tất cả lưu lượng. Tuy nhiên trên thực tế một số loại lưu lượng, theo bản chất của chúng nên được đối xử khác với những loại khác. Ví dụ: lưu lượng thoại rất nhạy cảm với độ trễ và nếu không được xử lý tương ứng, có thể không thể hiểu được nội dung. 30 Hệ thống VyOS hỗ trợ các cơ chế QoS sau đây để kiểm soát lưu lượng truy cập in và out:  Cơ chế bỏ đuôi (Drop Tail) là một thuật toán cung cấp hàng đợi thuần túy có độ dài xác định theo thứ tự FIFO (First In First Out); nói cách khác, các gói dữ liệu được truyền theo đúng thứ tự mà chúng đến. Nếu hàng đợi đầy, thì đuôi của hàng đợi (nghĩa là tập hợp các gói đến saukhi hàng đợi được lấp đầy) sẽ bị hủy. Với hàng đợi drop-tail, có một hàng đợi duy nhất và tất cả lưu lượng được xử lý như nhau; lưu lượng truy cập không được ưu tiên như trong trường hợp mặc định và chỉ dùng trong traffic out.  Cơ chế hàng đợi công bằng (Fair Queue) là một cơ chế xếp hàng gói phân tách các luồng lưu lượng dựa trên địa chỉ IP nguồn/đích của chúng và/hoặc giao thức IP. Băng thông được phân bổ công bằng giữa các luồng dựa trên thuật toán xếp hàng công bằng ngẫu nhiên (Stochastic fairness Queuing) sao cho không có luồng nào được phép sử dụng phần lớn băng thông và chỉ dùng trong traffic out.  Cơ chế hàng đợi vòng tròn (Round Robin) là một thuật toán lập lịch đơn giản. Trong hàng đợi vòng tròn, lưu lượng cho các lớp (class) được xác định và băng thông được chia đều cho các lớp đó và chỉ dùng trong traffic out.  Cơ chế điều hoà lưu lượng (Traffic Shaper) cung cấp hàng đợi dựa trên thuật toán Hierarchical Token Bucket để phân bổ lượng băng thông khác nhau cho các lớp lưu lượng khác nhau. Khác biệt giữa Traffic Shaper và Round Robin là Traffic shaper giới hạn phân bổ băng thông theo lớp lưu lượng trong khi Round robin chia tổng băng thông có sẵn giữa các lớp và chỉ dùng trong traffic out.  Cơ chế giới hạn tốc độ (Rate Limiting) là cung cấp hàng đợi dựa trên thuật toán Token Bucket Filter (TBF) để giới hạn lưu lượng gói ở tốc độ đã đặt. Thuật toán này chỉ chuyển các gói đến với tốc độ không vượt quá tốc độ được đặt và chỉ dùng trong traffic out.  Cơ chế giả lập mạng mô phỏng (Network Emulator) cung cấp chính sách giả lập mạng mô phỏng lưu lượng mạng WAN, rất hữu ích cho mục đích thử nghiệmvà chỉ dùng trong traffic out. 31  Cơ chế phát hiện ngẫu nhiên (Random Detect) là một cơ chế tránh tắc nghẽn bao gồm Phát hiện sớm ngẫu nhiên (RED) và Phát hiện sớm ngẫu nhiên có trọng số (WRED). RED làm giảm khả năng tắc nghẽn mạng sẽ xảy ra bằng cách loại bỏ ngẫu nhiên các gói khi đầu ra interface bắt đầu có dấu hiệu tắc nghẽn, do đó sử dụng băng thông mạng tốt hơn. WRED phân biệt giữa các lớp lưu lượng trong một hàng đợi và gán mức độ ưu tiên khác nhau cho các luồng lưu lượng tương ứng; các gói ưu tiên thấp được loại bỏ khỏi hàng đợi sớm hơn các gói ưu tiên cao. Điều này đạt được bằng cách sử dụng ba bit đầu tiên của trường ToS (Type of services) để phân loại luồng dữ liệu và theo các tham số ưu tiên đã xác định, quyết định được đưa ra và chỉ dùng trong traffic out.  Cơ chế hàng đợi ưu tiên (Priority queue) : Có tối đa bảy hàng đợi với các mức độ trọng số ưu tiên khác nhau từ 1 đến 7 (trong đó 1 là mức ưu tiên thấp nhất) , các gói được đặt vào hàng đợi dựa trên trọng số được gán. Các gói được truyền từ hàng đợi theo thứ tự ưu tiên. Hàng đợi với thứ tự cao hơn được lấp đầy liên tục các gói, các gói từ hàng đợi ưu tiên thấp hơn sẽ chỉ được truyền sau khi lưu lượng truy cập từ hàng đợi ưu tiên

Các file đính kèm theo tài liệu này:

  • pdfluan_van_thu_nghiem_cac_giai_phap_dam_bao_chat_luong_dich_vu.pdf
Tài liệu liên quan