Tải bản đầy đủ (.pdf) (26 trang)

tài liệu về thiết kế hệ thống pfsen

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.12 MB, 26 trang )

English | Vietnamese



Nội Quy Diễn đàn Portal
Danh sách thành viên Thống kê Tìm kiếm Phòng đọc
Đăng ký Đăng nhập [ http | https ]



Diễn đàn chính Thảo luận hệ điều hành *nix Load Balancing – Failover với Pfsense2

[Bài viết] Load Balancing – Failover với Pfsense2
28/08/2011 16:44:47 (+0700) | #1 | 246072


tanviet12
Member

0


Joined: 10/05/2010 12:15:15
Bài gởi: 137
Đến từ: TP - HCM
Offline


Load Balancing – Failover với Pfsense2

1. Giới thiệu


Bài viết này sẽ hướng dẫn cài đặt, cấu hình pfSense2 giúp Load Balancing (cân bằng tải) giữa các
kết nối WAN, đồng thời kết hợp với Failover (dự phòng) trong trường hợp các kết nối WAN bị
down.

2. Mô hình

Cụ thể trong mô hình này, server pfSense sẽ có 2 đường kết nối WAN và một đường đi vào LAN. Vì
vậy, khi thực hiện bài lab này, chúng ta phải có ít nhất 2 kết nối wan để cung cấp 2 đường internet
từ hai 2 ISP khác nhau. Nhưng khi thực hiện, tôi chỉ có một đường kết nối ra internet (con nhà
nghèo đang thất nghiệp) và không có server. Vì vậy, với bài lab tôi đã thực hiện trên WMWare, sử
dụng máy ảo Windows Server 2003 để chia một đường kết nối thành 2 đường (qua tính
năng Routing and Remote Access), server pfSense cũng thực hiện trên VMware.

a. Mô hình thực tế




b. Mô hình lab




Mô hình trên được thực hiện bằng trình máy ảo VMWare Workstation, cụ thể:

Máy ảo windows server 2003
- Có 3 network interface:
o Interface đầu tiên ( interface mặc định) sẽ được bridge ra ngoài để kết nối Internet. IP là
192.168.1.111/24, gateway là 192.168.1.1
o Interface thứ hai là Adapter2 sẽ được nối với VMnet2: IP là 192.168.2.1/24

o Interface thứ ba Adapter3 sẽ được nối với VMnet3. IP là 192.168.3.1/24

Máy ảo pfSense

- Có 3 network interface, 2 interface nối với 2 interface của windows server 2003 để có 2 đường ra
internet, 1 Interface nối vào LAN
o Interface đầu tiên ( interface mặc định) sẽ nối vào VMnet2 với ip 192.168.2.2/24 (gateway
192.168.2.1)
o Interface thứ hai là Adapter2 sẽ nối vào VMnet3 với IP là 192.168.3.2/24(gateway 192.168.3.1)
o Interface thứ ba là Adapter3 sẽ nối vào VMnet4 (interface LAN) với IP là 192.168.10.1/24

3. Cấu hình Routing and Remote Access trên windows server 2003


Lưu ý: Mục đích làm bước này để giả lập 2 kết nối internet (WAN). Nếu các bạn có 2 đường kết nối
internet rồi thì không cần thực hiện bước này mà kết nối thẳng hai đường vào 2 interface của máy
pfSense.
Sau khi đã thêm 2 interface vào và cấu hình IP. Chúng ta bắc đầu cấu hình Routing and Remote
Access. Vào Administrator tool =>Routing and Remote Access. Chọn Configure and Enable… để bật
chức năng Routing and Remote Access.




Tiếp theo chọn Custom configuration




Chọn NAT and basic firewall





Khi thực hiện xong, tiến hành R-click vào NAT/Bassic firewall chọn New interface để thêm
interface.




Chọn interface (interface brigde ra internet) làm public interface (nhớ check vào Enable NAT on this
interface để bật tính năng NAT trên inerface này)




Hai interface còn lại chọn làm Private




Kết quả sau khi cấu hình xong




4. Cài đặt pfSense và thiết lập cơ bản

Cài đặt pfSense một cách bình thường. Lưu lý đến bước chọn chế độ, nhớ ấn I để vào chế độ cài
đặt.





Chọn n (no) khi setup VLANs




Bước tiếp theo, tiến hành gán các interface vào interface LAN, WAN, OPT1 (OPT1 là interface tùy
chọn ngoài thêm, ở đây nó có nhiệm vụ làm interface WAN thứ 2). Trong trường hợp này, em0 là
interface WAN (ứng với cad VMnet2), em1 là interface OPT1(ứng với VMnet3) và em2 là interface
LAN (ứng với VMnet4). Nếu cài đặt pfSense trên máy ảo, chúng ta có thể xem địa chỉ MAC của các
interface này và đối chiếu với địa chỉ MAC của các interface khi cài đặt pfSense bằng cách vào file
có đuôi *.vmx trong thư mục cài đặt máy ảo pfSense để xem.

Ví dụ:



Sau khi đã khai báo LAN interface. Tiến hành gán IP cho card LAN bằng cách chọn số trên màn
hình console, sau khi gán IP LAN xong, chúng ta có thể truy cập vào webConfiguration của pfSense
bằng cách vào trình duyệt web gõ https://$địa_chỉ_interface_LAN (ở đây là https://192.168.10.1),
đăng nhập bằng trài khoản mặc định(admin/pfsense).

Lưu ý: Ở đây tôi dùng một máy ảo XP, Gán interface vào VMnet4 để làm máy client trong LAN. Mọi
thao tác cấu hình cũng như test kết nối sau này đều được thực hiện trên máy này.

Bây giờ, chúng ta sẽ dùng webConfiguration để khai báo IP tĩnh (static), Gateway cho interface
WAN và OPT1 (menu Interface=>$Tên interface) và cấp phát DHCP cho các máy tính trong LAN

qua interface LAN (Services=>DHCP server, chọn tab LAN).













Kiểm tra trạng thái của gateway bằng cách vào Status=>Gateways. Nếu trạng thái của 2 gateway
này Online nghĩa là bình thường. Nếu có gateway Offline, nghĩa là pfSense ping các Monitor IP
(mặc định cũng chính là địa chỉ gateway của mỗi interface) không thành công. Vì vậy, chúng ta
phải xem lại cấu hình các thông số IP.




Khai báo DNS cho pfSense bằng cách vào System => General Setup




5. Cấu hình Load Balancing – Failover

Gồm 3 bước thực hiện chính:

- Kiểm tra, chỉnh sửa Gateway
- Thêm Gateway Group (System=>Routing, chọn tab Group)
- Sử dụng Gateway Group trong rules firewall của interface LAN

a. Kiểm tra, chỉnh sửa gateway:

Phải chắc chắn rằng các gateway và Monitor IP của mỗi interface đã được khai báo ở
trong System=>Routing, tab Gateway. Thật ra, trong phiên bản pfSense2, các thông số này được
tự động tạo ra khi chúng ta khai báo IP và gateway trong Interface =>$Tên interface. Chúng ta có
thể để mặc định hoặc sửa Monitor IP của từng gateway cho phù hợp.




- Monitor IP

PfSense mặc định sẽ lấy gateway của interface làm monitor IP của interface đó. Vì vậy pfSense sẽ
ping gateway của mỗi interface (các interface WAN) để xác định chất lượng mạng. Trong một số
trường hợp, việc xác định chất lượng mạng bằng cách trên không chính xác.

Ví dụ: Nếu gateway của interface WAN thuộc phía người dùng đầu cuối, không phải thuộc bên kia
mạng của ISP. Khi kết nối này bị down ở phía nhà cung cấp dịch vụ (ISP), lúc này pfSense sẽ ping
gateway thành công. Vì vậy, pfSense sẽ không phát hiện kết nối wan này bị down.

Chúng ta có thể tùy chỉnh Monitor IP để việc xác định chất lượng mạng WAN được tốt hơn. Có thể
sử dụng IP một web server công cộng, DNS của google hoặc IP bất kỳ nào trên mạng Internet để
pfSense ping (chú ý rằng IP này không bao giờ được down, nếu Monitor IP bị down, trong khi đó
liên kết WAN vẫn hoạt động bình thường thì pfSense sẽ cho rằng liên kế WAN này bị down )

- Weight


Bởi mặc định, tất cả các WAN trên cùng một tier(cụ thể tier là gì sẽ được trình bày ở mục tiếp theo)
được coi là có độ ưu tiên bằng nhau khi thực hiện load balancing. Nếu các liên kết WAN có tốc độ
khác nhau, khai báo tham số weight cho mỗi liên kết sẽ cho phép pfSense xác định các liên kết có
tốc độ lớn hơn để tính toán ưu tiên cho các liên kết này khi load balancing.

Ví dụ: Nếu chúng ta có một kết nối WAN 50Mbit và một kết nối 10Mbit, nếu không khai báo weight
thì liên kết 50Mbit sẽ không bao giờ sử dụng hết và liên kết 10Mbit sẽ đi đến quá tải. Trong trường
hợp này chúng ta có thể khai báo weight cho liên kết 50Mbit là 5 và liên kết 10Mbit là 1 (để tỉ lệ là
5:1 ~ 50:10 Mbit).

- Loss/Latency Thresholds
Với các liên kết WAN khác nhau, có thể độ mất mát gói tin (loss) hoặc độ trể (latency) khác nhau.
Vì vậy chúng ta cũng có thể quy định các thông số này để pfSense thực hiện Load balancing được
tốt hơn.

b. Thêm Gateway Group

Gateway Group (vào System=>Routing, tab Group) chỉ việc nhóm các gateway lại để hoạt động
một cách phối hợp. Có thể sử dụng để Load balancing (cân bằng tải) hoặc Failover (dự phòng).

Cụ thể ở bài viết này, cần thiết lập Gateway Group cho hai WAN (interface WAN và OPT1) cho một
cấu hình multi-wan bao gồm một Gateway Group cho Load balancing, và hai gateway group cho
Failover. Chúng ta phải cấu hình nhiều Gateway Group hơn khi số lượng liên kết WAN nhiều hơn.

- Tiers

Trong một Gateway Group, chúng ta cần gán mỗi gateway cho mỗi tier. Các gateway có tier thấp
hơn sẽ được ưu tiên hơn. Nếu có hai gateway được gán cùng một tier trong cùng một Gateway
Group, pfSense sẽ thực Load Balancing trên hai gateway này. Nếu hai gateway được gán tier khác

nhau, pfSense sẽ thực hiện Failover cho gateway có tier thấp hơn. Nếu tier được thiết lập là Never,
gateway được gán sẽ coi như không thuộc Gateway Group đó.

- Trigger Level

o Member Down: Kích hoạt chỉ khi các liên kế của interface thành viên bị down
o Packet Loss: Kích hoạt chỉ khi các gói tin đến gateway bị mất cao hơn ngưỡng xác định
o Packet Loss or High Latency: Kết hợp cả hai trường hợp trên, tùy chọn này được hay dùng nhất.

- Thực hiện Load Balancing:

Khi hai gateway có cùng một tier, chúng sẽ được load balancing. Có nghĩa là trên một kết nối, các
lưu lượng ra ngoài mạng sẽ được định tuyến qua các WAN theo kiểu round-robin. Nếu một gateway
trong số các gateway giống tier (trong cùng một gateway group) bị down, nó sẽ không được sử
dụng và các gateway khác cùng tier sẽ vẫn hoạt động bình thường.

Tiến hành tạo 1 Gateway Group với tên Loadbalace, thiết lập cùng tier1 cho hai gateway để load
balancing




- Thực hiện Failover

Khi hai gateway khác tier, gateway có tier thấp hơn sẽ được ưu tiên. Nếu gateway có tier thấp này
bị down, gateway có tier lớn hơn sẽ được sử dụng.
Tiến hành tạo 2 Gateway group, trong các gateway group này, chú ý thiết lập khác tier nhau cho
mỗi gateway, cụ thể:








- Kết hợp cả hai

Nếu có nhiều hơn 2 WAN. Chúng ta có thể thực hiện load balancing và failover trên cùng một
Gateway Group. Chẳng hạn chúng ta cho WAN1 và WAN2 cùng tier để load balancing, WAN3 có
tier lớn hơn để phòng khi 2 WAN kia bị down thì WAN3 sẽ thực hiện failover… Trong bài viết này
không thực hiện việc kết hợp theo kiểu này.

c. Filewall Rule

Xác định các Gateway Group chỉ là một phần của bài viết này. Chúng ta phải chỉnh định lưu lượng
truy cập đến các gateway bằng cách thiết lập các rule trong firewall bằng cách
vào Firewall=>Rules, chọn tab LAN.
Mặc định ở pfSense2 có 2 rule được tạo sẵn, 1 rule có Description là Anti-Lockout Rule để quy định
cho phép các port được kết nối từ ngoài internet vào trong LAN (cho phép 20,80,443). Và rule có
Decription là Default allow LAN to any rule, rule này để cho phép các máy trong LAN truy cập ra
ngoài.

Tiến hành thêm 3 Rule sử dụng tương ứng 3 Gateway Group đã tạo khi trước.

Rule cho load balancing:




Tương tự thêm 2 rule còn lại. Khi thêm xong được kết quả như sau:





Các rule trên chỉ là các rule được khai báo đơn giản. Chúng ta có thể thêm các rule mới cho các lưu
lượng truy cập tùy chọn khác nhau bằng cách thiết lập Protocol (giao thức) hoặc thiết lập trong
Advanced features của mỗi rule. Lưu lý rằng các rule được xử lý từ trên xuống, và một khi rule
được khớp (matched), nó sẽ đươc xử lý theo rule đó và bỏ qua các rule sau.

d. Vấn đề DNS

Nếu các máy client trong LAN sử dụng địa chỉ DNS server là địa chỉ gateway của LAN (trường hợp
này là 192.168.10.1) thì chúng ta phải chắc chắn rằng đã khai báo DNS server cho pfSense
(ở System =>General Setup), nếu không các máy client sẽ không phân giải tên miền được khi truy
cập internet.




6. Test cấu hình Load balancing và Failover

Để xem việc chúng ta đã thực từ đầu đến giờ có được trả lương hay không… Chúng ta phải thực
hiện test thử. Bạn có thể nghĩ ra nhiều cách test thử khác, nhưng riêng tôi, mỗi trường hợp tôi thực
hiện test thử như sau:

a. Test Load balancing

Ở máy client trong LAN, dùng phần mềm download nhanh IDM để download một file nào đó từ
trang , miễn sao dung lượng đủ lớn để có thời gian chúng ta quan sát. Khi
thực hiện download, ta thấy IDM mở các line (ví dụ ở đây là 8 line).





Tiến hành disable 1 interface bên Windows Server 2003 (hoặc rút nguồn của 1 modem/router nếu
bạn có 2 WAN thật). Chúng ta quan sát sẽ thấy một số line sẽ bị đứng lại, không download dược.
Điều này có thể chứng tỏ các line không download được này có lưu lượng đi theo hướng interface
WAN mà chúng ta vừa disable.




Nếu để khoảng 5 giây sau, các line này sẽ tự động download lại, chứng tỏ pfSense đã phát hiện 1
liên kết WAN bị down và chuyển hướng lưu lượng sang WAN kia.

b. Test Failover

Việc test failover rất đơn giản, chỉ cần disable 1 interface bên Windows Server 2003 (hoặc rút
nguồn của 1 modem/router nếu bạn có 2 WAN thật) rồi từ client thử truy cập 1 website nào đó
(hvaonline.net chẳng hạn). Rồi tiến hành enable lại interface, disable interface bên kia và thử truy
cập website lại. Nếu cả hai trường hợp trên đều truy cập được website nghĩa là cấu hình failover đã
thành công. Nếu 1 hoặc cả 2 trường hợp kia truy cập website không thành công, nghĩa là chúng ta
đã cấu hình failover sai (hoặc HVA lại bị stl Ddos nặng nề ).

7. Tóm lại

Qua bài viết này, chúng ta đã thực hiện cài đặt và cấu hình cơ bản pfSense2 để thực hiện nhiệm vụ
Load Balancing và Failover. Ngoài ra còn cấu hình DHCP server trên pfSense để cấp phát ip cho các
máy trong LAN và một chút cấu hình Routing and Remove Access với Windows Server 2003.


Cảm ơn đã quan tâm theo dõi xin kính chào tạm biệt và hẹn gặp lại







[Bài viết] Load Balancing – Failover với Pfsense2
28/08/2011 19:24:53 (+0700) | #2 | 246079

mv1098
Member

0


Joined: 18/07/2009 14:19:13
Bài gởi: 117
Offline


Ngày xưa em cũng được học lab này ở Nhất Nghệ mà chưa áp dụng được vào đâu.








[Bài viết] Load Balancing – Failover với Pfsense2
29/08/2011 14:40:41 (+0700) | #3 | 246141


tanviet12
Member

0


Joined: 10/05/2010 12:15:15
Bài gởi: 137
Đến từ: TP - HCM
Offline


Mình không biết bên Nhất Nghệ có mấy bài lab đó, nhưng thấy thì họ làm bê pfSense 1.2 . Mình
làm trên pfSense2 . Việc cấu hình ở 2 phiên bản này không giống nhau!







[Bài viết] Load Balancing – Failover với Pfsense2
29/08/2011 16:16:37 (+0700) | #4 | 246145


cadoi

Member

0


Joined: 17/07/2008 12:42:40
Bài gởi: 34
Offline


Cho mình hỏi là trong mô hình của bạn, khi con pfsense chết thì sao. 2 đường mạng của bạn còn
có ích gì trong trường hợp này nữa







[Bài viết] Load Balancing – Failover với Pfsense2
29/08/2011 16:47:23 (+0700) | #5 | 246146


Michael_Scotfield
Member

0


Joined: 12/10/2009 02:23:16

Bài gởi: 43
Đến từ: Fox River Prison
Offline


Mục đích mô hình là để failover 2 đường WAN, bạn lại hỏi failover cho 2 firewall, bạn có đọc kỹ bài
lab ko vậy ?.

Nếu muốn failover cho 2 firewall thì bạn dựng lab tạo CARP cho 2 con thôi.

Breaking!!!!!






[Bài viết] Load Balancing – Failover với Pfsense2
29/08/2011 21:32:32 (+0700) | #6 | 246167


cadoi
Member

0


Joined: 17/07/2008 12:42:40
Bài gởi: 34
Offline



Vì trong bài có nêu phần mô hình thực tế nên mình mới hỏi, còn nếu làm lab thì xxxx







[Bài viết] Load Balancing – Failover với Pfsense2
09/09/2011 18:09:44 (+0700) | #7 | 246762


tanviet12
Member

0


Joined: 10/05/2010 12:15:15
Bài gởi: 137
Đến từ: TP - HCM
Offline


cadoi wrote:

Cho mình hỏi là trong mô hình của bạn, khi con pfsense chết thì sao. 2 đường mạng của bạn còn có ích gì trong trường
hợp này nữa



hihi, quên mất cái topic này. Như mô hình trên, nếu 1 con pfsense chết thì tiu lun cả mạng. Nhưng
"nghe đồn" là mấy anh bên giải pháp mạng mà triển khai thằng này thì sẽ có 1 thằng nữa dự
phòng. Chết thằng này thì còn thằng kia













Chuyển đến:
Th?o lu?n h? di?u hành *nix



×