บทความสำหรับ: ผู้ที่มีความรู้เกี่ยวกับระบบเครือข่ายในระดับเบื้องต้นถึงปานกลาง (v1.1)
โดย วิทวัส โฉมประเสริฐ, ศุภสิทธิ์ ศิริพานิชกร, เจตน์สันติ์ ยาวิลาศ
คำถาม
ปัจจุบันใช้ Internet แบบ ADSL ธรรมดา ซึ่ง IP จริงที่ได้มามีการเปลี่ยนแปลงอยู่ตลอดเวลา ทำให้เวลา Remote เข้ามาเซตค่าอุปกรณ์ มีความยุ่งยาก
ถ้าต้องการทำ DDNS เพื่อให้ง่ายต่อการ Remote เข้ามาเซตค่าอุปกรณ์ ต้องทำอย่างไร ?
คำตอบ
- สมัครและกำหนด hostname ขึ้นมา (ทดสอบใช้ของค่าย DYNDNS.ORG)
- เขียน script และ schedulers ลงบนอุปกรณ์ Mikrotik (แนะนำกับ RouterOS 4.10 ขึ้นไป)
ทดสอบแล้วบนอุปกรณ์ Mikrotik RB750GL, RB450, RB751U-2HnD, 750up ครับ
ขั้นตอน - เซตโมเด็ม ADSL ให้เป็นบริดจ์
- เข้าไปคอนฟิกโมเด็ม ผ่าน IP บนหน้าเวป Browser ( ตัวทดสอบเป็นโมเด็มที่แถมมาของ 3BB)
แต่เมนูหลักๆ รุ่นหรือยี่ห้ออื่นๆก็จะคล้ายๆกัน โดยเลือก
Bridge Mode - 1483 Bridged IP LLC
ขั้นตอน - เข้าผ่าน WINBOX
*ให้ทำการเชื่อมต่อ internet ให้ได้ก่อน โดยศึกษาได้จากกระทู้อ้างอิง
1.1 วิธีทำ Hotspot บน MikroTik RB750G (1 Internet) - เข้าโปรแกรม Winbox แล้วคลิกเลือก mac address MikroTik ที่ broadcast เจอ แล้วกด Connect
ขั้นตอน - วิธีการตั้งค่า DDNS ให้ Mikrotik - เข้าเมนู SYSTEM > Scripts
แล้วทำการคลิกที่เครื่องหมาย " + " เพื่อเพิ่ม script - ตั้งชื่อ script เป็น ddns-update ส่วนใน source ให้แก้ไข
username "usernamedyndns"
password "passworddyndns"
hostname "hostname.dyndns.org"
และทำการคัดลอกโค้ดคำสั่งต่อไปนี้ ลงใน source- โค้ด: เลือกทั้งหมด
# Set needed variables
:local username "usernameddns"
:local password "passwordddns"
:local hostname "hostname.dyndns.org"
:global dyndnsForce
:global previousIP
# print some debug info
:log info ("dyndns-update: username = $username")
:log info ("dyndns-update: password = $password")
:log info ("dyndns-update: hostname = $hostname")
:log info ("dyndns-update: previousIP = $previousIP")
# get the current IP address from the internet (in case of double-nat)
/tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html"
:local result [/file get dyndns.checkip.html contents]
# parse the current IP result
:local resultLen [:len $result]
:local startLoc [:find $result ": " -1]
:set startLoc ($startLoc + 2)
:local endLoc [:find $result "</body>" -1]
:local currentIP [:pick $result $startLoc $endLoc]
:log info "dyndns-update: currentIP = $currentIP"
# Determine if dyndns update is needed
# more dyndns updater request details available at http://www.dyndns.com/developers/specs/syntax.html
:if (($currentIP != $previousIP) || ($dyndnsForce = true)) do={
:set dyndnsForce false
:set previousIP $currentIP
/tool fetch user=$username password=$password mode=http address="members.dyndns.org" src-path="/nic/update?hostname=$hostname&myip=$currentIP" dst-path="/dyndns.txt"
:local result [/file get dyndns.txt contents]
:log info ("dyndns-update: Dyndns update needed")
:log info ("dyndns-update: Dyndns Update Result: ".$result)
:put ("Dyndns Update Result: ".$result)
} else={
:log info ("dyndns-update: No dyndns update needed")
}
- เมื่อสร้าง script เสร็จแล้ว ให้ทดสอบทำการ Run script
สังเกตุ Log จะมีข้อความแสดงสถานะการ update ip ตามที่ได้มีเขียนไว้ใน script - เช็คสถานะ IP ปัจจุบันที่ได้รับ ว่าตรงกับทาง DYNDNS.ORG
- เมนู System > Scheduler
แล้วคลิกเครื่องหมาย " + " เพื่อเพิ่ม Scheduler สั่งให้สคิปทำงาน - ตั้งชื่อ Schedule เป็น ddns-update โดยกำหนดค่าต่างๆดังนี้
Start Date : Jan/01/1970 (ตั้งย้อนไว้เผื่อ Mikrotik ถ้ามีการถอดแหล่งจ่ายไฟ จะรีเซตเวลาใหม่หมด)
Start Time: 00:00:00
Interval: 00:05:00 ( กำหนดให้ทำงานทุกๆ 5 นาที) ผู้ใช้สามารถปรับเป็น "0d ชั่วโมง:นาที:วินาที " ตามที่ต้องการได้
On Event: ddns-update - หลังจากทำการแก้ไขต่างๆเสร็จเรียบร้อยแล้ว
ทดสอบทำการ dis-conect และ concect ใหม่เพื่อให้ IP มีการเปลี่ยนแปลง
สังเกต Log จะมี Status แสดงสถานะการ dis-connect และ connect - รอเวลา ตามที่เรากำหนด script ก็จะทำงาน
สังเกตุ Run Count ที่ scheduler ว่าจะนับเพิ่มไปเรื่อยๆตามจำนวนครัั้งที่มีการทำงาน
ส่วน Log ก็จะแสดงให้เห็นว่า IP เดิม คืออะไร มีการ Update ไหม ถ้ามีก็จะอัพเดรตเป็น IP อะไรขึ้นมาให้เห็นเลย - เปรียบเทียบ IP ปัจจุบันที่ได้ ว่าตรงกับทาง DYNDNS.ORG
ทดสอบ Remote จากภายนอกโดยผ่านทั้ง Browser และ Winbox - ทดสอบเข้าผ่าน Browser บนมือถือ Android
สังเกตุ browser รูปที่ 4 แสดงสถานะการ Login ผ่าน Web - ทดสอบเข้าผ่าน Winbox
สังเกตุ winbox รูปที่ 3 แสดงสถานะการ Login ผ่าน winbox
ข้อมูลสินค้าแบบมัลติมีเดีย (Multimedia)
จบบทความ
รายละเอียดการให้บริการจากทีมงาน SYS2U.COM Xpert Zone