นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน

EkarinS.
Ico64
เอกรินทร์ ซื่อธานุวงศ์
อาจารย์
มหาวิทยาลัยสงขลานครินทร์ วิทยาเขตตรัง
เครือข่าย
สมาชิก · ติดตาม: 0 · ผู้ติดตาม: 0

อ่าน: 174
ความเห็น: 0

สคริปต์สำหรับอัพเดต ISP Gateway แบบอัตโนมัติที่ตารางเราติ้ง (Routing) บนเราเตอร์ไมโครติก (MikroTik)

Automatically Updating of ISP Gateways at Routing Tables in MikroTik Routers

หลังจากการนำเสนอในงาน MikroTik User Meeting (MUM) Conference ที่โรงแรมเอเชียแอร์พอร์ต กรุงเทพมหานคร ในวันที่ 14 สิงหาคม 2561 มีคนเข้าสอบถามเกี่ยวกับเนื้อหาที่นำเสนอ และมียอดจำนวนคนที่เข้ามาดูวีดีโอในยูทูปย้อนหลัง เป็นจำนวนพันกว่าคน (1,215 คน ข้อมูล ณ วันที่ 26 กันยายน 2561) ทำให้มีกำลังใจในการเขียนบล็อกมากขึ้น หนึ่งในคำถามที่น่าสนใจ และจัดได้เป็นปัญหาในการใช้งานจริงคือ การที่หมายเลข ISP Gateway เปลี่ยนหลังจาก ISP มีการดาวน์และอัพขึ้นมาใหม่ ทำให้หมายเลข ISP Gateway ในส่วนของ Routing ในตารางเราติ้ง (ดูได้จากหน้าต่าง Route List ของโปรแกรม WinBox) ไม่ได้อัพเดตตาม ซึ่งเนื้อหาที่ผมนำเสนอกำหนดให้การตั้งค่า ISP Gateway ที่ตารางเราติ้งเป็นแบบสแตติก ปัญหาจึงเกิดขึ้นว่า เราจะทำอย่างไรที่จะอัพเดต ISP Gateway ที่ตารางเราติ้งให้เป็นแบบอัตโนมัติตามหมายเลข ISP Gateway ที่เปลี่ยนไป การแก้ปัญหานี้ทำได้โดยการสร้าง Schedule ในเราเตอร์ไมโครติกให้มีการรันสคริปต์เป็นช่วงๆ ซึ่งตั้งได้ไม่ง่ายมากสำหรับผู้ที่มีพื้นฐานการใช้งานเราเตอร์ไมโครติกมาบ้าง ดังนั้นเนื้อหาในบล็อกนี้ผมจะเน้นในส่วนของสคริปต์สำหรับการตั้งค่าหมายเลข ISP Gateway แบบอัตโนมัติที่ตารางเราติ้งในเราเตอร์ไมโครติก

ในกรณีรับไอพีจาก ISP แบบ PPPoE (Point-to-Point over Ethernet) สคริปต์สำหรับการตั้งค่าหมายเลข ISP Gateway แบบอัตโนมัติที่ตารางเราติ้งในเราเตอร์ไมโครติก ดังนี้

ในกรณีรับไอพีจาก ISP แบบ DHCP Client (อาจจะรับผ่านเราเตอร์ของ ISP ที่ตั้งอยู่ฝั่งเรา/ลูกค้า) สคริปต์สำหรับการตั้งค่าหมายเลข ISP Gateway แบบอัตโนมัติที่ตารางเราติ้งในเราเตอร์ไมโครติก ดังนี้

หากมีทักษะทางด้านโปรแกรมมิ่งสักหน่อย จะพบว่าสคริปต์ไล่ได้ไม่ยาก ซึ่งแบ่งออกเป็น 3 ส่วน คือ (1) ส่วนแรกเป็นการอ่านหมายเลข ISP Gateway มาจากขา WAN เก็บไว้ที่ตัวแปร newgw (2) ส่วนสองเป็นการอ่านหมายเลข ISP Gateway ที่มีอยู่เดิมในตารางเราติ้ง เก็บไว้ที่ตัวแปร routegw (3) ส่วนสามเป็นส่วนของการเปรียบเทียบค่าในตัวแปร newgw กับค่าในตัวแปร routegw หากไม่เท่ากัน หมายเลข ISP Gateway ที่มีอยู่ในตารางเราติ้งจะถูกอัพเดตด้วยค่าในตัวแปร newgw จากสคริปต์จะเห็นได้ว่า เราสามารถตั้งค่าช่วงเวลาของการรันสคริปต์ให้ถี่ๆ ได้ (เช่น 30 วินาที) เพราะหาก ISP Gateway ไม่เปลี่ยนแปลง ตัวสคริปต์ก็เพียงแค่อ่านค่ามาเก็บไว้ในตัวแปรทั้ง 2 ตัวแปรเท่านั้น และไม่มีการอัพเดตหมายเลขไอพี Gateway ใดๆ เลย ผลที่ได้อีกอย่างหนึ่งคือ การเปลี่ยน ISP จากเจ้าหนึ่งไปอีกเจ้าหนึ่งที่มีรูปแบบการให้บริการแบบเดียวกัน เช่น PPPoE ผู้ดูแลระบบไม่จำเป็นต้องเซตหมายเลข ISP Gateway ใหม่ที่ตารางเราติ้งเลย 

การประยุกต์ใช้งานที่มีการใช้งานเราเตอร์ไมโครติกที่ใช้ขา WAN มากกว่าหนึ่งขา WAN สำหรับออกอินเทอร์เน็ต เช่น เราเตอร์ไมโครติกกำหนด 2 ขา WANs ที่รับหมายเลขไอพีจาก ISP แบบ PPPoE ทั้ง 2 ขา WANs สคริปต์สำหรับการตั้งค่าหมายเลข ISP Gateway แบบอัตโนมัติที่ตารางเราติ้งในเราเตอร์ไมโครติก ทำได้โดยการสำเนาสคริปต์ข้างบนอีก 1 ชุด สคริปต์โดยรวมมีดังนี้

เนื้อหาในบล็อคนี้มีเวอร์ชั่นเป็นภาษาอังกฤษด้วย ผมได้เขียนในฟอรั่มของไมโครติก forum.mikrotik.com ดูได้ที่กระทู้นี้ (English Version)  หากมีข้อสงสัยในการนำไปใช้งานสามารถสอบถามได้ที่ ekarin.s@psu.ac.th หรือ facebook: ekarin suethanuwong

นอกจากนี้ สคริปต์ข้างต้นมีการพูดถึงในกลุ่มเฟสชื่อ MikroTik Tutorial (คลิกที่นี้) ที่มีอาจารย์ Pongpipat Thunyawiraphap เป็นผู้ก่อตั้งกลุ่ม ในการสนทนามีการประยุกต์ใช้ในกรณี Failover ของ 3 WANs ที่มีการทำ Routing Masks ท่านที่สนใจสามารถตามไปศึกษาเพิ่มเติมได้ ครับ

หมายเหตุ

ท่านสามารถเข้าไปอ่านเนื้อหาในบล็อกที่แล้ว (คลิกอ่านได้ที่นี้) ซึ่งผมได้เขียนเรื่องราวเกี่ยวกับการนำเสนอและเนื้อของการนำเสนอ เนื้อหาในรูปแบบสไลด์และวีดีโอของการนำเสนอแสดงในเว็บไซต์ของไมโครติก (https://mum.mikrotik.com/2018/TH/agenda/en) หรือคลิกได้ที่นี้ 

หมวดหมู่บันทึก: บริการวิชาการ
คำสำคัญ (keywords): ISP Gateway  MikroTik Script  routing  Failover
สัญญาอนุญาต: ซีซี: แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกัน Cc-by-nc-sa
สร้าง: 26 กันยายน 2561 20:57 แก้ไข: 27 กันยายน 2561 10:03 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ: Ico24 kwang saelee.
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

ไม่มีความเห็น

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 54.156.39.245
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ