Hướng Dẫn Cấu Hình Dynamic DNS Trên Router Mikrotik

Mặc định, Mikrotik trang bị sẵn DDNS với DNS Name dạng như sau: xxxxxxxxxxx.sn.mynetname.net với xxxxxxxxxxx là số seri trên mỗi thiết bị.

Để bật tính năng này lên, từ giao diện Winbox->IP->Cloud và sau đó Tick DDNS Enabled. Lúc này, DNS Name được khởi tạo dựa trên số seri thiết bị và kèm .sn.mynetname.net như đã đề cập ở trên.

Vậy tại sao không dùng DNS Name đó? Vì khách hàng cần sự đơn giản, dễ nhớ, gợi nhớ. Và đây là lý do bài viết này ra đời.

Qui trình hoạt động trong thủ thuật này như sau:

1. Script thực thi các lệnh để kiểm tra IP Public trên Router có sự thay đổi so với trước đó không?
Nếu có, thực hiện cập nhật IP Public mới lên HOST NO-IP. Nếu không, không làm gì cả.
2. Script không tự khởi chạy, vì vậy lập lịch chạy Script với chu kỳ 5 phút/lần.

Các bước thực hiện như sau:

Bước 1: Tạo mới Script . Trên giao diện Winbox->system->script. Sau đó nhấn vào dấu [+] để thêm mới.
– Đặt tên cho Script ở trường Name. Ví dụ đặt tên cho script là DDNS-NOIP
– Phần Source sẽ là nội dung script cần thêm vào.( code script bên dưới)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#Thong tin tai khoan NO-IP va HOST.
:local username "no-ip-user"
:local password "no-ip-pass"
:local host "no-ip-host"
#Cac dong ben duoi khong thay doi.
:global OldIP
/ip cloud force-update
:delay 5
:local NewIP [/ip cloud get public-address]
:log info "No-IP: NewIP = $NewIP"
:if ($NewIP != $OldIP) do={
:log info "No-IP: New IP $NewIP is not equal to Old IP, update needed"
:set OldIP $NewIP
:local url "https://dynupdate.no-ip.com/nic/update/?myip=$NewIP&hostname=$host"
:log info "No-IP: Sending update for $host"
/tool fetch url=$url user=$username password=$password mode=https keep-result=no
:log info "No-IP: Host $host updated on No-IP with IP $NewIP"
} else={
:log info "No-IP: update not needed "
}

Bước 2: Tạo lịch cho phép chạy script với tên DDNS-NOIP với chu kì 5 phút/lần.
Trên giao diện Winbox->system->scheduler. Sau đó nhấn vào dấu [+] để thêm lịch mới.
– Đặt tên cho lịch ở trường Name. Ví dụ đặt tên cho lịch là scheduler-ddns-noip
– Start Date: khai báo ngày/tháng/năm bắt đầu khởi chạy script.
– Start Time: khai báo giờ/phút/giây bắt đầu khởi chạy script.
– Interval: thời gian việc khởi chạy script được lặp lại. Trong ví dụ này thì cứ mỗi 5 phút thì lại khởi chạy 1 lần. Khai báo như sau: 00:05:00
– On Event: khai báo script sẽ được khởi chạy, cụ thể hơn chính là tên lúc nãy chúng ta đặt ở phần script, trong ví dụ này script được khởi chạy với tên là DDNS-NOIP.

Chúc mọi người thành công.