[EP.29] 2 WAN (DHCP-Client) To 1 LAN - Auto FailOver With Netwatch Tool and Script

Krittin Srithong
techblogclub
Published in
5 min readFeb 22, 2022

--

Scenario

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)

  1. รับ 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 ภายใน)

ภาพรวม Address List

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)

--

--

Krittin Srithong
techblogclub

Hi, I’m Krittin. I am studying in bachelor of Computer Enginnering. I have MikroTik Certificates as following MTCNA, MTCSE, MTCUME. (medium.com/techblogclub)