DNS và DDNS
DNS (Domain Name System), hệ thống phân giải tên miền là một hệ thống cho phép thiết lập tương ứng giữa địa chỉ IP public và tên miền trên Internet. DNS giúp cho việc chuyển đổi giữa tên miền mà chúng ta dễ ghi nhớ (Ví dụ www.viettelco.net) sang địa chỉ IP (Ví dụ 123.31.38.154). Nhờ có DNS, chúng ta khi truy cập các website không cần phải nhớ địa chỉ IP mà chỉ cần nhớ tên miền là đủ, hôm nay Viettelco hướng dẫn cách cấu hình Dynamic DNS cho Router Mikrotik.
Một số máy chủ DNS nổi tiếng như máy chủ DNS của Google 8.8.8.8, 8.8.4.4 hay Cloudflare 1.1.1.1, 1.0.0.1.
DNS
DDNS hay Dynamic DNS là phương thức ánh xạ tên miền tới địa chỉ IP có tần suất thay đổi cao (do không phải mọi khách hàng dùng mạng Internet đều có IP tĩnh). Dịch vụ DNS động cung cấp một chương trình đặc biệt chạy trên thiết bị của người sử dụng một dịch vụ gọi là Dynamic DNS Client. Chương trình này giám sát sự thay đổi địa chỉ IP tại máy chủ cần cài đặt dịch vụ web, mail,… và liên hệ với hệ thống DNS mỗi khi địa chỉ IP của nó (vốn được cung cấp bởi các nhà cung cấp dịch vụ mạng bằng phương pháp động) thay đổi và sau đó cập nhật thông tin vào cơ sở dữ liệu DNS về sự thay đổi địa chỉ đó. Bằng cách này, cho dù máy chủ có thường xuyên bị thay đổi địa chỉ thì tên miền vẫn được hệ thống máy chủ DNS trỏ về đúng địa chỉ được cấp IP mới đó.
DDNS thường được ứng dụng cho một số dịch vụ không cần thiết phải có IP tĩnh (vì chi phí để có IP tĩnh khá đắt đỏ) như xem Camera, VPN,…
Cũng giống như nhiều router khác, Mikrotik cung cấp tính năng cấu hình DDNS và việc thiết lập cũng không quá khó.
Cấu hình DDNS trên router Mikrotik
Đầu tiên ta cần đăng ký tài khoản, tạo tên miền động miễn phí trên một số trang web như noip.com, duckdns.org,…
Đăng ký dịch vụ DDNS miễn phí trên noip.com.
Sau đó vào System à Scripts và tạo một Script mới với phần Source như sau, với phần user name, pass, domain và interface điền phù hợp:
# No-IP automatic Dynamic DNS update
#————— Change Values in this section to match your setup ——————
# No-IP User account info
:local noipuser “your_no-ip_user”
:local noippass “your_no-ip_pass”
# Set the hostname or label of network to be updated.
# Hostnames with spaces are unsupported. Replace the value in the quotations below with your host names.
# To specify multiple hosts, separate them with commas.
:local noiphost “hostname.no-ip.net”
# Change to the name of interface that gets the dynamic IP address
:local inetinterface “your_external_interface”
#————————————————————————————
# No more changes need
:global previousIP
:if ([/interface get $inetinterface value-name=running]) do={
# Get the current IP on the interface
:local currentIP [/ip address get [find interface=”$inetinterface” disabled=no] address]
# Strip the net mask off the IP address
:for i from=( [:len $currentIP] – 1) to=0 do={
:if ( [:pick $currentIP $i] = “/”) do={
:set currentIP [:pick $currentIP 0 $i]
}
}
:if ($currentIP != $previousIP) do={
:log info “No-IP: Current IP $currentIP is not equal to previous IP, update needed”
:set previousIP $currentIP
# The update URL. Note the “\3F” is hex for question mark (?). Required since ? is a special character in commands.
:local url “http://dynupdate.no-ip.com/nic/update\3Fmyip=$currentIP”
:local noiphostarray
:set noiphostarray [:toarray $noiphost]
:foreach host in=$noiphostarray do={
:log info “No-IP: Sending update for $host”
/tool fetch url=($url . “&hostname=$host”) user=$noipuser password=$noippass mode=http dst-path=(“no-ip_ddns_update-” . $host . “.txt”)
:log info “No-IP: Host $host updated on No-IP with IP $currentIP”
}
} else={
:log info “No-IP: Previous IP $previousIP is equal to current IP, no update needed”
}
} else={
:log info “No-IP: $inetinterface is not currently running, so therefore will not update.”
}
Thêm Script trên Mikrotik.
Tiếp theo vào Terminal tạo Schedule sau để luôn làm mới DDNS:
/system scheduler add comment=”Update No-IP DDNS” disabled=no interval=5m \
name=no-ip_ddns_update on-event=no-ip_ddns_update policy=read,write,test
Thêm lịch tự động chạy mỗi 5 phút.