四月 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"
#收件人
: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 "5.11",
把版本改成你想要更新的版本即可,例如:local upgradeTo "5.13"
執行後,Script會自動去官方網站下載符合該平台的更新檔下來,
下載完會自動重開機進行更新。
請注意:系統更新都有其風險,更新前請自行斟酌
#Script在RouterOS 5.7中測試過
#Date:2011/12/20
#Script Descript:半自動更新RouterOS的系統版本
#reference:http://wiki.mikrotik.com/wiki/Auto_upgrade_script_V3.x
#----------------------------------
#要更新到那一個版本請在這邊設定
:local upgradeTo "5.11";
#----------------------------------
# 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]]] ;
}
}
......以下略
完整程式碼可參考(編碼為BIG5)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檔
可以到官方網站下載
如果你需要之前的版本,可以到本站的這邊下載
依照自已的RouterOS系統別下載好後,打開winbox

把升級的npk檔拖到winbox的Files中

檔案上傳中.....

確認檔案上傳完成

重開RouterOS

選擇確定重開後,會花一點時間,此時請勿關閉電源。開機完成後,系統即完成升級

五月 09
當你有多個外面線路想要同時間對映到內部的某一台Server時
或許你是為了備援或Load Balance的考量。在RouterOS下你可以很簡單的達成
首先,我們本次範例的網路架構圖如下,目標是把2條PPPoE對映到內部的那台Server

先給大家Script,大家可以再對照下面的圖,不難的
/interface pppoe-client
add ac-name="" add-default-route=no allow=pap,chap,mschap1,mschap2 \
dial-on-demand=no disabled=no interface=LAN max-mru=1480 max-mtu=1480 \
mrru=disabled name=ISP1 password=99999999 profile=default service-name="" \
use-peer-dns=no user=99999999@hinet.net
add ac-name="" add-default-route=no allow=pap,chap,mschap1,mschap2 \
dial-on-demand=no disabled=no interface=LAN max-mru=1480 max-mtu=1480 \
mrru=disabled name=ISP2 password=99999999 profile=default service-name="" \
use-peer-dns=no user=99999999@hinet.net
/ip firewall mangle
add action=mark-connection chain=prerouting disabled=no in-interface=ISP1 \
new-connection-mark=ISP1_conn passthrough=yes
add action=mark-connection chain=prerouting disabled=no in-interface=ISP2 \
new-connection-mark=ISP2_conn passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP1_conn disabled=no \
in-interface=LAN new-routing-mark=to_ISP1 passthrough=yes src-address=\
192.168.55.200
add action=mark-routing chain=prerouting connection-mark=ISP2_conn disabled=no \
in-interface=LAN new-routing-mark=to_ISP2 passthrough=yes src-address=\
192.168.55.200
/ip firewall nat
add action=dst-nat chain=dstnat disabled=no dst-port=80 in-interface=ISP1 \
protocol=tcp to-addresses=192.168.55.200 to-ports=80
add action=dst-nat chain=dstnat disabled=no dst-port=80 in-interface=ISP2 \
protocol=tcp to-addresses=192.168.55.200 to-ports=80
add action=masquerade chain=srcnat disabled=no out-interface=ISP1
add action=masquerade chain=srcnat disabled=no out-interface=ISP2
/ip route
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP2 routing-mark=\
to_ISP2 scope=30 target-scope=10
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP1 routing-mark=\
to_ISP1 scope=30 target-scope=10
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP2,ISP1 scope=30 \
target-scope=10



最後我們實驗一下,確認2個外面的IP都連的進來,並且對映到內部的同一個IP位置,收工

參考資料:Manual:PCC