VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

Phần một. giới thiệu
Phần hai. Định cấu hình quy tắc tường lửa và NAT
Một phần ba. Cấu hình DHCP
Phần bốn. thiết lập định tuyến

Lần trước chúng ta đã nói về khả năng của NSX Edge về định tuyến tĩnh và động, còn hôm nay chúng ta sẽ đề cập đến bộ cân bằng tải.
Trước khi chúng ta bắt đầu thiết lập, tôi muốn nhắc bạn ngắn gọn về các kiểu cân bằng chính.

Теория

Tất cả các giải pháp cân bằng tải trọng hiện nay thường được chia thành hai loại: cân bằng ở cấp độ thứ tư (vận chuyển) và thứ bảy (ứng dụng) của mô hình HOẶC NẾU. Mô hình OSI không phải là điểm tham chiếu tốt nhất khi mô tả các phương pháp cân bằng. Ví dụ: nếu bộ cân bằng L4 cũng hỗ trợ chấm dứt TLS thì nó có trở thành bộ cân bằng L7 không? Nhưng đó là những gì nó được.

  • Cân bằng L4 thông thường, đó là proxy trung gian đứng giữa máy khách và một tập hợp các phụ trợ có sẵn, kết thúc các kết nối TCP (nghĩa là phản hồi độc lập với SYN), chọn một phụ trợ và bắt đầu phiên TCP mới theo hướng của nó, gửi SYN độc lập. Loại này là một trong những loại cơ bản; có thể có các lựa chọn khác.
  • Cân bằng L7 phân phối lưu lượng truy cập trên các chương trình phụ trợ có sẵn “tinh vi hơn” so với bộ cân bằng L4. Nó có thể quyết định nên chọn phần phụ trợ nào dựa trên, chẳng hạn như nội dung của thông báo HTTP (URL, cookie, v.v.).

Bất kể loại nào, bộ cân bằng có thể hỗ trợ các chức năng sau:

  • Khám phá dịch vụ là quá trình xác định tập hợp các chương trình phụ trợ có sẵn (Tĩnh, DNS, Consul, Etcd, v.v.).
  • Kiểm tra chức năng của các chương trình phụ trợ được phát hiện (hoạt động “ping” của chương trình phụ trợ bằng yêu cầu HTTP, phát hiện thụ động các sự cố trong kết nối TCP, sự hiện diện của một số mã HTTP 503 trong phản hồi, v.v.).
  • Tự cân bằng (vòng tròn, lựa chọn ngẫu nhiên, hàm băm IP nguồn, URI).
  • Chấm dứt TLS và xác minh chứng chỉ.
  • Các tùy chọn liên quan đến bảo mật (xác thực, ngăn chặn tấn công DoS, giới hạn tốc độ) và nhiều tùy chọn khác.

NSX Edge cung cấp hỗ trợ cho hai chế độ triển khai cân bằng tải:

Chế độ proxy hoặc một tay. Ở chế độ này, NSX Edge sử dụng địa chỉ IP của nó làm địa chỉ nguồn khi gửi yêu cầu đến một trong các chương trình phụ trợ. Do đó, bộ cân bằng thực hiện đồng thời các chức năng của NAT nguồn và NAT đích. Phần phụ trợ xem tất cả lưu lượng truy cập được gửi từ bộ cân bằng và phản hồi trực tiếp với nó. Trong sơ đồ như vậy, bộ cân bằng phải nằm trong cùng phân đoạn mạng với các máy chủ nội bộ.

Đây là cách nó diễn ra:
1. Người dùng gửi yêu cầu đến địa chỉ VIP (địa chỉ cân bằng) được định cấu hình trên Edge.
2. Edge chọn một trong các phần phụ trợ và thực hiện NAT đích, thay thế địa chỉ VIP bằng địa chỉ của phần phụ trợ đã chọn.
3. Edge thực hiện NAT nguồn, thay thế địa chỉ của người dùng đã gửi yêu cầu bằng địa chỉ của chính họ.
4. Gói được gửi đến chương trình phụ trợ đã chọn.
5. Phần phụ trợ không phản hồi trực tiếp với người dùng mà phản hồi với Edge, vì địa chỉ ban đầu của người dùng đã được thay đổi thành địa chỉ của người cân bằng.
6. Edge truyền phản hồi của máy chủ tới người dùng.
Sơ đồ dưới đây.
VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

Chế độ trong suốt hoặc nội tuyến. Trong trường hợp này, bộ cân bằng có giao diện trên mạng bên trong và bên ngoài. Đồng thời, không có quyền truy cập trực tiếp vào mạng nội bộ từ mạng bên ngoài. Bộ cân bằng tải tích hợp hoạt động như một cổng NAT cho các máy ảo trên mạng nội bộ.

Cơ chế như sau:
1. Người dùng gửi yêu cầu đến địa chỉ VIP (địa chỉ cân bằng) được định cấu hình trên Edge.
2. Edge chọn một trong các phần phụ trợ và thực hiện NAT đích, thay thế địa chỉ VIP bằng địa chỉ của phần phụ trợ đã chọn.
3. Gói được gửi đến chương trình phụ trợ đã chọn.
4. Phần phụ trợ nhận được yêu cầu có địa chỉ ban đầu của người dùng (NAT nguồn không được thực hiện) và phản hồi trực tiếp yêu cầu đó.
5. Lưu lượng truy cập lại được bộ cân bằng tải chấp nhận vì trong sơ đồ nội tuyến, nó thường đóng vai trò là cổng mặc định cho cụm máy chủ.
6. Edge thực hiện NAT nguồn để gửi lưu lượng truy cập đến người dùng, sử dụng VIP của nó làm địa chỉ IP nguồn.
Sơ đồ dưới đây.
VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

Tập luyện

Băng thử nghiệm của tôi có 3 máy chủ chạy Apache, được cấu hình để hoạt động qua HTTPS. Edge sẽ thực hiện cân bằng vòng tròn các yêu cầu HTTPS, ủy quyền từng yêu cầu mới đến một máy chủ mới.
Hãy bắt đầu

Tạo chứng chỉ SSL sẽ được NSX Edge sử dụng
Bạn có thể nhập chứng chỉ CA hợp lệ hoặc sử dụng chứng chỉ tự ký. Đối với bài kiểm tra này, tôi sẽ sử dụng chữ ký tự mình.

  1. Trong giao diện vCloud Director bạn vào phần cài đặt dịch vụ Edge.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  2. Chuyển đến tab Chứng chỉ. Từ danh sách hành động, chọn thêm CSR mới.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  3. Điền vào các trường bắt buộc và nhấp vào Giữ.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  4. Chọn CSR mới tạo và chọn tùy chọn tự ký CSR.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  5. Chọn thời hạn hiệu lực của chứng chỉ và nhấp vào Keep
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  6. Chứng chỉ tự ký xuất hiện trong danh sách những chứng chỉ có sẵn.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

Thiết lập hồ sơ ứng dụng
Cấu hình ứng dụng cung cấp cho bạn quyền kiểm soát hoàn toàn hơn đối với lưu lượng mạng và giúp việc quản lý nó trở nên đơn giản và hiệu quả. Chúng có thể được sử dụng để xác định hành vi cho các loại lưu lượng truy cập cụ thể.

  1. Chuyển đến tab Cân bằng tải và bật trình cân bằng. Tùy chọn kích hoạt Tăng tốc ở đây cho phép bộ cân bằng sử dụng cân bằng L4 nhanh hơn thay vì L7.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  2. Chuyển đến tab Hồ sơ ứng dụng để đặt hồ sơ ứng dụng. Nhấp vào +.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  3. Đặt tên của cấu hình và chọn loại lưu lượng truy cập mà cấu hình sẽ được áp dụng. Hãy để tôi giải thích một số thông số.
    Persistence – lưu trữ và theo dõi dữ liệu phiên, ví dụ: máy chủ cụ thể nào trong nhóm đang phục vụ yêu cầu của người dùng. Điều này đảm bảo rằng các yêu cầu của người dùng được định tuyến đến cùng một thành viên nhóm trong suốt thời gian tồn tại của phiên hoặc các phiên tiếp theo.
    Kích hoạt tính năng chuyển qua SSL – Khi tùy chọn này được chọn, NSX Edge sẽ ngừng chấm dứt SSL. Thay vào đó, việc chấm dứt xảy ra trực tiếp trên các máy chủ đang được cân bằng.
    Chèn tiêu đề HTTP X-Forwarded-For – cho phép bạn xác định địa chỉ IP nguồn của máy khách kết nối với máy chủ web thông qua bộ cân bằng tải.
    Kích hoạt SSL bên hồ bơi – cho phép bạn chỉ định rằng nhóm đã chọn bao gồm các máy chủ HTTPS.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  4. Vì tôi sẽ cân bằng lưu lượng HTTPS nên tôi cần bật SSL bên hồ bơi và chọn chứng chỉ đã tạo trước đó trong tab Chứng chỉ máy chủ ảo -> Chứng chỉ dịch vụ.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  5. Tương tự đối với Chứng chỉ nhóm -> Chứng chỉ dịch vụ.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

Chúng tôi tạo ra một nhóm máy chủ, lưu lượng truy cập sẽ được cân bằng.

  1. Chuyển đến tab Nhóm. Nhấp vào +.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  2. Chúng tôi đặt tên nhóm, chọn thuật toán (tôi sẽ sử dụng vòng tròn) và loại giám sát cho chương trình phụ trợ kiểm tra tình trạng. Tùy chọn Minh bạch cho biết liệu IP nguồn ban đầu của máy khách có hiển thị với máy chủ nội bộ hay không.
    • Nếu tùy chọn này bị tắt, lưu lượng truy cập cho máy chủ nội bộ sẽ đến từ IP nguồn của bộ cân bằng.
    • Nếu tùy chọn này được bật, các máy chủ nội bộ sẽ nhìn thấy IP nguồn của máy khách. Trong cấu hình này, NSX Edge phải đóng vai trò là cổng mặc định để đảm bảo các gói được trả về đi qua NSX Edge.

    NSX hỗ trợ các thuật toán cân bằng sau:

    • IP_HASH – lựa chọn máy chủ dựa trên kết quả của hàm băm cho IP nguồn và đích của mỗi gói.
    • LASTCONN – cân bằng các kết nối đến, tùy thuộc vào số lượng đã có sẵn trên một máy chủ cụ thể. Các kết nối mới sẽ được chuyển hướng đến máy chủ có ít kết nối nhất.
    • VÒNG_ROBIN – các kết nối mới lần lượt được gửi đến từng máy chủ, phù hợp với trọng lượng được chỉ định cho nó.
    • URI – phần bên trái của URI (trước dấu chấm hỏi) được băm và chia cho tổng trọng số của máy chủ trong nhóm. Kết quả cho biết máy chủ nào nhận được yêu cầu, đảm bảo rằng yêu cầu luôn được định tuyến đến cùng một máy chủ, miễn là tất cả các máy chủ vẫn khả dụng.
    • TIÊU ĐỀ HTTP – cân bằng dựa trên tiêu đề HTTP cụ thể, có thể được chỉ định làm tham số. Nếu tiêu đề bị thiếu hoặc không có bất kỳ giá trị nào, thuật toán ROUND_ROBIN sẽ được áp dụng.
    • URL – Mỗi yêu cầu HTTP GET tìm kiếm tham số URL được chỉ định làm đối số. Nếu tham số được theo sau bởi dấu bằng và giá trị thì giá trị đó sẽ được băm và chia cho tổng trọng lượng của các máy chủ đang chạy. Kết quả cho biết máy chủ nào nhận được yêu cầu. Quá trình này được sử dụng để theo dõi ID người dùng trong các yêu cầu và đảm bảo rằng cùng một ID người dùng luôn được gửi đến cùng một máy chủ, miễn là tất cả các máy chủ vẫn khả dụng.

    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

  3. Trong khối Thành viên, nhấp vào + để thêm máy chủ vào nhóm.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

    Ở đây bạn cần chỉ ra:

    • tên máy chủ;
    • Địa chỉ IP máy chủ;
    • cổng mà máy chủ sẽ nhận lưu lượng truy cập;
    • cổng kiểm tra sức khỏe (Monitor healthcheck);
    • trọng số – sử dụng tham số này, bạn có thể điều chỉnh lượng lưu lượng truy cập tương ứng nhận được cho một thành viên nhóm cụ thể;
    • Kết nối tối đa – số lượng kết nối tối đa đến máy chủ;
    • Kết nối tối thiểu – số lượng kết nối tối thiểu mà máy chủ phải xử lý trước khi lưu lượng truy cập được chuyển tiếp đến thành viên nhóm tiếp theo.

    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

    Đây là giao diện của nhóm cuối cùng gồm ba máy chủ.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

Thêm máy chủ ảo

  1. Chuyển đến tab Máy chủ ảo. Nhấp vào +.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  2. Chúng tôi kích hoạt máy chủ ảo bằng cách sử dụng Enable Virtual Server.
    Chúng tôi đặt tên cho nó, chọn Hồ sơ ứng dụng, Nhóm đã tạo trước đó và cho biết địa chỉ IP mà Máy chủ ảo sẽ nhận được yêu cầu từ bên ngoài. Chúng tôi chỉ định giao thức HTTPS và cổng 443.
    Các thông số tùy chọn ở đây:
    Giới hạn kết nối – số lượng kết nối đồng thời tối đa mà máy chủ ảo có thể xử lý;
    Giới hạn tốc độ kết nối (CPS) – số lượng yêu cầu mới đến tối đa mỗi giây.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

Việc này hoàn tất việc cấu hình bộ cân bằng; bạn có thể kiểm tra chức năng của nó. Các máy chủ có cấu hình đơn giản cho phép bạn hiểu máy chủ nào trong nhóm đã xử lý yêu cầu. Trong quá trình thiết lập, chúng tôi đã chọn thuật toán cân bằng Round Robin và tham số Trọng lượng cho mỗi máy chủ bằng một, do đó, mỗi yêu cầu tiếp theo sẽ được xử lý bởi máy chủ tiếp theo từ nhóm.
Chúng tôi nhập địa chỉ bên ngoài của bộ cân bằng trong trình duyệt và thấy:
VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

Sau khi làm mới trang, yêu cầu sẽ được xử lý bởi máy chủ sau:
VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

Và một lần nữa - để kiểm tra máy chủ thứ ba từ nhóm:
VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

Khi kiểm tra, bạn có thể thấy rằng chứng chỉ mà Edge gửi cho chúng tôi chính là chứng chỉ mà chúng tôi đã tạo lúc đầu.

Đang kiểm tra trạng thái cân bằng từ bảng điều khiển cổng Edge. Để làm điều này, hãy nhập hiển thị nhóm cân bằng tải dịch vụ.
VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

Định cấu hình Service Monitor để kiểm tra trạng thái của máy chủ trong nhóm
Sử dụng Service Monitor, chúng tôi có thể theo dõi trạng thái của máy chủ trong nhóm phụ trợ. Nếu phản hồi cho một yêu cầu không như mong đợi, máy chủ có thể bị đưa ra khỏi nhóm để không nhận được bất kỳ yêu cầu mới nào.
Theo mặc định, ba phương thức xác minh được định cấu hình:

  • màn hình TCP,
  • màn hình HTTP,
  • Màn hình HTTPS.

Hãy tạo một cái mới.

  1. Chuyển đến tab Giám sát dịch vụ, nhấp vào +.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  2. Chọn:
    • tên cho phương pháp mới;
    • khoảng thời gian mà các yêu cầu sẽ được gửi,
    • hết thời gian chờ phản hồi,
    • loại giám sát – Yêu cầu HTTPS sử dụng phương thức GET, mã trạng thái dự kiến ​​– 200(OK) và URL yêu cầu.
  3. Việc này hoàn tất việc thiết lập Trình giám sát dịch vụ mới; bây giờ chúng ta có thể sử dụng nó khi tạo một nhóm.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

Thiết lập quy tắc ứng dụng

Quy tắc ứng dụng là một cách để thao túng lưu lượng truy cập dựa trên các trình kích hoạt nhất định. Với công cụ này, chúng tôi có thể tạo các quy tắc cân bằng tải nâng cao mà có thể không thực hiện được thông qua Cấu hình ứng dụng hoặc các dịch vụ khác có sẵn trên Edge Gateway.

  1. Để tạo quy tắc, hãy chuyển đến tab Quy tắc ứng dụng của bộ cân bằng.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  2. Chọn tên, tập lệnh sẽ sử dụng quy tắc và nhấp vào Giữ.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  3. Sau khi tạo quy tắc, chúng ta cần chỉnh sửa Máy chủ ảo đã được cấu hình sẵn.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer
  4. Trong tab Nâng cao, thêm quy tắc chúng tôi đã tạo.
    VMware NSX dành cho các bạn nhỏ. Phần 5: Cấu hình Load Balancer

Trong ví dụ trên, chúng tôi đã bật hỗ trợ tlsv1.

Một vài ví dụ nữa:

Chuyển hướng lưu lượng truy cập đến một nhóm khác.
Với tập lệnh này, chúng tôi có thể chuyển hướng lưu lượng truy cập đến một nhóm cân bằng khác nếu nhóm chính bị hỏng. Để quy tắc hoạt động, nhiều nhóm phải được định cấu hình trên bộ cân bằng và tất cả các thành viên của nhóm chính phải ở trạng thái ngừng hoạt động. Bạn cần chỉ định tên của nhóm chứ không phải ID của nhóm.

acl pool_down nbsrv(PRIMARY_POOL_NAME) eq 0
use_backend SECONDARY_POOL_NAME if PRIMARY_POOL_NAME

Chuyển hướng lưu lượng truy cập đến một tài nguyên bên ngoài.
Ở đây chúng tôi chuyển hướng lưu lượng truy cập đến trang web bên ngoài nếu tất cả thành viên của nhóm chính không hoạt động.

acl pool_down nbsrv(NAME_OF_POOL) eq 0
redirect location http://www.example.com if pool_down

Thậm chí nhiều ví dụ hơn đây.

Đối với tôi đó là tất cả về bộ cân bằng. Có thắc mắc gì cứ hỏi, mình sẵn sàng trả lời.

Nguồn: www.habr.com

Thêm một lời nhận xét