Các phương pháp dùng để cân bằng tải

Một phần của tài liệu BÁO cáo đồ án HƯỚNG NGÀNH đề tài tìm HIỂU FIREWALL TRÊN CHECKPOINT (Trang 58)

III. ConnectControl – Server Load Balancing

2. Các phương pháp dùng để cân bằng tải

ConnectControl sẽ điều chỉnh traffic đến các server khác nhau để cân bẳng tải giữa các server theo nhiều cách khác nhau bao gồm những cách sau đây:

Server Load: ConnectControl sẽ đo tải trên từng server để quyết định xem

server nào có khả năng đáp ứng dịch vụ tốt nhất. Mỗi server lúc này sẽ chạy một chương trình dùng để đo độ tải trên server và báo cáo về cho ConnectControl trên CSG.

Round Trip: để chắc rằng những request từ Client sẽ được đáp ứng với thời

gian nhanh nhất. ConnectControl xác định thời gian đáp ứng của các server bằng cách ping các server 3 lần theo mặc định sao đó ConnectControl sẽ lấy tổng thời gian này chia cho 3 để lấy thời gian trung bình, ConnectControl sẽ chọn server nào có thời gian ngắn nhất. ConnectControl sau đó sẽ chuyển các request đến server đó.

Round Robin: ConnectControl sẽ chuyển tiếp các request đến server theo trình

tự, phương pháp round robin sẽ tối ưu việc cân bằng tải giửa các server khi tất cả các server có cùng cấu hình như RAM và CPU và đặt trong dùng một đoạn mạng.

khi tất cả các server có cùng cấu hình như RAM và CPU và đặt trong dùng một đoạn mạng.

Domain: chuyển tiếp các request đến các server dựa theo domain. 3. Cách hoạt động của ConnectControl

3.1 Packet Flow

Khi Client truy cập đến dịch vụ và dịch vụ đó đang được cân bằng tải bởi ConnectControl.

1. Client khởi tạo kết nối đến logical server bằng IP ảo 192.168.1.1

2. Tại security gateway, yêu cầu từ client thỏa mãn logical server rule trong firewall rule base, firewall sao đó sẽ chuyển request của client đến các server.

3. ConnectControl sẽ chuyển request đến server dựa theo phương pháp cân bằng tải đã được cấu hình.

3.2 Các loại logical server

ConnectControl sẽ xử lý các request của Client theo những cách khác nhau tùy theo loại logical server (HTTP, FTP, Mail server…)

3.2.1 HTTP logical server

HTTP logical server là loại server mà ConnectControl chuyên dùng để tiếp nhận các request HTTP từ client và chuyển tiếp đến server. HTTP logical server chỉ tiếp nhận duy nhất các HTTP request, việc chuyển tiếp phải chắc chắn rằng toàn bộ session của Client chỉ trao đổi với cùng một sever.

Cơ chế chuyển đổi HTTP hoạt động trong sự kết hợp của phương pháp cân bằng tải của ConnectControl. Client đầu tiên khởi tạo mởi kết nối đến HTTP logical server. Lúc này ConnectControl sẽ báo cho Client rằng Client sẽ phải nối đến server nào tùy theo phương pháp cân bằng tải đã được cấu hình. Client tiến hành kết nối đến server theo địa chỉ IP của server mà ConnectControl đã báo về cho Client, những kết nối theo sau sẽ chuyển trực tiếp đến server và không cần sự can thiệp của ConnectControl.

3.2.2 Logical server dành cho các dịch vụ khác

Trên CSG cung cấp 2 loại logical server là HTTP logical server và một loại logical server dành cho tất cả các service khác bao gồm cả HTTP mà Check Point gọi là Other Logical Server. Other logical server sử dụng Destination NAT để chuyển kết nối của Client đến các server. Destination NAT sẽ thay đổi destination IP trong request của Client trong lúc đi vào và thay đổi địa chị source IP đi khi ra.

4. Persistent server mode 4.1 Persistent by server 4.1 Persistent by server

Persistent by server là một chức năng hửu ích dành cho HTTP logical server, trong trường hợp có nhiều server và chức năng Persistent by server được bật, lúc này ConnectControl sẽ chuyển kết nối HTTP của client đến một server cố định và những kết nối theo của Client này sẽ được chuyển đến cùng một server để tránh trường mất dữ liệu trong lúc trao đổi giữa server và client trong một session nếu Client được chuyển đến nhiều server trong cùng một session.

4.2 Persistent by service

Persistent by service là một chức năng hửu ích khi ta sử dụng nhiều dịch vụ trong cùng một server group, trong trường hợp ta chạy 2 dịch vụ FTP và HTTP trên cùng một server trong nhóm nhiều server cân bằng tải, sử dụng chức năng persistent by service lúc này cùng một Client nhưng dịch vụ HTTP và FTP sẽ được chuyển đến 2 server khác nhau để giảm tải cho server.

4.3 Persistent server timeout

Persistent server timeout quy định khoảng thời gian mà Client duy trì kết nối đến cùng một server, do đó trong trường hợp server đó xảy ra sự cố Client có thể được chuyển đến server khác thậm chí khi chức năng persistent server mode vẫn đang hoạt động.

4.4 Server Availability

Server Availity là chức năng cho phép CSG sẽ thường xuyên kiểm tra các server trong server group có cịn hoạt động bình thường hay khơng. Người dùng có thể cấu hình lại khoảng thời gian và CSG sẽ ping để kiểm tra server đế chắc rằng server vẫn hoạt động tốt, trong trường hợp CSG không nhận được trã lời từ server thì ConnectControl sẽ không được chuyển đến server nữa.

Đo tải trên server

Load Agent Application là một chương trình của Check Point dùng để đo tải trên server và dựa vào khả năng chịu tải của server lúc nào ConnectControl sẽ chuyển kết nối đến cho server. Load Agent Application là một chương trình nhỏ gọn và dùng giao thức UDP để trao đổi với ConnectControl.

5. Cấu hình ConnectControl

Đề cấu hình ConnectControl, dùng SmartDashboard thực hiện các bước sau đây:

1. Vào ManageNetwork ObjectsNewNodeHost

Lần lượt tạo các Object tương ứng với số Server hiện có mà tham gia vào cân bằng tải.

2. Tiếp tục vào

NewGroupSimple Group.

Tại đây ta tạo một server group gồm cá server sẽ tham gia vào nhóm cân bằng tải. Đặt tên cho server group và lần lượt chọn các server ở cột bên trái và chọn Move để di chuyển server vào group

3. Vào NewLogical Server, tại

bước này ta tạo logical server đại diện cho các server tham gia vào cân bằng tải.

 Chọn loại logical server và server group.

 Có thể bật chức năng Peristent server mode và chọn loại

Persistentcy by Server hay

Persistency by Service

 Chọn phương pháp cân bằng tải.

 Bấm OK để hoàn tất

5. Đối với HTTP Logical Server ta tạo rule cho phép Client kết nối đến các server sao khi đã được redirect bởi logical server

6. Vào PolicyGlobal PropertiesFirewall, bật chức năng Accept ICMP

Request.

7. Từ menu PolicyGlobal Properties ConnectControl. Xem lại các thiết lập

mặc định của ConnectControl.

Server availability: quy định khoảng thời gian mà firewall sẽ ping các server

nếu nó vẫn hoạt động, trong trường hợp server khơng trả lời thì server firewall sẽ quy định số lần ping lại.

Server Persistency: Quy định khoảng thời gian mà kết nối của Client sẽ được

đến cùng một server và sao khoảng thời gian này khì timer sẽ được reset cho kết nối mới

Servers Load Balancing: quy định thời gian mà load measuring agent sẽ báo

cáo đến firewall độ tải của nó và port mà agent sẻ dùng.

IV. Brigde Mode 1. Tổng quan brigde mode 1. Tổng quan brigde mode

Khi triển khai một firewall vào một hệ thống mạng đã có sẵn địi hỏi lúc này phải cấu hình lại một số chức năng hoặc phải cấu hình lại tồn bộ hệ thống. Trong một số mạng có tính phức tạp cao thì địi hỏi lúc này người quản trị phải cấu hình lại hệ thống để tương thích với hệ thống routing đã có sẵn.

Brigde mode hoàn trong suốt đối với tất cả traffic của layer 3 và khi một traffic đi tới firewall, traffic sẽ được chuyển qua bình thường từ interface này sang interface khác mà khơng cần phải quan tâm gì đến vấn đề tại lớp 3. Bride mode hoạt động hoàn toàn tại lớp 2, brigde mode tạo ra một liên kết giữa 2 interface tại lớp 2, bất cứ traffic nào khi đi qua một trong nhiều interface sẽ luôn sao chép qua các interface khác. Lúc nào CSG có thể giám sát traffic bình thường mà khơng cần phải can thiệp vào vấn đề routing.

Hạn chế của brigde mode

 Chỉ hổ trợ từng cặp interface

 Không hổ trợ khi sử dụng trong liên kết nhiều firewall (ClusterXL)

 Hoạt động trên SecurePlatform

2. Cấu hình

Brigde các interface

Sử dụng giao diện WebUI cấu hình như sau:

1. Chọn Network Connection New Brigde

Trước khi tạo một bridge connection thì các interface được bridge khơng được đặt địa chỉ IP.

2. Chọn interface để được Brigde, sau đó chọn Add.

3. Điền vào địa chỉ IP và Netmask sao cho cùng với Subnet hiện tại hoặc có thể điền 0.0.0.0. Bride Mode có thể hoạt động mà không cần địa chỉ IP.

4. Chọn Apply. Sử dụng command line

1. Nhập lệnh sysconfig

2. Chọn NetworkAdd new connectionBridge

3. Chọn 2 interface cần bridge, chú ý hai interface này hiện tại khơng có địa chỉ IP.

4. Bấm phím N để tiếp tục.

5. Điền vào địa chỉ IP và Netmask hoặc để 0.0.0.0

3. Xem Interface được Brigde bằng Command Line

Dùng lệnh brctl show để xem các interface đã được brigde. Lệnh brctl show phải được thực hiện trong mode Expert.

Phần 3 : CoreXL

1. Tổng quan về CoreXL

CoreXL là một công nghệ để tăng khả năng hoạt động của firewall bằng cách tận dụng khả năng cách tận dụng khả năng xử lý của nhiều vi xử lý để xử lý nhiều tiến trình cùng một lúc.

Với cơng nghệ CoreXL thì số vi xử lý sẽ tỉ lệ thuận với khả năng xử lý của firewall, việc tăng khả năng xử lý của firewall chỉ thực hiện trên firewall mà không cần thay đổi bất cứ gì trên hệ thống mạng.

Với cơng nghệ CoreXL thì kernel của firewall sẽ được sao chép tùy vào số lượng của vi xử lý, mỗi kernel hay instance của firewall sẽ được xử lý bởi một vi xử lý.

CoreXL chỉ hổ trợ trên nền SecurePlatform, Nokia và Crossbeam. CoreXL khơng hổ trợ các tính năng sao đây :

 Check Point QoS

 Traffic view in SmartView Monitor

 Firewall-1 GX  Route-based VPN  IP Pool NAT  IPv6  Overlaping NAT  SMTP resource

1.1 Tổng quan về phân phối các vi xử lý

Phần chính trong kiến trúc của CoreXL là Secure Network Distributor (SND). SND trong CoreXL sẽ đãm nhiệm vai trò :

 Xử lý những traffic đi vào các interface

 Phân phối các gói tin khơng được tăng tốc giữa các kernel

Traffic khi đi vào các interface sẽ được chuyển hướng đến một vi xử lý và vi xử lý này chạy một SND. Việc liên kết một interface và một vi xử lý được gọi là

interface’s affinity của vi xử lý đó. Việc gắn kết này sẽ làm cho traffic của interface

được chuyển hướng đến vi xử lý và SND đang chạy trên vi xử lý đó. Ngồi ra, việc thiết lập một kernel hay một tiến trình (process) chạy trên một vi xử lý được gọi là kernel hay process’s affinity của vi xử lý đó.

Mặc định, tất cả các interface sẽ liên kết với các vi xử lý không được gắn kết với kernel của firewall và cũng cùng với SND chạy trên vi xử lý đó. Mặc định sự gắn kết cho tất cả các interface với các vi xử lý là tự động. Sự gắn kết tự động có nghĩa là nếu có Performing Pack thì sự gắn kết của các interface sẽ được reset 60s một lần và cân bằng giữa các vi xử lý. Nếu khơng có Performing Pack thì tất cả các interface sẽ được gắn kết với các vi xử lý không được gắn kết với kernel của firewall. Khi một vi xử lý đã gắn kết với một kernel thì sẽ khơng gắn kết với một interface nào khác điều này đảm bảo cho CoreXL hoạt động hiệu quả nhất.

1.2 Cấu hình mặc định của CoreXL

Trong cấu hình mặc định của CoreXL thì số lượng kernel sẽ tuân theo bảng sau đây:

Cấu hình mặc định

1.3 Xem cấu hình mặc định của CoreXL

Có thể xem được sự gắn kết của tất cả các interface, kernel của firewall với các vi xử lý bằng lệnh fw ctl affinity –l –a .

Có thể xem chi tiết các kernel và sự gắn kết của nó bằng lệnh fw ctl multik stat. Nếu Perfoming Pack đang hoạt động thì lúc đó ta xem bằng lệnh sim affinity –l

2. Phân phối lại các vi xử lý

2.1 Phân phối thêm một vi xử lý cho SND

Theo cấu hình mặc định của CoreXL thì tất cả các interface sẽ được gắn kết với các vi xử lý cịn lại khơng gắn kết với kernel của firewall. Tuy nhiên trong một số trường hợp điều này là không tối ưu và sẽ làm cho SND hoạt động chậm, làm chậm khả năng xử lý traffic tại đầu vào. Do firewall có đủ vi xử lý để phân phối thêm cho một SND và giảm đi một vi xử lý cho một kernel.

Để kiểm tra liệu SND có đang làm chậm traffic hay không ta thực hiện các bước sau: 1. Xác định vi xử lý nào hiện đang gắn kết với các interface : fw ctl affinity –l –r 2. Khi firewall trong tình trạng đang tải nặng, dùng lệnh top và kiểm tra giá trị

idle trên các vi xử lý.

1. Firewall có ít nhất 8 vi xử lý

2. Giá trị idle hiện tại của vi xử lý đang chạy SND từ 0%-5%.

3. Tổng giá trị các idle của các vi xử lý đang gắn kết với kernel lớn hơn 100%. Nếu khi không thoả các điều kiện ở trên thì cấu thì theo cấu hình mặc định thì một vi xử lý chạt SND là hiệu quả nhất và khơng cần phải cấu hình thay đổi bất cứ gì.

Để phân phối thêm một vi xử lý cho SND ta tiến hành theo các bước sau : 1. Giảm số lượng kernel của firewall bằng công cụ cpconfig 2. Phân phối vi xử lý còn lại cho SND

3. Reboot lại firewall để cập nhật cấu hình mới

2.2 Giảm số lượng instance

Để giảm số lượng kernel của ta thực hiện các bước sau :

Ngồi ra có thể dùng cơng cụ cpconfig : 1. Chạy lệnh cpconfig

2. Chọn mục Cofigure Check Point CoreXL

3. Nếu chức năng CoreXL đã được bật, chọn mục Change the number of firewall instances và thiết lập số instance

Nếu chức năng CoreXL chưa bật, bật chức năng CoreXL và chọn mục

Change the number of firewall instances

4. Reboot lại firewall

2.3 Phân phối vi xử lý cịn lại cho SND

2.3.1 Trong trường hợp có Performance Pack

Khi có Performance Pack, sự gắn kết giữa các interface và vi xử lý sẽ được thực hiện bằng lệnh sim affinity

Theo mặc định thì lệnh sim affinity sẽ được tự động, điền này có nghĩa là nếu Performance Pack chạy ở chế độ tự động thì sự gắn kết giửa các interface là vi xử lý còn lại sẽ được tự động bởi Performance Pack.

Trong hầu hết các trường hợp thì khơng cần phải thay đổi thiết lập sim affinity.

2.3.2 Trong trường hợp khơng có Performance Pack

Khi khơng có Performance Pack thì sự gắn kết giữa interface và vi xử lý sẽ được lấy từ file cấu hình tên là fwafinity.conf trong lúc boot, file này được lưu giử trong thư

mục $FWDIR/conf.

Trong file text này, kí tự i ở dịng đầu tiên đại điện cho sự liên kết giửa các interface

và vi xử lý. Nếu có Performance Pack thì dịng này sẽ được bỏ qua.

Nếu firewall chỉ có một vi xử lý chạy SND thì lúc này cách tốt nhất là để vi xử lý đó gắn kết với các interface với chế độ tự động mặc định, lúc này file cấu hình fwaffinity.conf sẽ có dạng như sau :

Nếu muốn cấu hình cho 2 vi xử lý chạy SND thì lúc này ta cần phải chỉ rỏ interface nào sẽ được gắn kết với vi xử lý nào trong trường hợp firewall có nhiều interface. Để thiết lập sự gắn kết giữa các interface khi Performance Pack không hoạt động ta làm như sau :

1. Thiết lập sự gắn kết giữa các interface và vi xử lý bằng cách chỉnh lại file cấu hình fwaffinity.conf. Mỗi dịng trong file này điều được bắt đầu bằng kí tự i và theo cú pháp sau đây :

i <interface name> <cpuid>

với :

interfacename: tên của interface, ví dụ eth0, eth1…

cpuid: số thứ tự của vi xử lý

Một phần của tài liệu BÁO cáo đồ án HƯỚNG NGÀNH đề tài tìm HIỂU FIREWALL TRÊN CHECKPOINT (Trang 58)

Tải bản đầy đủ (PDF)

(85 trang)