[EP.29] 2 WAN (DHCP-Client) To 1 LAN - Auto FailOver With Netwatch Tool and Script
Question
- Router ONU ของผู้ให้บริการ (ISP1-TRUE) รับอินเตอร์เน็ตแบบ PPPoE Client แล้วแจก DHCP วง 192.168.100.0/24
- Router ONU ของผู้ให้บริการ (ISP2–3BB) รับอินเตอร์เน็ตแบบ PPPoE Client แล้วแจก DHCP วง 192.168.200.0/24
ฝั่ง MikroTik (R1) Version 6.49.2
- ether1 - WAN (DHCP Client) รับเน็ต ISP1 — TRUE (200M/100M), Distance: 1
- ether2 - WAN (DHCP Client) รับเน็ต ISP2–3BB (50M/10M), Distance: 2
- ether5 - LAN (IP: 10.1.1.1/24, แจก DHCP: 10.1.1.2-10.1.1.254)
Netwatch
- เส้น ISP1 - TRUE → ping 9.9.9.9 (Quad9 DNS)
- เส้น ISP2 - 3BB → ping 1.1.1.1 (Cloudflare DNS)
Answer
เปิด Winbox และ Connect To MikroTik (R1)
- รับ Internet จาก ISP ทั้ง 2 ether
# ether1 (ISP1-TRUE) #
- IP → DHCP Client กด +
- Interface: เลือก ether1 , Use Peer DNS: เอาเครื่องหมายถูกออก, Use Peer NTP: เอาเครื่องหมายถูกออก, Add Default Route: เลือก no (Comment “Connected To ISP1-TRUE”)
# ether2 (ISP2-3BB) #
- IP → DHCP Client กด +
- Interface: เลือก ether2 , Use Peer DNS: เอาเครื่องหมายถูกออก, Use Peer NTP: เอาเครื่องหมายถูกออก, Add Default Route: เลือก no (Comment “Connected To ISP2–3BB”)
2. ทำ Default Route สำหรับออก Internet พื้นฐาน พร้อมกับตั้ง Distance ให้กับทั้งสอง WAN
# ของ ether1 (ISP1-TRUE) #
- IP → Routes กด +
- Dst. Address: 0.0.0.0/0
- Gateway: 192.168.100.1 (กรอกขา Gateway ของ Router ISP1-TRUE)
- Distace: 1 (WAN MAIN)
- Comment ตั้งเป็น “To-ISP1” (ให้ตั้งตามภาพ ห้ามแก้ไขเด็ดขาด เพราะ คอมเมนท์นี้ถูกใช้งานใน Script ของ Netwatch เพื่อสั่ง เปิด-ปิด สลับเส้นเวลา Internet ล่ม)
- กด Apply และ OK
# ของ ether2 (ISP2-3BB) #
- IP → Routes กด +
- Dst. Address: 0.0.0.0/0
- Gateway: 192.168.200.1 (กรอกขา Gateway ของ Router ISP2–3BB)
- Distace: 2 (WAN Backup)
- Comment ตั้งเป็น “To-ISP2” (ให้ตั้งตามภาพ ห้ามแก้ไขเด็ดขาด เพราะ คอมเมนท์นี้ถูกใช้งานใน Script ของ Netwatch เพื่อสั่ง เปิด-ปิด สลับเส้นเวลา Internet ล่ม)
- กด Apply และ OK
3. ตั้งค่า DNS Server
- Servers: 8.8.8.8, 8.8.4.4
- กด Apply และ OK
4. ปรับเวลาให้ตรงกับเวลามาตรฐานไทย GMT+07:00
- System → Clock → Manual Time Zone (Tab)
- Time Zone: +07:00
- กด Apply และ OK
5. สร้าง Gateway Interface ให้กับ LAN (สำหรับ Network ภายใน)
6. สร้าง DHCP Server ให้กับ LAN
# LAN #
- IP → DHCP Server กด DHCP Setup
- DHCP Server Interface: ether4
- กด Next
- DHCP Address Space: 10.1.1.0/24
- กด Next
- Gateway for DHCP Network: 10.1.1.1
- กด Next
- Addresses to Give Out: 10.1.1.2–10.1.1.254 (LAN-A แจก IP ตั้งแต่หมายเลข 2–254 ให้กับ Client)
- กด Next
- กำหนด DNS Servers เป็น: 8.8.8.8 และ 8.8.4.4
- กด Next
- ตั้ง Lease Time: 1d 00:00:00 (ปรับตามความต้องการ)
- กด Next
- กด OK
7. ทำ masquerade เพื่อให้ LAN ออกสู่อินเตอร์ได้ Out interface ether1 และ ether2
# ขา WAN ether1 (ISP1-TRUE) #
- IP → Firewall → NAT กด +
- chain: srcnat
- Out. interface: ether1
- action: masquerade
- Comment: To ISP1-TRUE (คอมเมนท์ไว้เพื่อความเป็นระเบียบ)
# ขา WAN ether2 (ISP2-3BB) #
- IP → Firewall → NAT กด +
- chain: srcnat
- Out. interface: ether2
- action: masquerade
- Comment: To ISP2-3BB (คอมเมนท์ไว้เพื่อความเป็นระเบียบ)
8. ตั้งค่า FailOver (สลับเส้นเน็ตอัตโนมัติ) กรณีลืมชำระค่าบริการอินเตอร์เน็ต, ISP กำลังปรับปรุง ซ่อมแซ่ม ฯลฯ โดยใช้ Netwatch Tool และ Script
# ตั้งค่า ขา Gateway ISP1-TRUE Route to 9.9.9.9 (Quad9 DNS) #
- IP → Route กด +
- Dst. Address: 9.9.9.9
- Gateway: 192.168.100.1 (กรอกขา Gateway ของ Router ISP1-TRUE)
- Distance: 1
- Comment: Netwatch ISP1 (Quad9 DNS)
- กด Apply และ OK
# ตั้งค่า ขา Gateway ISP2–3BB Route to 1.1.1.1 (Cloudflare DNS) #
- IP → Route กด +
- Dst. Address: 1.1.1.1
- Gateway: 192.168.200.1 (กรอกขา Gateway ของ Router ISP2–3BB)
- Distance: 1
- Comment: Netwatch ISP2 (Cloudflare DNS)
- กด Apply และ OK
# Checking Netwatch ทั้ง ISP1-TRUE และ ISP2-3BB ว่าล่มหรือไม่ (หากล่มให้ Disable อินเตอร์เน็ตเส้นทางนั่น) #
# Netwatch ISP1-TRUE #
- Tools → Netwatch กด +
- Host: 9.9.9.9
- Interval 00:00:10 (เช็คทุกๆ 10 วิ ว่า ISP1-TRUE ล่มหรือไม่?)
- Timeout: 800 ms
- Up tab,
- On Up: คัดลอก Code จากภาพไปใส่
- Down tab,
- On Down: คัดลอก Code จากภาพไปใส่
- Comment: Netwatch ISP1-TRUE
# Netwatch ISP2-3BB #
- Tools → Netwatch กด +
- Host: 1.1.1.1
- Interval 00:00:10 (เช็คทุกๆ 10 วิ ว่า ISP2-3BB ล่มหรือไม่?)
- Timeout: 800 ms
- Up tab,
- On Up: คัดลอก Code จากภาพไปใส่
- Down tab,
- On Down: คัดลอก Code จากภาพไปใส่
- Comment: Netwatch ISP2-3BB
Testing
กรณี 1 # ISP1-TRUE และ ISP2–3BB ไม่มีเส้นไหนล่ม #
- PC เสียบ ether5 (LAN 10.1.1.254/24)
กรณี 2 # ISP1-TRUE ล่ม และ ISP2-3BB ใช้งานได้ปกติ #
- PC เสียบ ether5 (LAN 10.1.1.254/24)
กรณี 3 # ISP1-TRUE ใช้งานได้ปกติ และ ISP2-3BB ล่ม#
- PC เสียบ ether5 (LAN 10.1.1.254/24)