[已解決]MikroTik更新NO IP DDNS系統Log顯示已更新但實際無更新

DuckDNS Update IPv4 & IPv6 Script:
#========== duckdns ============
:local host "abc1234.duckdns.org"
:local token "00000000-0000-0000-0000-000000000000"
:local wan "pppoe-out1"
#==== 伺服器電腦的網卡地址 =====
:local network "fe80::ffff:ffff:ffff:ffff"
#===============================
:local public [/ip address get [find interface=$wan] address]
:set public [:pick $public 0 [:find $public "/"]]
:local past [:resolve $host]

:local v6 [/ipv6 dhcp-c get [find interface=$wan] prefix]
:set v6 "$[:pick $v6 0 [:find $v6 ":/"]]$[:pick $network 6 [:find $network "%"]]"

:if ($past!=$public) do={
:log warning "Update $host : $past => $public | $v6"
:set host [:pick $host 0 ([:find $host "duckdns"]-1)]
/tool fetch dst-path=duckdns mode=https \
url="https://www.duckdns.org/update\\?domains=$host&token=$token&ip=$public&ipv6=$v6"
:delay 3s ; /file remove duckdns}
gfx wrote:
...(恕刪)


改用DUCK DNS並用gfx前輩提供的Script可以正常運作,
NO-IP的DDNS用好幾年了沒能繼續用是有點可惜,
過往也是因為直接用CHT小烏龜的路由功能,
他支援的DDNS不多所以一直沿用NO-IP,
不過每30天要更新也的確很困擾,
剛好這次增加路由器後NO-IP的DDNS更新卡關,
MikroTik可以用Script支援DUCK DNS,
我要跟NO-IP分手啦!!
再次感謝gfx的熱心地提供解決方案。

gfx wrote:
Dual Stack...(恕刪)


想請問gfx大大
我試過把不同PPPOE連線加入後,取得的IPV6都是同一組Prefix
要怎麼樣才能夠用多PPPOE同時取得不同IPV6 Prefix呢?

a6595085 wrote:
想請問gfx大大我...(恕刪)
應該與mac-address有關。
若是所有pppoe-out的interface都是相同的ether1,有可能都會抓到相同的ipv6 prefix。

若是使用vrrp將ether1模擬成多張mac-address不同網卡,或許能抓到不同的ipv6 prefix。
http://www.roszj.com/1211.html
設定vrrp時,記得每一組vrid數值可以自訂但不可有重複利用的狀況發生。

gfx wrote:
應該與mac-address...(恕刪)


gfx大大你好
因為數據機是H660W 所以目前就是使用VRRP的架構進行多撥的
gateway直接用WAN interface出去 其餘兩個用各自的VRRP出去





剛才測試後發現很奇特的一點就是
如果將gateway的PPPOE斷線,讓其他PPPOE連線去抓IPV6
之後再把gateway的PPPOE重新連線,ipv6的prefix就會不一樣了



接著我再把第三個連線加進去,結果取到的prefix與第二個相同



不曉得這跟pppoe撥號順序是否有相關?
a6595085 wrote:
gfx大大你好因為...(恕刪)
Sorry~真正的原因我不清楚,
用script的方式不斷更新重抓新地址,直至全部的prefix都不同才停止試試.

分別把各自的script ,複製到dhcpv6 client的advanced欄位
#pppoe-gateway
:global gateway6
:if ($"pd-valid"=1) do={:set gateway6 [:pick $"pd-prefix" 0 [:find $"pd-prefix" "/"]]}
#pppoe-slave
:global gateway6
:global slave6
:global static6

:if ($"pd-valid"=1) do={:set slave6 [:pick $"pd-prefix" 0 [:find $"pd-prefix" "/"]]}
:if (($slave6=$gateway6 || $slave6=$static6) && $"pd-valid"=1) \
do={/ipv6 dhcp-client release [find interface="pppoe-slave"]}
#pppoe-static
:global gateway6
:global slave6
:global static6

:if ($"pd-valid"=1) do={:set static6 [:pick $"pd-prefix" 0 [:find $"pd-prefix" "/"]]}
:if (($static6=$gateway6 || $static6=$slave6) && $"pd-valid"=1) \
do={/ipv6 dhcp-client release [find interface="pppoe-static"]}
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!