Phân phối thiết bị mạng MikroTik tại Việt Nam
Results 1 to 3 of 3

Thread: Cấu hình load balancing và failover trên thiết bị router Mikrotik RB1100AHx2

  1. #1
    Administrator
    Join Date
    May 2015
    Posts
    68

    Cấu hình load balancing và failover trên thiết bị router Mikrotik RB1100AHx2

    Thiết bị router hotspot Mikrotik RB1100AHx2 là thiết bị router chịu tải lớn, tính năng cao cấp, giá thành hợp lý, phù hợp cho doanh nghiệp, trường học, điểm truy cập wifi công cộng, .... có yêu cầu thiết bị router mạnh mẻ, load balancing, failover trên nhiều kết nối WAN - Internet để phục vụ Internet tốc độ cao cho người dùng.

    Bài hướng dẫn sau đây hướng được viết dựa trên cấu hình load balancing và failover trên 3 kết nối WAN, trên thiết bị router Mikrotik RB1100AHx2, được chúng tôi triển khai cho 1 điểm truy cập wifi công cộng của khách hàng sử dụng sản phẩm và dịch vụ của công ty Sao Thiên Vương.

    Hiện trạng của khách hàng:

    - Khách hàng có 5 đường Internet tốc độ cao.
    - Thiết bị router nhà mạng cung cấp, thiết bị phát sóng wifi SOHO (Small Office and Home), do đó, kết nối wifi không đảm bảo.
    - Cao điểm, có thể lên đến 300 người dùng truy cập Internet đồng thời.

    Yêu cầu của khách hàng:

    - Load balancing và failover trên 3 đường kết nối Internet này, có thể tăng lên 5 kết nối WAN tốc độ cao nếu cần.
    - Cung cấp kết nối wifi ổn định, tốc độ cao cho người dùng wifi công cộng của khách hàng.

    Với hiện trạng và yêu cầu trên, chúng tôi đề xuất trang bị thiết bị wifi chuyên dụng, thay thế các thiết bị wifi SOHO mà khách hàng đang sử dụng.

    Trang bị thiết bị router Mikrotik RB1100AHx2 có khả năng chịu tải lên đến 500 kết nối Internet đồng thời, 13 Gigabit Interface, có thể load balancing, failover lên đến 12 đường WAN - Internet.

    Bên dưới là mô hình đấu nối thiết bị:



    Tiếp theo là chi tiết cấu hình thiết bị router Mikrotik RB1100AHx2 load balancing và failover trên 3 kết nối WAN - Internet.

    Với thiết bị router Mikrotik, chúng ta có nhiều phương án để load balancing và failover cho kết nối WAN, ở đây, chúng tôi triển khai theo phương thức gọi là PCC (Per Connection Classifier). Với phương thức này, balancing trên các kết nối WAN theo các kết nối (connection).

    Đầu tiên chúng ta cần chú ý rằng, interface bridge trên router Mikrotik được thiết kế để làm cấu nối cho traffic ở Layer 2, do đó, giao tiếp bridge này là kết nối logic để vận chuyển traffic Layer 2 giữa các cổng của thiết bị router Mikrotik. Mặc định traffic này giao tiếp bridge sẽ không được xử lý bởi các rule của firewall hoạt động ở Layer 3. Để bắt buộc Layer traffic trên brigde được xử lý bởi các rule của firewall ở Layer 3, chúng ta phải tường mình khai báo với lệnh sau:

    Code:
    /interface bridge settings
    set use-ip-firewall=yes
    Trong trường hợp của ta traffic trên các cổng khai báo là WAN được đóng gói với giao thức PPPoE, cũng cần tường minh cho phép đi qua các rule của firewall ở Layer 3.

    Code:
    /interface bridge settings
    set use-ip-firewall-for-pppoe=yes
    Các traffic của nội bộ mạng LAN qua router Mikrotik không cần phải xử lý bởi các rule của firewall. Do đó, chúng ta cần khai báo rule đầu tiên cho tất cả traffic của nội bộ mạng LAN bypass các rule của firewall.

    Code:
    /ip firewall mangle
    add chain=prerouting dst-address=192.168.100.0/24 in-interface=bridge action=accept
    Lệnh trên thực hiện ở chain pre-routing, do đó, traffic được xử lý trước khi mọi quyết định định tuyến gói tín xảy ra đối với các traffic đến router Mikrotik và traffic đang được forward bởi router Mikrotik. Rule trên kiểm tra mọi traffic có đích đến là mạng LAN (192.168.100.0/24) và interface tiếp nhận traffic trong trường hợp này là bridge - giao tiếp cầu nối cho traffic các cổng LAN của router Mikrotik. Action "accept" với mục đích dừng không xử lý traffic này với các rule kế tiếp sau. Để bắt traffic đi qua các rule bên dưới tiếp theo, cần khai báo trường "passthrough=yes".

    Với mỗi interface WAN, các traffic từ Internet vào WAN nào cần phải đi ra WAN đó, nếu không, kết nối sẽ bị gián đoạn - treo. Đặc biệt chú ý khi cần publish các dịch vụ từ mạng LAN ra Internet như Web service, FTP, Email service... hoặc các traffic khởi tạo từ Internet vào LAN như: SSH, VPN, ....

    Các traffic vào router Mikrotik sẽ qua chain input và traffic rời router Mikrotik sẽ qua chain output. Chúng ta sẽ sử dụng 2 bộ rule, một cho chain input và một cho chain output cho mỗi interface WAN mà ta muốn load balancing và failover. Trong tường hợp này, chúng ta cần load balancing và failover trên 3 kết nối WAN.

    Bên dưới là các mangle rule để xác định traffic khởi tạo từ Internet vào các interface WAN và đánh dấu (new-connection-mark) các traffic này với interface WAN mà nó vào

    Code:
    /ip firewall mangle
    add chain=input  in-interface=pppoe-out1 connection-mark=no-mark action=mark-connection new-connection-mark=WAN1 passthrough=no
    add chain=input  in-interface=pppoe-out2 connection-mark=no-mark action=mark-connection new-connection-mark=WAN2 passthrough=no
    add chain=input  in-interface=pppoe-out3 connection-mark=no-mark action=mark-connection new-connection-mark=WAN3 passthrough=no
    Như vậy, các kết nối khởi tạo từ Internet (new-connection) được đánh dấu với WAN1, WAN2, hoặc WAN3 tương ứng interface WAN mà traffic đi vào. Tiếp theo, chúng ta cần đảm bảo các kết nối này sẽ ra đúng interface WAN mà nó đã khởi tạo vào. Chúng ta thực hiện điều này ở chain output và dùng routing-mark để định tuyến gói tin theo đúng bảng định tuyến mà ta sẽ khai báo sau.

    Code:
    /ip firewall mangle
    add chain=output  out-interface=pppoe-out1 connection-mark=WAN1 action=mark-routing new-routing-mark=WAN1 passthrough=no
    add chain=output  out-interface=pppoe-out2 connection-mark=WAN2 action=mark-routing new-routing-mark=WAN2 passthrough=no
    add chain=output  out-interface=pppoe-out3 connection-mark=WAN3 action=mark-routing new-routing-mark=WAN3 passthrough=no
    Tiếp theo, chúng ta sẽ thực hiện load balancing bằng phương thức PCC để cân bằng tải kết nối từ mạng nội bộ LAN ra 3 interface WAN mà ta có bằng các rule mangle sau:

    Code:
    /ip firewall mangle
    add chain=prerouting connection-mark=no-mark dst-address-type=!local  in-interface=bridge per-connection-classifier=both-addresses:3/0  action=mark-connection new-connection-mark=WAN1
    add chain=prerouting connection-mark=no-mark dst-address-type=!local  in-interface=bridge per-connection-classifier=both-addresses:3/1  action=mark-connection new-connection-mark=WAN2
    add chain=prerouting connection-mark=no-mark dst-address-type=!local  in-interface=bridge per-connection-classifier=both-addresses:3/2  action=mark-connection new-connection-mark=WAN3
    Với các rule trên, chỉ đánh dấu (mark) các traffic được chuyển tiếp từ mạng nội bộ LAN ra Internet, các traffic từ mạng nội bộ LAN đến chính router Mikrotik sẽ không bị các rule tác động (dst-address-type=!local). Các kết nối (connection) sẽ được chia điều trên 3 kết nối WAN (load balancing) và được đánh dấu (new-connection-mark) với kết nối WAN tương ứng mà connection sẽ đi ra Internet.

    Các giá trị của trường per-connection-classifier=both-addresses liên quan đến biểu thức modular trong toán học, các bạn có thể tìm hiểu thêm ở các link cuối bài này.

    Chú ý, mặc định thì passthrough=yes được bật cho các rule mangle ở trên. Tiếp theo, với các kết nối đã được dánh dấu ở trên, chúng ta cần đánh dấu routing mark kết nối được định tuyến theo đúng bảng định tuyến mà ta khai bao sau.

    Code:
    /ip firewall mangle
    add chain=prerouting  connection-mark=WAN1 in-interface=bridge action=mark-routing new-routing-mark=WAN1  passthrough=no
    add chain=prerouting  connection-mark=WAN2 in-interface=bridge action=mark-routing new-routing-mark=WAN2  passthrough=no
    add chain=prerouting  connection-mark=WAN3 in-interface=bridge action=mark-routing new-routing-mark=WAN3  passthrough=no
    Vậy traffic ở đây sẽ được balancing trên 3 kết nối WAN, với mỗi kết nối xuất phát từ mạng nội bộ LAN sẽ lần lược được điều hướng đến 3 bảng định tuyến WAN1, WAN2, WAN3 được khai bao bên dưới:

    Code:
    /ip route
    add dst-address=0.0.0.0/0  gateway=pppoe-out1 routing-mark=WAN1 
    add dst-address=0.0.0.0/0  gateway=pppoe-out2 routing-mark=WAN2
    add dst-address=0.0.0.0/0  gateway=pppoe-out3 routing-mark=WAN3
    Tiếp theo, chúng ta cần khai báo các route cho bảng định tuyến chính (main) để các traffic xuất phát từ chính router có thể định tuyến ra ngoài Internet.

    Code:
    /ip route
    add dst-address=0.0.0.0/0  gateway=pppoe-out1 distance=1
    add dst-address=0.0.0.0/0  gateway=pppoe-out2 distance=2
    add dst-address=0.0.0.0/0  gateway=pppoe-out3 distance=2
    Đến đây, chúng ta đã hoàn thành việc cấu hình load balancing và failover trên 3 kết nối WAN cho thiết bị router Mikrotik RB1100AHx2

  2. #2
    Administrator
    Join Date
    May 2015
    Posts
    68
    Bên dưới là 1 số hình ảnh từ GUI winbox:
    1. Các Interface của router Mikrotik RB1100AHx2



    2. Các mangle rule trên router Mikrotik RB1100AHx2



    3. Bảng định tuyến trên router Mikrotik RB1100AHx2




    4. Các địa chỉ IP cấp phát cho thiết bị di động, ở đây là 101 thiết bị đang hoạt động trên mạng



    Tài liệu tham khảo:
    - HowTo: Load Balancing multiple Internet connections
    - Bandwidth-based load-balancing with failover. The easy way
    - Load Balancing Using PCC & RouterOS
    - Load_balancing_multiple_same_subnet_links

    Bạn đọc có nhu cầu tư vấn, triển khai, hệ thống mạng không dây quản lý tập trung, wifi marketing, wifi hotspot cho doanh nghiệp, hệ thống mạng wifi công cộng chịu tải cao... Liên hệ với chung tôi theo thông tin sau:


    Công ty Cổ phần CNTT Sao Thiên Vương
    Website: http://switch-router.com/
    Email: info@switch-router.com
    Điện thoại: (08)38682371
    Hotline: 0917 39 7766

  3. #3
    Administrator
    Join Date
    May 2015
    Posts
    68
    Một cấu hình load balancing, failover 2 WAN kết hợp NAT inbound cho các ports 8000,88,554 trên router MikroTik thực tế tham khảo:

    Code:
    /ip firewall mangle
    add chain=prerouting dst-address=192.168.1.0/24 in-interface=bridge1
    add action=mark-connection chain=input connection-mark=no-mark in-interface=\
        pppoe-out1 new-connection-mark=WAN1 passthrough=no
    add action=mark-connection chain=input connection-mark=no-mark in-interface=\
        pppoe-out2 new-connection-mark=WAN2 passthrough=no
    add action=mark-routing chain=output connection-mark=WAN1 new-routing-mark=\
        WAN1 passthrough=no
    add action=mark-routing chain=output connection-mark=WAN2 new-routing-mark=\
        WAN2 passthrough=no
    add action=mark-connection chain=prerouting connection-state=new dst-port=\
        8000,88,554 in-interface=pppoe-out1 new-connection-mark=WAN1 passthrough=\
        no protocol=tcp
    add action=mark-connection chain=prerouting connection-state=new dst-port=\
        8000,88,554 in-interface=pppoe-out2 new-connection-mark=WAN2 passthrough=\
        no protocol=tcp
    add action=mark-connection chain=prerouting connection-mark=no-mark \
        dst-address-type=!local in-interface=bridge1 new-connection-mark=WAN1 \
        per-connection-classifier=both-addresses:2/0
    add action=mark-connection chain=prerouting connection-mark=no-mark \
        dst-address-type=!local in-interface=bridge1 new-connection-mark=WAN2 \
        per-connection-classifier=both-addresses:2/1
    add action=mark-routing chain=prerouting connection-mark=WAN1 in-interface=\
        bridge1 new-routing-mark=WAN1 passthrough=no
    add action=mark-routing chain=prerouting connection-mark=WAN2 in-interface=\
        bridge1 new-routing-mark=WAN2 passthrough=no
    /ip firewall nat
    add action=masquerade chain=srcnat out-interface=pppoe-out1
    add action=masquerade chain=srcnat out-interface=pppoe-out2
    add action=dst-nat chain=dstnat dst-address-type=local dst-port=88 protocol=\
        tcp to-addresses=192.168.1.200 to-ports=88
    add action=masquerade chain=srcnat dst-address=192.168.1.200 dst-port=88 \
        out-interface=bridge1 protocol=tcp src-address=192.168.1.0/24
    add action=dst-nat chain=dstnat dst-address-type=local dst-port=8000 \
        protocol=tcp to-addresses=192.168.1.200 to-ports=8000
    add action=masquerade chain=srcnat dst-address=192.168.1.200 dst-port=8000 \
        out-interface=bridge1 protocol=tcp src-address=192.168.1.0/24
    add action=dst-nat chain=dstnat dst-address-type=local dst-port=554 protocol=\
        tcp to-addresses=192.168.1.200 to-ports=554
    add action=masquerade chain=srcnat dst-address=192.168.1.200 dst-port=554 \
        out-interface=bridge1 protocol=tcp src-address=192.168.1.0/24

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •