banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Load Balancing – Failover với Pfsense2  XML
  [Article]   Load Balancing – Failover với Pfsense2 28/08/2011 15:44:47 (+0700) | #1 | 246072
[Avatar]
tanviet12
Member

[Minus]    0    [Plus]
Joined: 10/05/2010 12:15:15
Messages: 138
Location: TP - HCM
Offline
[Profile] [PM] [Email]
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 http://mediafire.com , 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ề smilie ).

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 smilie
BTV
fb.com/buitanviet
[Up] [Print Copy]
  [Article]   Load Balancing – Failover với Pfsense2 28/08/2011 18:24:53 (+0700) | #2 | 246079
mv1098
Member

[Minus]    0    [Plus]
Joined: 18/07/2009 14:19:13
Messages: 119
Offline
[Profile] [PM]
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.
[Up] [Print Copy]
  [Article]   Load Balancing – Failover với Pfsense2 29/08/2011 13:40:41 (+0700) | #3 | 246141
[Avatar]
tanviet12
Member

[Minus]    0    [Plus]
Joined: 10/05/2010 12:15:15
Messages: 138
Location: TP - HCM
Offline
[Profile] [PM] [Email]
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!
BTV
fb.com/buitanviet
[Up] [Print Copy]
  [Article]   Load Balancing – Failover với Pfsense2 29/08/2011 15:16:37 (+0700) | #4 | 246145
[Avatar]
cadoi
Member

[Minus]    0    [Plus]
Joined: 17/07/2008 12:42:40
Messages: 35
Offline
[Profile] [PM]
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
[Up] [Print Copy]
  [Article]   Load Balancing – Failover với Pfsense2 29/08/2011 15:47:23 (+0700) | #5 | 246146
[Avatar]
Michael_Scotfield
Member

[Minus]    0    [Plus]
Joined: 12/10/2009 02:23:16
Messages: 43
Location: Fox River Prison
Offline
[Profile] [PM]
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!!!!!
[Up] [Print Copy]
  [Article]   Load Balancing – Failover với Pfsense2 29/08/2011 20:32:32 (+0700) | #6 | 246167
[Avatar]
cadoi
Member

[Minus]    0    [Plus]
Joined: 17/07/2008 12:42:40
Messages: 35
Offline
[Profile] [PM]
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 smilie
[Up] [Print Copy]
  [Article]   Load Balancing – Failover với Pfsense2 09/09/2011 17:09:44 (+0700) | #7 | 246762
[Avatar]
tanviet12
Member

[Minus]    0    [Plus]
Joined: 10/05/2010 12:15:15
Messages: 138
Location: TP - HCM
Offline
[Profile] [PM] [Email]

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 smilie
BTV
fb.com/buitanviet
[Up] [Print Copy]
  [Article]   Load Balancing – Failover với Pfsense2 26/03/2013 12:16:16 (+0700) | #8 | 274403
hoanghaicv
Member

[Minus]    0    [Plus]
Joined: 17/04/2005 02:34:14
Messages: 4
Offline
[Profile] [PM]
Chào bạn!

Topic đã lâu rồi nhưng hôm nay mình mới đọc, cám ơn bài viết của bạn rất hay và chi tiết.
Công ty mình trước giờ sài con Draytek Vigor 3300 load balancing 3 line cũng được 3 năm rồi, nhưng dạo gần đây nó hay trục trặc. Nay mình muốn sài thử pfsense, mình đã làm theo phần hướng dẫn của bạn và có một số thắc mắc sau hy vọng bạn có thể trả lời

1. Phần card LAN có cần để gateway không (con Draytek lúc trước mình không có)?
2. Hệ thống có DNS Server local (build trên con AD và đã forward đến Google DNS) vậy phần DNS Server cùa pfsense mình nên để gì (có nên để DNS của ISP hoặc Google DNS)?
3. Công ty mình thường xuyên sử dụng VoIP (skype, x-lite), citrix, vpn. Có cách nào tối ưu đường truyền cho các dịch vụ này, cũng như hạn chế download (torrent, ...).

Cảm ơn bạn nhiều,
Hoàng Hải
[Up] [Print Copy]
  [Article]   Load Balancing – Failover với Pfsense2 16/12/2013 03:59:58 (+0700) | #9 | 279230
[Avatar]
blancbugx
Member

[Minus]    0    [Plus]
Joined: 15/01/2007 11:00:51
Messages: 10
Location: Richmond, Massachusetts US
Offline
[Profile] [PM] [WWW] [MSN]
Sorry em phải đào mộ topic này lên để cảm ơn bác smilie
em làm được trên máy thật với 2 Wan rồi.
2.1-RELEASE (i386)
built on Wed Sep 11 18:16:22 EDT 2013
FreeBSD 8.3-RELEASE-p11

Cảm ơn lần nữa ạ smilie
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|