Hướng dẫn cấu hình Load Blancing 2 WAN hoặc nhiều WAN trên Router Mikrotik

Hướng dẫn cấu hình Load Blancing 2 WAN hoặc nhiều WAN trên Router Mikrotik

1. Load Blancing.
1.1. Load Blancing and Fail-over.
Load Blancing là phương pháp nhằm phân tán lưu lượng truy cập trên nhiều liên kết để có được cách sử dụng liên kết tốt hơn. Điều này có thể được thực hiện cho mỗi gói trong mỗi kết nối hoặc mỗi kết nối với nhau.

Fail-over: Chuyển đổi dự phòng.

Chuyển đổi dự phòng là cách sử dụng nhiều đường đi (Gateway) với một lần khi lần đầu tiên thất bại. Nó bắt đầu với việc thêm các lối đi (Gateway). Đặt giá trị khoảng cách lớn hơn cho các đường đi dự phòng và luôn chọn kiểm tra trạng thái đường đi chính.

1.2. Phương pháp cân bằng tải phổ dụng PCC
1.2.1. Sơ lược về phương pháp PCC
PCC, viết tắt của cụm từ “Per Connection Classifier”, là một trình so khớp, sẽ cho phép bạn phân chia lưu lượng trong mạng LAN thành các luồng bằng nhau với khả năng giữ các gói với danh sách các bộ tùy chọn cụ thể trong một luồng cụ thể (bạn có thể chỉ định bộ tùy chọn này là src-address, src- port, dst-address,dst-port).
PCC-Phân loại theo kết nối
o Đơn giản, hiệu quả, có thể mở rộng, không có tác dụng phụ khó chịu.
o Phương pháp cân bằng tải theo từng địa chỉ. Nguyên tắc làm việc:
o PCC chia dữ liệu đến thành các luồng và sau đó sử dụng quy tắc định tuyến để sắp xếp lưu lượng đồng đều (hoặc không đồng đều) trên nhiều kết nối WAN.
Điều này được thực hiện bởi:
1. Sử dụng thuật toán băm để sắp xếp lưu lượng dựa trên địa chỉ nguồn,cổng nguồn, địa chỉ đích, đích cổng hoặc kết hợp các thuộc tính của chúng với nhau.
2. Sử dụng Mangle đánh dấu gói và chỉ định tuyến và một số đường đi định tuyến nằm trong bảng Route để đảm bảo lưu lượng theo một tuyến đã chỉ định trên mỗi đường WAN.

Tùy chọn trong PCC và việc áp dụng trong mô hình thực tế.
Các gói IP có một tiêu đề chứa một số trường, hai trong số các trường đó là địa chỉ IP của nguồn của gói và địa chỉ IP của đích của gói. Các gói TCP và UDP cũng có các tiêu đề chứa cổng nguồn và cổng đích.
Dưới đây là các tùy chọn trường khác nhau, các trường sẽ được đưa vào thuật toán (và, với mục đích phân tán chúng trên các đường liên kết khác nhau, quyết định gói sẽ được đưa vào). Hãy nhớ rằng hàm băm sẽ luôn tạo ra cùng một đầu vào khi nó được cung cấp cùng một đầu ra:
Src-address: Địa chỉ nguồn của máy khách sẽ luôn giống nhau, vì vậy tất cả lưu lượng truy cập từ một máy khách sẽ luôn khớp với cùng một đối sánh PCC và sẽ luôn được đặt trên cùng một đường Internet.
Dstaddress: Địa chỉ đích của một máy chủ sẽ luôn giống nhau, vì vậy tất cả lưu lượng truy cập đến máy chủ đó (giả sử, Mikrotik Wiki) sẽ luôn đặt trên cùng một đường Internet.
Both Addresses: Cặp IP nguồn và đích giữa cùng một máy khách tới máy chủ sẽ luôn giống nhau, vì vậy tất cả lưu lượng giữa một máy khách và một máy chủ cụ thể (giả sử, máy tính xách tay của bạn và Mikrotik Wiki) sẽ luôn khớp với cùng một đối sánh PCC , và sẽ luôn được đặt trên cùng một đường Internet.
Src-port: Các cổng nguồn của máy khách thường được chọn ngẫu nhiên khi kết nối được tạo, do đó, qua nhiều kết nối, các cổng nguồn khác nhau sẽ được đưa vào hàm băm và các đối sánh PCC khác nhau sẽ khớp và lưu lượng sẽ đi qua các đường Internet khác nhau. Tuy nhiên, một số giao thức, ở máy khách luôn chọn cùng một cổng nguồn và các máy chủ phía sau bộ định tuyến của bạn hầu như sẽ luôn sử dụng cùng một cổng dịch vụ cố định để gửi lưu lượng truy cập trở lại máy khách.
Một máy chủ web phía sau bộ định tuyến của bạn sẽ gửi hầu hết lưu lượng truy cập từ các cổng HTTP(80) và HTTPS(443) của nó và lưu lượng đó sẽ luôn khớp với cùng một trình so khớp PCC và sẽ được đặt trên cùng một đường Internet.
Dst-port: Cổng đích của máy khách thường là cổng dịch vụ được xác định rõ, cố định. Tất cả lưu lượng HTTP (80) giữa máy khách và máy chủ của bạn trên Internet sẽ luôn khớp với cùng một trình so khớp PCC và sẽ được đặt trên cùng một đường Internet. Tuy nhiên, khách hàng thực hiện lưu lượng HTTPS (443) có thể khớp với một trình so khớp PCC khác và sẽ đi qua một đường Internet khác.

Both-ports: Do cổng khách (thường) được chọn ngẫu nhiên và cổng đích trên máy chủ luôn cố định, nên sự kết hợp của hai cổng là (thường) ngẫu nhiên và sẽ truyền tải trên các đường Internet khác nhau.
Src-address-and-port: Cùng giống với cơ chế của src-port.
Dst-address-and-port: Cùng giống cơ chế với dst-port.
Both-addresses-and-ports:Đây là cách ngẫu nhiên nhất để phân tán lưu lượng truy cập trên các đường Internet vì nó có số lượng biến nhiều nhất.

1.2.2. Cài đặt cân bằng tải PCC
Có 2 cách để cài đặt cân bằng tải theo phương pháp PCC.
Cách 1. Sử dụng các lệnh.

Mô hình 2 đường Internet sử dụng PPPoE

/ip firewall mangle
add action=accept chain=prerouting dst-address=192.168.1.0/24 in-interface=BridgeLAN
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe- out1 new-connection-mark=VaoWAN1 passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe- out2 new-connection-mark=VaoWAN2 passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD01passthrough=yesper- connection-classifier=both-addresses-and-ports:2/0
add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD02passthrough=yesper- connection-classifier=both-addresses-and-ports:2/1
addaction=mark-routingchain=preroutingconnection-mark=DD01in-interface=BridgeLAN new-routing-mark=DiraWAN1passthrough=yes
addaction=mark-routingchain=preroutingconnection-mark=DD02in-interface=BridgeLAN new-routing-mark=DiraWAN2passthrough=yes
add action=mark-routing chain=output connection-mark=VaoWAN1 new-routing- mark=DiraWAN1passthrough=yes
add action=mark-routing chain=output connection-mark=VaoWAN2 new-routing- mark=DiraWAN2passthrough=yes
/ip route
addcheck-gateway=pingdistance=1gateway=pppoe-out1routing-mark=DiraWAN1 addcheck-gateway=pingdistance=1gateway=pppoe-out2routing-mark=DiraWAN2

Mô hình 3 đường Internet sử dụng PPPoE

/ip firewall mangle
add action=accept chain=prerouting dst-address=192.168.1.0/24 in-interface=BridgeLAN
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe- out1 new-connection-mark=VaoWAN1 passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe- out2 new-connection-mark=VaoWAN2passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe- out3 new-connection-mark=VaoWAN3passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD01passthrough=yesper- connection-classifier=both-addresses-and-ports:3/0
add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD02passthrough=yesper- connection-classifier=both-addresses-and-ports:3/1
add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD03passthrough=yesper- connection-classifier=both-addresses-and-ports:3/2
addaction=mark-routingchain=preroutingconnection-mark=DD01in-interface=BridgeLAN new-routing-mark=DiraWAN1passthrough=yes
addaction=mark-routingchain=preroutingconnection-mark=DD02in-interface=BridgeLAN new-routing-mark=DiraWAN2passthrough=yes
addaction=mark-routingchain=preroutingconnection-mark=DD03in-interface=BridgeLAN new-routing-mark=DiraWAN3passthrough=yes
add action=mark-routing chain=output connection-mark=VaoWAN1 new-routing- mark=DiraWAN1passthrough=yes
add action=mark-routing chain=output connection-mark=VaoWAN2 new-routing- mark=DiraWAN2passthrough=yes
add action=mark-routing chain=output connection-mark=VaoWAN3 new-routing- mark=DiraWAN3passthrough=yes
/ip route
addcheck-gateway=pingdistance=1gateway=pppoe-out1routing-mark=DiraWAN1 addcheck-gateway=pingdistance=1gateway=pppoe-out2routing-mark=DiraWAN2 addcheck-gateway=pingdistance=1gateway=pppoe-out3routing-mark=DiraWAN3

Với 2 mô hình bên trên, bạn cần hiểu các nhóm lệnh và thông số trong lệnh bạn cần lưu ý.

Cụm 1:

add action=mark-connection chain=prerouting connection-mark=no-mark in- interface=pppoe-out1 new-connection-mark=VaoWAN1 passthrough=yes add action=mark-connection chain=prerouting connection-mark=no-mark in- interface=pppoe-out2 new-connection-mark=VaoWAN2 passthrough=yes

→ Các kết nối hướng từ bên ngoài Internet đi vào các đường WAN trên Router được đánh
dấu lại với giá trị “VaoWAN1” và “VaoWAN2”

Cụm 2:

add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD01passthrough=yesper- connection-classifier=both-addresses-and-ports:2/0
add action=mark-connection chain=prerouting connection-mark=no-mark dst-address- type=!localin-interface=BridgeLANnew-connection-mark=DD02passthrough=yesper- connection-classifier=both-addresses-and-ports:2/1

→ Các kết nối xuất phát từ trong mạng LAN ra ngoài ( bao gồm cả ra ngoài Internet và xuất phát ra trong mạng nội bộ) được đưa vào hàm xử lí. Khi có kết quả xử lí, các kết nối này lại được đánh dấu lại với giá trị “DD01” và “DD02”

Cụm 3:

add action=mark-routing chain=prerouting connection-mark=DD01 in- interface=BridgeLAN new-routing-mark=DiraWAN1 passthrough=yes add action=mark-routing chain=prerouting connection-mark=DD02 in- interface=BridgeLANnew-routing-mark=DiraWAN2 passthrough=yes

→ Việc đánh dấu bước trên với 2 giá trị “DD01” và “DD02” được chuyển sang đường đi ra ngoài Internet tương ứng “DiraWAN1” và “DiraWAN2”.

Cụm 4:

add action=mark-routing chain=output connection-mark=VaoWAN1 new-routing- mark=DiraWAN1passthrough=yes
add action=mark-routing chain=output connection-mark=VaoWAN2 new-routing- mark=DiraWAN2passthrough=yes

→ Việc đánh dấu các kết nối ở cụm số 1 được chuyển sang đường đi ra ngoài Internet tương ứng “DiraWAN1” và “DiraWAN2”.

Cụm 5:

/ip route
addcheck-gateway=pingdistance=1gateway=pppoe-out1routing-mark=DiraWAN1 addcheck-gateway=pingdistance=1gateway=pppoe-out2routing-mark=DiraWAN2

→Lập đường đi mới từ các đường đi Internet có sẵn kèm theo gán nhãn cho các đường mới này, tương ứng “DiraWAN1” và “DiraWAN2”.

Cách 2. Sử dụng giao diện.

Thận trọng !
Sử dụng phương pháp cài đặt bằng giao diện, bạn cần nắm vững mọi thuộc tính
Điều này cần bạn có sự kiên trì và thận trọng.
!Chỉ cần một sự sai lầm hoặc mất một thuộc tính, cân bằng tải có thể hoạt động không chính xác.

Cụm 1.

add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe-out1 new-connection-mark=VaoWAN1 passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe-out2 new-connection-mark=VaoWAN2 passthrough=yes

→Các kết nối hướng từ bên ngoài Internet đi vào các đường WAN trên Router được đánh dấu lại với giá trị “VaoWAN1” và “VaoWAN2”

Các kết nối đi từ bên ngoài Internet vào Router thông qua
WAN 1 được đánh dấu với tên “VaoWAN1

Các kết nối đi từ bên ngoài Internet vào Router thông qua
WAN 2 được đánh dấu với tên “VaoWAN2

Cụm2:

add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=BridgeLAN new-connection- mark=DD01 passthrough=yes per-connection-classifier=both-addresses- and-ports:2/0
add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-type=!local in-interface=BridgeLAN new-connection- mark=DD02 passthrough=yes per-connection-classifier=both-addresses- and-ports:2/1

→Các kết nối xuất phát từ trong mạng LAN ra ngoài (bao gồm cả ra ngoài Internet và xuất phát ra trong mạng nội bộ) được đưa vào hàm xử lí. Khi có kết quả xử lí, các kết nối này lại được đánh dấu lại với giá trị “DD01” và “DD02

Các kết nối xuất phát từ trong mạng LAN được tính toán bởi hàm PCC và kết quả, kết nối đó cũng bị đánh dấu với tên gọi “DD01” và “DD02”.

Các kết nối xuất phát từ trong mạng LAN được tính toán bởi hàm PCC và kết quả, kết nối đó cũng bị đánh dấu với tên gọi “DD01” và “DD02”.

Cụm 3:

add action=mark-routing chain=prerouting connection-mark=DD01 in- interface=BridgeLAN new-routing-mark=DiraWAN1 passthrough=yes add action=mark-routing chain=prerouting connection-mark=DD02 in- interface=BridgeLANnew-routing-mark=DiraWAN2 passthrough=yes

→Việc đánh dấu bước trên với 2 giá trị “DD01” và “DD02” được chuyển sang đường đi ra ngoài Internet tương ứng “DiraWAN1” và “DiraWAN2”.

Các kết nối vừa được đánh dấu Cụm1, giờ đây chúng được luân chuyển sang đường đi, tên gọi “DiraWAN1

Các kết nối vừa được đánh dấu Cụm2, giờ đây chúng được luân chuyển sang đường đi, tên gọi “DiraWAN2

Cụm 4:

addaction=mark-routingchain=outputconnection-mark=VaoWAN1new- routing-mark=DiraWAN1passthrough=yes
addaction=mark-routingchain=outputconnection-mark=VaoWAN2new- routing-mark=DiraWAN2passthrough=yes

→Việc đánh dấu các kết nối ở cụm số 1 được chuyển sang đường đi ra ngoài Internet tương ứng “DiraWAN1” và “DiraWAN2”.

Các kết nối đánh dấu ở Cụm 1 được luân chuyển sang đúng các đường đi mà chúng đã đi vào.

Các kết nối đánh dấu ở Cụm 2 được luân chuyển sang đúng các đường đi mà chúng đã đi vào.

Cụm 5:

/ip route
addcheck-gateway=pingdistance=1gateway=pppoe-out1routing- mark=DiraWAN1
addcheck-gateway=pingdistance=1gateway=pppoe-out2routing- mark=DiraWAN2

→ Lập đường đi mới từ các đường đi Internet có sẵn kèm theo gán nhãn cho các đường mới này, tương ứng “DiraWAN1” và “DiraWAN2”.

Dựa vào đường đi chính đã có sẵn để hiện thực hóa đường đi đã khởi tạo trước đây.

1.2.3. Một số trường hợp trong PCC.
Trường hợp 1. Loại bỏ một IP/Dải IP ra khỏi cân bằng tải PCC.
Để loại bỏ một IP ra khỏi cân bằng tải theo PCC Hoặc bạn sử dụng lệnh:
addaction=acceptchain=preroutingsrc-address=192.168.1.254in- interface=BridgeLAN
Hoặc sử dụng giao diện

Để loại bỏ một dải IP ra khỏi cân bằng tải theo PCC, bạn cần khởi tạo một danh sách mới với tên “DSIPKhongCBT” chẳng hạn,
Hoặc sử dụng dòng lệnh

/ip firewall mangle
ip firewall address-list add address=192.168.1.254 list=DSIPKhongCBT
add action=accept chain=prerouting in-interface=BridgeLAN src-address- list=!DSIPKhongCBT

Hoặc sử dụng giao diện

Trường hợp 2: Định tuyến một IP/Dải IP trong cân bằng tải PCC.

Yêu cầu !
Với một dải IP từ 192.168.1.1–254 đang sử dụng kết hợp cân bằng tải PCC.
Bạn mong muốn dải IP từ 192.168.1.100-200 sử dụng đường Internet số 1; 192.168.1.201-254 sử dụng đường Internet số 2.

Để thực hiện định tuyến một IP/Dải IP (Sử dụng Address List cho dải IP),bạn cần thực hiện 2 bước sau.
Bước 1. Đưa IP hoặc danh sách IP vào lệnh của Mangle với các thông số Chain Prerouting, Src. Address hoặc Src Address List, Action=mark routing, new connection mark=DiraWAN1.

Chẳng hạn:

Lệnh bên dưới giúp bạn tạo danh sách 100 IP nằm trong danh sách DSIPQuaWAN1
:for x from=100 to=200 do={/ip firewall address-list add address=”192.168.1.$x” list=DSIPQuaWAN1}

Lệnh bên dưới giúp bạn tạo danh sách 100 IP nằm trong danh sách DSIPQuaWAN2
:for x from=201 to=254 do={/ip firewall address-list add address=”192.168.1.$x” list=DSIPQuaWAN2}

Tiếp theo, bạn phải điều hướng cả 2 danh sách DSIPQuaWAN1 và DSIPQuaWAN2 đi qua mỗi đường WAN tương ứng, bằng cách sử dụng Mangle.

Thận trọng !Cả 2 lệnh bắt buộc phải được di chuyển lên trên cùng trong danh sách Mangle.

Bước 2: Hiện thực hóa đường đi “DiraWAN1” và “DiraWAN2” trong bảng Route
Do các đường đi “DiraWAN1” và “DiraWAN2” được cài đặt trong cân bằng tải trước đó, nên bạn hoàn toàn có thể kế thừa từ đó.
Hoặc bạn cũng có thể khởi tạo mới trong bảng Route

Trường hợp 3: NAT thiết bị trong cân bằng tải PCC.
Mọi thiết bị trong mạng LAN khi qua cân bằng tải theo PCC luôn luân chuyển qua lại các đường Internet. Điều này, dẫn tới các kết nối từ bên ngoài Internet đi qua Router để hướng đến thiết bị trong mạng sẽ ngừng đột ngột hoặc không hoạt động. Để thực hiện:
o Trước tiên, bạn cần phải gán cố định IP của thiết bị trong thẻ Lease (DHCP Server).

o Sau đó, bạn thực hiện hoàn toàn theo Trường hợp 1 để loại bỏ IP ra khỏi cân bằng tải PCC.

o Cuối cùng, bạn xác định đường Internet nào chính trong mạng và thực hiện phép NAT trên chính đường Internet đó.
o Giả sử, đường pppoe-out1 là đường Internet chính.

Trường hợp 4: Loại bỏ một dịch vụ qua cân bằng tải PCC.

Ý tưởng !
Nếu như bạn mong muốn các kết nối https
(443) tới ngân hàng bị lỗi khi sử dụng cân bằng tải, bạn phải loại bỏ cổng 443 ra khỏi cân bằng tải PCC.

Với dấu ! và cổng 443 trong thuộc tính Dst. Port, các kết nối kết nối ra ngoài Internet với cổng địch 443 luôn không được đánh dấu.

Trường hợp 5: Gán băng thông với PCC.
Để thực hiện gán băng thông, bạn có thể sử dụng Queue với phương pháp
Simple Queue.
Chẳng hạn, bạn mong muốn gán băng thông cho mỗi khách hàng trong mạng với băng thông tải xuống và tải lên là 15M/15M trong dải mạng LAN 192.168.1.1/24
Để thực hiện điều này, bạn cần sử dụng Queue và chọn thẻ Simple Queue

Tuy nhiên, với mỗi thao tác, bạn chỉ có thể thực hiện với một IP.
Để áp dụng cho hàng trăm IP, bạn sử dụng cú pháp:
:for x from=2 to=254 do={/queue simple add name=”IP-$x” target=”192.168.1.$x” max-limit=15M/15M}

Sau đó, bạn sao chép và dán lệnh vào cửa sổ Terminal để hoàn tất giới hạn băng thông cho mạng.

 

Bình luận