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

Tìm hiểu và triển khai giải pháp cân bằng tải cho máy chủ web sử dụng OPNSENSE

81 0 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 đề Tìm Hiểu Và Triển Khai Giải Pháp Cân Bằng Tải Cho Máy Chủ Web Sử Dụng OPNSENSE
Tác giả Huỳnh Văn Nam
Người hướng dẫn Giáo viên Hướng Dẫn
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 81
Dung lượng 3,19 MB

Cấu trúc

  • CHƯƠNG I: TỔNG QUAN VỀ CÂN BẰNG TẢI (9)
    • 1.1 Giới thiệu về cân bằng tải (9)
      • 1.1.1 Vai trò của cân bằng tải (11)
      • 1.1.2 Các loại cân bằng tải (13)
      • 1.1.3 Cân bằng tải sử dụng phần cứng và cân bằng tải phần mềm 16 (15)
      • 1.1.4 Các tính năng của cân bằng tải (17)
      • 1.1.5 Các loại giao thức được xử lý trong cân bằng tải (17)
      • 1.1.6 Hoạt động của cân bằng tải (18)
      • 1.1.7 Một số cân bằng tải trong thực tế (20)
      • 1.1.8 Ưu điểm của cân bằng tải (24)
    • 1.2 Các phương pháp sử dụng trong cân bằng tải (28)
      • 1.2.1 Luân chuyển vòng DNS (28)
      • 1.2.2 Network Address Translation (NAT) (29)
    • 1.3 Các thuật toán cân bằng tải (30)
      • 1.3.1 Thuật toán ngẫu nhiên (random) (32)
      • 1.3.2 Thuật toán Round Robin (RR) (32)
      • 1.3.3 Thuật toán Weighted Round Robin (Ratio) (33)
      • 1.3.4 Thuật toán Dynamic Round Robin – DRR (Dynamic Ratio) 33 (34)
      • 1.3.5 Thuật toán Fastest (34)
      • 1.3.6 Thuật toán Least Connections (LC) (35)
      • 1.3.7 Thuật toán Predictive (36)
      • 1.3.8 Thuật toán Weighted Least Connection (36)
    • 1.4 Ứng dụng của cân bằng tải (37)
    • 1.5 Các sản phẩm của cân bằng tải (38)
    • 1.6 Kết luận chương (0)
  • CHƯƠNG II: TÌM HIỂU VỀ OPNSENSE VÀ GIẢI PHÁP CÂN BẰNG TẢI CỦA OPNSENSE (40)
    • 2.1 Tổng quan về OPNsense (40)
      • 2.1.1 Giới thiệu OPNsense (40)
      • 2.1.2 Lợi ích của OPNsense (42)
    • 2.2 Các tính năng chính của OPNsense (43)
      • 2.2.1 Firewall (44)
      • 2.2.2 Multi WAN (47)
      • 2.2.3 Mạng riêng ảo (48)
      • 2.2.4 Virtual IPs (49)
    • 2.3 Giải pháp cân bằng tải của OPNSense trên web server (50)
  • CHƯƠNG III: TRIỂN KHAI THỬ NGHIỆM DỊCH VỤ CÂN BẰNG TẢI CHO HỆ THỐNG MÁY CHỦ WEB SỬ DỤNG OPNSENSE (55)
    • 3.1 Mô hình thử nghiệm (55)
    • 3.2 Cài đặt và thử nghiệm (57)
      • 3.2.1 Các bước chuẩn bị (57)
      • 3.2.2 Tiến hành cấu hình Load Balancing (64)
    • 3.3 Triển khai thử nghiệm (71)
    • 3.4 Kết luận chương 3 (0)
  • CHƯƠNG IV: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI. .77 (78)
    • 4.1 Kết luận (78)
    • 4.2 Hướng phát triển của đề tài (79)
    • 5. Tài liệu tham khảo (0)

Nội dung

Tìm hiểu và triển khai giải pháp cân bằng tải cho máy chủ web sử dụng OPNSENSE Học viện kỹ thuật mật mã hoc vien ky thuat mat ma KMA Sự phát triển của ngành dịch vụ web khiến cho số lượng người truy cập vào các website ngày càng tăng mạnh, đặc biệt là các mạng xã hội ảo hoặc website chia sẻ video trực tuyến. Các website này không chỉ cho phép người dùng trao đổi và chia sẻ thông tin, giao lưu và kết bạn mà còn cho phép người dùng lưu trữ tài liệu, tìm kiếm bạn bè, người thân, hay thậm chí cả đối tác kinh doanh. Mặc dù chỉ mới bắt đầu phát triển trong vòng 5 năm trở lại đây nhưng mạng xã hội và các trang chia sẻ video trực tuyến đã có số lượng người dùng lên đến con số hàng trăm triệu và vẫn đang tăng với tốc độ chóng mặt. Sự cạnh tranh giữa các website mạng xã hội và các trang chia sẻ video trực tuyến là không thể tránh khỏi, bất cứ một nhà quản trị nào cũng muốn tăng số lượng người dùng cũng như muốn website của mình ngày càng nổi tiếng. Để làm được điều đó, ngoài nội dung hấp dẫn và phong phú, website cần phải đáp ứng được nhu cầu của người dùng một cách tốt nhất. Với 100 triệu video được xem mỗi ngày, tính trung bình mỗi giây có gần 1200 video được xem trên Youtube, con số này đòi hỏi Youtube phải có một hệ thống server mạnh mẽ và linh hoạt. Một website với số lượng truy cập ngày càng tăng sẽ khiến máy chủ của website đó không đáp ứng được hết nhu cầu của người dùng và bị quá tải. Để làm được điều này, các nhà quản trị hệ thống phải đảm bảo cho hệ thống của mình hoạt động tốt nhất có thể, do đó nhu cầu cân bằng tải cho server là vô cùng cần thiết. Tuy nhiên việc lựa chọn hệ thống cân bằng tải là việc không hề dễ dàng bởi vì chúng có sự cạnh tranh về chất lượng cũng như giá thành. Và OPNSence được biết đến là một hệ thống cân bằng tải mạnh mẽ đáp ứng được các nhu cầu khắt khe của các nhà quản trị hệ thống và quan trọng hơn hết là nó hoàn toàn miễn phí. Xuất phát từ thực tế với các vấn đề rất đáng chú ý được nêu ở trên, em đã chọn đề tài” Tìm hiểu và triển khai giải pháp cân bằng tải cho máy chủ web sử dụng OPNsence” làm đồ án tốt nghiệp đại học của mình. Đồ án gồm 3 chương cụ thể như sau: Chương 1: Tổng quan về cân bằng tải Chương này trình bày khái quát về cân bằng tải bao gồm các khái niệm, thuật toán, ứng dụng hoạt động và các sản phẩm của cân bằng tải. Chương 2: Tìm hiểu về OPNsense và các giải pháp cân bằng tải của OPNsense Chương này trình bày tổng quan về OPNsense bao gồm các khái niệm, các thành phần chính của OPNsense và các giải pháp cân bằng tải của OPNsense. Chương 3: Triển khai thử nghiệm dịch vụ cân bằng tải cho hệ thống máy chủ web sử dụng OPNsense Chương này sẽ triển khai thử nghiệm dịch vụ cân bằng tải cho hệ thống máy chủ web sử dụng OPNsense. Chương 4: Kết luận và hướng phát triển của đề tài Chương này sẽ tổng hợp lại kết quả của 3 chương đã tìm hiểu được và đưa ra phương hướng phát triển của đề tài.

TỔNG QUAN VỀ CÂN BẰNG TẢI

Giới thiệu về cân bằng tải

Một chương trình máy chủ được cài đặt trên một hệ thống được nhắm mục tiêu có nguồn lực hạn chế Những tài nguyên này bao gồm hệ thống bộ nhớ, dung lượng ổ cứng và tốc độ xử lý Từ dung lượng máy chủ bị hạn chế, vì vậy nó chỉ có thể xử lý số lượng khách hàng nhất định Với số lượng khách hàng nhiều hơn một máy chủ sẽ bị quá tải và điều đó có thể dẫn đến chậm giảm hiệu suất, treo và sự cố Do đó, nó là rất quan trọng để cân bằng tải trên máy chủ và điều này có thể đạt được bằng cách giữ các bản sao của máy chủ và phân phối tải trong số họ hoặc một website với khả năng mở rộng nghĩa là, khi số lượng người dùng tăng lên trong một khoảng nhất định, website vẫn đáp ứng được nhu cầu, thêm nữa, website có khả năng dễ dàng nâng cấp lên để dễ dàng phù hợp với tình hình mới Tại thời điểm ban đầu,các website với khả năng mở rộng lớn thường được thiết kế để phục vụ hàng chục triệu yêu cầu mỗi ngày, sau đó sẽ được nâng cấp để phục vụ thêm, nếu như có nhu cầu Để phục vụ hàng chục triệu lượt truy cập mỗi ngày, website cần phải đáp ứng được yêu cầu về khả năng mở rộng (scalability), về hiệu năng (Performance), tính đáp ứng (Responsiveness), tính sẵn có cao ( Hightavailability), tránh được thời gian chết của hệ thống (down time impact) khả năng bảo trì tốt và được xây dựng với giá thành tốt nhất.

Cân bằng tải là quá trình làm cho một nhóm các máy chủ tham gia vào cùng một dịch vụ và thực hiện cùng một công việc Mục đích chung của cân bằng tải là tăng tính khả dụng, cải thiện thông lượng, độ tin cậy, duy trì sự ổn định, tối ưu hóa việc sử dụng tài nguyên và cung cấp khả năng chịu lỗi Khi số lượng máy chủ tăng lên, nguy cơ thất bại ở bất cứ đâu tăng lên và những lỗi đó phải được xử lý cẩn thận Khả năng duy trì dịch vụ không bị ảnh hưởng trong bất kỳ số lần thất bại đồng thời được gọi là tính sẵn sàng cao Cân bằng tải trọng có nghĩa là phân phối đồng đều tổng tải trong số tất cả các thực thể phục vụ. Cân bằng tải là rất cần thiết trong các hệ thống máy tính phân tán để cải thiện chất lượng dịch vụ bằng cách quản lý tải của khách hàng đang thay đổi theo thời gian Nhu cầu, yêu cầu của các thực hiện đến được phân phối tối ưu giữa các tài nguyên hệ thống có sẵn để tránh tắc nghẽn tài nguyên cũng như sử dụng đầy đủ các tài nguyên có sẵn Cân bằng tải cũng cung cấp tỷ lệ ngang, ví dụ, thêm tài nguyên tính toán để giải quyết tải tăng.

Hoặc nếu một web server duy nhất này gặp vấn đề, người dùng sẽ không thể truy cập vào website được nữa Ngoài ra,nếu có nhiều người dùng cố gắng truy cập vào server cùng một lúc thì sẽ xảy ra quá tải, khiến thời gian tải website chậm đi hoặc kết nối bị gián đoạn Điều này có thể khắc phục bằng cách thêm vào hệ thống cân bằng tải ít nhất một web server hỗ trợ bổ sung trên backend Thông thường, tất cả các nội dung mà người dùng nhận được là như nhau bất kể họ đang kết nối với server nào.

Cân bằng tải cũng được cung cấp bởi một số hệ điều hành. Cân bằng tải mạng của Microsoft (NLB), một giải pháp dựa trên phần mềm cho phép bạn dễ dàng phân cụm nhiều máy Có nhiều phần mềm cân bằng tải nguồn mở và phần mềm cân bằng tải có sẵn cho Linux, chẳng hạn như Linux Virtual Server, Ultra Monkey, Red Hat Cluster Suite, High Av Available Linux (Linux HA); có thể được sử dụng hiệu quả với hầu hết các dịch vụ mạng, bao gồm FTP, HTTP, DNS, SMTP, POP / IMAP, VoIP, v.v.

Hình 1 1 Hệ thống cân bằng tải

1.1.1Vai trò của cân bằng tải

Một cơ sở hạ tầng website không có cân bằng tải thông thường sẽ hoạt động như sau:

Hình 1 2 Mô tải hoạt động của một website không có cân bằng tải

Trong ví dụ này, người dùng kết nối trực tiếp đến web server (tại yourdomain.com) Nếu web server duy nhất này gặp vấn đề, người dùng sẽ không thể truy cập vào website được nữa. Ngoài ra, nếu có nhiều người dùng cố gắng truy cập vào server cùng một lúc thì sẽ xảy ra quá tải, khiến thời gian tải website chậm đi hoặc kết nối bị gián đoạn. Điều này có thể khắc phục bằng cách thêm vào hệ thống cân bằng tải và ít nhất một web server hỗ trợ bổ sung trên backend Thông thường, tất cả các nội dung mà người dùng nhận được là như nhau bất kể họ đang kết nối với server nào.

Hình 1 3: Mô tả hoạt động của một website có cân bằng tải

Trong ví dụ ở trên, hệ thống cân bằng tải sẽ chuyển tiếp yêu cầu của người dùng đến một server phụ trợ và đáp ứng trực tiếp yêu cầu đó Vị trí nếu trục trặc có thể gây ảnh hưởng cho cả hệ thống bây giờ chính là vị trí cân bằng tải.

Tóm lại, một load balancer sẽ thực hiện các chức năng chính sau đây:

Chặn lưu lượng mạng đến một trang web Bản thân thiết bị cân bằng tải có thể là một Proxy, một Firewall tầng ứng dụng, nó sẽ là đối tượng đầu tiên nhận các yêu cầu trước khi chia tải, do đó chức năng này được coi như một chức năng thiết yếu của một cân bằng tải.

Tách lưu lượng thành các yêu cầu riêng biệt và quyết định máy chủ nào nhận các yêu cầu đó Đây là chức năng chủ chốt của cân bằng tải Tùy vào thuật toán áp dụng mà sẽ có từng cách chia cụ thể cho mỗi máy.

Cung cấp khả năng nhận thức nội dung phân tán bằng cách đọc URL, chặn cookies, và biên dịch Đây được coi như là một trong những tiêu chí chia tải của hệ thống.

1.1.2Các loại cân bằng tải

Cân bằng tải của các máy chủ có thể được thực hiện theo những cách khác nhau Các phương pháp cân bằng tải này có thể được thiết lập trong bộ cân bằng tải dựa trên các loại cân bằng tải có sẵn Có nhiều thuật toán khác nhau được sử dụng để phân phối tải giữa các máy chủ có sẵn.

Các kỹ thuật cân bằng tải thường được sử dụng để cân bằng khối lượng công việc của các hệ thống phân tán Các kỹ thuật cân bằng tải được phân loại thành hai loại cụ thể là Cân bằng tải tĩnh và Cân bằng tải động Mục đích chính của các kỹ thuật cân bằng tải, dù là tĩnh hay động là để cải thiện hiệu suất bằng cách phân phối lại khối lượng công việc giữa các nút máy chủ có sẵn Kỹ thuật cân bằng tải động phản ứng với trạng thái hệ thống hiện tại, trong khi kỹ thuật cân bằng tải tĩnh chỉ phụ thuộc vào hành vi trung bình của hệ thống để cân bằng khối lượng công việc của hệ thống Điều này làm cho kỹ thuật động lực học phức tạp hơn so với kỹ thuật tĩnh Nhưng, các chính sách cân bằng tải động đã được cho là có hiệu suất tốt hơn các chính sách tĩnh.

- Kỹ thuật cân bằng tải tĩnh

Trong kỹ thuật cân bằng tải tĩnh này, hiệu suất của các nút máy chủ được xác định ở giai đoạn đầu của quy trình Sau đó, dựa trên hiệu suất của chúng, tải công việc được phân phối bởi nút chủ Các nút tới đánh giá công việc được phân bổ của chúng và sau đó gửi kết quả của chúng đến nút chính.

Một công việc luôn được thực thi trên nút máy chủ mà nó được gán là các kỹ thuật cân bằng tải tĩnh là không khinh thường Mục đích chính của phương pháp cân bằng tải tĩnh là giảm thời gian thực hiện chung của một chương trình đồng thời giảm thiểu độ trễ truyền thông Một nhược điểm thông thường của tất cả các phương thức tĩnh là lựa chọn cuối cùng của nút máy chủ để phân bổ quy trình được thực hiện khi quy trình được tạo ban đầu và không thể thay đổi trong quá trình thực hiện quy trình để thực hiện các biến thể trong tải hệ thống.

- Kỹ thuật cân bằng tải động

Các kỹ thuật cân bằng tải động phụ thuộc vào thông tin tải hệ thống gần đây và xác định sự phân công công việc cho các nút máy chủ trong thời gian chạy Trong trường hợp tiếp cận động, các quyết định cân bằng tải dựa trên trạng thái hiện tại của hệ thống và do đó tải công việc được phép chuyển động từ nút quá tải sang nút dưới tải để nhận phản hồi nhanh hơn từ các nút máy chủ Khả năng đáp ứng các biến thể trong hệ thống là ưu điểm chính của cân bằng tải động Nhưng, vì bộ cân bằng tải phải liên tục theo dõi tải hệ thống hiện tại trên tất cả các nút, nó trở thành một chi phí phụ vì việc giám sát tiêu tốn chu kỳ CPU.

Vì vậy, một quyết định đúng đắn phải được đưa ra khi gọi hoạt động giám sát của bộ cân bằng tải

Trong phần dưới đây, nói về các chính sách khác nhau của cân bằng tải động và nói về các loại khác nhau của các kỹ thuật cân bằng tải động hiện có cùng với các ưu điểm và nhược điểm tương đối của chúng.

1.1.3 Cân bằng tải sử dụng phần cứng và cân bằng tải phần mềm

- Cân bằng tải sử dụng phần cứng:

Các phương pháp sử dụng trong cân bằng tải

Hình 1 9: Tầm quan trọng của DNS trong thế giới mạng

Cách đơn giản nhất để thực hiện cân bằng tải là sử dụng dịch vụ DNS (Domain Name Service) để chỉ định từng server cho mỗi nhóm người dùng được xác định trước Điều này là dễ dàng trên các server mạng nội bộ, nhưng không thực sự phổ biến trên các server internet Phương pháp phổ biến là dựa trênDNS Round-Robin Nếu một server DNS đã có một và mục(hostname) cho một máy cụ thể, nó sẽ trả về tất cả mục đó trong một trật tự luân phiên. Để cân bằng tải máy chủ, hệ thống cần phải phân phối các yêu cầu đến nhiều máy chủ khác nhau bên trong cụm máy chủ, với mục đích tối ưu hóa hiệu suất hệ thống Điều này sẽ mang đến cho mạng hiệu suất cao hơn, khả năng mở rộng, tránh rơi vào tình trạng túng thiếu tài nguyên mạng trong một doanh nghiệp hay một ứng dụng nào đó.

Tính sẵn sàng cao có thể được hiểu là tình trạng dư thừa Nếu một máy chủ không thể quản lý một yêu cầu thì các máy chủ khác trong cụm máy chủ đó có quản lý được nó không? Trong một hệ thống có khả năng cung cấp cao, nếu một máy chủ bị lỗi thì máy chủ khác sẽ tiếp quản ngay để xử lý yêu cầu.

Hình 1 10: Kết nối mạng NAT giữa các máy chủ

Do sự giới hạn không gian địa chỉ của Ipv4 và một vài lý do về bảo mật, nhiều network sử dụng địa chỉ IP riêng cho các máy trong mạng mình và nó không kết nối được internet NAT được phát triển khi các host trong mạng cục bộ muốn truy cập đến hoặc được truy cập từ internet Cơ chế NAT dựa vào đặc điểm header của các packet có thể điều chỉnh được và các client kết nối tưới hệ thống server bằng một IP duy nhất IP của NAT, các real server sử dụng các IP khác nhau kết nối với NAT server, trên NAT server sử dụng 2 network interfaces với một IP mạng riêng và một IP internet Đặc điểm này được sử dụng để xây dựng một virtual server.

Dịch địa chỉ mạng là các khối xây dựng cơ bản trong cân bằng tải Bộ cân bằng tải cơ bản sử dụng NAT để yêu cầu trực tiếp đến các máy chủ thực khác nhau Có rất nhiều kiểu NAT khác nhau Kể từ khi bộ cân bằng tải thay đổi địa chỉ IP đích từ VIP đến địa chỉ IP của một máy chủ thực, nó được biết đến như là NAT đích Khi máy chủ thực trả lời, bộ cân bằng tải bây giờ phải thay đổi địa chỉ IP của máy chủ thực trở lại thành địa chỉ VIP Quá trình dịch địa chỉ IP xảy ra trên IP nguồn của gói tin, trong khi đó câu trả lời có nguồn gốc từ máy chủ đến máy khách.

Các thuật toán cân bằng tải

Bộ cân bằng tải sử dụng thuật toán lọc phân tán hoàn toàn để ánh xạ các máy khách đến các máy chủ trong nhóm Thuật toán này cho phép các máy chủ trong nhóm đưa ra các quyết định cân bằng tải một cách độc lập và nhanh chóng cho từng gói đến Nó được tối ưu hóa để cung cấp khả năng cân bằng tải một cách thống kê đối với một số lượng lớn các yêu cầu nhỏ do vô số máy khách tạo ra Nếu số máy khách hoặc các kết nối máy khách tạo ra các tải quá chênh lệch nhau trên máy chủ, thuật toán cân bằng tải sẽ ít hiệu quả Tuy nhiên, tính đơn giản và tốc độ của thuật toán cho phép cung cấp hiệu năng rất cao bao gồm cả thông lượng cao và thời gian đáp ứng ngắn trong một dải rộng các ứng dụng máy khách/ máy chủ thông dụng.

Bộ cân bằng tải xử lý các yêu cầu của máy khách bằng cách dẫn đường cho một tỉ lệ phần trăm đã chọn những yêu cầu mới cho từng máy chủ trong nhóm Thuật toán không đáp ứng những thay đổi về tải trên mỗi máy chủ (chẳng hạn như tải CPU hay vấn đề sử dụng bộ nhớ) Tuy nhiên, quá trình ánh xạ sẽ được thay đổi khi quan hệ thành viên trong nhóm thay đổi và tỉ lệ phần trăm tải phân bố sẽ được tái cân bằng.

Khi xem xét một gói đến, tất cả các máy chủ thực hiện đồng thời việc ánh xạ thống kê để xác định nhanh chóng máy chủ nào sẽ xử lý gói đó Quá trình ánh xạ sử dụng một hàm ngẫu nhiên để tính mức ưu tiên của máy chủ dựa trên địa chỉ IP và cổng đến của máy khách cùng các thông tin trạng thái khách để tối ưu hóa việc cân bằng tải Máy chủ tương ứng sẽ chuyển gói đó từ các tầng dưới lên tầng TCP/IP còn các máy chủ khác sẽ loại bỏ gói này Quá trình ánh xạ không thay đổi trừ khi quan hệ giữa các máy chủ trong nhóm thay đổi, để đảm bảo rằng địa chỉ

IP và cổng đến của máy khách cho trước sẽ luôn được ánh xạ đến cùng một máy chủ trong nhóm Tuy nhiên, máy chủ cụ thể trong nhóm mà địa chỉ IP và cổng đến của máy khách ánh xạ tới không thể được xác định trước do hàm ngẫu nhiên có tính đến quan hệ thành viên trong nhóm hiện tại và quá khứ để tối thiểu hóa khả năng ánh xạ lại.

Nhìn chung, chất lượng cân bằng tải được xác định một cách thống kê bởi số lượng máy khách tạo ra yêu cầu Như kết cấu tăng giảm về số lượng máy khách theo thống kê, sự đều đặn về chất lượng của thuật toán cân bằng tải sẽ thay đổi nhẹ. Để hoạt động cân bằng tải có độ chính xác cao trên mỗi host trong nhóm, một phần tài nguyên hệ thống sẽ được sử dụng để đo và phản ứng trước những thay đổi của tải Sự trả giá về hiệu năng này phải được cân nhắc so với lợi ích của việc tối đa hóa khả năng sử dụng các tài nguyên trong nhóm (về cơ bản là CPU và bộ nhớ) Trong bất cứ trường hợp nào, việc sử dụng hợp lý các nguồn tài nguyên máy chủ phải được duy trì để phục vụ cho các tải máy khách khách trong trường hợp xảy ra lỗi.

1.3.1Thuật toán ngẫu nhiên (random)

Trong thuật toán random, tải sẽ được phân một cách ngẫu nhiên vào trong các web-server Web server được chọn dựa trên một hàm chọn số ngẫu nhiên, sau đó yêu cầu hiện tại từ phía người dùng sẽ được chuyển vào server này.

Thuật toán này hầu như không dùng đến trong các bộ cân bằng tải mặc dù nó thường được cài đặt sẵn, nó chỉ thường thấy trong các gói phần mềm lớn mà trong đó cân bằng tải chỉ được đưa ra như một chức năng.

1.3.2Thuật toán Round Robin (RR) Đây gọi là thuật toán luân chuyển vòng, các máy chủ sẽ được xem ngang hàng và sắp xếp theo một vòng quay Các truy vấn dịch vụ sẽ lần lượt gửi tới các máy chủ theo thứ tự sắp xếp.

RR là thuật toán được dùng thường xuyên nhất trong các hệ thống vừa và nhỏ, có ít đòi hỏi về khả năng mở rộng Một kết nối mới sẽ được gửi đến server kế tiếp trong cụm server, và cứ quay vòng như vậy RR làm việc tốt trong mọi cấu hình, nhưng sẽ tốt hơn nếu như các trang thiết bị đang được cân bằng tải khác nhau về tốc độ xử lý, tốc độ kết nối hoặc bộ nhớ.

Một cách khác để thực thi thuật toán này là sử dụng một server_map Bộ cân bằng tải sẽ được khai báo như một con trỏ proxy, nó sẽ có biến server_map là một mảng các server và các biến srv_rr_idx để chỉ định server tiếp theo trong chu kỳ round robin.

RR hoạt động tốt khi các server có khả năng xử lý (cấu hình) tương tự nhau, tuy nhiên sẽ có hiện tượng mất cân bằng khi các server có cấu hình khác nhau, hoặc sau một thời gian, số kết nối đang hoạt động ở một server đang nhiều hơn hẳn một server khác, nhưng lượng kết nối tiếp theo mà các server này nhận được vẫn bằng nhau Do đó một số server sẽ phải xử lý nhiều hơn hẳn các server khác Tuy vậy, vì tính đơn giản của nó, nên nó hoạt động rất hiệu quả (không phải mất thêm thời gian tính toán các thông số khác nên việc phân tải diễn ra rất nhanh) Nếu các server hoạt động bình thường và không xảy ra sự cố thì sử dụng RR rất tốt. Điểm yếu của RR là 2 yêu cầu liên tục từ phía một người dùng có thể sẽ được gửi vào 2 server khác nhau Điều này không tốt vì khi người dùng đang được kết nối vào một server, thông tin mà họ cần đang ở server đó, nếu kết nối tiếp theo vẫn được server đó xử lý sẽ góp phần tăng tốc độ đáp ứng cho người dùng Do đó thuật toán RR thường được cài đặt cùng với các phương pháp duy trì session như sử dụng cookie.

1.3.3Thuật toán Weighted Round Robin (Ratio)

Nguyên lý hoạt động của thuật toán WRR cũng giống như thuật toán RR, yêu cầu từ phía người dùng sẽ được bộ cân bằng tải chuyển đến các server theo thứ tự xoay vòng Sự khác biệt duy nhất ở đây là thuật toán WRR còn quan tâm đến khả năng xử lý (cấu hình) của các server Trong cùng một chu kỳ, 1 server có khả năng xử lý gấp đôi server khác sẽ nhận được gấp đôi số yêu cầu từ phía bộ cân bằng tải.

Thuật toán Weighted Round Robin không cần phải tính đến các yêu cầu kết nối cho mỗi một máy chủ, và chi phí lập kế hoạch là nhỏ so với các thuật toán lập kế hoạch động, nó cũng có thể có nhiều máy chủ hơn Tuy nhiên nó có thể dẫn đến mất cân bằng tải động giữa các máy chủ nếu các yêu cầu tải quá lớn Điều đó là có thể bởi hầu hết các yêu cầu đều được định hướng đến một máy chủ.

Thuật toán WRR hoạt động tốt hơn RR khi các server trong cluster có cấu hình khác nhau Tuy nhiên sử dụng thuật toán này có thể dẫn tới sự mất cân bằng tải động nếu như tải của các yêu cầu liên tục thay đổi trong một khoảng rộng (ví dụ như các yêu cầu xem video hoặc tải các file có dung lượng lớn xen kẽ với các yêu cầu đọc thông tin ) Trong một khoảng thời gian ngắn phần lớn các yêu cầu có tải cao sẽ được chuyển hướng đến cùng một server.

1.3.4Thuật toán Dynamic Round Robin – DRR (Dynamic Ratio) Thuật toán DRR hoạt động gần giống với WRR, điểm khác biệt là trọng số ở đây dựa trên sự kiểm tra server một các liên tục, do đó trọng số liên tục thay đổi Đây là một thuật toán động (khác với các thuật toán đã trình bày ở trên đều là thuật toán tĩnh), việc chọn server sẽ dựa trên rất nhiều khía cạnh trong việc phân tích hiệu năng của server dựa trên thời gian thực, chẳng hạn như số kết nối hiện tại đang có trên các server hoặc server trả lời nhanh nhất Thuật toán này thường không thấy trong các bộ cân bằng tải đơn giản, nó được sử dụng trong các sản phẩm cân bằng tải của F5 Network.

Ứng dụng của cân bằng tải

Cân bằng tải được ứng dụng trong rất nhiều trường hợp như là:

- Cân bằng tải máy chủ (Server load balancing)

- Cân bằng tải máy chủ toàn cầu (Global server load balancing)

- Cân bằng tải tường lửa (Firewall load balacing)

- Chuyển mạch bộ nhớ cache (Transparent cache switching)

- Cân bằng tải trên đường truyền Internet (Load balancing with multi wan and failover)

Cân bằng tải máy chủ xử lý với việc phân chia tải theo các máy chủ (multiple servers), quy mô hóa trong khả năng làm việc của từng máy chủ và đảm bảo khả năng chịu đựng khi một máy chủ nào đó không hoạt động.

Cân bằng máy chủ tải toàn cầu xử lý việc hướng người dùng truy cập tới những điểm khác nhau nơi đặt trung tâm dữ liệu, bao gồm các cụm máy chủ có khả năng cung ứng cho người dùng thời gian phản hồi nhanh nhất có thể và chịu đựng khi một trung tâm dữ liệu mất khả năng làm việc.

Cân bằng tải tường lửa phân phối tải qua các tường lửa (multiple firewalls), quy mô hóa trong khả năng của từng tường lửa và đảm bảo khả năng chịu đựng khi một tường lửa mất khả năng làm việc hoàn toàn.

Chuyển mạch bộ nhớ cache là hướng lưu lượng truy cập đến các cache để tăng tốc thời gian đáp ứng cho khách hàng hoặc cải thiện hiệu suất của các máy chủ web bằng việc tải các nội dung tĩnh đưa đến các cache.

Cân bằng tải trên đường truyền Internet là giải pháp giúp tăng băng thông có sẵn do có khả năng sử dụng đồng thời nhiều liên kết Nó cung cấp cân bằng tải cho các nhà cung cấp dịch vụ khác nhau và cho các kết nối wan bằng việc tổng hợp và tạo điều kiện giúp tăng khả năng chịu lỗi cho mạng diện rộng thông qua chuyển đổi dự phòng Do đó các kết nối Internet được bảo đảm an toàn, kết nối ổn định với bên ngoài và đảm bảo chất lượng đáng tin cậy trong truyền dẫn.

Các sản phẩm của cân bằng tải

Các sản phẩm cân bằng tải có sẵn dưới nhiều hình thức khác nhau Chúng có thể được phân chia thành ba loại: sản phẩm mềm, thiết bị và thiết bị chuyển mạch Ba loại được miêu tả:

Hình 1 11: Phần mềm cân bằng tải Radware

- Phần mềm cân bằng tải là phần mềm chạy trên các máy chủ tự cân bằng tải, những phần mềm này thực hiện các thuật toán để điều phối quá trình phân phối tải.

Hình 1 12: Thiết bị cân bằng tải Dray Tek V2960

- Thiết bị cân bằng tải là sản phẩm hộp đen bao gồm phần cứng và phần mềm cần thiết để thực hiện nhiệm vụ Hộp có thể đơn giản như một máy tính hoặc một máy chủ, được đóng gói với một số hệ điều hành và phần mềm đặc biệt hoặc một hộp độc quyền với phần cứng và phần mềm tùy chỉnh.

- Thiết bị chuyển mạch mở rộng các chức năng của một lớp truyền thống (lớp 2/3) chuyển đổi thành các lớp cao hơn bằng cách sử dụng một số phần cứng và phần mềm.

Trong chương 1 của đồ án đã trình bày được khái niệm về cân bằng tải, một số cân bằng tải trong thực tế và các ưu điểm của chúng cũng như các thuật toán được sử dụng trong cân bằng tải Đây là những vấn đề chính mang tính cơ bản của việc cân bằng tải Tiếp theo trong chương 2 sẽ giới thiệu một phần mềm cân bằng tải nổi tiếng là OPNsense.

Kết luận chương

Như đã đề cập ở chương 1, cân bằng tải web server là phần quan trọng nhất trong quy trình xây dựng và nâng cấp website.Một trang web được cân bằng tải tốt sẽ tránh được tình trạng tắc nghẽn server, luôn trả về yêu cầu của người dùng trong khoảng thời gian ngắn nhất, do đó sẽ khiến cho người dùng hài lòng Có nhiều kỹ thuật, phần mềm để thực hiện cân bằng tải cho web server, nhưng nổi bật hơn cả là OPNsense.

TÌM HIỂU VỀ OPNSENSE VÀ GIẢI PHÁP CÂN BẰNG TẢI CỦA OPNSENSE

Tổng quan về OPNsense

Như đã đề cập ở chương 1, cân bằng tải web server là phần quan trọng nhất trong quy trình xây dựng và nâng cấp website.Một trang web được cân bằng tải tốt sẽ tránh được tình trạng tắc nghẽn server, luôn trả về yêu cầu của người dùng trong khoảng thời gian ngắn nhất, do đó sẽ khiến cho người dùng hài lòng Có nhiều kỹ thuật, phần mềm để thực hiện cân bằng tải cho web server, nhưng nổi bật hơn cả là OPNsense.

OPNsense là mã nguồn mở, phần mềm định tuyến và tường lửa dựa trên FreeBSD được phát triển bởi Deciso, một công ty ở Hà Lan chuyên sản xuất phần cứng và bán các gói hỗ trợ cho OPNsense Nó là một nhánh của pfSense, lần lượt được rẽ nhánh từ monowall, được xây dựng trên FreeBSD Nó được ra mắt vào tháng 1 năm 2015 Khi monowall đóng cửa vào tháng 2 năm 2015, người tạo ra nó, Manuel Kasper, đã giới thiệu cộng đồng nhà phát triển của mình cho OPNsense OPNsense có giao diện dựa trên web và có thể được sử dụng trên nền tảng i386 và x86-64.

Cung cấp cho người dùng, nhà phát triển và doanh nghiệp một môi trường thân thiện, ổn định và minh bạch Biến OPNsense thành nền tảng bảo mật nguồn mở được sử dụng rộng rãi nhất Tên của dự án bắt nguồn từ ý nghĩa mở và là viết tắt của: Open Sense

Hình 2 2: Chức năng kiểm tra sức khỏe hệ thống của OPNsense

Một số lợi ích mà OPNsense đem tới:

- Hoàn toàn miễn phí, giá cả là ưu thế vượt trội của tường lửa OPNsense. Tuy nhiên, rẻ không có nghĩa là kém chất lượng, tường lửa OPNsense hoạt động cực kỳ ổn định với hiệu năng cao, đã tối ưu hóa mã nguồn và cả hệ điều hành. Cũng chính vì thế, OPNsense không cần nền tảng phần cứng mạnh

- Nếu doanh nghiệp không có đường truyền tốc độ cao, tường lửa OPNsense chỉ cần cài đặt lên một máy tính cá nhân là có thể bắt đầu hoạt động. Điều đó càng góp phần làm giảm chi phí triển khai, đồng thời tạo nên sự linh hoạt, tính mở rộng, sẵn sàng chưa từng có, khi doanh nghiệp muốn có nhiều hơn một tường lửa.

- Không chỉ là một tường lửa, OPNsense hoạt động như một thiết bị mạng tổng hợp với đầy đủ mọi tính năng toàn diện sẵn sàng bất cứ lúc nào Khi có một vấn đề về hệ thống mạng phát sinh, thay vì phải loay hoay tìm thiết bị và mất thời gian đặt hàng, doanh nghiệp có thể kết hợp các tính năng đa dạng trên OPNsense để tạo thành giải pháp hợp lý, khắc phục sự cố ngay lập tức.

- Không kém phần quan trọng đó là khả năng quản lý Tường lửa OPNsense được quản trị một cách dễ dàng, trong sáng qua giao diện web.

Như vậy, tường lửa OPNsense là sự kết hợp hoàn hảo và mạnh mẽ, đem lại sự hợp lý cho các nhà tài chính, và sự tin tưởng cho các nhà quản trị.

Các tính năng chính của OPNsense

Với các tính năng linh hoạt, OPNsense được sử dụng trong nhiều mục đích khác nhau trên thực tế, giá thành triển khai thấp hơn so với những thiết bị cùng loại, hỗ trợ những tính năng cơ bản và nâng cao như VPN, Wirelsess, cân bằng tải…

Các chức năng thường được sử dụng bao gồm:

• Firewall: trạng thái mà bạn vẫn thấy trên các thiết bị tường lửa hoặc router thương mại lớn, chẳng hạn như giao diện người dùng (GUI) trên nền Web tạo sự quản lý một cách dễ dàng Trong khi đó phần mềm miễn phí này còn có nhiều tính năng ấn tượng đối với firewall/router miễn phí, tuy nhiên cũng có một số hạn chế.

• OPNsense hỗ trợ lọc bởi địa chỉ nguồn và địa chỉ đích, cổng nguồn hoặc cổng đích hay địa chỉ IP Nó cũng hỗ trợ chính sách định tuyến và cơ chế hoạt động trong chế độ brigde hoặc transparent, cho phép bạn chỉ cần đặt OPNsense ở giữa các thiết bị mạng mà không cần đòi hỏi việc cấu hình bổ sung OPNsense cung cấp cơ chế NAT và tính năng chuyển tiếp cổng, tuy nhiên ứng dụng này vẫn còn một số hạn chế với Point-to-Point Tunneling Protocol (PPTP), Generic Routing Encapsulation (GRE) và Session Initiation Protocol (SIP) khi sử dụng NAT.

• OPNsense được dựa trên FreeBSD và giao thức Common AddressRedundancy Protocol (CARP) của FreeBSD, cung cấp khả năng dự phòng bằng cách cho phép các quản trị viên nhóm hai hoặc nhiều tường lửa vào một nhóm tự động chuyển

• Vì nó hỗ trợ nhiều kết nối mạng diện rộng (WAN) nên có thể thực hiện việc cân bằng tải Tuy nhiên có một hạn chế với nó ở chỗ chỉ có thể thực hiện cân bằng lưu lượng phân phối giữa hai kết nối WAN và không thể chỉ định được lưu lượng cho qua một kết nối.

Aliases có thể giúp tiết kiệm một khối lượng thời gian nếu sử dụng chúng một cách chính xác Một Aliases ngắn cho phép sử dụng cho một host, cổng hoặc mạng có thể được sử dụng khi tạo các rule trong OPNsense.

Sự dụng Aliases cho phép lưu trữ nhiều mục trong một nơi duy nhất, có nghĩa là không cần phải tạo ra nhiều rule cho nhóm các máy hoặc cổng.

Aliases là tính năng vô cùng hiệu quả của OPNsense Một Aliases có thể định nghĩa được rất nhiều port hoặc một host hoặc nhiều dãy IP

Các Aliases được đặt tên theo danh sách các mạng, máy chủ hoặc cổng có thể được sử dung làm một thực thể bằng cách chọn tên Aliases trong các phần hỗ trợ khác nhau của tường lửa Các Aliases này đặc biệt hữu ích để hôi tụ các quy tắc tường lửa và giảm thiếu các thay đổi Việc sửa đổi rules trở nên dễ dàng hơn.

Hình 2 3: Chức năng Firewal: Aliases

Với tính năng này chúng ta có thể gom nhóm các ports, host hoặc Network(s) khác nhau và đặt cho chúng một cái tên chung để thiết lập những quy tắc được dễ dàng và nhanh chóng hơn Để vào Aliases của OPNsense, ta vào Firewall -> Aliases.

Hình 2 4: Thiết lập Firewall Aliases

Các thành phần trong Aliases:

• Host: tạo nhóm các địa chỉ IP

• Network: tạo nhóm các mạng

• Port: Cho phép gom nhóm các port nhưng không cho phép tạo nhóm các protocol Các protocol được sử dụng trong các rule.

Rule là thành phần cơ bản tổng hợp các hệ thống tường lửa giúp tạo ra các chính sách mạng.

Dựa trên mô hình TCP/IP Theo cấu hình mặc định của OPNsense, các rule cho phép các vùng mạng kết nối với nhau, tuy nhiên việc này không thường gặp trong thực tế do các yêu cầu bảo mật, nhân viên quản trị mạng cần tùy biến các rule cho phù hợp với các chính sách truy cập mạng của doanh nghiệp.

Hình 2 5: Rule mặc định được cấu hình tại card WAN

Chú ý: Trong trường hợp sử dụng NAT port forward thì OPNsense tự động tạo rule phù hợp cho phép kết nối từ mạng WAN đến vùng DMZ.

Các thành phần cơ bản của rule:

- Action: OPNsense có 3 tùy chọn Pass/Block (hủy gói tin)/Reject (gửi cờ RST về phía người dùng);

- Disabled: Tắt hoạt động của rule hiện tại mà không cần xóa;

- TCP/IP version: OPNsense hoạt động với phiên bản Ipv4 và Ipv6;

- Protocol: OPNsense cho phép tùy chọn các giao thức truyền dữ liệu (TCP, UDP, ICMP…) và giao thức định tuyến (OSPF, IGMP);

- Source/Destination (port): Chỉ định các IP nguồn/đích;

- Log: Bật chức năng theo dõi hoạt động của rule hiện tại.

- NAT cho phép kết nối nhiều máy tính ra internet bằng cách sử dụng một địa chỉ IP public OPNsense cho phép những triển khai đơn giản và còn thu hút những yêu cầu cấu hình NAT nâng cao và phức tạp hơn trong mạng với nhiều địa chỉ IP public.

- NAT được cấu hình theo hai hướng: Inbound và outbound NAT outbound định nghĩa cách chuyển đổi lưu lượng đi từ mạng nội bộ ra internet. NAT Inbound đề cập đến lưu lượng đi từ internet vào mạng nội bộ NAT Inbound phổ biến và quen thuộc nhất là port Foward (chuyển tiếp cổng).

- OPNsense cung cấp tính năng Network Address Translation (NAT) và tính năng chuyển tiếp cổng, tuy nhiên ứng dụng này còn một số hạn chế với

Point-to-Point Tunneling Protocol (PPTP), Generic Routing Encapsulation (GRE) và Session Initiation Protocol (SIP) khi sử dụng NAT.

- Trong Firewall bạn cũng có thể cấu hình các thiết lập NAT nếu cần sử dụng cổng chuyển tiếp cho các dịch vụ hoặc cấu hình NAT tĩnh (1:1) cho các host cụ thể Thiết lập mặc định của NAT cho các kết nối Outbound và Automatic/dynamic, tuy nhiên bạn có thể thay đổi kiểu Manual cho phù hợp với yêu cầu.

Các kịch bản MultiWAN thường được sử dụng để chuyển đổi dự phòng hoặc cân bằng tải, nhưng cũng có thể kết hợp với OPNsense.

Hình 2 6: Mô hình mạng kết hợp OPNsense

Chuyển đổi dự phòng WAN tự động chuyển đổi giữa các kết nối WAN trong trường hợp mất kết nối (hoặc độ trễ cao) của ISP chính của bạn Miễn là kết nối không tốt, tất cả lưu lượng sẽ được định tuyến của kết nối ISP / WAN có sẵn tiếp theo và khi kết nối được khôi phục hoàn toàn, thì việc định tuyến sẽ quay trở lại ISP chính.

Cân bằng tải có thể được sử dụng để phân chia tải giữa hai (hoặc nhiều) ISP Điều này giúp tăng tổng băng thông khả dụng hoặc giảm tải cho mỗi ISP. Nguyên tắc rất đơn giản: Mỗi kết nối WAN (cổng) nhận được một phần lưu lượng Lưu lượng có thể được chia đều hoặc có trọng số.

Giải pháp cân bằng tải của OPNSense trên web server

OPNsense hỗ trợ người dùng hai phương pháp cân bằng tải: Gateway và server Cân bằng tải gateway cho phép hệ thống mạng phân bố lưu lượng dữ liệu trên nhiều kết nối WAN Cân bằng tải server cho phép bạn phân bố việc sử dụng tài nguyên từ các máy chủ nội bộ và bảo đảm tính dư thừa cho hệ thống máy chủ phục vụ Phương pháp này thường được sử dụng trong việc cân bằng tải các dịch vụ web, SMTP, DNS hoặc các dịch vụ sử dụng giao thức TCP trong việc truyền dữ liệu.

Trong hệ thống mạng vừa và nhỏ, OPNsense hỗ trợ khá tốt các vấn đề cân bằng tải cho hạ tầng mà không cần đầu tư vào các giải pháp thương mại có chi phí cao như BigIP, Cisco LocalDirector, Citrix NetScaler… Tuy nhiên, OPNsense không thể hỗ trợ những tính năng phức tạp và đòi hỏi hiệu suất cao như các giải pháp cùng chức năng khác Nếu doanh nghiệp cần giải quyết vấn đề cân bằng tải và cân đối chi phí hợp lý thì nên sử dụng kết hợp OPNsense và một hoặc nhiều giải pháp nguồn mở khác (nginx reverse proxy, LBS, Haproxy…) trong vùng DMZ để có kết quả tốt nhất.

Dịch vụ chính chịu trách nhiệm cho quá trình cân bằng tải là relayd, đây là dịch vụ được tác giả tích hợp từ phiên bản 1.2.x HAProxy và Vamish là những plugin được cung cấp từ nhà phát triển thứ ba mà bạn có thể cài đặt với mục đích cải thiện chất lượng của máy chủ OPNsense.

- Cân bằng tải Multi WAN

Gateway load balancing: được dùng khi có nhiều kết nối WAN Client bên trong LAN khi muốn kết nối ra ngoài Internet thì OPNsense lựa chọn card WAN để chuyển packet ra card đó giúp cho việc cân bằng tải cho đường truyền.

Hình 2 8: Sơ đồ mạng có 2 kết nối WAN

Việc kết hợp nhiều đường truyền WAN là một giải pháp thường được dùng trong các môi trường mạng doanh nghiệp vừa và nhỏ nhằm đảm bảo tính sẵn sàng cho doanh nghiệp đồng thời có thể tăng băng thông kết nối Internet

Sau khi cấu hình xong các thông tin IP như mô hình, chúng ta tiến hành cấu hình loadbalacing và failover

Tạo group load balancing, ở load balancing thì độ ưu tiên các đường truyền (Tier) là bằng nhau Trigger Level sẽ là cách thức mà các đường truyền sẽ hoạt động.

Hình 2 9: Cấu hình Gateways Loadbalancer

Tương tự cho việc tạo group interface cho failover Ở trường hợp thứ nhất chúng ta cấu hình cho độ ưu tiên của đường truyền thứ nhất cao hơn đường truyền thứ 2.

Hình 2 10: Cấu hình Failover cho trường hợp 1 Ở trường hợp thứ hai, chúng ta cấu hình cho độ ưu tiên của đường truyền thứ 2 cao hơn đường truyền thứ nhất.

Hình 2 11: Cấu hình Failover cho trường hợp 2

Sau khi chúng ta cấu hình xong, chúng ta sẽ đạt được kết quả như sau:

Hình 2 12: Kết quả sau khi cấu hình Gateway

Sau khi cấu hình xong load blancing và failover, để kiểm tra kết quả và chắc chắn đã cấu hình đúng, bạn vào System >Gateway > Gateway Groups, chúng ta có thể thấy được tình trạng các đường truyền, và mức độ ưu tiên của các đường truyền trong từng trường hợp.

Load balancing là công nghệ để cân bằng tải và tối ưu hóa tốc độ truy cập internet của người dùng Giải pháp Failover cho phép bạn có thể ưu tiên đường truyền nào cho các việc truy cập dịch vụ internet nào, trong trường hợp đường truyền ưu tiên nhất bị trục trặc, nó sẽ chuyển qua sử dụng đường truyền có độ ưu tiên thấp hơn Vì sao phải dùng failover? Vì có những dịch vụ sẽ sử dụng tốt trên đường truyền này, mà không dùng tốt trên đường truyền kia, ngoài ra một số ứng dụng cần xác thực IP (ứng dụng ngân hàng, thanh toán…), các ứng dụng thời gian thực… Với tính năng tối ưu và cân bằng tải của load balancing thì IPWAN có thể thay đổi sẽ làm cho việc truy cập các ứng dụng sẽ bị lỗi.

Hình 2 13: Kết quả cấu hình Firewall Rules

Như hình trên ta có thể thấy, chúng ta cho toàn bộ mạng LAN truy cập thông qua load balancing, nhưng có vài dịch vụ sẽ được truy cập thông qua failover.

Như vậy, trong Chương 2 đồ án đã thực hiện được tìm hiểu về phần mềm OPNsense Đưa ra một số chức năng chính của phần mềm để nói lên OPNsense hoạt động như một thiết bị mạng tổng hợp với đây đủ tính năng và sẵn sàng bất cứ lúc nào OPNsense hỗ trợ rất nhiều plugin để thiết lập thêm các tính năng hữu ích mà người dùng thấy cần thiết Một trong những tính năng của OPNsense cung cấp cho người dùng là giải pháp cân bằng tải Việc xây dựng chi tiết mô hình dịch vụ cân bằng tải cho hệ thống máy chủ Web sử dụng OPNsense sẽ được đồ án thực hiện trong Chương 3.

TRIỂN KHAI THỬ NGHIỆM DỊCH VỤ CÂN BẰNG TẢI CHO HỆ THỐNG MÁY CHỦ WEB SỬ DỤNG OPNSENSE

Mô hình thử nghiệm

Trong OPNsense, với việc thực hiện cấu hình Multiple WAN có vai trò như sau:

- Đảm bảo các thiết bị trong LAN có thể kết nối internet với mức độ sẵn sàng cao nhất.

- Kết hợp tính năng, đảm bảo vai trò của OPNsense như một Load Balancer, cho phép client truy cập vào các dịch vụ cung cấp phía bên trong mạng LAN.

- Khắc phục sự cố khi có lỗi phát sinh xảy ra.

Giải pháp OPNSense giải quyết được các nhu cầu hiện nay như cân bằng tải cho các trang web hoạt động tải cao, đảm bảo cho dịch vụ web hoạt động liên tục ngay cả khi có các sự cố về logical hay vật lý xảy ra.

Hình 3 1: Sơ đồ mô hình thử nghiệm

- Failover là chế độ dự phòng trong những hệ thống mạng, khi những hệ thống chính không hoạt động vì những lí do bất khả kháng (treo máy, hư máy, virus…), hoặc bất kì lần dừng hoạt động theo lịch nào (vì lí do bảo trì).

- Ví dụ ở trường hợp này, một kết nối Wan sẽ bị mất kết nối vì vài lý do lỗi kết nối, lúc này đường Wan2 sẽ ngay lập tức thay thế Wan1 Cơ chế hoạt động sẽ là khi Wan1 mất kết nối, sẽ không thể trả lời các tín hiệu Ping được, lúc này OPNsense sẽ tự động chuyển sang dùng Wan2 Cơ chế này cũng diễn ra khi Wan2 mất kết nối.

- Load Balancer sẽ gộp băng thông 2 đường truyền của bạn thành một để nâng cao tốc độ Lấy ví dụ Wan1 có tốc độ 3MB và Wan2 là 2MB, nó sẽ gộp 2 băng thông lại thành 5MB, giúp tăng tốc và ổn định đường truyền.

- Để bắt đầu cấu hình Failover và Load Balancer, cần tối thiểu 3 card mạng Card mạng thứ nhất dùng để giao tiếp Lan và 2 card dùng cho Wan.

- Setup các thông số như sau:

Cài đặt và thử nghiệm

Bước 1: Cấu hình Network Interface:

Sau khi cài đặt OPNsense, màn hình sẽ hiển thị những interface nào có thể cài đặt.

Hình 3 2: Màn hình sau khi cài đặt OPNense

Chọn interface thứ nhất em0 là WAN1, IP được nhận từ DHCP, interface thứ hai là em1 cho Lan và một interface còn lại là em2, sẽ được đổi sau thành Wan2 Đây là bảng Interface cuối cùng.

Hình 3 3: Sau khi đặt tên cho interface

Hình 3 4: Cấu hình xong Network Interface

Sau khi cấu hình Network interfaces, sử dụng một máy có cùng trong một dải mạng truy cập vào máy server OPNsense để cấu hình cơ bản trên giao diện web.

Hình 3 5: Giao diện web của máy chủ OPNsense

-Đăng nhập với Username: root, Password: opnsense

- Sau khi đăng nhập, sẽ có giao diện như hình

Hình 3 6: Sau khi đăng nhập thành công OPNsense

-Setup ban đầu: Tại màn hình sau khi đăng nhập, nhấn Next

Bước đầu tiên của trình cài đặt được sử dụng để thu thập thêm thông tin như tên máy chủ, tên miền và máy chủ DNS Điều này sẽ cho phép tường lửa OpnSense lấy thông tin DNS từ ISP qua giao diện WAN

Hình 3 7: Thông tin hệ thống OPNsense

Màn hình tiếp theo sẽ nhắc cho các máy chủ NTP Nếu người dùng không có hệ thống NTP riêng, OpnSense sẽ cung cấp một nhóm máy chủ NTP mặc định.

+ Thay đổi Timezone: Asia/Ho_Chi_Minh

Hình 3 8: Máy chủ NTP OPNsense

Màn hình tiếp theo là thiết lập giao diện WAN Hầu hết ISP cho người dùng gia đình sẽ sử dụng DHCP để cung cấp cho khách hàng của họ thông tin cấu hình mạng cần thiết Chỉ cần để Loại được chọn là 'DHCP' sẽ hướng dẫn OpnSense cố gắng thu thập cấu hình bên mạng WAN từ ISP.

Hình 3 9: Cài đặt DHCP OPNsense

+ Cuộn xuống phía dưới màn hình cấu hình WAN để tiếp tục

* Lưu ý: ở dưới cùng của màn hình này là hai quy tắc mặc định để chặn phạm vi mạng mà thường không nên thấy khi đến với giao diện WAN Bạn nên để lại những kiểm tra này trừ khi có một lý do đã biết để cho phép các mạng này thông qua giao diện WAN!

Màn hình tiếp theo là màn hình cấu hình LAN Hầu hết người dùng có thể chỉ cần để mặc định Nhận ra có các phạm vi mạng đặc biệt nên được sử dụng ở đây, thường được gọi là RFC 1918 Đảm bảo để mặc định hoặc chọn một phạm vi mạng từ trong phạm vi RFC1918 để tránh xung đột/ vấn đề!

Hình 3 10: OPNsense cấu hình giao diện LAN

Màn hình cuối cùng trong quá trình cài đặt sẽ hỏi người dùng có muốn cập nhật mật khẩu root hay không Đây là tùy chọn nhưng nếu mật khẩu mạnh không được tạo trong quá trình cài đặt, bây giờ sẽ là thời điểm tốt để khắc phục sự cố!

Sau khi vượt qua tùy chọn thay đổi mật khẩu, OpnSense sẽ yêu cầu người dùng tải lại các cài đặt cấu hình Chỉ cần nhấp vào nút 'Tải lại' và cho OpnSense một giây để làm mới cấu hình và trang hiện tại.

Khi mọi thứ đã xong, OpnSense sẽ chào đón người dùng Để quay lại bảng điều khiển chính, chỉ cần nhấp vào ' Bảng điều khiển' ở góc trên bên trái của cửa sổ trình duyệt web.

Hình 3 11: Bảng điều khiển OPNsense

Nhấn vào “continue to the dashboard” để tiếp tục cấu hình

- Các bước thực hiện cấu hình Multiple WAN cho OPNSense như sau:

Bước 1 Thực hiện cấu hình cho các đường WAN:

Ban đầu sẽ có các card mạng như hình bên dưới:

Hình 3 12: Interfaces của các card mạng hiện có

WAN sử dụng Network Interface theo cơ chế NAT

LAN sử dụng Network Interface theo cơ chế Host-Only

OPT1 sử dụng Network Interface theo cơ chế Bridge.

Nhấp double vào WAN, tại phần Description, ta nhập WAN1 để thực hiện đổi tên cho Network Interface:

Chọn Save để lưu lại cấu hình và chọn Apply Changes để thực hiện áp dụng thay đổi của cấu hình.

Tiếp tục cấu hình cho OPT1, ta chọn Menu Interfaces, chọn OPT1, để thực hiện cấu hình cho Network Interface OPT1 Tại mục General Configuration tại phần Description, ta nhập WAN2 để thực hiện đổi tên cho Network Interface,tiếp tục tích vào ô vuông Enable interface để kích hoạt interface này, tại mụcIPv4 Configuration Type ta chọn DHPC:

Hình 3 13: Cấu hình Network Interfaces cho một card mạng

Sau khi cấu hình, tại Dashboard ta có 3 card mạng như sau:

Hình 3 14: Thông tin 3 card mạng sau khi cấu hình

Sau khi cấu hình trên giao diện Web OPNsense Kiểm tra trên máy áo OPNsense đã nhận đủ 3 card mạng

Hình 3 15: Hiển thị 3 card mạng tại máy OPNsense

Vậy là chúng ta đã cấu hình cơ bản cho 2 WAN, bây giờ sẽ tiếp tục cấu hình LoadBalancer.

3.2.2 Tiến hành cấu hình Load Balancing

- Sử dụng địa chỉ DNS Google 8.8.8.8 để gán vào Monitor của WAN1

- Sử dụng địa chỉ Open DNS 208.67.222.222 để gán vào Monitor của WAN2

Trước khi cấu hình LoadBalancer cho OPNsense, chúng ta cần cấu hình Monitor

IP cho LoadBalancer Bấm vào ‘System’ trên menu và chọn ‘Gateways’

Hình 3 16: Gateways trước khi cấu hình Monitor IP Ở trang ‘Edit gateway’, nhập vào địa chỉ IP cho cả 2 WAN1 và WAN2 Ở WAN1 dùng địa chỉ DNS của Google là 8.8.8.8 Ở WAN2 dùng của DNS là208.67.222.222

Hình 3 17: Add Monitor IP cho WAN1

Hình 3 18: Gán Alert Interval cho WAN1

Thực hiện tương tự đối với WAN2 với Monito IP là 208.67.222.222Sau khi hoàn thành cài đặt

Hình 3 19: Gateways sau khi đã cấu hình Monitor IP

B2: Cấu hình Multi-WAN link Load Balance & Failover Đầu tiên, tạo Gateway Groups bằng việc ta chọn menu System, sau đó chọn Gateway, tiếp tục chọn Gateway Groups, chọn Add để thêm mới một group. Thực hiện điền các thông tin tương tự hình dưới đây:

Hình 3 20: Tạo Gateways group Load balancer Để cấu hình Failover bằng OPNSense, chúng ta cần tạo những Tier khác nhau Di chuyển đến menu ‘System’ và chọn ‘Gateways’ Tại đây chúng ta có thể thấy các Gateways đã được gán cho LoadBalancer, vì vậy hãy tiến hành tạo

2 nhóm khác dành cho Failover.

Chọn ‘Group’ ở dưới System: Gateway Groups Ở đây chúng ta sẽ tạo 2Group, 1 Group cho WAN1 và 1 Group cho WAN2 Nếu WAN1 mất kết nối hệ thống sẽ tự động chuyển sang WAN2, và ngược lại.

Triển khai thử nghiệm

Cách 1: Tạo máy ảo Windows trên VMWare: gắn card mạng Vmnet1 để làm máy Client trong mạng LAN( Server1)

Hình 3 28: Vmware setting của máy Client

Cấu hình địa chỉ IP cho máy client trong mạng LAN

Hình 3 29: Cấu hình địa chỉ IP cho máy Client

Mở trình duyệt web và thực hiện tìm kiếm một trang web bất kỳ

- Kiểm tra khả năng Load Balancing

Hình 3 30: Reporting của OPNsense cho 2 card mạng WAN1 và WAN2

Cách 2: Tương tự như server 1 gắn card mạng Vmnet2 có địa chỉ

Trên server 2 xuất bản một trang Web trên Web-Server theo các bước như sau:

Tạo dữ liệu và nội dung WebSite đặt trên ổ C:

+ Vào My Computer > chọn ổ C > tạo New Folder có tên là: Web

Hình 3 31: Tạo một thư mục web trong ổ c

+ Tạo tập tin Index.html nằm trong thư mục Web có nội dung:

Hình 3 32: Tạo nội dung cho trang web

Mở IIS Manager -> nhấn chuột phải vào Sites ở khung bên trái và chọn Add Web Site

Sau đó tạo website có địa chỉ : 192.168.91.100

Hình 3 34: Nội dung trang web vừa tạo

Ta sẽ tắt máy chủ OPNSense, đổng thời trên máy chủ windows tiến hành cài phần mềm Kali linux để tiến hành tấn công Web dos vào máy chủ Servsr 2 có địa chỉ 192.168.91.100.

Trên Kali linux tiến hành tải 2 file là: webdos-ddoser và webdos- ddoser-master và chạy câu lệnh:

Hình 3 35: Dòng lệnh của kali linux

Sau khi chạy câu lệnh xong ta tiến hành nhập đại chỉ máy

Hình 3 36: Thực hiện tấn công dos

Và cuối cùng nhập 5 chế độ cùng lúc tấn công vào webserver 2

Khi đó trang web của server 2 không thể truy cập được và CPU của server luôn luôn hoạt động trên 50%.

Hình 3 37: CPU và trng web của server 2 khi bị tấn công

Sau đó ta tiến hành bật máy chủ OPNSense lên ta sẽ thấy :

Vào trang web vừa lập ở server 2 đã vào được bình thường và CPU luôn hoạt động dưới 50%.

Hình 3 38: CPU của server 2 khi đã cân bằng tải Điều đó cho thấy rằng OPNSense đã tham gia cân bằng tải cho

- Qua kết quả trên, ta có thể đánh giá một cách trực quan khi sử dụng OPNSense để cân bằng tải cho máy chủ như sau:

+ Thứ nhất tăng khả năng đáp ứng mở rộng, dễ dàng thêm hoặc bớt máy chủ một cách dễ dàng nhằm đáp ứng nhu cầu cần thiết với yêu cầu công việc Trong trường hợp thử nghiệm trên, chúng ta có thể thêm một số máy chủ với cùng dải địa chỉ IP 192.168.91.x hoặc giảm bớt các máy chủ này đi.

+ Thứ hai là tăng cường độ tin cậy, đáp ứng khả năng dự phòng, khi một máy chủ gặp phải sự cố thì hệ thống vẫn được duy trì hoạt động không hề bị giãn đoạn.

+ Thứ ba là chúng ta có thể dễ dàng theo dõi tình trạng của các máy chủ thông qua giao diện khi một máy chủ gặp sự cố.

Ngày đăng: 30/04/2023, 15:00

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

TÀI LIỆU LIÊN QUAN

w