บทความสำหรับ: ผู้ที่มีความรู้เกี่ยวกับระบบเครือข่ายในระดับเบื้องต้นถึงปานกลาง (v1.1)
โดย วิทวัส โฉมประเสริฐ, ศุภสิทธิ์ ศิริพานิชกร, เจตน์สันติ์ ยาวิลาศ
คำถาม
ต้องการทำ LoadBalance รวมเน็ตจำนวน 4 เส้น โดยใช้ MikroTik รุ่น RB750GL ต้องทำอย่างไร?
คำตอบ
วิธีการตั้งค่า LoadBalance RB750GL แบบ 4WAN(Static IP) to 1LAN
- ดาวน์โหลด Winbox แล้วเสียบสาย LAN ขา Ether5 ของ MikroTik
เข้าโปรแกรม Winbox แล้วคลิกเลือก mac address MikroTik ที่ broadcast เจอ แล้วกด Connect - จะมี mac address ของขา LAN (RB750GL) ที่เราเชื่อมต่ออยู่ ขึ้นมา กด Connect เพื่อเชื่อมต่อ
- ปกติแล้ว MikroTik แทบทุกรุ่นจะมี config default ให้ แต่เราจะไม่ใช่ครับ กด Remove Configuration ได้เลย
- RB750GL จะทำการ Remove config default ออก แล้วจะ reboot ตัวเอง ถ้าเกิด message เด้งขึ้นมา ก็ไม่ต้องตกใจน่ะครับ
- ตรวจสอบ Interface ทั้ง5 สังเกตุ ether5 จะมีตัว R แสดงว่าเชื่อมต่ออยู่ มี Tx/Rx วิ่ง
- เนื่องด้วยถ้าทำในรูปแบบ Interface นั้นจะต้อง Capture หน้าจอเยอะมาก ผมจึงขอเปลี่ยนไปใช้วิธี code ผ่าน Terminal น่ะครับ
เข้าเมนู New Terminal > Terminal - คัดลอก code
- โค้ด: เลือกทั้งหมด
#|/ip address
/ip address add address=192.168.1.2/24 network=192.168.1.0 broadcast=192.168.1.255 interface=ether1
/ip address add address=192.168.2.2/24 network=192.168.2.0 broadcast=192.168.2.255 interface=ether2
/ip address add address=192.168.3.2/24 network=192.168.3.0 broadcast=192.168.3.255 interface=ether3
/ip address add address=192.168.4.2/24 network=192.168.4.0 broadcast=192.168.4.255 interface=ether4
/ip address add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=ether5 comment="default configuration"
#|/ip firewall mangle
/ip firewall mangle add chain=input in-interface=ether1 action=mark-connection new-connection-mark=ether1_conn
/ip firewall mangle add chain=input in-interface=ether2 action=mark-connection new-connection-mark=ether2_conn
/ip firewall mangle add chain=input in-interface=ether3 action=mark-connection new-connection-mark=ether3_conn
/ip firewall mangle add chain=input in-interface=ether4 action=mark-connection new-connection-mark=ether4_conn
/ip firewall mangle add chain=output connection-mark=ether1_conn action=mark-routing new-routing-mark=to_ether1
/ip firewall mangle add chain=output connection-mark=ether2_conn action=mark-routing new-routing-mark=to_ether2
/ip firewall mangle add chain=output connection-mark=ether3_conn action=mark-routing new-routing-mark=to_ether3
/ip firewall mangle add chain=output connection-mark=ether4_conn action=mark-routing new-routing-mark=to_ether4
/ip firewall mangle add chain=prerouting dst-address=192.168.1.0/24 action=accept in-interface=ether5
/ip firewall mangle add chain=prerouting dst-address=192.168.2.0/24 action=accept in-interface=ether5
/ip firewall mangle add chain=prerouting dst-address=192.168.3.0/24 action=accept in-interface=ether5
/ip firewall mangle add chain=prerouting dst-address=192.168.4.0/24 action=accept in-interface=ether5
/ip firewall mangle add chain=prerouting dst-address-type=!local in-interface=ether5 per-connection-classifier=both-addresses-and-ports:4/0 action=mark-connection new-connection-mark=ether1_conn passthrough=yes
/ip firewall mangle add chain=prerouting dst-address-type=!local in-interface=ether5 per-connection-classifier=both-addresses-and-ports:4/1 action=mark-connection new-connection-mark=ether2_conn passthrough=yes
/ip firewall mangle add chain=prerouting dst-address-type=!local in-interface=ether5 per-connection-classifier=both-addresses-and-ports:4/2 action=mark-connection new-connection-mark=ether3_conn passthrough=yes
/ip firewall mangle add chain=prerouting dst-address-type=!local in-interface=ether5 per-connection-classifier=both-addresses-and-ports:4/3 action=mark-connection new-connection-mark=ether4_conn passthrough=yes
/ip firewall mangle add chain=prerouting connection-mark=ether1_conn in-interface=ether5 action=mark-routing new-routing-mark=to_ether1
/ip firewall mangle add chain=prerouting connection-mark=ether2_conn in-interface=ether5 action=mark-routing new-routing-mark=to_ether2
/ip firewall mangle add chain=prerouting connection-mark=ether3_conn in-interface=ether5 action=mark-routing new-routing-mark=to_ether3
/ip firewall mangle add chain=prerouting connection-mark=ether4_conn in-interface=ether5 action=mark-routing new-routing-mark=to_ether4
#|/ip route
/ip route add dst-address=0.0.0.0/0 gateway=192.168.1.1 routing-mark=to_ether1 check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=192.168.2.1 routing-mark=to_ether2 check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=192.168.3.1 routing-mark=to_ether3 check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=192.168.4.1 routing-mark=to_ether4 check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=192.168.1.1 distance=1 check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=192.168.2.1 distance=2 check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=192.168.3.1 distance=3 check-gateway=ping
/ip route add dst-address=0.0.0.0/0 gateway=192.168.4.1 distance=4 check-gateway=ping
#|/ip firewall nat
/ip firewall nat add chain=srcnat out-interface=ether1 action=masquerade
/ip firewall nat add chain=srcnat out-interface=ether2 action=masquerade
/ip firewall nat add chain=srcnat out-interface=ether3 action=masquerade
/ip firewall nat add chain=srcnat out-interface=ether4 action=masquerade
#| DHCP server is on switch, with address pool 192.168.0.100-192.168.0.200
/ip pool add name=default-dhcp ranges=192.168.0.100-192.168.0.200
/ip dhcp-server add name=default address-pool=default-dhcp interface=ether5 disabled=no
/ip dhcp-server network add address=192.168.0.0/24 gateway=192.168.0.1 dns-server=192.168.0.1 comment="default configuration"
#| DNS
/ip dns set allow-remote-requests=yes
/ip dns static add name=router address=192.168.0.1
#| Now Configure DNS server so users can resolve hostnames,
#| Ex.cache-size=5000KiB
#| DNS Google = 8.8.8.8,8.8.4.4
#| DNS 3BB = 110.164.252.222,110.164.252.223
/ip dns set allow-remote-requests=yes cache-max-ttl=1w cache-size=5000K max-udp-packet-size=512 servers=8.8.8.8,8.8.4.4
สำหรับกรณีที่ ความเร็ว Internet ไม่เท่ากัน ก็สามารถแก้ไขโค้ดบรรทัดดังนี้ (ตัวอย่าง WAN 1,2,3 ความเร็ว 4Mb และ WAN 4 ความเร็ว 8 Mb)
(หลักการคือ ในการวน 1 ลูปจะมีกี่ครั้งก็ได้ เพียงพยายามแชร์ Bandwidth ที่จะใช้เท่าๆกัน หรืออาจจะเซตไปบางLink เป็นพิเศษ ตามความต้องการก็ได้ครับ
- ในตัวอย่าง 1 ลูปมี 5 ครั้ง 4/0 ไปจนถึง 4/4 โดยพยายามเกลี่ย Bandwidth ที่ใช้ให้ออกผ่าน Link ทั้งหมด ให้ใกล้เคียงกัน)
add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/0 action=mark-connection new-connection-mark=ether1_conn passthrough=yes
add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/1 action=mark-connection new-connection-mark=ether2_conn passthrough=yes
add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/2 action=mark-connection new-connection-mark=ether3_conn passthrough=yes
add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/3 action=mark-connection new-connection-mark=ether4_conn passthrough=yes
add chain=prerouting dst-address-type=!local in-interface=Local per-connection-classifier=both-addresses-and-ports:4/4 action=mark-connection new-connection-mark=ether4_conn passthrough=yes
ผมแนะนำให้คัดลอกโค้ดเก็บไว้เป็น Word เพราะถ้าต้องการเปลี่ยน IP หรือเปลี่ยนค่าอื่นๆ เราสามารถใช้ฟังก์ชั่นค้นหาและแทนที่ ได้เลย - คลิกขวา ที่แถบ command บน terminal แล้ว Paste
- รูปแสดงตัวอย่างการป้อนโค้ด
หลังจากป้อนโค้ดเสร็จแล้วควรสั่ง Reboot ครั้งหนึ่ง ด้วยคำสั่งบน terminal ดังนี้ system reboot - connect เชื่อมต่อใหม่อีกครั้ง (สังเกตุ คราวนี้ IP address จะขึ้นมาเป็น 192.168.0.1 ตามค่าโค้ดที่เราป้อน)
- สามารถตรวจสอบการโค้ดต่างๆ ผ่านเมนู Interface ได้เลย
ปล.
- ต้องขอโทษด้วยครับ ตอนทดสอบไม่ได้ Capture หน้าจอมาโชว์
แต่ที่ทดสอบมา ผมมี true 7m กับ 3bb 7m เทสโหลดเต็มสปีด ก็ได้ราวๆ 13m กว่าครับ
Capture หน้าจอเทสสปีด ขอแก้มือให้ในฟังก์ชั่น 4pppoe to 1 LAN และ 2WAN(static IP)+2pppoe to 1 LAN น่ะครับ
- โค้ดที่ให้มานี่อาจจะไม่ดีที่สุด แต่ก็สามารถใช้งานได้ดีระดับหนึ่ง
ผู้อ่านท่านใดมีคำแนะนำ สามารถแนะนำกันได้ครับ จะได้ช่วยๆกันพัฒนาต่อยอด
ซึ่งทาง sys2u เราก็จะพยายามหาวิธี ที่จะให้ผู้ใช้ สามารถเซตค่าตัวอุปกรณ์ MikroTik ให้ได้ง่ายกว่านี้ครับ
ข้อมูลสินค้าแบบมัลติมีเดีย (Multimedia)
จบบทความ
รายละเอียดการให้บริการจากทีมงาน SYS2U.COM Xpert Zone