ทำ Load Balance เน็ต 2 สายด้วย MikroTik RB450G,RB750, RB2011U

 Mikrotik คือ RouterBoard  ที่ใช้ OS สั่งงานให้อุปกรณ์ทำงาน โดยที่เราสามารถติดตั้งลงไปตรงๆได้เลย อยากให้เป็นอะไรก็พิมพ์ ไปแบบนั้น Mikrotikเกิดจากภาษา Latvia ประเทศ Latvia เป็นประเทศเล็กๆ อยู่ทางยุโรปตะวันออก ซึ่ง Mikrotik เกิดจากการผสมคำสองคำ ระหว่าง Mikro(Micro)+Tik(Network) หรือถ้าแปลเป็นภาษาอังกฤษแปลว่าเครือข่ายขนาดเล็ก

1-Mwx_Zsaj6ZHhM2gczfpJzA

คุณสมบัติอีกอย่างหนึ่งที่โดดเด่นของ MikroTik ที่ไม่แพ้ Hotspot ก็คือการทำการรวมเน็ตมากกว่าสองเส้นขึ้นไปมาเป็น Load balance นั่นเองครับวันนี้เราจะมาดูว่าทำยังไงกันครับ ในที่นี้ผมจะใช้ RB2011Ui ในการสาธิตนะ รุ่นอื่นๆ การตั้งค่าเหมือนกันครับ

 

ScreenJul. 22 21.13

เงื่อนไขการตั้ง ISP วงที่ 1 และ วงที่ 2

  1. WAN  เส้นที่ 1 ใช้ 192.168.1.10
  2. WaN เส้นที่ 2 ใช้ 192.168.2.10
  3. PORT ที่ 3 – 5 จะทำหน้าที่เสมือน Hub แจก IP 192.168.10.1/24 คือ Class C จำนวน 254 เครื่อง

เริ่มจากเมื่อเราเชื่อมต่อเข้า MikroTik  จะมีหน้าถามให้ติดตั้ง Default Configuration ให้เลือก OK ครับ

1

 

จากนั่นรอสัก 30 วินาทีครับ เครื่องจะบอกว่า Disconnect ให้เราต่อใหม่

ScreenHunter_42 Jul. 22 21.32

โดย Default Configuration จะสามารถต่อเน็ตได้อยู่แล้วโดย Port 1 ต่อกับอินเตอร์เน็ต ISP และ Port 2 3 4 5 ทำหน้าที่เป็น Local Lan ภายใน

จากนั่นเชื่อมต่อด้วย Mac Address ตามภาพ

ScreenHunter_42 Jul. 22 21.33

จากนั่นให้ตรวจสอบดูก่อนว่า Port ทั้งหมดนั่นเป็น Ethernet หรือเปล่า

ScreenHunter_43 Jul. 22 21.33

ต่อไปเราจะตั้งค่าโดยใช้ Terminal (คำสั่งให้ระบบทำงาน) ช่วยลดเวลา แทนการกด UI บนหน้าจอได้ครับ โดยโคดสามารถดาวโฟลดได้ที่นี้ หรือว่าก็อบปี้จากด้านล่าง

step ประมาณ นี้

  1. set Wan ที่ 1 ให้ รับ ip 192.168.1.2/24
  2.  set Wan ที่ 12 ให้ รับ ip 192.168.2.2/24
  3. set LAN ให้แจก DHCP  192.168.10.2-192.168.10.254
  4. ให้สิทธิ์ Mark routing package   Accept all packages (อนุญาต ทุก Package ออก Port 3)
  5. firewall nat เพิ่ม chain=srcnat out-interface=Wan PORT1 และ 2  action=masquerade นำ packages  มารวมกัน
  6. อนุญาต ให้ Port ที่ 3 แจก DSCPและ  ออก Internet ได้
 #|
#|
#| Define all parameters
#|
#|
:global wanAddress1 192.168.1.2/24
:global wanNetwork1 192.168.1.0
:global wanNetwork1Subnet 192.168.1.1/24
:global wanBroadcast1 192.168.1.255
:global wanGateway1 192.168.1.1

:global wanAddress2 192.168.2.2/24
:global wanNetwork2 192.168.2.0
:global wanNetwork2Subnet 192.168.2.1/24
:global wanBroadcast2 192.168.2.255
:global wanGateway2 192.168.2.1

:global localAddress 192.168.10.1/24
:global localNetwork 192.168.10.0
:global localNetwork2 192.168.10.0/24
:global localBroadcast 192.168.10.255
:global localGateway 192.168.10.1
:global localDNS 192.168.10.1
:global localPool 192.168.10.2-192.168.10.254

:global dnsServer 8.8.8.8,8.8.4.4

#|
#|
#| Assign interace's name
#|
#|
/interface set "ether1" name="PORT1_WAN"
/interface set "ether2" name="PORT2_WAN"
/interface set "ether3" name="PORT3_LAN"
/interface set "ether4" name="PORT4_LAN"
/interface set "ether5" name="PORT5_LAN"


#|
#|
#| Assign master port switch
#|
#|
/interface ethernet set PORT4_LAN,PORT5_LAN master-port=PORT3_LAN


#|
#|
#| Assign ipaddress to our interfaces
#|
#|

#| Port 1 -> WAN 1
/ip address add address=$wanAddress1 network=$wanNetwork1 broadcast=$wanBroadcast1 interface=PORT1_WAN

#| Port 2 -> WAN 2
/ip address add address=$wanAddress2 network=$wanNetwork2 broadcast=$wanBroadcast2 interface=PORT2_WAN

#| Port 3 -> Local LAN
#| Port 4 -> Local LAN
#| Port 5 -> Local LAN
/ip address add address=$localAddress network=$localNetwork broadcast=$localBroadcast interface=PORT3_LAN


#|
#| Mark incoming package on input's chain
#|
/ip firewall mangle add chain=input in-interface=PORT1_WAN action=mark-connection new-connection-mark=PORT1_WAN_conn
/ip firewall mangle add chain=input in-interface=PORT2_WAN action=mark-connection new-connection-mark=PORT2_WAN_conn


#|
#| Mark routing package on output's chain
#|
/ip firewall mangle add chain=output connection-mark=PORT1_WAN_conn action=mark-routing new-routing-mark=to_PORT1_WAN
/ip firewall mangle add chain=output connection-mark=PORT2_WAN_conn action=mark-routing new-routing-mark=to_PORT2_WAN


#|
#| Accept all packages if they come from local
#|
/ip firewall mangle add chain=prerouting dst-address=$wanNetwork1Subnet action=accept in-interface=PORT3_LAN
/ip firewall mangle add chain=prerouting dst-address=$wanNetwork2Subnet action=accept in-interface=PORT3_LAN

#|
#| Do the load balance package
#|
/ip firewall mangle add chain=prerouting dst-address-type=!local in-interface=PORT3_LAN per-connection-classifier=both-addresses-and-ports:2/0 action=mark-connection new-connection-mark=PORT1_WAN_conn passthrough=yes
/ip firewall mangle add chain=prerouting dst-address-type=!local in-interface=PORT3_LAN per-connection-classifier=both-addresses-and-ports:2/1 action=mark-connection new-connection-mark=PORT2_WAN_conn passthrough=yes

#|
#| Mark output network for packages
#|
/ip firewall mangle add chain=prerouting connection-mark=PORT1_WAN_conn in-interface=PORT3_LAN action=mark-routing new-routing-mark=to_PORT1_WAN
/ip firewall mangle add chain=prerouting connection-mark=PORT2_WAN_conn in-interface=PORT3_LAN action=mark-routing new-routing-mark=to_PORT2_WAN


#|
#| Add routing table
#|
/ip route add dst-address=0.0.0.0/0 gateway=$wanGateway1 routing-mark=to_PORT1_WAN check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=$wanGateway1 distance=1 check-gateway=ping


/ip route add dst-address=0.0.0.0/0 gateway=$wanGateway2 routing-mark=to_PORT2_WAN check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=$wanGateway2 distance=2 check-gateway=ping


#|
#|
#| Assign NAT
#|
#|
/ip firewall nat add chain=srcnat out-interface=PORT1_WAN action=masquerade
/ip firewall nat add chain=srcnat out-interface=PORT2_WAN action=masquerade


#|
#|
#| Assign allow DNS
#|
#|
/ip dns set allow-remote-requests=yes cache-max-ttl=1w cache-size=5000KiB max-udp-packet-size=512 servers=$dnsServer


#|
#|
#| Assign DHCP server
#|
#|
/ip pool add name=default-dhcp ranges=$localPool
/ip dhcp-server add name=default address-pool=default-dhcp interface=PORT3_LAN disabled=no
/ip dhcp-server network add address=$localNetwork2 gateway=$localGateway dns-server=$localDNS

หรือ

# jul/09/2016 01:51:38 by RouterOS 6.15
# software id = PJMQ-PMTY
#
/interface ethernet
set [ find default-name=ether1 ] name=PORT1
set [ find default-name=ether2 ] name=PORT2
set [ find default-name=ether3 ] name=PORT3_LAN
set [ find default-name=ether4 ] master-port=PORT3_LAN name=PORT4_LAN
set [ find default-name=ether5 ] master-port=PORT3_LAN name=PORT5_LAN
/ip hotspot user profile
set [ find default=yes ] idle-timeout=none keepalive-timeout=2m \
    mac-cookie-timeout=3d
/ip pool
add name=default-dhcp ranges=192.168.10.2-192.168.10.254
add name=dhcp_pool1 ranges=192.168.10.2-192.168.10.254
/ip dhcp-server
add address-pool=dhcp_pool1 disabled=no interface=PORT3_LAN name=dhcp1
/port
set 0 name=serial0
/ip address
add address=192.168.1.2/24 interface=PORT1 network=192.168.1.0
add address=192.168.2.2/24 interface=PORT2 network=192.168.2.0
add address=192.168.10.1/24 interface=PORT3_LAN network=192.168.10.0
/ip dhcp-server network
add address=192.168.10.0/24 gateway=192.168.10.1
/ip dns
set allow-remote-requests=yes cache-size=5000KiB max-udp-packet-size=512 \
    servers=8.8.8.8,8.8.4.4
/ip firewall mangle
add action=mark-connection chain=input in-interface=PORT1 \
    new-connection-mark=PORT1_WAN_conn
add action=mark-connection chain=input in-interface=PORT2 \
    new-connection-mark=PORT2_WAN_conn
add action=mark-routing chain=output connection-mark=PORT1_WAN_conn \
    new-routing-mark=to_PORT1_WAN
add action=mark-routing chain=output connection-mark=PORT2_WAN_conn \
    new-routing-mark=to_PORT2_WAN
add chain=prerouting dst-address=192.168.1.0/24 in-interface=PORT3_LAN
add chain=prerouting dst-address=192.168.2.0/24 in-interface=PORT3_LAN
add action=mark-connection chain=prerouting dst-address-type=!local \
    in-interface=PORT3_LAN new-connection-mark=PORT1_WAN_conn \
    per-connection-classifier=both-addresses-and-ports:2/0
add action=mark-connection chain=prerouting dst-address-type=!local \
    in-interface=PORT3_LAN new-connection-mark=PORT2_WAN_conn \
    per-connection-classifier=both-addresses-and-ports:2/1
add action=mark-routing chain=prerouting connection-mark=PORT1_WAN_conn \
    in-interface=PORT3_LAN new-routing-mark=to_PORT1_WAN
add action=mark-routing chain=prerouting connection-mark=PORT2_WAN_conn \
    in-interface=PORT3_LAN new-routing-mark=to_PORT2_WAN
/ip firewall nat
add action=masquerade chain=srcnat out-interface=PORT1
add action=masquerade chain=srcnat out-interface=PORT2 to-addresses=0.0.0.0
/ip route
add check-gateway=ping distance=1 gateway=192.168.1.1 routing-mark=\
    to_PORT1_WAN
add check-gateway=ping distance=1 gateway=192.168.2.1 routing-mark=\
    to_PORT2_WAN
add check-gateway=ping distance=1 gateway=192.168.1.1
add check-gateway=ping distance=2 gateway=192.168.2.1
/ip upnp
set allow-disable-external-interface=no
/lcd interface
set sfp1 interface=sfp1
set PORT1 interface=PORT1
set PORT2 interface=PORT2
set PORT3_LAN interface=PORT3_LAN
set PORT4_LAN interface=PORT4_LAN
set PORT5_LAN interface=PORT5_LAN
set ether6 interface=ether6
set ether7 interface=ether7
set ether8 interface=ether8
set ether9 interface=ether9
set ether10 interface=ether10

 

nattanon

ณัฐนนท์ ลำสมุทร

Leave a Reply

Your email address will not be published. Required fields are marked *