1. Trang chủ
  2. » Giáo Dục - Đào Tạo

đề án high availability cluster

64 5 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 đề High Availability Cluster
Tác giả Bùi Nam Hải, Trương Minh Khôi
Người hướng dẫn Thầy Lê Mạnh Hải
Trường học Trường Đại Học
Chuyên ngành Công Nghệ Thông Tin
Thể loại đề án
Năm xuất bản 2011
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 64
Dung lượng 1,64 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (6)
    • 1.1. Đặt vấn đề (6)
    • 1.2. Nhiệm vụ của đề tài (6)
    • 1.3. Cấu trúc đề tài (6)
  • CHƯƠNG 2: KHÁI QUÁT VỀ CLUSTER (6)
    • 2.1 Khái niệm về Cluster (7)
    • 2.2 Các ưu điểm của hệ thống Cluster (8)
    • 2.3 Các mô hình Cluster (8)
      • 2.3.1 High Availability Cluster (8)
      • 2.3.2 High Performance Cluster (26)
      • 2.3.3 Khác biệt của High Availability Cluster và High Performance Cluster.29 (29)
    • 2.4 Ảo hóa Cluster (29)
      • 2.4.1 Các thành phần của trong ảo hóa Cluster (30)
      • 2.4.2 Ưu điểm của ảo hóa Cluster (30)
      • 2.4.3 Khuyết điểm của ảo hóa Cluster (30)
      • 2.4.4 Ý tưởng xây dựng ảo hóa Cluster (31)
  • CHƯƠNG 3: TRIỂN KHAI MÔ HÌNH THỰC NGHIỆM (7)
    • 3.1 Mô hình thực nghiệm (32)
    • 3.2 Cấu hình (32)
      • 3.2.1 Xây dựng máy chủ chia tải giữa các máy chủ Web (32)
      • 3.2.2 Xây dựng máy chủ dự phòng cho việc chia tải giữa các máy chủ Web. .35 (0)
      • 3.2.3 Xây dựng máy chủ chia tải cho các máy chủ MySQL (36)
      • 3.2.4 Xây dựng đồng bộ dữ liệu giữa các máy chủ Web (37)
      • 3.2.5 Xây dựng đồng bộ dữ liệu giữa các máy chủ MySQL (38)
      • 3.2.6 Xây dựng Firewall bảo vệ hệ thống (45)
  • CHƯƠNG 4: NHỮNG VẤN ĐỀ ĐẠT ĐƯỢC, KẾT QUẢ, HẠN CHẾ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI (53)
    • 4.1 Những vấn đề đạt được (53)
    • 4.2 Kết quả quá trình triển khai mô hình thực tiễn (54)
    • 4.3 Hạn chế (63)
    • 4.4 Hướng phát triển (63)
  • TÀI LIỆU THAM KHẢO (64)

Nội dung

TỔNG QUAN

Đặt vấn đề

Công nghệ Clustering là phương pháp kết hợp nhiều máy chủ vật lý thành một máy chủ ảo, nhằm tối ưu hóa hiệu suất và tính sẵn sàng của hệ thống Trong bài viết này, chúng tôi tập trung vào các phương pháp đảm bảo cân bằng tải giữa các máy chủ Web và máy chủ cơ sở dữ liệu, đồng thời duy trì tính đồng nhất dữ liệu giữa các máy chủ để nâng cao hiệu quả hoạt động.

Nhiệm vụ của đề tài

Xây dựng một hệ thống máy chủ Web đa người dùng với khả năng tự động chia tải và tính sẵn sàng cao là rất quan trọng để đảm bảo sự đồng nhất dữ liệu giữa các máy chủ Để thực hiện điều này, cần thiết lập 3 máy chủ phân chia tải, 2 máy chủ Web, 2 máy chủ MySQL và 2 Firewall nhằm tối ưu hóa hiệu suất và bảo mật cho hệ thống.

Các công việc cần thực hiện:

 Xây dựng máy chủ chia tải giữa các máy chủ Web.

 Xây dựng máy chủ chia tải giữa các máy chủ MySQL.

 Xây dựng máy chủ dự phòng cho việc chia tải giữa các máy chủ Web.

 Xây dựng đồng bộ dữ liệu giữa các máy chủ Web.

 Xây dựng đồng bộ dữ liệu giữa các máy chủ MySQL.

 Xây dựng Firewall để bảo vệ hệ thống.

Cấu trúc đề tài

Chương 1: Tổng quan về đề tài

Trình bày tổng quan về đề tài “Triển khai hệ thống High Availability Cluster trên hệ điều hành Ubuntu 10.04”, nhiệm vụ và cấu trúc của đề tài.

KHÁI QUÁT VỀ CLUSTER

Khái niệm về Cluster

Cluster là tập hợp các máy tính kết nối qua mạng LAN, hoạt động đồng bộ như một hệ thống duy nhất Việc sử dụng Cluster giúp nâng cao khả năng xử lý và độ sẵn sàng của hệ thống, mang lại hiệu quả vượt trội so với việc sử dụng một máy đơn có cùng tốc độ.

Các ưu điểm của hệ thống Cluster

Cung cấp tính sẵn sàng cao:

 Luôn sẵn sàng cho các ứng dụng và các dịch vụ ngay cả khi phần cứng hay phần mềm của một máy chủ bị lỗi

Dễ dàng gia tăng khả năng xử lý:

 Khi các máy chủ vượt quá khả năng xử lý, ta có thể dễ dàng thêm node vào Cluster để đáp ứng nhu cầu xử lý.

Cung cấp sự dễ dàng trong quản lý:

 Ta có thể dùng các công cụ quản trị Cluster để quản lý một Cluster như là quản lý một máy đơn.

 Có thể chuyển đổi lượng công việc giữa các máy chủ hay đặt máy chủ ở trạng thái không hoạt động cho kế hoạch bảo trì.

 Có thể giám sát trạng thái của Cluster, tất cả các node và tài nguyên từ bất kỳ nơi nào trong mạng

Các mô hình Cluster

Failover Cluster đảm bảo tính sẵn sàng cho các dịch vụ bằng cách tự động chuyển các yêu cầu từ một node Cluster sang một node khác khi node hiện tại gặp sự cố.

Mô hình này thường bao gồm hai node, trong đó một node hoạt động và node còn lại ở trạng thái chờ Khi node đang hoạt động gặp sự cố, node chờ sẽ tự động tiếp nhận các yêu cầu Các ứng dụng hỗ trợ tính năng Failover bao gồm Heartbeat và High-availability Service Management trong Red Hat Cluster Suite.

Các yêu cầu khi cấu hình một hệ thống High Availability Cluster:

Mặc dù có nhiều sự khác nhau giữa các mô hình High Availability nhưng sau đây là các yêu cầu cấu hình chung

 Dễ dàng khởi động và tắt chương trình quản lý Cluster: việc này có thể làm bằng tay hoặc thông qua một chương trình khác

 Sự sẵn sàng của hệ thống lưu trữ.

Khả năng lưu trữ trạng thái là yếu tố quan trọng, đảm bảo rằng trạng thái cuối cùng của node được ghi lại Điều này giúp hệ thống có thể hoạt động trở lại ngay lập tức sau khi xảy ra sự cố.

Từ phiên bản 2.1.4 trở về trước, Heartbeat là tên gọi của dự án High Availability Cluster trên nền tảng Linux Tuy nhiên, từ phiên bản 2.1.4 trở đi, dự án này đã được đổi tên thành Linux-HA, trong đó Heartbeat trở thành một thành phần quan trọng, đảm nhiệm vai trò thông báo và truyền tải thông tin giữa các máy trạm trong cụm.

Heartbeat là một chương trình giúp máy trạm nhận biết sự hiện diện hoặc biến mất của các tiến trình mà nó quản lý trên các máy Chương trình này cũng hỗ trợ việc trao đổi thông tin giữa các máy trạm một cách dễ dàng và hiệu quả.

Linux-HA gồm 4 thành phần chính:

DRBD là thành phần phụ dùng để đồng bộ ổ đĩa giữa các máy Để tăng cường tính hữu ích cho người dùng, Heartbeat cần được kết hợp với phần mềm quản lý tài nguyên Cluster như Pacemaker, có nhiệm vụ khởi động và dừng các dịch vụ như địa chỉ IP và máy chủ Web, nhằm đảm bảo tính sẵn sàng cao cho Cluster Pacemaker là phần mềm quản lý tài nguyên Cluster được Heartbeat khuyến nghị sử dụng.

 Communication module: cung cấp việc chứng thực và gửi thông tin giữa các máy trạm (chủ yếu là bằng UDP trên nền IPv4).

 Cluster Consensus Membership: Giúp cho các node có cùng là thành viên của một nhóm có thể giao tiếp được với nhau.

 Cluster Plumbing Library: một bộ thư viện cung cấp nhiều tính năng hữu ích như: quản lý bộ nhớ, trigger, quản lý theo thời gian thực…

 IPC Library: một bộ thư viện giúp giao tiếp giữa các tiến trình với nhau.

 Non-blocking logging daemon: là một chương trình ghi nhật ký của Heartbeat tên là logd.

Là một Cluster Resource Manager, thực hiện việc quản lý tài nguyên trên Cluster, cho phép ra lệnh tắt, mở, đóng hoặc xem hiện trạng của một tài nguyên.

Hình 2.3.1.1.2 Mô hình Pacemaker 2.3.1.2 Load balancing Cluster

Load balancing Cluster là một tập hợp các máy tính liên kết với nhau, thực hiện các nhiệm vụ tương tự để phân chia công việc, từ đó nâng cao độ sẵn sàng của hệ thống.

Load balancing là một phần quan trọng của High Availability Cluster, thường được áp dụng trong các tổ chức như ngân hàng, công ty thương mại điện tử và nhà cung cấp game trực tuyến Những tổ chức này phải xử lý một lượng lớn yêu cầu từ khách hàng, và bất kỳ sự chậm trễ nào trong việc cung cấp dịch vụ đều có thể gây ra tổn thất nghiêm trọng Do đó, việc hỏng hóc thiết bị hoặc lỗi phần mềm không được phép xảy ra, vì một máy đơn lẻ không thể đáp ứng đủ nhu cầu của khách hàng.

Load balancing là một giải pháp quan trọng giúp duy trì tính sẵn sàng của hệ thống bằng cách phân phối công việc xử lý và các yêu cầu từ khách hàng cho tất cả các node trong Cluster Khi một node gặp sự cố, hệ thống tự động chuyển giao các công việc của node đó cho các node còn lại, đảm bảo hoạt động liên tục và hiệu quả.

Một trong những lợi ích nổi bật của cụm cân bằng tải (Load balancing Cluster) là khả năng chống chịu hiệu quả trước các cuộc tấn công từ chối dịch vụ (DoS) Các cuộc tấn công DoS thường tạo ra một số lượng lớn yêu cầu giả mạo, dẫn đến tình trạng quá tải hệ thống hoặc làm tắc nghẽn băng thông, từ đó ảnh hưởng đến hiệu suất hoạt động của dịch vụ.

Khi hệ thống gần đến giới hạn tải, việc thêm một node mới sẽ không giúp tăng khả năng xử lý của hệ thống.

Mặc dù Load balancing Cluster mang lại nhiều lợi ích, nhưng nhược điểm lớn nhất chính là chi phí đầu tư cho thiết bị Một số người xem đây là một bất lợi, trong khi những người khác lại cho rằng đối với các công ty lớn, chi phí này không đáng kể so với tổn thất do dịch vụ bị gián đoạn.

Linux Virtual Server (LVS) là một dự án được khởi xướng bởi Wensong Zhang.

LVS là một ứng dụng quan trọng của Load balancing Cluster, với phần mềm IPVS được cài đặt trên máy Load balancer Load balancer hoạt động như một switch lớp 4, thực hiện vai trò của một router Khi máy trạm gửi yêu cầu dịch vụ đến Load balancer qua một IP ảo, Load balancer sẽ chuyển tiếp yêu cầu đó tới các máy chủ thực.

 Các mô hình của LVS

 Virtual Server thông qua Direct Routing

Lưu ý: Các máy chủ thật cùng đặt trên một mạng vật lý

Khi người dùng truy cập dịch vụ, gói tin yêu cầu sẽ được gửi đến địa chỉ IP ảo của Load balancer, đại diện cho Cluster và nằm ở card mạng kết nối với mạng ngoài của Load balancer.

Load balancer nhận gói tin yêu cầu và kiểm tra địa chỉ đích cùng port đích Nếu cả hai trùng khớp với bảng rule, nó sẽ chọn một máy chủ thật để phục vụ yêu cầu dựa trên thuật toán Scheduling Kết nối này sau đó được thêm vào bảng hash để quản lý các kết nối mở Trước khi chuyển gói tin đến máy chủ thật, Load balancer sẽ thay đổi địa chỉ MAC trong gói tin thành địa chỉ MAC của máy chủ thật, do đó, Load balancer và máy chủ thật cần phải nằm trong cùng một mạng vật lý.

Mô hình quá trình đóng gói trong Direct Routing

 Virtual Server thông qua IP Tunneling

TRIỂN KHAI MÔ HÌNH THỰC NGHIỆM

Mô hình thực nghiệm

Hình 3.2.1 Mô hình thực nghiệm

Cấu hình

3.2.1 Xây dựng máy chủ chia tải giữa các máy chủ Web

Các phần mềm cần cài đặt: Ldirectord, Pacemaker

 Bật chức năng packer forwarding trong file /etc/sysctl.conf trên load 1

# Enables packet forwarding net.ipv4.ip_forward = 1

 Kiểm tra lại bằng câu lệnh

Kết quả sẽ hiển thị là : net.ipv4.ip_forward = 1

To configure the load balancer, edit the ldirectord.cf file located in the /etc/ha.d/ directory Set the parameters as follows: checktimeout, checkinterval to 2, autoreload to no, and specify the logfile as "/var/log/ldirectord.log" Enable quiescent mode and define the virtual IP address as 2.168.192.168:80, with real servers at 2.168.192.21:80 and 2.168.192.22:80, using the gate option For fallback, use 7.0.0.1:80 Specify the service as http, set the monitor file to "/var/log/monitor.log", and configure the request to "a.html" with the expected response "Welcome" Utilize round-robin scheduling, TCP protocol, and set the check type to connect on the designated check port.

To configure high availability in your system, edit the ha.cf file located in the /etc/ha.d/ directory Set the parameters for crm respawn, logfile at /var/log/ha-log, and maintain a keepalive interval of 2 seconds, with a deadtime of 10 seconds, warntime of 10 seconds, and initdead of 20 seconds Use UDP port 694 for communication, specifying unicast over eth1 with the IP address 192.168.192.12 Additionally, include the nodes load1.dyndns.org and load2.dyndns.org, and ensure the hacluster user can respawn the ipfail process located at /usr/lib/heartbeat/ipfail, with the necessary authentication settings for gid=haclient and uid=hacluster.

 cấu hình xác thực giữa 2 load auth 3

 Xác định quyền cho file authkeys

To enable the Heartbeat service and disable the Ldirectord service, use the command to start Heartbeat with a priority of 75 for runlevels 2, 3, 4, and 5, while ensuring it stops at runlevels 0, 1, and 6 Additionally, remove Ldirectord from the startup configuration to prevent it from running, as it relies on Heartbeat.

To configure Pacemaker for managing the Heartbeat process, set up the primitive for IP address monitoring using the command `ocf:heartbeat:IPaddr2` with parameters such as `ip="192.168.192.168"`, `lvs_support="true"`, and a monitoring interval of 30 seconds and timeout of 20 seconds Additionally, configure the `ip-eth1` primitive with the same IP but specify `nic="eth1"` and `cidr_netmask="32"` Implement the `ldirectord` primitive for load balancing with a monitoring interval of 20 seconds and a timeout of 10 seconds Create a clone resource `c-ip-eth1` for the `ip-eth1` and ensure proper interleaving and colocation with the `eth1-never-lvs` constraint to maintain system integrity.

Các phần mềm cần cài đặt: Ldirectord, Pacemaker

 Bật chức năng packer forwarding trong file /etc/sysctl.conf trên load 2

# Enables packet forwarding net.ipv4.ip_forward = 1

To configure the ldirectord.cf file located in the /etc/ha.d/ directory, set the parameters as follows: checktimeout and checkinterval to 2, autoreload to no, and specify the logfile as "/var/log/ldirectord.log." Enable quiescent mode and define the virtual IP as 2.168.192.168:80, with real servers at 2.168.192.21:80 and 2.168.192.22:80, using a fallback option of 7.0.0.1:80 Specify the service as HTTP, with a monitor file located at "/var/log/monitor.log," and configure the request to "a.html" with an expected response of "Welcome." Use a round-robin scheduler, TCP protocol, and set the checktype to connect along with the appropriate checkport.

To configure the HA (High Availability) cluster, edit the ha.cf file located in the /etc/ha.d/ directory Set parameters such as "crm respawn" for automatic recovery, specify the logfile path as /var/log/ha-log, and configure keepalive settings with values like 2 for keepalive, 10 for deadtime, and 10 for warntime, while initializing deadtime to 20 Use UDP port 694 for communication and define unicast settings with eth1 and the IP address 192.168.192.11, along with the nodes load1.dyndns.org and load2.dyndns.org Ensure to respawn the hacluster process with the command /usr/lib/heartbeat/ipfail and implement API authentication with the parameters gid=haclient and uid=hacluster.

 cấu hình xác thực giữa 2 load auth 3

 Xác định quyền cho file authkeys

To configure the Heartbeat service, enable its operational modes while disabling Ldirectord, as it relies on Heartbeat Use the command `update-rc.d heartbeat start 75 2 3 4 5 stop 05 0 1 6 ` to set Heartbeat's run levels Additionally, remove Ldirectord with the command `update-rc.d –f ldirectord remove`.

3.2.3 Xây dựng máy chủ chia tải cho các máy chủ MySQL

Các phần mềm cần cài đặt: Ldirectord

 Bật chức năng packer forwarding trong file /etc/sysctl.conf trên loadlan

# Enables packet forwarding net.ipv4.ip_forward = 1

To configure the ldirectord.cf file located in the /etc/ha.d/ directory, set the checktimeout and checkinterval to 2, disable autoreload, and specify the logfile path as "/var/log/ldirectord.log" with quiescent mode enabled Define the virtual IP address as 2.168.46.168:3306, with real servers at 2.168.46.31:3306 and 2.168.46.32:3306, both using a gate of 10 The service is set to MySQL, employing a round-robin scheduler and TCP protocol For health checks, use the negotiate checktype, with the login credentials as "test1" and password "123456," targeting the database "dailocphat_mysql" and executing the request "SELECT * FROM jos_menu." Additionally, configure the monitor file at "/var/log/monitor.log."

3.2.4 Xây dựng đồng bộ dữ liệu giữa các máy chủ Web

 Cấu hình sao lưu dữ liệu từ máy chủ Web1 sang máy chủ Web2 :

Phần mềm cần cài đặt: Rsync, ssh-keygen, ssh-copy-id, crontab

 Cấu hình kết nối ssh khi đăng nhập không cần điền username và password:

 Cấu hình sao lưu dữ liệu từ Web1 đến Web2:

Sau đó thêm vào dòng sau

0,10,20,30,40,50 * * * * rsync –avzu delete /var/www/ root@web2:/var/www/

>> /var/log/crontab.log && date >>/var/log/crontab.log

 Cấu hình sao lưu dữ liệu từ máy chủ Web2 sang máy chủ Web1 :

Phần mềm cần sử dụng: Rsync, ssh-keygen, ssh-copy-id, crontab

 Cấu hình kết nối ssh không cần điền username và password:

 Cấu hình sao lưu dữ liệu từ Web2 đến Web1:

Sau đó thêm vào dòng sau

5,15,25,35,45,55 * * * * rsync –avzu delete /var/www/ root@web1:/var/www/

>> /var/log/crontab.log && date >> /var/log/crontab.log

3.2.5 Xây dựng đồng bộ dữ liệu giữa các máy chủ MySQL

Phần mềm cần sử dụng: mysql-server, mysql-client

 Sao lưu dữ liệu từ Data1 đến Data2, Data1 là master- Data2 là slave

 Tạo user trên data1 để data2 sử dụng trong quá trình sao chép. mysql> create user ‘slave1’@’%’ identified by ‘123456’; mysql> grant replication slave on *.* to ‘slave1’@’%’;

 Chỉnh sửa file cấu hình mysql (my.conf) trên Data1 server-id = 1

Log_bin = /var/log/mysql/mysql-bin.log

Binlog_do_db = dailocphat_mysql

Trong đó server-id : là số định danh của máy

Log_bin: đường dẫn đến file log.

Binlog_do_db : database sẽ dùng để sao chép.

To configure the MySQL file (my.conf) on the Data2 server, set the server ID to 2 and specify the master host as 192.168.46.31 Use 'slave1' as the master user with the password '123456' and set the master port to 3306 Additionally, configure the master connection retry interval to 60 seconds and replicate the database 'dailocphat_mysql' Finally, designate the report host as Data2.

 Kiểm tra trên Data1 mysql> show master status;

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

Lưu lại thông số của File và Position (trong trường hợp này là mysql-bin.000283 và 106)

 Kiểm tra trên Data2 mysql> slave stop; mysql> change master to

>master_log_file=’ mysql-bin.000283’,

>master_log_pos=’106’; mysql> slave start; mysql> show slave status\G;

Slave_IO_State : Waiting for master to send event

Master_Log_File : mysql-bin.000283

Relay_Log_File : data2-relay-bin.000382

Relay_Master_Log_File : mysql-bin.000283

Replicate_Do_DB : dailocphat_mysql

Master_SSL_Verify_Máy chủ_Cert: No

Hiện ra như vậy là thành công.

 Sao lưu dữ liệu từ Data2 đến Data1, Data2 là master- Data1 là slave mysql> create user ‘slave2’@’%’ identified by ‘123456’; mysql> grant replication slave on *.* to ‘slave2’@’%’;

 Chỉnh sửa file cấu hình mysql (my.conf) trên Data2 server-id = 2

Log_bin = /var/log/mysql/mysql-bin.log

Binlog_do_db = dailocphat_mysql

Trong đó server-id : là số định danh của máy

Log_bin: đường dẫn đến file log.

Binlog_do_db : database sẽ dùng để sao chép.

To configure the MySQL settings on the Data1 server, edit the my.conf file with the following parameters: set the server ID to 1, specify the master host as 192.168.46.31, and use the master user 'slave2' with the password '123456' on port 3306 Additionally, configure the master connection retry interval to 60 seconds, replicate the database 'dailocphat_mysql', and designate the report host as 'data1'.

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

Lưu lại thông số của File và Position (trong trường hợp này là mysql-bin.000283 và 106)

>master_log_file=’ mysql-bin.000283’,

>master_log_pos=’106’; mysql> slave start; mysql> show slave status\G;

Slave_IO_State : Waiting for master to send event

Master_Log_File : mysql-bin.000283

Relay_Log_File : data1-relay-bin.000382

Relay_Master_Log_File : mysql-bin.000283

Replicate_Do_DB : dailocphat_mysql

Master_SSL_Verify_Máy chủ_Cert: No

Hiện ra như vậy là thành công.

3.2.6 Xây dựng Firewall bảo vệ hệ thống

Tạo file fwngoai như sau:

ETHOUT=eth1 external_ip2.168.157.157 webserver_ip2.168.192.168

UDP_LIMIT_BURST 00 echo "Khoi dong cac module\n" modprobe iptable_nat echo "Cho phep forward ip\n" echo 1 > /proc/sys/net/ipv4/ip_forward echo "Thiet lap policy\n" iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD ACCEPT echo "Nat masquerade\n" iptables -t nat -A POSTROUTING -o $ETHOUT -j MASQUERADE echo "Publish web server\n" iptables -t nat -A PREROUTING -p tcp -i $ETHOUT -d $external_ip dport 80 sport 1024:65535 -j DNAT to $webserver_ip:80 echo "Huy cac goi co dia chi bat thuong\n" iptables -A FORWARD -i $ETHOUT -s 10.0.0.0/8 -j DROP iptables -A FORWARD -i $ETHOUT -s 169.254.0.0/16 -j DROP iptables -A FORWARD -i $ETHOUT -s 172.16.0.0/12 -j DROP iptables -A FORWARD -i $ETHOUT -s 127.0.0.0/8 -j DROP iptables -A FORWARD -i $ETHOUT -s 224.0.0.0/4 -j DROP iptables -A FORWARD -i $ETHIN -d 224.0.0.0/4 -j DROP iptables -A FORWARD -i $ETHOUT -s 240.0.0.0/5 -j DROP iptables -A FORWARD -i $ETHIN -d 240.0.0.0/5 -j DROP iptables -A FORWARD -i $ETHOUT -s 0.0.0.0/8 -j DROP iptables -A FORWARD -i $ETHIN -d 0.0.0.0/8 -j DROP iptables -A FORWARD -i $ETHIN -d 239.255.255.0/24 -j DROP iptables -A FORWARD -i $ETHIN -d 255.255.255.255 -j DROP echo "Chong bogus packet\n" iptables -A FORWARD -m state state INVALID -j DROP iptables -A FORWARD -p tcp -m tcp tcp-flags SYN,FIN SYN,FIN -j DROP iptables -A FORWARD -p tcp -m tcp tcp-flags SYN,RST SYN,RST -j DROP echo "Thiet lap tham so cho nhan \n" echo 1 > /proc/sys/net/ipv4/tcp_syncookies echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time echo 0 > /proc/sys/net/ipv4/tcp_window_scaling echo 0 > /proc/sys/net/ipv4/tcp_sack echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts echo "Chong Ping flood\n" iptables -N CHECK_PINGFLOOD iptables -A CHECK_PINGFLOOD -m limit limit $PING_LIMIT limit-burst

$PING_LIMIT_BURST -j RETURN iptables -A CHECK_PINGFLOOD -m limit limit $LOG_LIMIT limit-burst

$LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix

To mitigate ping flood attacks, the following iptables rules can be implemented: first, create a chain named CHECK_PINGFLOOD to drop excessive ICMP echo requests Allow legitimate echo requests on the specified output interface while rejecting those that exceed the defined limit Additionally, set up a REJECT_PORTSCAN chain to log potential port scans, limiting the log entries to prevent overwhelming the system.

$LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix

"fp=PORTSCAN:tcp a=REJECT " iptables -A REJECT_PORTSCAN -p udp -m limit limit $LOG_LIMIT limit-burst

$LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix

To enhance network security, implement iptables rules to detect and reject UDP port scans by using the command `iptables -A REJECT_PORTSCAN -p udp -j REJECT reject-with icmp-port-unreachable` Additionally, create a new chain named DETECT_NMAP to identify Nmap scans by applying the rule `iptables -N DETECT_NMAP` and limit TCP packets with specific flags using `iptables -A DETECT_NMAP -p tcp tcp-flags ALL FIN,URG,PSH -m limit limit`.

To enhance network security, implement iptables with the command: `$LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:XMAS a=DROP"` This configuration logs suspicious TCP packets that exhibit all flags (SYN, RST, ACK, FIN, URG) while limiting the log entries based on specified thresholds.

$LOG_LEVEL log-prefix "fp=NMAP:XMAS-PSH a=DROP " iptables -A DETECT_NMAP -p tcp tcp-flags ALL ALL -m limit limit

$LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:XMAS-ALL a=DROP " iptables -A DETECT_NMAP -p tcp tcp-flags ALL FIN -m limit limit

To effectively manage network traffic and enhance security, utilize the iptables command with parameters such as $LOG_LIMIT, $LOG_LIMIT_BURST, and $LOG_LEVEL This configuration allows for logging of specific TCP packets, particularly those with SYN and RST flags, while applying a limit to prevent log overflow By setting the log prefix to "fp=NMAP:FIN a=DROP," you can identify and drop potential Nmap scanning attempts, ensuring a robust defense against unauthorized access.

NHỮNG VẤN ĐỀ ĐẠT ĐƯỢC, KẾT QUẢ, HẠN CHẾ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

Những vấn đề đạt được

Xây dựng một hệ thống máy chủ Web đa người dùng với khả năng tự động chia tải và tính sẵn sàng cao, đồng thời đảm bảo sự đồng nhất dữ liệu giữa các máy chủ là một nhiệm vụ quan trọng Các công việc đã thực hiện bao gồm tối ưu hóa hiệu suất, thiết lập các biện pháp bảo mật và triển khai các giải pháp sao lưu dữ liệu.

 Xây dựng máy chủ chia tải giữa các máy chủ Web.

 Xây dựng máy chủ dự phòng cho việc chia tải giữa các máy chủ Web.

 Xây dựng máy chủ chia tải giữa các máy chủ MySQL.

 Xây dựng đồng bộ dữ liệu giữa các máy chủ Web.

 Xây dựng đồng bộ dữ liệu giữa các máy chủ MySQL.

 Xây dựng Firewall để bảo vệ hệ thống.

Kết quả quá trình triển khai mô hình thực tiễn

Chia tải cho dịch vụ Web

Ta cho máy trạm tiến hành truy cập vào Website và xem hiện trạng tại máy chủ Load balance đang hoạt động, cụ thể ở đây là load1.

Nhìn vào hình trên ta thấy các gói tin yêu cầu dịch vụ từ máy trạm 115.75.33.160 được phân chia xử lý lần lượt cho hai máy chủ là 192.168.192.21 và 192.168.192.22.

Tại load1 ta kiểm tra hiện trạng của load1 và load2 bằng lệnh crm_mon

Nhìn vào hình ta thấy hiện tại việc phân chia tải cho các máy chủ Web đang được load1 đảm nhận, load2 đang ở trang thái chờ.

Bây giờ ta tiến hình tắt load1, và xem hiện trạng

Sau khi tắt load1 việc phân chia tải được chuyển sang cho load2, do load1 đã tắt nên ta thấy load1 đang ở trạng thái OFFLINE.

Sau khi khởi động lại load1, trạng thái của nó sẽ chuyển sang chờ, trong khi load2 vẫn đảm nhiệm việc phân chia tải.

Tại máy loadlan ta xem hiện trạng

Hai máy chủ Web 192.168.192.22 và 192.168.192.21 gửi yêu cầu truy cập cơ sở dữ liệu một cách đồng đều đến hai máy chủ MySQL 192.168.46.31 và 192.168.46.32 Để kiểm tra tính đồng bộ dữ liệu giữa các máy chủ Web, chúng ta cần xem xét file crontab.log.

Máy chủ Web1 sẽ đồng bộ dữ liệu với máy chủ Web2 vào các phút 0, 10, 20, 30, 40 và 50 mỗi giờ Theo ghi nhận trong file crontab.log, quá trình đồng bộ vừa được hoàn tất vào lúc 00:50:02.

Tương tự tại Web2 Đồng bộ dữ liệu giữa máy chủ MySQL

Trên máy chủ data1, sử dụng lệnh "show master status" và "show slave hosts" để xác minh xem các server đã kết nối thành công với nhau hay chưa.

Nhìn hình ta thấy data1 có 1 slave đang kết nối vào là data2

Data2 có 1 slave đang kết nối vào là data1

Ta dùng lệnh iptables –L để tiến hành kiểm tra các rule hiện có của iptables

Hạn chế

Quá trình thực hiện đề tài đều thực hiện trên máy ảo nên máy chạy chậm, không ổn định.

Hướng phát triển

Đề tài có thể mở rộng bằng cách bổ sung firewall dự phòng cho cả hai firewall bên ngoài và bên trong, cùng với máy chủ dự phòng cho hệ thống chia tải MySQL Hiện tại, đề tài chỉ mới xây dựng hệ thống cho dịch vụ Web, do đó cần phát triển thêm cho các dịch vụ khác như Mail và nhiều dịch vụ khác.

Đối với các hệ thống lớn với lưu lượng truy cập database cao, việc thay thế máy chủ chia tải và máy chủ MySQL bằng hệ thống MySQL Cluster là một giải pháp hiệu quả.

Ngày đăng: 17/05/2022, 04:55

HÌNH ẢNH LIÊN QUAN

đó, những đản cá phân đản nhiều thường cho Bảng 5 cho thấy, tỷ lệ sống của cá ở Nghiệm năng  suất  thấp,  hiệu  quả  kinh  tế  không  cao - đề án high availability cluster
nh ững đản cá phân đản nhiều thường cho Bảng 5 cho thấy, tỷ lệ sống của cá ở Nghiệm năng suất thấp, hiệu quả kinh tế không cao (Trang 6)
Hình 2.3.1.1.1 Failover Cluster - đề án high availability cluster
Hình 2.3.1.1.1 Failover Cluster (Trang 9)
Hình 2.3.1.1.2 Mô hình Pacemaker 2.3.1.2 Load balancing Cluster - đề án high availability cluster
Hình 2.3.1.1.2 Mô hình Pacemaker 2.3.1.2 Load balancing Cluster (Trang 11)
Hình 2.1.1.2.1 Load Balancing Cluster - đề án high availability cluster
Hình 2.1.1.2.1 Load Balancing Cluster (Trang 12)
 Các mô hình của LVS - đề án high availability cluster
c mô hình của LVS (Trang 13)
Mô hình quá trình đóng gói trong Direct Routing - đề án high availability cluster
h ình quá trình đóng gói trong Direct Routing (Trang 15)
Scheduling), sau đó kết nối này sẽ được Load balancer thêm vào bảng hash như là một kết nối đang mở (bảng hash này dùng để quản lý các kết nối) - đề án high availability cluster
cheduling , sau đó kết nối này sẽ được Load balancer thêm vào bảng hash như là một kết nối đang mở (bảng hash này dùng để quản lý các kết nối) (Trang 17)
Bảng rule mẫu: - đề án high availability cluster
Bảng rule mẫu: (Trang 21)
Hình 2.3.2.1 Compute Cluster - đề án high availability cluster
Hình 2.3.2.1 Compute Cluster (Trang 27)
Hình 2.3.2.2 Grid Computing - đề án high availability cluster
Hình 2.3.2.2 Grid Computing (Trang 29)
3.1Mô hình thực nghiệm - đề án high availability cluster
3.1 Mô hình thực nghiệm (Trang 32)
4.2 Kết quả quá trình triển khai mô hình thực tiễn Chia tải cho dịch vụ Web - đề án high availability cluster
4.2 Kết quả quá trình triển khai mô hình thực tiễn Chia tải cho dịch vụ Web (Trang 54)
Bây giờ ta tiến hình tắt load1, và xem hiện trạng - đề án high availability cluster
y giờ ta tiến hình tắt load1, và xem hiện trạng (Trang 55)
Nhìn vào hình ta thấy hiện tại việc phân chia tải cho các máy chủ Web đang được load1 đảm nhận, load2 đang ở trang thái chờ. - đề án high availability cluster
h ìn vào hình ta thấy hiện tại việc phân chia tải cho các máy chủ Web đang được load1 đảm nhận, load2 đang ở trang thái chờ (Trang 55)
Nhìn vào hình trên ta thấy các yêu cầu truy cập cơ sở dữ liệu từ hai máy chủ Web 192.168.192.22 và 192.168.192.21 được phân chia đều cho hai máy chủ MySQL 192.168.46.31 và 192.168.46.32. - đề án high availability cluster
h ìn vào hình trên ta thấy các yêu cầu truy cập cơ sở dữ liệu từ hai máy chủ Web 192.168.192.22 và 192.168.192.21 được phân chia đều cho hai máy chủ MySQL 192.168.46.31 và 192.168.46.32 (Trang 57)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w