二月 27

3年前買的5台RB750,最近其中有1台會不定時重新開機,覺得有點困擾。

上網爬文後,有些人說也許是電容快掛了,也有些人說調降CPU頻率會有改善。

看來最簡單的解決方案就是調整CPU頻率了,先往下降1階,如還是不穩,再降一階。

調整的方法如下圖

繼續閱讀… »





五月 14

在RouterOS中,我們可以在System -> Logging中設定要把Log記錄到那裡去。

預設值是記到RouterOS的memory中,RouterOS重開機,Log檔就不見了。

如果你的情境是要把Log記錄到遠端的Syslog Server,而該Syslog Server的IP位置不是固定的。

那麼下面這個Script就可以幫上你了,該Script配合RouterOS的Schedule定時執行,

這樣子就沒問題了,Schedule的設定方式可以參考本篇RouterOS 動態更新IP到 ChangeIP.com的下半部文章

#Script在RouterOS 5.24中測試過
#Date:2013/04/19
#Script Descript:自動更新System - Logging - Actions - remote 的 IP位置
#--------------------------------------------------
#要設定的LogAction名稱
:local logActionName "remote"
#Syslog Server 的 DoaminName
:local syslogDomainName "syslog.yourdomain.com"
#經由DNS取得Syslog Server IP
:local currentSyslogIP [:resolve $syslogDomainName]

:if ([/system logging action get $logActionName remote] != $currentSyslogIP) do={
/system logging action set $logActionName remote=$currentSyslogIP
:log info "Syslog Server IP Update: $currentSyslogIP (CHT:更新Syslog Server IP)"
}




二月 25

原本用的好好的ChangeIP.com,今天突然出問題,

進RouterOS上一看,Log一直出現ddns error Blacklisted。

查了一下google,找到這篇官方文章Blacklisted IP Address

說是我更新太頻繁。等了3個小時,也不見自動解鎖,一樣的錯誤訊息。
(註:今天晚上看到新聞,大樓機房起火 是方電訊數百客戶網路遭殃,也許是這個事件的關係)

好吧,免錢的。也不能要求太多,換一個吧。

因為dynDNS也要收錢了,所以No-IP(免費的有3個hostname可以用),就是你了。

設定完下面的Script,記得要再設定Schedual,設定可以參考RouterOS 動態更新IP到 ChangeIP.com

#Script在RouterOS 5.23中測試過
#Date:2013/02/25
#Script Name:ddnsUpdate(for no-ip)

#no-ip的帳號
:local ddnsuser "yourNOIPAccout"
#no-ip的密碼
:local ddnspass "yourNOIPPassword"
#要更新的no-ip domain 名稱
:local ddnshost "abcdefg.zapto.org"
#要更新的網路介面IP。使用該網路介面的註解文字來尋找,使用前請先把該網路介面的註解說明加上去
:local ddnscomment "RouterOS對外IP"
##################################
####以上是需要修改資料的部份######
##################################
:global ddnslastipRouterOS
:global ddnsipRouterOS [ /ip address get [/ip address find interface=[/interface get [/interface find comment=$ddnscomment] name]] address ]
#舊的IP有存在就用舊的,不存在就建0.0.0.0/0
:if ([:typeof [:global ddnslastipRouterOS]] = nil ) do={ :global ddnslastipRouterOS 0.0.0.0/0 } else={ :set ddnslastipRouterOS $ddnslastipRouterOS }
:if ([:typeof [:global ddnsipRouterOS]] = nil ) do={
  :log info ("DDNS: No ip address present on " . $ddnscomment . ", please check.")
} else={
  :if ($ddnsipRouterOS != $ddnslastipRouterOS) do={
    :log info "DDNS: Update DDNS! (CHT:開始更新DDNS_Host)"
#轉換IP為no-ip可接受的格式
    :local ipFormat [:pick $ddnsipRouterOS 0 [:find $ddnsipRouterOS "/"]];
    :local NOIPUpdateString "/nic/update?hostname=$ddnshost&myip=$ipFormat"
    :log info ([/tool fetch address=dynupdate.no-ip.com mode=http user=$ddnsuser password=$ddnspass src-path=$NOIPUpdateString dst-path=("/DDNS-".$ddnshost)] . "CHT:更新IP:" . $ddnsipRouterOS)
    :log info ($ddnshost . "  更新回傳值--" . [/file get "DDNS-$ddnshost" contents])
    :global ddnslastipRouterOS $ddnsipRouterOS
  } else={

  }
}




四月 30

RouterOS用了這麼久(3年多了),感覺上算是蠻穩的

不過凡事總有個萬一,所以備份也是很重要的

以下的Script就是幫助我們達成RouterOS備份自動化,而且備份完後會自動e-mail到你指定的位置

#Script在RouterOS 5.15中測試通過
#Date:2010/12/19
#Script Name:MailBackupFile
#-----------------------------------------
#SMTP伺服器位置
:local SMTP "msa.hinet.net"

#寄件人
:local MailFrom "ROSBackup@minitw.com"

#收件人
:local MailTo "ModifyHere@minitw.com"

#寄出後是否刪除已存檔的Log(/file裡的檔案)
#0=保留 1=刪除

:local DeleteLogFile 1

:local BackupFileName
:set BackupFileName ([/system identity get name] . "_Backup-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".backup");
 /system backup save name=($BackupFileName);
 delay 10;

/tool e-mail set from=$MailFrom;
 /tool e-mail set address=[:resolve $SMTP];

/tool e-mail send to=$MailTo subject=([/system identity get name] . " -- RouterOS Backup " . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6]) file=[$BackupFileName];

:delay 10;

:if ($DeleteLogFile =1) do={
 /file rem [/file find name=($BackupFileName)];
 }

:log info ("System Backup emailed at " . [/sys cl get time] . " " . [/sys cl get date] . " (CHT:備份email寄出)");

#---
#---




十二月 20

RouterOS要更新版本除了可以手動更新外(請參考更新與升級RouterOS的版本),也可以利用Script來進行更新。

參考mikrotik官方的wiki後,我把Script修改了一下,方便使用。

要使用前,要修改的地方只有1個:local upgradeTo “x.xx",

把版本改成你想要更新的版本即可,例如:local upgradeTo “6.4″

執行後,Script會自動去官方網站下載符合該平台的更新檔下來,

下載完會自動重開機進行更新。

請注意:系統更新都有其風險,更新前請自行斟酌

#Script在RouterOS 6.3中測試過
#Date:2013/10/20
#Script Descript:半自動更新RouterOS的系統版本
#reference:http://wiki.mikrotik.com/wiki/Auto_upgrade_script_V3.x

#----------------------------------
#要更新到那一個版本請在這邊設定
:local upgradeTo "6.4";
#----------------------------------

# newest version
:local lMajor;
:local lMinor;

# current version
:local vMajor;
:local vMinor;

:local myVer [/system resource get version];

:for i from=0 to=([:len $myVer] - 1) do={
:if ( [:pick $myVer $i] = ".") do={
:set vMajor [:tonum [:pick $myVer 0 $i]];
:set vMinor [:tonum [:pick $myVer ($i + 1) [:len $myVer]]] ;
}
}
......以下略

完整程式碼可參考http://www.minitw.com/download/UpgradeROS.txt





九月 01

正常的狀況下,RouterOS會自動管理系統上的IP位置。

像是使用VPN撥接上ROS後,ROS系統會自動給予1個IP位置,斷線後該IP位置會自動刪除。

但有的時候,撥接上來的VPN發生異常斷線後,該IP並沒有自動刪除。

這時就會導致該帳號永遠無法再撥接上來(帳號使用固定VPN IP)

為了解決這狀況,所以需要一個小Script搭配Scheduler來自動刪除ROS上這些無效的IP位置

Script內容如下

#Script TestOS:RouterOS 5.6
#Date:2011/09/01
#Script Description:刪除無效的IP位置

# 把無效的IP位置資料全部讀出來
:foreach i in=[/ip address find invalid=yes] do={
#刪除無效的IP
    /ip address remove $i
}

.
.
懶人包如下,於winbox中開啟Terminal,貼上下面的指令
系統會完成新增上面的Script並每5分鐘於Scheduler中自動執行1次

/system script
add name=DeleteInvalidIP policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api source="#Script T\
    estOS:RouterOS 5.6\r\
    \n#Date:2011/09/01\r\
    \n#Script Description:\A7R\B0\A3\B5L\AE\C4\AA\BAIP\A6\EC\B8m\r\
    \n\r\
    \n# \A7\E2\B5L\AE\C4\AA\BAIP\A6\EC\B8m\B8\EA\AE\C6\A5\FE\B3\A1\C5\AA\A5X\A8\D3\r\
    \n:foreach i in=[/ip address find invalid=yes] do={\r\
    \n#\A7R\B0\A3\B5L\AE\C4\AA\BAIP\r\
    \n    /ip address remove \$i  \r\
    \n}"

/system scheduler
add disabled=no interval=5m name=AutoDeleteIP on-event=\
    "/system script run DeleteInvalidIP" policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api start-date=\
    aug/19/2011 start-time=02:08:36




七月 31

一直以來好像很少看到升級RouterOS的文章

今天就記錄一下過程吧

首先是先下載RouterOS的升級npk檔

可以到官方網站下載

如果你需要之前的版本,可以到本站的這邊下載

繼續閱讀… »